Introduction
This page logs my efforts to get my iPod Touch 2G working with Linux.
A replacement for iTunes
Complete http://wiki.debian.org/iPhone (Note to self: MDI takes care of some of that; I only need to do the section relating to SysInfoExtended)
- If you are not a Nautilus/GNOME user, then you still need Nautilus in order to have the iPod mounted correctly, but you can run nautlilus in a mode where it does not actually display any windows. To do this, complete the following sub-procedure:
As root run:
apt-get -y install nautilus
Add the following command to your session manager or your ~/.xsession file:
nautilus --no-desktop --no-default-window &
Log out and in again, attach the iPod, verify that it gets mounted under ~/.gvfs/<name-of-device> (although it does not appear in df or mount output).
Run debfoster and accept or purge all packages it asks about. (This is because we're about to install a lot of packages which can be removed later and debfoster is the best tool to track this.)
Install prerequisites for compiling libgpod by running the following as root:
# minimal prerequisites for libgpod apt-get -y install libtool libglib2.0-dev gtk-doc-tools libsqlite3-dev libplist-dev # iPhone/iPod Touch support prerequisites for libgpod apt-get -y install libimobiledevice-dev # pyGObject support prerequisites for libgpod apt-get -y install python-gobject-dev # Artwork support prerequisites for libgpod apt-get -y install libgtk2.0-dev # Mono bindings prerequisites for libgpod apt-get -y install mono-devel libgtk2.0-cil-dev # For python bindings support for libgpod apt-get -y install python-mutagen swig python-dev
Set the prefix into which to install:
TIMESTAMP=$(date +%Y%m%d%H%M) LIBGPOD_PREFIX=/usr/local # old school LIBGPOD_PREFIX=/usr/local/opt/libgpod-$TIMESTAMP # opt model
Download, archive and compile the sources by running by running the following as root:
git clone git://gtkpod.git.sourceforge.net/gitroot/gtkpod/libgpod libgpod-$TIMESTAMP tar czf libgpod-$TIMESTAMP.tar.gz libgpod-$TIMESTAMP mv libgpod-$TIMESTAMP.tar.gz <somewhere-sensible> cd libgpod-$TIMESTAMP ./autogen.sh --prefix=$LIBGPOD_PREFIX make su -c "make install" cd ..
Use debfoster to remove all installed packages that were installed earlier. (Shouldn't it be necessary to replace the dev packages with the runtime packages? I didn't need to do so but I'm not sure why!)
Install prerequisites for compiling gtkpod:
# minimal prerequisites for gtkpod apt-get -y install libtool libgtk2.0-dev libglade2-dev libanjuta-dev libgdl-1-dev flex libid3tag0-dev # for ogg, flac and mp4 support apt-get -y install libvorbis-dev libmp4v2-dev libflac-dev # for CoverWeb browser support apt-get -y install libwebkit-dev # for media player support apt-get -y install python-gst0.10-dev # for m34a support apt-get -y install faad # for cover download support apt-get -y install libcurl4-dev
Set the prefix into which to install:
TIMESTAMP=$(date +%Y%m%d%H%M) GTKPOD_PREFIX=/usr/local # old school GTKPOD_PREFIX=/usr/local/opt/gtkpod-$TIMESTAMP # opt model
Download, archive and compile the sources by running:
git clone git://gtkpod.git.sourceforge.net/gitroot/gtkpod/gtkpod gtkpod-$TIMESTAMP tar czf gtkpod-$TIMESTAMP.tar.gz gtkpod-$TIMESTAMP mv gtkpod-$TIMESTAMP.tar.gz <somewhere-sensible> cd gtkpod-$TIMESTAMP CFLAGS="-I$LIBGPOD_PREFIX/include/gpod-1.0 -L$LIBGPOD_PREFIX/lib -lgpod" PKG_CONFIG_PATH=$LIBGPOD_PREFIX/lib/pkgconfig ./autogen.sh --prefix=$GTKPOD_PREFIX make su -c "make install" cd ..
If you installed these things according to the opt model, then you might now want to run something like the following as root:
su -c "cd $GTKPOD_PREFIX/../.. cd bin && ln -fs ../opt/gtkpod-$TIMESTAMP/bin/* . && cd .. cd share/man/man1 && ln -fs ../../../opt/gtkpod-$TIMESTAMP/share/man/man1/* . && cd ../../.."
- Test gtkpod.
- Use debfoster to remove all installed packages that were installed earlier.
Install some packages which were automatically installed as dependencies of dev packages and which are still needed:
apt-get -y install libanjuta0 libgdl-1-3
- Test gtkpod again.
Jailbreaking
Many thanks to Dirk Essl for much assistance with the jailbreaking! Download the 3.0 IPSW iTouch firmware from http://www.felixbruns.de/iPod/firmware/. (This is needed because the latest RedSnow expects this version to be already on the iTouch.)
Download and run RedSnow, browsing your way to the just-downloaded IPSW firmware file.
Select to install Cydia but not Icy (see http://www.ipodtouchfans.com/forums/showthread.php?t=205024).
Follow RedSnow's remaining instructions.
From another machine run:
ssh root@<ipod-ipaddr> # initial password for these accounts is 'alpine' passwd root passwd mobile
Use MakeItMine to change the name displayed on the iTouch.
Installing applications
This section lists the apps I've installed; this is just in case I every factory reset the device and can't remember what I've installed. In addition the following applications were installed but are not visible above:
MakeItMine
Configuring applications
- Set up email addresses; I restrict myself to only the accounts:
- work (configured to access work's SMTP and IMAP servers)
- home @ home (configured to access home's SMTP and IMAP servers from inside my LAN)
- home @ not home (configured to access home's SMTP and IMAP servers from outside my LAN)
Set up Google Calendar as instructed at http://www.google.com/support/mobile/bin/answer.py?hl=en&answer=138740. (Tf you have problems logging into the calendar then check out https://www.google.com/accounts/DisplayUnlockCaptcha.)
Outstanding issues
- No way to download pictures to the iTouch
- No way to download videos to the iTouch
