NOTE: PLEASE DO NOT TRY THIS IS YOU DON'T KNOW WHAT YOU ARE DOING! YOU CAN BRICK/BREAK YOUR iPOD - PERMANENTLY...
You have been warned!!
In the picture below, the iPod is a ipod video 30gb (5.5g) It kind of looks like the new 'classic', but it doesn't have to.
Step 1: Getting a Firmware
Being on Linux, you already know you cant get 'legal' firmware updates from iTunes, but you can get them here. Once you have the firmware file from felixbruns or here, you can start modifying them...
Step 2: IPod Wizard
Luckily, Wine allows us to run iPW with almost full functionality. Grab Wine in a format suitable for your distro, for debian users, just type at a prompt: 'sudo apt-get install wine' (without quotes :P).
Once you have wine set up, download the ipod Wizard STANDALONE file, as this saves much time! Run the program through wine as you would with any other windows program (Check the site for your specific command).
Once you have iPW open, choose 'Firmware FIle', as through Wine, it will not recognize your iPod. Actually modifying the firmware with iPW is too broad for this tutorial, so check the forums at the iPod Wizard site for info, and for lots of themes/custom firmware (hosted off-site).
Now that you have any mods/themes loaded, click the 'Write' button, not 'Write to iPod' it will prompt wou about legal implications, click ok :P
You now have a custom firmware file to load to the iPod. Normally iPW takes care of this for you, however it is not able to when running in wine... hence the next step...
Step 3: Uploading the Firmware to the IPod
First mount your device, whether you do so from the terminal of the GUI is your choice, just remember which device it is, eg /dev/sdb2 Not the mount point, but the actual device location. It will be /dev/sdaXY where X is the device letter, and Y is the partition number. it will be 2 generally, but 1 is the one we want, the one that is hidden. my firmware partition is at /dev/sdc1
Now that we have that, we can't just copy the file across, a) because the partition is hidden,. and b) as it is a binary firmware file. This is where the command 'dd' comes into play. You need sudo rights on your machine, as dd accesses devices on block level.
The command we need to use is:
sudo dd if=/path/to/firmware.bin of=/dev/sdXY
Replace the path to the absolute path to the firmware file, and the X and Y to the appropriate values.
Hit enter and enter your password, now wait. It only take a few seconds, but ejecting, unmounting, or pulling the plug now is FATAL. Do Not Do It!!
Wait until it tells you it is complete, it even tells you the speed it transfered at :P.
Finally unmount and eject the iPod, only it will fail and the iPod will reboot immediately. Don't worry, this is normal. Wait for the iPod to load and check the results... then do it all again... There are no limits to the mods you can do, but if you want it back to stock, just dd a fresh firmware from felixbruns.de to the iPod and it will be as good as new!
Congratulations, you now have a (almost) unique iPod!!
Final Note, I would recommend having all your data files backed up before flashing firmware, but in general nothing goes wrong music side, and if it does, like displaying no tracks, just plug it into gtkpod, or other ipod management program and rebuild the music database :-)