You can use VirtualBox with Windows installed to use iTunes with a USB cable, but that’s not nearly as cool. Check the Ubuntu Wiki Page on iPhones for that. I want to focus on using an iPhone without the need for virtualizing another operating system.

Step 1: Jailbreak your iPhone with redsn0w! We need to use Cydia to install and configure OpenSSH so you can login to your iPhone via ssh/sftp when it’s on your network.

Step 2: Create a < 30-second .m4r file. Why can't we just use mp3s? It's ridiculous that we have to do this and I'm ready for a cooler Android phone to appear. In any event, use Audacity to open any other audio file. select a less than 30 second interval and export the selection to a .m4a file. Once you have the .m4a, rename it to .m4r as it’s really the same underlying file behind the filetype.

Step 3: Open Nautilus, Dolphin, or Filezilla to sftp://ipaddressofphone/Library/Ringtones and you’ll see all your ringtones. Now just drag and drop the newly created .m4r files. You’ll see that these don’t appear as custom ringtones on your phone like when you use iTunes, but they are in that same screen just below the customs.

iPhone Ringtones via ssh