If you have Ubuntu and would ilke to sync your iphone without ITunes there is a solution from imobiledevice. Go ahead and run the code below and it will install all the packages necessary for you to be able to sync your iphone with Rhythmbox.
First run this:
$ sudo add-apt-repository ppa:pmcenery/ppa
$ sudo apt-get update
$ sudo apt-get upgrade
then run this:
$ sudo apt-get install gvfs gvfs-backends gvfs-bin gvfs-fuse libgvfscommon0 ifuse libgpod-dev libgpod-common libimobiledevice-utils libimobiledevice1 python-imobiledevice libplist++1 libplist-utils python-plist libusb-1.0-0 libusb-1.0-0-dev libusbmuxd1 usbmuxd nautilus-ideviceinfo
I had to reboot my computer before the changes took effect and I could sync successfully.
Some of you have gotten the error about not being able to mount their iphone – DBus error org.freedesktop.DBus.Error.NoReply: Message did not receive a reply (timeout by message bus). This is due to the new 4.2.1 firmware that Apple pushed out to the iPhone. Just make sure that the imobiledevice library that you install is 1.0.4 or later because that is the one that has support for it. If you followed the correct steps above you should have the newest version and everything should work right.
You can use Rhythmbox or gtkpod to sync your music to your Ipod/Iphone.