Last updated: July 23, 2008
~Keripo


== Fast FAQ ==

Note:
These questions relate mostly for iPodLinux but some also
apply to SansaLinux. If there are enough Sansa-specific
questions need addressing, I'll write a separate FAQ.

Q: What is Project ZeroSlackr?
A: Read the "ReadMe from Keripo.txt" document.

Q: When I run the "patch" script I am told by iPod patcher
   that my iPod cannot be found when my iPod is clearly
   connected. Whats up with that?
A: If ipodpatcher says your iPod isn't connected but it is,
   you may not have full admin access; find a computer in
   which you do have admin access. If you have such
   privileges, iTunes is closed and your iPod shows up as
   a drive, it is possible that your iPod is not supported
   by iPodLinux. See the iPodLinux Generations wiki page.

Q: I've already installed iPodLinux through Installer 2.
   What will happen to my old installation?
A: Installing the ZeroSlackr Framework on top of a previous
   Installer 2 installation will not affect your previous
   setup. In fact, the kernel used by Project ZeroSlackr
   also supports a normal, partitioned installation like the
   one created by Installer 2. Uncomment the "#iPodLinux"
   line of "loader.cfg" to make available your old
   installation.

Q: iPodLinux is cool but I also want Rockbox! Do I have to
   uninstall ZeroSlackr just to get Rockbox?
A: No. Rockbox can be installed along side Project ZeroSlackr
   without any influence to either OS's. After you've run the
   "patch" script, installing Rockbox is easy. Download the
   latest Rockbox build for your iPod model and extract it
   directly to your iPod. Reboot and select the "Rockbox"
   option of Loader2. Thats it! (Note that if you do NOT want
   Rockbox, you may want to comment out the line in the 
   "loader.cfg" file and change the default to 1).

Q: After trying out a few apps I keep getting this
   "blahblahblah is too big" message or a lot of random
   numbers and letters or my iPod just freezes. What gives?
A: Due to large number of SlackrPacks now and thus
   ZeroLauncher's larger footprint, your iPod will run out
   of memory (think RAM, not hard-drive space). This is
   partially due to memory fragmenting in the kernel (for
   which we need kernel developers (see this thread:
   http://ipodlinux.org/forums/viewtopic.php?t=27395 )
   and sometimes due to bad programming in the apps
   (I did not write the majority of these applications and
   would not know how to fix such). The current solution
   to this is "reboot, reboot, reboot". See the iPodLinux
   "Key_Combinations" wiki page for information on how to
   force reboot your iPod.

Q: After I enabled MPD (iPodLinux's music player), I keep
   getting a launch confirmation pop-up every time I try
   launching something. Why is that?
A: As explained in the previous question, iPodLinux is
   prone to memory fragmenting and often does not have
   enough memory to do many things at once. Some small apps
   can be used along side MPD, but most of the time there
   just isn't enough free memory. As a result, if you intend
   to use ZeroLauncher to launch apps, you should try using
   "/Music/Kill MPD" or, better yet, do not enable MPD at
   all. Note that ZeroLauncher and Podzilla2-SVN keep their
   MPD-enabling settings separate from each other so it is
   recommended that you disable MPD for ZeroLauncher and
   enable it for Podzilla2-SVN. Keep in mind that MPD is
   not perfect and will often get choppy and may sometimes
   freeze your iPod (in which case, "reboot, reboot, reboot").

Q: The "FastLaunch" options of some applications is nifty
   but how do change the default content that gets launched?
A: Using the "FastLaunch" option runs the application's
   launch script (i.e. "Launch.sh") without any arguments.
   For apps with a menu, this will just start up the app; for
   apps without a menu (i.e. command-line apps), this will
   start the app with default content/settings that I have
   chosen (e.g. launch a certain game that comes with I have
   included in the pack). Launch scripts for every application
   can be found in that application's "Launch" folder (e.g.
   for XMP, this would be "ZeroSlackr/opt/Media/XMP/Launch").
   Feel free to modify the launch scripts however you want
   but make sure you are using an advance text editor that
   allows saving in UNIX format, i.e. Podwrite on iPodLinux,
   KWrite on Linux, Notepad++ on Windows (note that Notepad/
   Wordpad will NOT work so do not use them!).   

Q: Help, I get a "Can't write to log on /dev/tty5!" every
   time I boot into ZeroSlackr! How can I fix of this?
A: This is a busybox-related issue but not one affecting
   anything (its just a warning message that can be ignored).
   I might recompile busybox one day with the message
   removed, but later.

Q: I installed ZeroSlackr and it works great, but how do
   I access the Linux partition?
A: The ZeroSlackr Framework uses a userland disk image
   through the "loop-mount" boot method originally
   introduced by DataGhost (see iPodLinux's
   "Installation:_Winpod_without_datacorruption" wiki page).
   More information on it can be found in the ZeroSlackr
   Framework's userland readme ("/docs/userland/
   ReadMe from Keripo.txt"). For instructions on how to
   access/edit the userland image, see the
   "/docs/userland/Loop-mount Instructions.txt".

Q: I'm trying to use your kernel with a normal iPodLinux
   installation and/or I am trying to use Loader2 args as
   the wiki page instructs but its not working. Why?
A: The kernel I use for the ZeroSlackr Framework is a
   modified version of the iPodLinux "Experimental_Kernel"
   wiki. See the comments of the "loader.cfg" file
   for instructions on how to use the kernel and loader2
   args (which I use "autoexec=").

Q: Your previous "Sneak Peak" and "Testing" pre-releases
   for Windows users had this nice little
   just-keep-clicking-"Next" GUI installer. Will there be
   one for this?
A: No. There won't be. And no, I don't plan to make one.
   If I wanted, it would take 5 seconds, but I won't
   because people shouldn't be that lazy. iPodLinux
   (and Linux for general) is not for everyone
   (i.e. the "keep clicking Next" generation) and at least
   this way (extract and run script) there is some kind of
   "manual" aspect of things. I will, however, be working
   on a Java-based package manager for managing SlackrPacks
   though work is being stalled at the moment while I work
   directly on ZeroSlackr stuff (I'll come back to it one
   day).

Q: All these packs are really cool but the ZeroSlackr SVN
   keeps getting updated and there are apps that have yet
   to be added. How can I build my own SlackrPacks?
A: To compile things for ZeroSlackr, see the
   "== Compiling ==" section of ""ReadMe from Keripo.txt"
   and follow the iPodLinux
   "Introduction_to_Compiling_for_iPodLinux" wiki tutorial.
   I have not finished adding everything I know to Project
   ZeroSlackr but if you're willing to help (and are an
   experienced C programmer), feel free to contact me via PM.

Q: I'm lame and want my iPod back to "normal". How do I
   uninstall this?
A: The only real "installation" that you did was add in
   the Loader2 bootloader. Everything else is just files
   copied over to your iPod (no partitioning or other
   modifications were done to your iPod). To uninstall the
   bootloader, use ipodpatcher with the "--delete-bootloader"
   argument. After that you can delete the directories
   containing ZeroSlackr files (i.e. bin, boot, dev, etc,
   and ZeroSlackr). More info can be found on Rockbox's
   ipodpatcher wiki page (see
   http://www.rockbox.org/twiki/bin/view/Main/IpodPatcher).

Q: Installing iPodLinux through Project ZeroSlackr is very
   easy! Will this ever be officially supported?
A: Project ZeroSlackr is a custom iPodLinux installation
   created by me (Keripo) but based off the work and ideas
   of many people. Because of my modifications, it is
   highly unlikely that it will become official (though I
   do hope the non-partitioning loop-mount install method
   becomes adopted as the official install method). Whenever
   I do make modifications that I believe are beneficial to
   the iPodLinux project, however, I do try to get the
   modifications committed upstream by the official
   developers (i.e. see http://ipl.nonb.org/search?q=Keripo
   if Trac wasn't down).

Q: Project ZeroSlackr is awesome! How can I thank you?
A: If you're an experienced programmer, feel free to contact
   me if you want to help. Otherwise, just leave a word of
   thanks in a Project ZeroSlackr thread on the iPodLinux
   forums. If you're really generous and want to donate,
   you can do so through the SourceForge page.

Q: What about my question _____ which you didn't answer here?
A: This FAQ only covers the basics concerning Project
   ZeroSlackr. For more information on iPodLinux, see the
   iPodLinux page (http://ipodlinux.org). For more
   information on how certain packs/applications work, see
   the pack's own "ReadMe from Keripo.txt", documents in the
   pack's Misc/Docs, the pack's iPodLinux wiki page (if it
   has) and Google searches. If you think you have an
   important question that concerns only Project ZeroSlackr
   and I forgot to add here, please contact me through the
   iPodLinux forums.

Q: Will you ever add support for ____?
A: Although Project ZeroSlackr currently supports a large
   collection of various apps and content, it is by no means
   complete. If you know of something that already works on
   iPodLinux but is not part of ZeroSlackr, it is probably
   either because I haven't added it yet or because I do not
   know of it (so request it anyway). If it is something that
   has not yet been created/ported however (i.e. a new
   emulator that you really want on your iPod), you amy request
   it but only after you've done some research into things
   (i.e. is the iPod powerful enough? Can other stronger
   hand-helds such as the PSP/GP2X/DS run it?). While porting
   new apps is low on my priority list, if there are already
   other ports on other handheld platforms and the hardware
   requirements are low enough (the iPod's processor maxs out
   at 81MHz so only emulators of hardware with 20MHz processor
   or lower are plausible), I may consider doing new ports.
   I prefer SDL versions and can only port apps already ported
   to Linux and written in C/C++.


== Terminology ==

iPod
- If you do not know what an iPod is, you should probably
  consult Google or Wikipedia.
iPodLinux
- A port of uClinux to the iPod platform (ARM architecture
  with no MMU). For more information on iPodLinux, see the
  website (http://ipodlinux.org). For more information on
  uClinux or Linux, search Google or Wikipedia.
Project ZeroSlackr
- Keripo's easy-to-use, custom iPodLinux installation
  system which integrates a wide range of cummity-generated
  content. Note that Project ZeroSlackr is not an "installer"
  per say; it is the installed content itseld, which consists
  of the base framework (ZeroSlackr Framework) and additional
  content (Slackr Packs).
ZeroSlackr
- Usually refers to/shortform for "Project ZeroSlackr". You
  may say "To install iPodLinux, just install ZeroSlackr" or
  "Install iPodLinux through Project ZeroSlackr". The word
  itself is an amalgamation of "zero" and "slacker" to an
  oxymoronic effect ^_^
ZeroSlackr Framework
- The base portion of a ZeroSlackr install. Consists of the
  bootloader, the userland, the kernel, MPD and ZeroLauncher.
  The framework is basically the iPodLinux system itself;
  content is added through Slackr Packs.
Slackr Packs
- Content added to the ZeroSlackr Framework. These packs
  can either be applications launchable from ZeroLauncher
  or just additional content such as schemes or free public
  domain ROMs.
FastLaunch
- Phrase I use for describing launching an application with
  default setting in ZeroLauncher. This is done by executing
  that app's launch script without arguments.
- For stand-alone apps, this would describe launching the app
  itself (i.e. the app's single option in ZeroLauncher).
- For apps that take arguments, this would be the app's
  "FastLaunch" option and usually launches the app with
  pre-selected arguments (that you can modify by editing the
  launch script with an advance text editor).
root
- Has different meanings depending on context.
- The "root of your iPod" or "root of your data partition"
  usually refers to where all your music/data files are.
  It is basically the location representing your iPod and
  contains folders such as "Notes", "Contacts",
  "iPod_Control", etc. The main "ZeroSlackr" folder should
  be in the root of your iPod.
- The "root of your Linux partition" is where the userland
  files are usually stored in a normal iPodLinux installation,
  i.e. on an added ext2/ext3 Linux partition. ZeroSlackr does
  not use a Linux partition but rather stores the userland
  files on an ext3 partition image that is mounted during
  startup (the image file is found at "/boot/userland.ext3").
  Due to symlinking in the userland image, you will usually
  not need to access the content of the file.
- The "root of ZeroSlackr" is the content of the "ZeroSlackr"
  folder. Many commonly used folders in the userland image are
  symlinked to folders in the ZeroSlackr root.
- To summarize, on a Windows computer:
    E:/ = iPod's root
    E:/ZeroSlackr/ = ZeroSlackr root
    E:/boot/userland.ext3 = Linux root
- Sometimes ZeroSlackr's documentation will assume the iPod's
  root when referring to folder locations; sometimes it will
  assume the ZeroSlackr root. Overall:
    /boot     -> /boot
	/docs     -> /docs
	/etc/rc.d -> /ZeroSlackr/etc/rc.d
	/home     -> /ZeroSlackr/home
	/opt      -> /ZeroSlackr/opt
	/usr      -> /ZeroSlackr/usr
  Such inconsistency can be attributed to laziness.
loop-mount image
- Special term Keripo uses to describe the userland image
  used by ZeroSlackr. Instead of using an actual Linux
  partition to store the userland files, an ext3 partition
  image containing the userland files is "loop-mounted"
  during startup. This allows for a partitionless install.
- This image file is found at "/boot/userland.ext3"; see
  "Loop-mount Instructions.txt" in "/docs/userland" for
  instructions on editing the content of the file.

