Syncing your iPod Touch with iTunes on your Mac or Windows is a no-brain job. Simply plug in your iPod, fire up your iTunes and your synchronization will be done in a minute. However, since there is no Linux version of iTunes, there is almost no way that you can sync your iPod Touch with your computer. If you are using an Ubuntu system and you don’t want to create a Windows/Ubuntu dual boot just to sync your iPod Touch, here’s a tutorial that teaches you how to sync your iPod Touch with a WinXP virtual machine in Ubuntu Intrepid.
(This tutorial was tested using a iPod Touch 1st generation. I have not tested iPod Touch 2nd Gen, iPhone 2G/3G, but I guess they should work as well.)
Install Virtualbox
(skip this step if you have already installed Virtualbox in your system)
Add the Virtualbox repository to your Apt list. In your terminal:
gksu gedit /etc/apt/sources.list
Add the following line to the end of the file. Save and close.
deb https://download.virtualbox.org/virtualbox/debian intrepid non-free
Add the gpg key
wget -q https://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O- | sudo apt-key add -
Update the repository and install Virtualbox
sudo apt-get update sudo apt-get install virtualbox-2.0
During the installation, you will receive a prompt to ask you to add users to vboxusers group.

click “OK” to continue.
You will then receive the next prompt to recompile the kernel for vboxdrv

click “OK” to continue, follow by “Yes” to compile the vboxdrv kernel.
When installation is completed, you need to add yourself to the vboxusr group.
Go to “System -> Administration -> Users and Groups”.
Press the “Unlock” button. Enter your password and Authenticate.

Press “Manage Groups”.
Scroll down until you see the “vboxusers”. Highlight it and click “Properties”.

Check your username and click OK. Close everything.

Remember the “Group ID” (in this case, the group ID is 127). You will need to use it later.
Back in the terminal,
echo "vboxdrv" | sudo tee -a /etc/modules
to start the vboxdrv module during bootup.
Configuring the USB support
The following is to configure the Virtualbox to detect any USB devices that are plugged into your system.
gksu gedit /etc/fstab
Add the following line to the end of the file
#usbfs for virtualbox none /proc/bus/usb usbfs devgid=GROUP_ID,devmode=664 0 0
Replace the GROUP_ID by the group ID that you have recorded just now.
Recompile the kernel USB support
In the terminal, type
uname -r
You should see something like this

Next, using the kernel information you just obtained, install the source code of the kernel
sudo apt-get build-dep linux-source-2.6.27 sudo apt-get install linux-source-2.6.27 build-essential
Once it is done, type the following to the terminal, line by line
tar -jxvf /usr/src/linux-source-2.6.27.tar.bz2 cd linux-source-2.6.27/drivers/usb/core perl -pi.bak -e 's/16384/131072/' devio.c make -C /lib/modules/`uname -r`/build/ M=`pwd` modules strip --strip-debug usbcore.ko sudo install -m644 -b usbcore.ko /lib/modules/`uname -r`/kernel/drivers/usb/core sudo depmod -ae sudo update-initramfs -u
Reboot the computer.
Install Windows XP in your Virtualbox. (skip this step if you have already done so).
Connecting iPod Touch to Windows XP VM
Plug in your iPod Touch using the USB cable.
Ubuntu will detect it and ask if you want to open it with F-spot manager. Click Unmount

Next, open your Virtualbox and boot up the Windows XP VM.
Install iTunes in your Win XP VM.
Activate the iPod Touch by going to “Devices -> USB Devices -> Apple Inc. iPod”.

The WinXP VM should recognize the USB device and configure it for usage.
Open your iTunes. You should be able to sync it like you do in a native Mac or Windows environment.

That’s it.
Note: I have tested this with a iPod Touch 1st Generation. I have not tested this with iPod Touch 2G and iPhone, but they should work as well.