Introduction

This page logs my efforts to get my iPod Touch 2G working with Linux.

A replacement for iTunes

  1. 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)

  2. 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:
    1. As root run:

      apt-get -y install nautilus 
    2. Add the following command to your session manager or your ~/.xsession file:

      nautilus --no-desktop --no-default-window & 
  3. 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).

  4. 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.)

  5. 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 
  6. 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 
  7. 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 .. 
  8. 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!)

  9. 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 
  10. 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 
  11. 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 .. 
  12. 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 ../../.." 
  13. Test gtkpod.
  14. Use debfoster to remove all installed packages that were installed earlier.
  15. 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 
  16. Test gtkpod again.

Jailbreaking

Many thanks to Dirk Essl for much assistance with the jailbreaking!

  1. 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.)

  2. From the 'Summary' tab, hold down the SHIFT key, click 'Restore', browse your way to the just-downloaded IPSW file and follow the prompts to install it on the iTouch.
  3. Turn the iTouch off.
  4. Download and run RedSnow, browsing your way to the just-downloaded IPSW firmware file.

  5. Select to install Cydia but not Icy (see http://www.ipodtouchfans.com/forums/showthread.php?t=205024).

  6. Don't go beyond this step yet yet; first read this instruction: in a moment you will be prompted to do the following in fairly rapid succession: turn on using the power button, additionally press the home button, release the power button but keep pressing the home button.
  7. Follow RedSnow's remaining instructions.

  8. From another machine run:

    ssh root@<ipod-ipaddr>           #  initial password for these accounts is 'alpine'
    passwd root
    passwd mobile 
  9. Change the hostname of the device using iTunes and double-clicking on the name of the iPod and then syncing.
  10. 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:

Configuring applications

  1. 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)
  2. 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

  1. No way to download pictures to the iTouch
  2. No way to download videos to the iTouch


CategoryProcedure

UsingIpodTouchWithLinux (last edited 2011-04-29 13:15:19 by AlexisHuxley)