<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.linuxquestions.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Flonejek</id>
	<title>LQWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linuxquestions.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Flonejek"/>
	<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/wiki/Special:Contributions/Flonejek"/>
	<updated>2026-04-10T10:02:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.0</generator>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=IpodLinux&amp;diff=17160</id>
		<title>IpodLinux</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=IpodLinux&amp;diff=17160"/>
		<updated>2004-06-01T02:37:57Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''IpodLinux''' is a distro of linux that is designed to run on the ipod. It uses a patched version of uClinux and is a [http://sf.net sourceforge] project.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&amp;lt;br&amp;gt;[http://www.dotink.org/podzilla/images/logo.png http://ipodlinux.sourceforge.net/images/penquinWithIPodSmall.gif]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IpodLinux is more of an enhancement rather than a replcaement for the apple firmware. A bootloader is used to enable you to select between a kernel image and the apple software. Choosing which one to boot is as simple as holding down the rewind key to boot linux, or doing nothing to boot the apple firmware. Also a large number of users have succesfully got it working, and there isn't anything risky about the installation if you follow the instructions carefully. Once booted the linux kernel starts a small linux app called podzilla ([[ipodlinux:screenshots|see screenshots]]) that has much of the functionality of the apple software. Currently music playback is limited (mp3 only, ogg coming soon), but you can browse the file system, leech files from other devices (including other ipods), use ip over firewire to telnet into your ipod, and write software for it using the Podzilla Tool Kit (PTK) - a work in progress.&lt;br /&gt;
&lt;br /&gt;
For those of you who want to get involved in development, check out the forums while the rest should read the documentation in order to get started installing it.&lt;br /&gt;
&lt;br /&gt;
Currently supports first, second, and third generation ipods, (no mini support at this time).&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[ipodlinux:documentation|wiki documentation]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://glob.sourceforge.net/index.php/Ipodlinux screenshots]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net Home page]&lt;br /&gt;
*[http://sourceforge.net/project/showfiles.php?group_id=73079 Sourceforge downloads]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net/forums Forums]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net/documentation.shtml Official documentation]&lt;br /&gt;
:Note that the official documentation may be outdated. The latest documentation is included in the respective packages as readme's.&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=IpodLinux&amp;diff=9236</id>
		<title>IpodLinux</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=IpodLinux&amp;diff=9236"/>
		<updated>2004-05-13T18:20:50Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''IpodLinux''' is a distro of linux that is designed to run on the ipod. It uses a patched version of uClinux and is a [http://sf.net sourceforge] project.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&amp;lt;br&amp;gt;http://ipodlinux.sourceforge.net/images/penquinWithIPodSmall.gif http://www.dotink.org/podzilla/images/logo.png&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IpodLinux is more of an enhancement rather than a replcaement for the apple firmware. A bootloader is used to enable you to select between a kernel image and the apple software. Choosing which one to boot is as simple as holding down the rewind key to boot linux, or doing nothing to boot the apple firmware. Also a large number of users have succesfully got it working, and there isn't anything risky about the installation if you follow the instructions carefully. Once booted the linux kernel starts a small linux app called podzilla ([[ipodlinux:screenshots|see screenshots]]) that has much of the functionality of the apple software. Currently music playback is limited (mp3 only, ogg coming soon), but you can browse the file system, leech files from other devices (including other ipods), use ip over firewire to telnet into your ipod, and write software for it using the Podzilla Tool Kit (PTK) - a work in progress.&lt;br /&gt;
&lt;br /&gt;
For those of you who want to get involved in development, check out the forums while the rest should read the documentation in order to get started installing it.&lt;br /&gt;
&lt;br /&gt;
Currently supports first, second, and third generation ipods, (no mini support at this time).&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[ipodlinux:documentation|wiki documentation]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://glob.sourceforge.net/index.php/Ipodlinux screenshots]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net Home page]&lt;br /&gt;
*[http://sourceforge.net/project/showfiles.php?group_id=73079 Sourceforge downloads]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net/forums Forums]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net/documentation.shtml Official documentation]&lt;br /&gt;
:Note that the official documentation may be outdated. The latest documentation is included in the respective packages as readme's.&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=IpodLinux&amp;diff=8846</id>
		<title>IpodLinux</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=IpodLinux&amp;diff=8846"/>
		<updated>2004-05-08T11:39:42Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''IpodLinux''' is a distro of linux that is designed to run on the ipod. It uses a patched version of uClinux and is a [http://sf.net sourceforge] project.&lt;br /&gt;
&lt;br /&gt;
==Overview==&lt;br /&gt;
&amp;lt;br&amp;gt;http://ipodlinux.sourceforge.net/images/penquinWithIPodSmall.gif&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
IpodLinux is more of an enhancement rather than a replcaement for the apple firmware. A bootloader is used to enable you to select between a kernel image and the apple software. Choosing which one to boot is as simple as holding down the rewind key to boot linux, or doing nothing to boot the apple firmware. Also a large number of users have succesfully got it working, and there isn't anything risky about the installation if you follow the instructions carefully. Once booted the linux kernel starts a small linux app called podzilla ([[ipodlinux:screenshots|see screenshots]]) that has much of the functionality of the apple software. Currently music playback is limited (mp3 only, ogg coming soon), but you can browse the file system, leech files from other devices (including other ipods), use ip over firewire to telnet into your ipod, and write software for it using the Podzilla Tool Kit (PTK) - a work in progress.&lt;br /&gt;
&lt;br /&gt;
For those of you who want to get involved in development, check out the forums while the rest should read the documentation in order to get started installing it.&lt;br /&gt;
&lt;br /&gt;
Currently supports first, second, and third generation ipods, (no mini support at this time).&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[ipodlinux:documentation|wiki documentation]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://glob.sourceforge.net/index.php/Ipodlinux screenshots]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net Home page]&lt;br /&gt;
*[http://sourceforge.net/project/showfiles.php?group_id=73079 Sourceforge downloads]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net/forums Forums]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net/documentation.shtml Official documentation]&lt;br /&gt;
:Note that the official documentation may be outdated. The latest documentation is included in the respective packages as readme's.&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Ipodlinux:basic&amp;diff=23926</id>
		<title>Ipodlinux:basic</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Ipodlinux:basic&amp;diff=23926"/>
		<updated>2004-05-06T04:09:43Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Throughout the document I use %1 to represent the kernel version and %2 to represent the patch version.&lt;br /&gt;
&lt;br /&gt;
I'm assuming that you downloaded all the files from &amp;quot;[[ipodlinux:files|Getting the required files]]&amp;quot; into ~/ipod (~ stands for your home directory, e.g. /home/flonejek/ is mine, so ~ipod would be /home/flonejek/ipod)&lt;br /&gt;
====Mac iPod Notice====&lt;br /&gt;
If you have a Mac Ipod you can skip the Partitioning step. Also swap '/mnt/ipod' for '/Volumes/ipod'&lt;br /&gt;
===Directory you should be in...===&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
==Backing Up Your Ipod's Firmware and Bootloader==&lt;br /&gt;
The iPod &amp;quot;firmware&amp;quot; is a complex beast that actually consists of some code stored on flash ROM as well as code stored on the hard drive. A complete discussion of the boot process may be found [http://ipodlinux.sourceforge.net/techdetails.shtml here] in the near future, but for the moment we shall say that the hard drive contains the operating system and bootloader which is loaded into the flash rom upon boot. We are going to replace the firmware (OS and bootloader), and thus need to make a backup of that code.&lt;br /&gt;
&lt;br /&gt;
The hard drive in the iPod is partitioned by default into two partitions. Normally these will be visible under Linux as /dev/sda1 and /dev/sda2. If you are currently using Linux tools to manage your music (i.e. gtkpod) you would be familiar with the second partition as it is a FAT32 formatted partition and contains your music.&lt;br /&gt;
&lt;br /&gt;
Once you can successfully access your iPod from Linux (for example mount -t msdos /dev/sda2 /mnt/iPod) you can make a backup of your iPod OS partition.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda1 of=ipodfirmware&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda  of=ipodbootloader bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
This will make a complete copy of the /dev/sda1 partition and save it to the file ipodfirmware, as well as saving the master boot record too ipodbootloader. You can modify the parameters to suite your local setup.&lt;br /&gt;
&lt;br /&gt;
To restore this data to your iPod you would simply switch the if and of arguments. That is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodfirmware of=/dev/sda1&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodbootloader  of=/dev/sda bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
Note, in order to do this you need to have your iPod in &amp;quot;diskmode&amp;quot;. This is because its risky to write to the partition while the os is running, but in diskmode, the os isn't running, making for a safer restore. In order to boot in &amp;quot;diskmode&amp;quot; you need to reset the iPod by holding down the menu and play/pause buttons for 10 seconds and then when the Apple icon appears hold down the fast forward and rewind buttons until the &amp;quot;OK to disconnect&amp;quot; message appears.&lt;br /&gt;
&lt;br /&gt;
In this forced diskmode removing the firewire cable does not cause the iPod to reboot as it would normally. Again you need to reset by holding down the fast forward and rewind buttons. If you have reverted to the Apple firmware it should start shortly after the Apple icon appears.&lt;br /&gt;
==Partition Your Ipod==&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /dev/sda2&lt;br /&gt;
:*Start fdisk&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
 The number of cylinders for this disk is set to 2431.&lt;br /&gt;
 There is nothing wrong with that, but this is larger than 1024,&lt;br /&gt;
 and could in certain setups cause problems with:&lt;br /&gt;
 1) software that runs at boot time (e.g., old versions of LILO)&lt;br /&gt;
 2) booting and partitioning software from other OSs&lt;br /&gt;
 (e.g., DOS FDISK, OS/2 FDISK)&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
 Command (m for help):&lt;br /&gt;
Delete Firmware Partition&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
Create a new primary partition with a length of 1 cylinder.&lt;br /&gt;
 Command (m for help): n&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
Activate the first partition.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
Set partition type to 'Empty'&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;t&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Hex code (type L to list codes): &amp;lt;b&amp;gt;0&amp;lt;/b&amp;gt;&lt;br /&gt;
Create the 3rd primary partition from 2nd to 5th Cylinder (this is around 30 megs in size)&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;3&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;5&amp;lt;/b&amp;gt;&lt;br /&gt;
Review the changes. Note, this is for a 20GB verison, the sda2 parition size will vary.&lt;br /&gt;
 Command (m for help): p&lt;br /&gt;
&lt;br /&gt;
 Disk /dev/sda: 20.0 GB, 20000268288 bytes&lt;br /&gt;
 255 heads, 63 sectors/track, 2431 cylinders&lt;br /&gt;
 Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
&lt;br /&gt;
     Device Boot    Start       End    Blocks   Id  System&lt;br /&gt;
 /dev/sda1   *         1         1      8001    0  Empty&lt;br /&gt;
 /dev/sda2   *         6      2431  19486845    b  Win95 FAT32&lt;br /&gt;
 /dev/sda3             2         5     32130   83  Linux&lt;br /&gt;
&lt;br /&gt;
 Partition table entries are not in disk order&lt;br /&gt;
If everything looks ok, write out the partition table.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&lt;br /&gt;
fdisk will now exit and we can create the new filesystem.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mke2fs -j /dev/sda3&lt;br /&gt;
If you don't want your ipod to run disk checks at boot, set the maximal mount count to never.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tune2fs -c 0 /dev/sda3&lt;br /&gt;
 tune2fs 1.34 (25-Jul-2003)&lt;br /&gt;
 Setting maximal mount count to -1&lt;br /&gt;
==Use the make_fw tool from the iPod Boot Loader to extract and patch the Apple firmware==&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
Extract the bootloader&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.tar.gz&lt;br /&gt;
mac ipod owners do command below instead of the command above&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf ipodloader-mac-ppc-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.tar.gz&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;&lt;br /&gt;
Extract firmware from backup&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../apple_fw.bin -e 0 ../ipodfirmware&lt;br /&gt;
Extract the precompiled kernel&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf uclinux-%1-ipod%2.tar.gz&lt;br /&gt;
Patch firmware and&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../my_fw.bin -i ../apple_fw.bin -l ../uclinux-%1-ipod%2/uclinux-%1-ipod%2.bin loader.bin&lt;br /&gt;
==Copy over bootloader, boot images, and kernel modules==&lt;br /&gt;
Copy the patched firmware/bootloader back to the ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=my_fw.bin of=/dev/sda1&lt;br /&gt;
Copy the kernel modules to the ipod root filesystem&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /mnt/ipod &amp;lt;i&amp;gt;(just in case)&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mount -t ext3 /dev/sda3 /mnt/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cp -r /uclinux-%1-ipod%2/lib /mnt/ipod&lt;br /&gt;
==Copy over Root Filesystem==&lt;br /&gt;
Change to the iPods directory&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd /mnt/ipod&lt;br /&gt;
Extract the root filesystem onto the ipods root directory&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf ipod_fs_&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.tar.gz&lt;br /&gt;
==Unmount, eject, and reboot your ipod==&lt;br /&gt;
unmount ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /mnt/ipod&lt;br /&gt;
eject ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; eject /dev/sda&lt;br /&gt;
Reboot your ipod by holding down the play and pause buttons together. To boot into linux hold down the rewind button when you see the apple, otherwise ipod will default boot into its native os. All of your files should be there, all the partitioning we did was only on the boot partition.&lt;br /&gt;
==Note for Windows iPods==&lt;br /&gt;
To see your music files on /dev/hda3 (windows ipod fat32 bit) you need to mount the partition to make it visible to the file browser. Then you just navigate with the file browser to the directory and select with the action menu. The screen will then switch back to a console view and the mp3 will play. You can use the pause/play button to pause and restart playback or the menu to quit play back. When the playback stops you will return to podzilla.&lt;br /&gt;
&lt;br /&gt;
For win-ipods you need to add an extra command to the etc/rc file on your iPod.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mount -o ro -t vfat /dev/hda2 /mnt&lt;br /&gt;
(-o=option, ro=read only, -t=type, vfat=fat32 filesystem)&lt;br /&gt;
&lt;br /&gt;
To do this, connect your iPod to the PC/Mac and mount it as an external drive. Then use a text editor on the /etc/rc file and add the above command somewhere directly before the hdparm line.&lt;br /&gt;
&lt;br /&gt;
The few lines look like:&lt;br /&gt;
&lt;br /&gt;
 modprobe eth1394&lt;br /&gt;
 ifconfig eth0 192.168.222.2 mtu 170&lt;br /&gt;
 mount -o ro -t vfat /dev/hda2 /mnt&lt;br /&gt;
 hdparm -S 3 /dev/hda &amp;lt;&amp;lt; &amp;lt;/i&amp;gt;mount commands have to be before this line&amp;lt;/i&amp;gt;&lt;br /&gt;
 podzilla &amp;lt;&amp;lt; &amp;lt;i&amp;gt;This command starts podzilla straight after you boot&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For mac-ipods the music is on your root (/dev/hda3) partition and so you don't need this extra mount command.&lt;br /&gt;
&lt;br /&gt;
The directory /mnt/iPod_Control/Music (or just /iPod_Control/Music for mac ipods) then contains a set of directories like f00, f01, f02... These directories contain the actual mp3s with slightly strange filenames.&lt;br /&gt;
&lt;br /&gt;
==To restart podzilla (upon accidental exit)==&lt;br /&gt;
&lt;br /&gt;
#Edit the etc/rc file and remove the podzilla command from the last line.&lt;br /&gt;
#Edit the etc/inittab and add the following line.&lt;br /&gt;
&lt;br /&gt;
 pz:pz:/sbin/podzilla&lt;br /&gt;
&lt;br /&gt;
Now if you exit podzilla it will just restart.&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Ipodlinux:basic&amp;diff=8600</id>
		<title>Ipodlinux:basic</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Ipodlinux:basic&amp;diff=8600"/>
		<updated>2004-05-06T04:07:00Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Throughout the document I use %1 to represent the kernel version and %2 to represent the patch version.&lt;br /&gt;
&lt;br /&gt;
I'm assuming that you downloaded all the files from &amp;quot;[[ipodlinux:files|Getting the required files]]&amp;quot; into ~/ipod (~ stands for your home directory, e.g. /home/flonejek/ is mine, so ~ipod would be /home/flonejek/ipod)&lt;br /&gt;
====Mac iPod Notice====&lt;br /&gt;
If you have a Mac Ipod you can skip the Partitioning step. Also swap '/mnt/ipod' for '/Volumes/ipod'&lt;br /&gt;
===Directory you should be in...===&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
==Backing Up Your Ipod's Firmware and Bootloader==&lt;br /&gt;
The iPod &amp;quot;firmware&amp;quot; is a complex beast that actually consists of some code stored on flash ROM as well as code stored on the hard drive. A complete discussion of the boot process may be found [http://ipodlinux.sourceforge.net/techdetails.shtml here] in the near future, but for the moment we shall say that the hard drive contains the operating system and bootloader which is loaded into the flash rom upon boot. We are going to replace the firmware (OS and bootloader), and thus need to make a backup of that code.&lt;br /&gt;
&lt;br /&gt;
The hard drive in the iPod is partitioned by default into two partitions. Normally these will be visible under Linux as /dev/sda1 and /dev/sda2. If you are currently using Linux tools to manage your music (i.e. gtkpod) you would be familiar with the second partition as it is a FAT32 formatted partition and contains your music.&lt;br /&gt;
&lt;br /&gt;
Once you can successfully access your iPod from Linux (for example mount -t msdos /dev/sda2 /mnt/iPod) you can make a backup of your iPod OS partition.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda1 of=ipodfirmware&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda  of=ipodbootloader bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
This will make a complete copy of the /dev/sda1 partition and save it to the file ipodfirmware, as well as saving the master boot record too ipodbootloader. You can modify the parameters to suite your local setup.&lt;br /&gt;
&lt;br /&gt;
To restore this data to your iPod you would simply switch the if and of arguments. That is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodfirmware of=/dev/sda1&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodbootloader  of=/dev/sda bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
Note, in order to do this you need to have your iPod in &amp;quot;diskmode&amp;quot;. This is because its risky to write to the partition while the os is running, but in diskmode, the os isn't running, making for a safer restore. In order to boot in &amp;quot;diskmode&amp;quot; you need to reset the iPod by holding down the menu and play/pause buttons for 10 seconds and then when the Apple icon appears hold down the fast forward and rewind buttons until the &amp;quot;OK to disconnect&amp;quot; message appears.&lt;br /&gt;
&lt;br /&gt;
In this forced diskmode removing the firewire cable does not cause the iPod to reboot as it would normally. Again you need to reset by holding down the fast forward and rewind buttons. If you have reverted to the Apple firmware it should start shortly after the Apple icon appears.&lt;br /&gt;
==Partition Your Ipod==&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /dev/sda2&lt;br /&gt;
:*Start fdisk&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
 The number of cylinders for this disk is set to 2431.&lt;br /&gt;
 There is nothing wrong with that, but this is larger than 1024,&lt;br /&gt;
 and could in certain setups cause problems with:&lt;br /&gt;
 1) software that runs at boot time (e.g., old versions of LILO)&lt;br /&gt;
 2) booting and partitioning software from other OSs&lt;br /&gt;
 (e.g., DOS FDISK, OS/2 FDISK)&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
Command (m for help):&lt;br /&gt;
:*Delete Firmware Partition&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create a new primary partition with a length of 1 cylinder.&lt;br /&gt;
 Command (m for help): n&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Activate the first partition.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Set partition type to 'Empty'&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;t&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Hex code (type L to list codes): &amp;lt;b&amp;gt;0&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create the 3rd primary partition from 2nd to 5th Cylinder (this is around 30 megs in size)&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;3&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;5&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Review the changes. Note, this is for a 20GB verison, the sda2 parition size will vary.&lt;br /&gt;
 Command (m for help): p&lt;br /&gt;
&lt;br /&gt;
 Disk /dev/sda: 20.0 GB, 20000268288 bytes&lt;br /&gt;
 255 heads, 63 sectors/track, 2431 cylinders&lt;br /&gt;
 Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
&lt;br /&gt;
     Device Boot    Start       End    Blocks   Id  System&lt;br /&gt;
 /dev/sda1   *         1         1      8001    0  Empty&lt;br /&gt;
 /dev/sda2   *         6      2431  19486845    b  Win95 FAT32&lt;br /&gt;
 /dev/sda3             2         5     32130   83  Linux&lt;br /&gt;
&lt;br /&gt;
 Partition table entries are not in disk order&lt;br /&gt;
:*If everything looks ok, write out the partition table.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&lt;br /&gt;
:*fdisk will now exit and we can create the new filesystem.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mke2fs -j /dev/sda3&lt;br /&gt;
:*If you don't want your ipod to run disk checks at boot, set the maximal mount count to never.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tune2fs -c 0 /dev/sda3&lt;br /&gt;
 tune2fs 1.34 (25-Jul-2003)&lt;br /&gt;
 Setting maximal mount count to -1&lt;br /&gt;
==Use the make_fw tool from the iPod Boot Loader to extract and patch the Apple firmware==&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
*Extract the bootloader&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.tar.gz&lt;br /&gt;
*mac ipod owners do command below instead of the command above&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf ipodloader-mac-ppc-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.tar.gz&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;&lt;br /&gt;
*Extract firmware from backup&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../apple_fw.bin -e 0 ../ipodfirmware&lt;br /&gt;
*Extract the precompiled kernel&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf uclinux-%1-ipod%2.tar.gz&lt;br /&gt;
*Patch firmware and&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../my_fw.bin -i ../apple_fw.bin -l ../uclinux-%1-ipod%2/uclinux-%1-ipod%2.bin loader.bin&lt;br /&gt;
==Copy over bootloader, boot images, and kernel modules==&lt;br /&gt;
*Copy the patched firmware/bootloader back to the ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=my_fw.bin of=/dev/sda1&lt;br /&gt;
*Copy the kernel modules to the ipod root filesystem&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /mnt/ipod &amp;lt;i&amp;gt;(just in case)&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mount -t ext3 /dev/sda3 /mnt/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cp -r /uclinux-%1-ipod%2/lib /mnt/ipod&lt;br /&gt;
==Copy over Root Filesystem==&lt;br /&gt;
*Change to the iPods directory&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd /mnt/ipod&lt;br /&gt;
*Extract the root filesystem onto the ipods root directory&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf ipod_fs_&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.tar.gz&lt;br /&gt;
==Unmount, eject, and reboot your ipod==&lt;br /&gt;
*unmount ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /mnt/ipod&lt;br /&gt;
*eject ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; eject /dev/sda&lt;br /&gt;
*Reboot your ipod by holding down the play and pause buttons together. To boot into linux hold down the rewind button when you see the apple, otherwise ipod will default boot into its native os. All of your files should be there, all the partitioning we did was only on the boot partition.&lt;br /&gt;
==Note for Windows iPods==&lt;br /&gt;
To see your music files on /dev/hda3 (windows ipod fat32 bit) you need to mount the partition to make it visible to the file browser. Then you just navigate with the file browser to the directory and select with the action menu. The screen will then switch back to a console view and the mp3 will play. You can use the pause/play button to pause and restart playback or the menu to quit play back. When the playback stops you will return to podzilla.&lt;br /&gt;
&lt;br /&gt;
For win-ipods you need to add an extra command to the etc/rc file on your iPod.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mount -o ro -t vfat /dev/hda2 /mnt&lt;br /&gt;
(-o=option, ro=read only, -t=type, vfat=fat32 filesystem)&lt;br /&gt;
&lt;br /&gt;
To do this, connect your iPod to the PC/Mac and mount it as an external drive. Then use a text editor on the /etc/rc file and add the above command somewhere directly before the hdparm line.&lt;br /&gt;
&lt;br /&gt;
The few lines look like:&lt;br /&gt;
&lt;br /&gt;
 modprobe eth1394&lt;br /&gt;
 ifconfig eth0 192.168.222.2 mtu 170&lt;br /&gt;
 mount -o ro -t vfat /dev/hda2 /mnt&lt;br /&gt;
 hdparm -S 3 /dev/hda &amp;lt;&amp;lt; &amp;lt;/i&amp;gt;mount commands have to be before this line&amp;lt;/i&amp;gt;&lt;br /&gt;
 podzilla &amp;lt;&amp;lt; &amp;lt;i&amp;gt;This command starts podzilla straight after you boot&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For mac-ipods the music is on your root (/dev/hda3) partition and so you don't need this extra mount command.&lt;br /&gt;
&lt;br /&gt;
The directory /mnt/iPod_Control/Music (or just /iPod_Control/Music for mac ipods) then contains a set of directories like f00, f01, f02... These directories contain the actual mp3s with slightly strange filenames.&lt;br /&gt;
&lt;br /&gt;
==To restart podzilla (upon accidental exit)==&lt;br /&gt;
&lt;br /&gt;
#Edit the etc/rc file and remove the podzilla command from the last line.&lt;br /&gt;
#Edit the etc/inittab and add the following line.&lt;br /&gt;
&lt;br /&gt;
 pz:pz:/sbin/podzilla&lt;br /&gt;
&lt;br /&gt;
Now if you exit podzilla it will just restart.&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Ipodlinux:compile&amp;diff=23925</id>
		<title>Ipodlinux:compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Ipodlinux:compile&amp;diff=23925"/>
		<updated>2004-05-05T04:36:24Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: =Backing Up Your Ipod's Firmware and Bootloader=&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm assuming that you downloaded all the files from &amp;quot;[[ipodlinux:files|Getting the required files]]&amp;quot; into ~/ipod (~ stands for your home directory, e.g. /home/flonejek/ is mine, so ~/ipod would be /home/flonejek/ipod)&lt;br /&gt;
&lt;br /&gt;
Note: I will use %1 for kernel version and %2 for patch version throughout the document.&lt;br /&gt;
==Overview==&lt;br /&gt;
===Requirements===&lt;br /&gt;
# iPod (surprise!). iPod generation 1 (scroll wheel), generation 2 (touch wheel) and generation 3 (docking) iPods work well.&lt;br /&gt;
# These instructions assume the iPod configured as &amp;quot;Windows&amp;quot;, that is the filesystem is FAT32. HFS+ is supported in the CVS version of the kernel however there is no simple way to configure the user tools.&lt;br /&gt;
# You should be willing to accept that if you ruin your ipod there is very little chance apple will repair/replace it, though this is unlikely if you RTFM.&lt;br /&gt;
# A toolchain to build the software (the arm-elf-tools).&lt;br /&gt;
# Currently the build environment is Linux (x86) based. If you have another system (e.g. a Mac) you are currently on your own. Please edit this documentation to include workarounds that resulted in success.&lt;br /&gt;
# The ability to mount and umount your ipod (see [[ipodlinux:firewire|Getting your pc/mac working with usb/firewire]])&lt;br /&gt;
*Next we will install the arm-elf-tools toolchain to prepare the build environment. This enables us to compile programs for architectures different to our own (the host), i.e. the ipod. The build environment is based on the gcc compiler toolchain. &lt;br /&gt;
*Once the build environment is prepped we will backup the ipod firmware, in a safe place, so if you make a mistake you can revert to the original firmware.&lt;br /&gt;
*Now we build the patched linux kernel for the ipod&lt;br /&gt;
*Then we will install the bootloader and kernel to the ipod. Not quite finished though, we still have to install the root filesystem&lt;br /&gt;
*Finally we copy over either our own compiled root file system (from uClinux distro) or the root filesystem designed for the ipod (comes with podzilla).&lt;br /&gt;
==Preparing the Build Environment==&lt;br /&gt;
The build environment requires a compiler that targets the ARM processor (the CPU on the iPod). Normally you can simply install a cross-compiling tool chain based on the GNU tools (that is binutils and gcc). If you are running an Linux system on a x86 CPU, or MacOSX, then you can just download ([http://www.uclinux.org/pub/uClinux/arm-elf-tools/ Linux], [http://www.klingler.net/download/arm-elf-stl.pkg.sit MacOSX]) the toolchain as a binary. It likes to live in /usr/local/ so if that is okay on your system you can just untar it there.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sh ./arm-elf-tools-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.sh&lt;br /&gt;
On any other system you will need to build the tool chain from source. There are pointers on the Web to do this. Good luck :)&lt;br /&gt;
Once your binutils and gcc are targeted for arm-elf you can proceed. Note, in order to build user tools you will also need a C runtime library (a &amp;quot;libc&amp;quot;). The above toolchain includes a binary for uClibc which is a small implementation of the C library.&lt;br /&gt;
==Backing Up Your Ipod's Firmware and Bootloader==&lt;br /&gt;
The iPod &amp;quot;firmware&amp;quot; is a complex beast that actually consists of some code stored on flash ROM as well as code stored on the hard drive. A complete discussion of the boot process may be found [[ipodlinux:technical|here]] in the near future, but for the moment we shall say that the hard drive contains the operating system and bootloader which is loaded into the flash rom upon boot. We are going to replace the firmware (OS and bootloader), and thus need to make a backup of that code.&lt;br /&gt;
&lt;br /&gt;
The hard drive in the iPod is partitioned by default into two partitions. Normally these will be visible under Linux as /dev/sda1 and /dev/sda2. If you are currently using Linux tools to manage your music (i.e. gtkpod) you would be familiar with the second partition as it is a FAT32 formatted partition and contains your music.&lt;br /&gt;
&lt;br /&gt;
Once you can successfully access your iPod from Linux (for example mount -t msdos /dev/sda2 /mnt/iPod) you can make a backup of your iPod OS partition.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda1 of=ipodfirmware&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda  of=ipodbootloader bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
This will make a complete copy of the /dev/sda1 partition and save it to the file ipodfirmware, as well as saving the master boot record too ipodbootloader. You can modify the parameters to suite your local setup.&lt;br /&gt;
&lt;br /&gt;
To restore this data to your iPod you would simply switch the if and of arguments. That is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodfirmware of=/dev/sda1&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodbootloader  of=/dev/sda bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
Note, in order to do this you need to have your iPod in &amp;quot;diskmode&amp;quot;. This is because its risky to write to the partition while the os is running, but in diskmode, the os isn't running, making for a safer restore. In order to boot in &amp;quot;diskmode&amp;quot; you need to reset the iPod by holding down the menu and play/pause buttons for 10 seconds and then when the Apple icon appears hold down the fast forward and rewind buttons until the &amp;quot;OK to disconnect&amp;quot; message appears.&lt;br /&gt;
&lt;br /&gt;
In this forced diskmode removing the firewire cable does not cause the iPod to reboot as it would normally. Again you need to reset by holding down the fast forward and rewind buttons. If you have reverted to the Apple firmware it should start shortly after the Apple icon appears.&lt;br /&gt;
&lt;br /&gt;
==Building The Kernel==&lt;br /&gt;
*Unpack the vanilla sources&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar xvzf linux-%1.tar.gz&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;OR&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar xvjf linux-%1.tar.bz2&lt;br /&gt;
(The x stands for Extract, the v for Verbose (okay, yes, this is optional), the j for Decompress with bzip2 OR the z for Decompress with gunzip, the p for Preserve permissions and the f to denote that we want to extract a file, not standard input.)&lt;br /&gt;
*Change to kernel source directory&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd kernel-%1&lt;br /&gt;
*Apply the uClinux patch&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; gzip -d -c uClinux-2.4.20-uc0.diff.gz | patch -p1&lt;br /&gt;
*Apply the ipodlinux patch - note that you can use cvs but this isn't reccommended, as you may bork your ipod.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; gzip -d -c ipodlinux-2.4.20-0.1.diff.gzip | patch -p0&lt;br /&gt;
*Copy over a default config for the ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cp arch/armnommu/def-configs/ipod .config&lt;br /&gt;
*Edit the default config for the ipod - optional, but if you don't do this you might as well have used the precompiled kernel.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make oldconfig&lt;br /&gt;
:&amp;lt;i&amp;gt;select the options you want, then save your config and exit&amp;lt;/i&amp;gt;&lt;br /&gt;
*Compile the kernel&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make dep &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make modules&lt;br /&gt;
==Installing the Kernel==&lt;br /&gt;
In this step the ELF format kernel is patched into the current firmware image. To do this we first need to prepare the kernel image by converting it to a binary format. The kernel_pad.S file is simply an ARM exception table and some padding, I hope to find a cleaner solution than this hack.&lt;br /&gt;
&lt;br /&gt;
The steps in this process are as follows:&lt;br /&gt;
*convert the kernel to a raw binary image&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-as kernel.S -o kernel_pad&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-objcopy -O binary kernel_pad kernel_pad.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-objcopy -O binary linux linux_tmp.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cat kernel_pad.bin linux_tmp.bin &amp;gt; linux.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; rm linux_tmp.bin kernel_pad kernel_pad.bin &lt;br /&gt;
*Use the make_fw tool from the iPod Boot Loader to extract and patch the Apple firmware.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.tar.gz&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../apple_fw.bin -e 0 ../ipodfirmware&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../my_fw.bin -i ../apple_fw.bin -l ../kernel-%1/linux.bin loader.bin&lt;br /&gt;
====Partition the ipod for bootloader (plug in the ipod if it isn't already plugged in)====&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /dev/sda2&lt;br /&gt;
:*Start fdisk&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
 The number of cylinders for this disk is set to 2431.&lt;br /&gt;
 There is nothing wrong with that, but this is larger than 1024,&lt;br /&gt;
 and could in certain setups cause problems with:&lt;br /&gt;
 1) software that runs at boot time (e.g., old versions of LILO)&lt;br /&gt;
 2) booting and partitioning software from other OSs&lt;br /&gt;
 (e.g., DOS FDISK, OS/2 FDISK)&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
Command (m for help):&lt;br /&gt;
:*Delete Firmware Partition&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create a new primary partition with a length of 1 cylinder.&lt;br /&gt;
 Command (m for help): n&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Activate the first partition.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Set partition type to 'Empty'&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;t&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Hex code (type L to list codes): &amp;lt;b&amp;gt;0&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create the 3rd primary partition from 2nd to 5th Cylinder (this is around 30 megs in size)&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;3&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;5&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Review the changes. Note, this is for a 20GB verison, the sda2 parition size will vary.&lt;br /&gt;
 Command (m for help): p&lt;br /&gt;
&lt;br /&gt;
 Disk /dev/sda: 20.0 GB, 20000268288 bytes&lt;br /&gt;
 255 heads, 63 sectors/track, 2431 cylinders&lt;br /&gt;
 Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
&lt;br /&gt;
     Device Boot    Start       End    Blocks   Id  System&lt;br /&gt;
 /dev/sda1   *         1         1      8001    0  Empty&lt;br /&gt;
 /dev/sda2   *         6      2431  19486845    b  Win95 FAT32&lt;br /&gt;
 /dev/sda3             2         5     32130   83  Linux&lt;br /&gt;
&lt;br /&gt;
 Partition table entries are not in disk order&lt;br /&gt;
:*If everything looks ok, write out the partition table.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&lt;br /&gt;
:*fdisk will now exit and we can create the new filesystem.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mke2fs -j /dev/sda3&lt;br /&gt;
:*If you don't want your ipod to run disk checks at boot, set the maximal mount count to never.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tune2fs -c 0 /dev/sda3&lt;br /&gt;
 tune2fs 1.34 (25-Jul-2003)&lt;br /&gt;
 Setting maximal mount count to -1&lt;br /&gt;
====Copy over files====&lt;br /&gt;
*Copy the patched firmware/bootloader back to the ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=my_fw.bin of=/dev/sda1&lt;br /&gt;
*Copy the kernel modules to the ipod root filesystem&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /mnt/ipod &amp;lt;i&amp;gt;(just in case)&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mount -t ext3 /dev/sda3 /mnt/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cp -r /linux-%1/lib /mnt/ipod&lt;br /&gt;
&lt;br /&gt;
Once you have installed the kernel you can test it by resetting your iPod. You should see the kernel startup messages displayed on the LCD. Since you do not have any user tools installed the kernel will likely panic. This is expected, you will need to reset your iPod back into diskmode in order to install some user tools (see the details in 'Backing up your iPod firmware and bootloader').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you can either follow the last step in the simple install, copying over the root filesystem or you can compile your own root filesystem from the uClinux distro source&lt;br /&gt;
*will add docs on compiling uClinux later, still haven't managed to download it properly*&lt;br /&gt;
[[ipodlinux:documentation|Back]] to documentation&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Ipodlinux:compile&amp;diff=8573</id>
		<title>Ipodlinux:compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Ipodlinux:compile&amp;diff=8573"/>
		<updated>2004-05-05T04:35:55Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: =Backing Up Your Ipod's Firmware and Bootloader=&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm assuming that you downloaded all the files from &amp;quot;[[ipodlinux:files|Getting the required files]]&amp;quot; into ~/ipod (~ stands for your home directory, e.g. /home/flonejek/ is mine, so ~/ipod would be /home/flonejek/ipod)&lt;br /&gt;
&lt;br /&gt;
Note: I will use %1 for kernel version and %2 for patch version throughout the document.&lt;br /&gt;
==Overview==&lt;br /&gt;
===Requirements===&lt;br /&gt;
# iPod (surprise!). iPod generation 1 (scroll wheel), generation 2 (touch wheel) and generation 3 (docking) iPods work well.&lt;br /&gt;
# These instructions assume the iPod configured as &amp;quot;Windows&amp;quot;, that is the filesystem is FAT32. HFS+ is supported in the CVS version of the kernel however there is no simple way to configure the user tools.&lt;br /&gt;
# You should be willing to accept that if you ruin your ipod there is very little chance apple will repair/replace it, though this is unlikely if you RTFM.&lt;br /&gt;
# A toolchain to build the software (the arm-elf-tools).&lt;br /&gt;
# Currently the build environment is Linux (x86) based. If you have another system (e.g. a Mac) you are currently on your own. Please edit this documentation to include workarounds that resulted in success.&lt;br /&gt;
# The ability to mount and umount your ipod (see [[ipodlinux:firewire|Getting your pc/mac working with usb/firewire]])&lt;br /&gt;
*Next we will install the arm-elf-tools toolchain to prepare the build environment. This enables us to compile programs for architectures different to our own (the host), i.e. the ipod. The build environment is based on the gcc compiler toolchain. &lt;br /&gt;
*Once the build environment is prepped we will backup the ipod firmware, in a safe place, so if you make a mistake you can revert to the original firmware.&lt;br /&gt;
*Now we build the patched linux kernel for the ipod&lt;br /&gt;
*Then we will install the bootloader and kernel to the ipod. Not quite finished though, we still have to install the root filesystem&lt;br /&gt;
*Finally we copy over either our own compiled root file system (from uClinux distro) or the root filesystem designed for the ipod (comes with podzilla).&lt;br /&gt;
==Preparing the Build Environment==&lt;br /&gt;
The build environment requires a compiler that targets the ARM processor (the CPU on the iPod). Normally you can simply install a cross-compiling tool chain based on the GNU tools (that is binutils and gcc). If you are running an Linux system on a x86 CPU, or MacOSX, then you can just download ([http://www.uclinux.org/pub/uClinux/arm-elf-tools/ Linux], [http://www.klingler.net/download/arm-elf-stl.pkg.sit MacOSX]) the toolchain as a binary. It likes to live in /usr/local/ so if that is okay on your system you can just untar it there.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sh ./arm-elf-tools-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.sh&lt;br /&gt;
On any other system you will need to build the tool chain from source. There are pointers on the Web to do this. Good luck :)&lt;br /&gt;
Once your binutils and gcc are targeted for arm-elf you can proceed. Note, in order to build user tools you will also need a C runtime library (a &amp;quot;libc&amp;quot;). The above toolchain includes a binary for uClibc which is a small implementation of the C library.&lt;br /&gt;
==Backing Up Your Ipod's Firmware and Bootloader==&lt;br /&gt;
The iPod &amp;quot;firmware&amp;quot; is a complex beast that actually consists of some code stored on flash ROM as well as code stored on the hard drive. A complete discussion of the boot process may be found [[ipodlinux:technical here]] in the near future, but for the moment we shall say that the hard drive contains the operating system and bootloader which is loaded into the flash rom upon boot. We are going to replace the firmware (OS and bootloader), and thus need to make a backup of that code.&lt;br /&gt;
&lt;br /&gt;
The hard drive in the iPod is partitioned by default into two partitions. Normally these will be visible under Linux as /dev/sda1 and /dev/sda2. If you are currently using Linux tools to manage your music (i.e. gtkpod) you would be familiar with the second partition as it is a FAT32 formatted partition and contains your music.&lt;br /&gt;
&lt;br /&gt;
Once you can successfully access your iPod from Linux (for example mount -t msdos /dev/sda2 /mnt/iPod) you can make a backup of your iPod OS partition.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda1 of=ipodfirmware&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda  of=ipodbootloader bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
This will make a complete copy of the /dev/sda1 partition and save it to the file ipodfirmware, as well as saving the master boot record too ipodbootloader. You can modify the parameters to suite your local setup.&lt;br /&gt;
&lt;br /&gt;
To restore this data to your iPod you would simply switch the if and of arguments. That is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodfirmware of=/dev/sda1&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodbootloader  of=/dev/sda bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
Note, in order to do this you need to have your iPod in &amp;quot;diskmode&amp;quot;. This is because its risky to write to the partition while the os is running, but in diskmode, the os isn't running, making for a safer restore. In order to boot in &amp;quot;diskmode&amp;quot; you need to reset the iPod by holding down the menu and play/pause buttons for 10 seconds and then when the Apple icon appears hold down the fast forward and rewind buttons until the &amp;quot;OK to disconnect&amp;quot; message appears.&lt;br /&gt;
&lt;br /&gt;
In this forced diskmode removing the firewire cable does not cause the iPod to reboot as it would normally. Again you need to reset by holding down the fast forward and rewind buttons. If you have reverted to the Apple firmware it should start shortly after the Apple icon appears.&lt;br /&gt;
&lt;br /&gt;
==Building The Kernel==&lt;br /&gt;
*Unpack the vanilla sources&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar xvzf linux-%1.tar.gz&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;OR&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar xvjf linux-%1.tar.bz2&lt;br /&gt;
(The x stands for Extract, the v for Verbose (okay, yes, this is optional), the j for Decompress with bzip2 OR the z for Decompress with gunzip, the p for Preserve permissions and the f to denote that we want to extract a file, not standard input.)&lt;br /&gt;
*Change to kernel source directory&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd kernel-%1&lt;br /&gt;
*Apply the uClinux patch&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; gzip -d -c uClinux-2.4.20-uc0.diff.gz | patch -p1&lt;br /&gt;
*Apply the ipodlinux patch - note that you can use cvs but this isn't reccommended, as you may bork your ipod.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; gzip -d -c ipodlinux-2.4.20-0.1.diff.gzip | patch -p0&lt;br /&gt;
*Copy over a default config for the ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cp arch/armnommu/def-configs/ipod .config&lt;br /&gt;
*Edit the default config for the ipod - optional, but if you don't do this you might as well have used the precompiled kernel.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make oldconfig&lt;br /&gt;
:&amp;lt;i&amp;gt;select the options you want, then save your config and exit&amp;lt;/i&amp;gt;&lt;br /&gt;
*Compile the kernel&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make dep &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make modules&lt;br /&gt;
==Installing the Kernel==&lt;br /&gt;
In this step the ELF format kernel is patched into the current firmware image. To do this we first need to prepare the kernel image by converting it to a binary format. The kernel_pad.S file is simply an ARM exception table and some padding, I hope to find a cleaner solution than this hack.&lt;br /&gt;
&lt;br /&gt;
The steps in this process are as follows:&lt;br /&gt;
*convert the kernel to a raw binary image&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-as kernel.S -o kernel_pad&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-objcopy -O binary kernel_pad kernel_pad.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-objcopy -O binary linux linux_tmp.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cat kernel_pad.bin linux_tmp.bin &amp;gt; linux.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; rm linux_tmp.bin kernel_pad kernel_pad.bin &lt;br /&gt;
*Use the make_fw tool from the iPod Boot Loader to extract and patch the Apple firmware.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.tar.gz&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../apple_fw.bin -e 0 ../ipodfirmware&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../my_fw.bin -i ../apple_fw.bin -l ../kernel-%1/linux.bin loader.bin&lt;br /&gt;
====Partition the ipod for bootloader (plug in the ipod if it isn't already plugged in)====&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /dev/sda2&lt;br /&gt;
:*Start fdisk&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
 The number of cylinders for this disk is set to 2431.&lt;br /&gt;
 There is nothing wrong with that, but this is larger than 1024,&lt;br /&gt;
 and could in certain setups cause problems with:&lt;br /&gt;
 1) software that runs at boot time (e.g., old versions of LILO)&lt;br /&gt;
 2) booting and partitioning software from other OSs&lt;br /&gt;
 (e.g., DOS FDISK, OS/2 FDISK)&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
Command (m for help):&lt;br /&gt;
:*Delete Firmware Partition&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create a new primary partition with a length of 1 cylinder.&lt;br /&gt;
 Command (m for help): n&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Activate the first partition.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Set partition type to 'Empty'&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;t&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Hex code (type L to list codes): &amp;lt;b&amp;gt;0&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create the 3rd primary partition from 2nd to 5th Cylinder (this is around 30 megs in size)&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;3&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;5&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Review the changes. Note, this is for a 20GB verison, the sda2 parition size will vary.&lt;br /&gt;
 Command (m for help): p&lt;br /&gt;
&lt;br /&gt;
 Disk /dev/sda: 20.0 GB, 20000268288 bytes&lt;br /&gt;
 255 heads, 63 sectors/track, 2431 cylinders&lt;br /&gt;
 Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
&lt;br /&gt;
     Device Boot    Start       End    Blocks   Id  System&lt;br /&gt;
 /dev/sda1   *         1         1      8001    0  Empty&lt;br /&gt;
 /dev/sda2   *         6      2431  19486845    b  Win95 FAT32&lt;br /&gt;
 /dev/sda3             2         5     32130   83  Linux&lt;br /&gt;
&lt;br /&gt;
 Partition table entries are not in disk order&lt;br /&gt;
:*If everything looks ok, write out the partition table.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&lt;br /&gt;
:*fdisk will now exit and we can create the new filesystem.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mke2fs -j /dev/sda3&lt;br /&gt;
:*If you don't want your ipod to run disk checks at boot, set the maximal mount count to never.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tune2fs -c 0 /dev/sda3&lt;br /&gt;
 tune2fs 1.34 (25-Jul-2003)&lt;br /&gt;
 Setting maximal mount count to -1&lt;br /&gt;
====Copy over files====&lt;br /&gt;
*Copy the patched firmware/bootloader back to the ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=my_fw.bin of=/dev/sda1&lt;br /&gt;
*Copy the kernel modules to the ipod root filesystem&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /mnt/ipod &amp;lt;i&amp;gt;(just in case)&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mount -t ext3 /dev/sda3 /mnt/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cp -r /linux-%1/lib /mnt/ipod&lt;br /&gt;
&lt;br /&gt;
Once you have installed the kernel you can test it by resetting your iPod. You should see the kernel startup messages displayed on the LCD. Since you do not have any user tools installed the kernel will likely panic. This is expected, you will need to reset your iPod back into diskmode in order to install some user tools (see the details in 'Backing up your iPod firmware and bootloader').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you can either follow the last step in the simple install, copying over the root filesystem or you can compile your own root filesystem from the uClinux distro source&lt;br /&gt;
*will add docs on compiling uClinux later, still haven't managed to download it properly*&lt;br /&gt;
[[ipodlinux:documentation|Back]] to documentation&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Using_Ipodlinux&amp;diff=23923</id>
		<title>Using Ipodlinux</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Using_Ipodlinux&amp;diff=23923"/>
		<updated>2004-05-05T04:34:52Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#[[ipodlinux:firewire|Setting up firewire/usb on your PC/Mac]]&lt;br /&gt;
#[[ipodlinux:files|Getting the required files]]&lt;br /&gt;
#[[ipodlinux:compile|Compiling ipodlinux]] - optional, see [[ipodlinux:files|Getting the required files]]&lt;br /&gt;
#[[ipodlinux:basic|Simple installation guide]]&lt;br /&gt;
#[[ipodlinux:technical|Technical details]]&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Ark&amp;diff=8801</id>
		<title>Ark</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Ark&amp;diff=8801"/>
		<updated>2004-05-04T04:56:45Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Ark''' Linux is a [[GNU/Linux]] [[distribution]] designed especially for desktop use, primarily for people without prior Linux experience.&lt;br /&gt;
&lt;br /&gt;
Ark Linux is designed to:&lt;br /&gt;
* Be easy to learn and use&lt;br /&gt;
* Include many tools and applications&lt;br /&gt;
&lt;br /&gt;
However, since Ark Linux is still in the alpha stage development, there are some packages that are not thoroughly tested, and it is missing some features too.&lt;br /&gt;
&lt;br /&gt;
Ark Linux is fully [[Open Source]] and [[Free Software]], meaning, basically, you can freely redistribute it in both modified and unmodified form.&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://www.arklinux.org/ Ark Linux homepage]&lt;br /&gt;
&lt;br /&gt;
==Logo==&lt;br /&gt;
http://www.arklinux.org/images/title.png&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Gentoo&amp;diff=8834</id>
		<title>Gentoo</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Gentoo&amp;diff=8834"/>
		<updated>2004-05-04T04:51:38Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Gentoo''' is a special flavor of [[Linux]] that can be automatically optimized and customized for just about any application or need. Extreme performance, configurability, and a top-notch user and developer community are all hallmarks of the Gentoo experience. ''The word &amp;quot;gentoo&amp;quot; is a word for a type of penguin.''&lt;br /&gt;
&lt;br /&gt;
Thanks to a technology called [[Portage]], Gentoo Linux can become an ideal secure server, development workstation, professional desktop, gaming system, embedded solution or whatever you need it to be. Because of its near-unlimited adaptability, Gentoo Linux is called a [[metadistribution]]. &lt;br /&gt;
&lt;br /&gt;
Portage is the heart of Gentoo Linux, and performs many key functions. Your local Portage tree contains a complete collection of scripts that can be used by Portage to compile and install the latest Gentoo packages. Currently, there are over 6000 packages in the Portage tree, with new ones being added all the time. Installing a new application is as easy as &amp;lt;tt&amp;gt;[[emerge]] &amp;lt;i&amp;gt;name of application &amp;lt;/i&amp;gt;&amp;lt;/tt&amp;gt;.  The application will then be downloaded and automatically [[Compilation_From_Source|compiled from source]], with compile-time options selected according to preferences you set during installation in your [[make.conf]]. (i.e. with or without support for [[X]], [[PNG]]s, [[JPEG]]s, [[Gnome]], etc.)&lt;br /&gt;
&lt;br /&gt;
Daniel Robbins is Gentoo's chief architect. You can read his philosophy of Gentoo Linux [http://www.gentoo.org/main/en/philosophy.xml here].&lt;br /&gt;
&lt;br /&gt;
== Gentoo help resources ==&lt;br /&gt;
If you are looking for help on Gentoo Linux, the Gentoo forums[http://forums.gentoo.org] are an excellent resource and are full of both friendly and knowledgeable people. The IRC room at irc.freenode.net called #gentoo is also a place to find community around Gentoo. Before checking either of those, visit the Gentoo documentation site[http://www.gentoo.org/doc], where many high-quality documents have been published on common and not-so-common issues.&lt;br /&gt;
&lt;br /&gt;
== Break my gentoo ==&lt;br /&gt;
Even though Gentoo is a bleeding edge distro, there are some packages that are not installable immediately. Check out http://www.breakmygentoo.net/ for all the latest portage files to install the latest software.&lt;br /&gt;
&lt;br /&gt;
== Gentoo server project wiki ==&lt;br /&gt;
The Gentoo Server Project Wiki is located at http://www.subverted.net/wakka. The Gentoo Server Project has [[mission-critical reliability]] as it's goal, but mostly serves as glue for the official Gentoo documentation.&lt;br /&gt;
Includes [[case studies]] and articles.&lt;br /&gt;
&lt;br /&gt;
A lot of times you'll want to emerge a masked package (or a masked version of one). One short way to do this is &amp;lt;code&amp;gt;ACCEPT_KEYWORDS=&amp;quot;~x86&amp;quot; emerge &amp;lt;i&amp;gt;package&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt; (replace x86 with your architecture). A slightly shorter way is to create a file called &amp;lt;code&amp;gt;/usr/sbin/expmerge&amp;lt;/code&amp;gt;, with the following contents:&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/sh&lt;br /&gt;
ACCEPT_KEYWORDS=&amp;quot;~x86&amp;quot; emerge $*&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then just &amp;lt;code&amp;gt;expmerge &amp;lt;i&amp;gt;package&amp;lt;/i&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
Mixing unstable with stable packages can lead to problems, so it's recommended you pick one type and use it all the time. This is more important for libraries rather then programs.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
*[[Gentoo tips &amp;amp; tricks]]&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
*[http://www.gentoo.org/ Gentoo homepage]&lt;br /&gt;
&lt;br /&gt;
==Logo==&lt;br /&gt;
http://www.ibiblio.org/web-gentoo/images/powered-big.png&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=LQWiki:FAQ&amp;diff=8497</id>
		<title>LQWiki:FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=LQWiki:FAQ&amp;diff=8497"/>
		<updated>2004-05-03T20:38:18Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As we get questions we will build a [[FAQ]] here.&lt;br /&gt;
----&lt;br /&gt;
Q: What is the best way to reach administrators? Where can I make suggestions/complaints? Where is general policy decided?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A: The [http://lists.linuxquestions.org/mailman/listinfo/lqwiki-list Mailing-list].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Q: I need a help link that explains the editing syntax of this wiki. Where is it?&lt;br /&gt;
&lt;br /&gt;
A: [[Wiki markup]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Q: How do you delete a redundant page? I accindentally created a page that was already covered. I now want to remove it. Nothing liks to the page anymore, but it still exists. I could not find it in the Wiki documentation anywhere.&lt;br /&gt;
&lt;br /&gt;
A: Looks like it's an [http://meta.wikipedia.org/wiki/Meta:Deletion_policy admin-only option]. Presumably there's some way to request a deletion. Meantime, I guess you could [http://wiki.linuxquestions.org/wiki/LinuxQuestions.org_Wiki:How_to_use_a_redirect redirect] your accidental page to the existing one. See also http://meta.wikipedia.org/wiki/Redirect redirect for more information.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Q: What about #REDIRECTS(s) to pages that don't exist send you to that page in edit mode rather than displaying the soon to be redirected away from page with a list of the form:&lt;br /&gt;
&lt;br /&gt;
1. REDIRECT Page To Redirect To?&lt;br /&gt;
&lt;br /&gt;
A: Not sure I understand your question, but hopefully this will help:&lt;br /&gt;
You can create a redirect page to a page that doesn't exist yet. However, it will take you straight to the edit section of the nonexistent page. Until someone either changes the redirect or writes some content in the new page, it'll stay like that.&lt;br /&gt;
&lt;br /&gt;
Note that you can't have a list of options on a redirect page, only one redirect is allowed, otherwise the redirect page is invalid.&lt;br /&gt;
&lt;br /&gt;
See also [[LinuxQuestions.org_Wiki:How_to_use_a_redirect]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Q: What software is being used for this Wiki?&lt;br /&gt;
&lt;br /&gt;
A: http://sourceforge.net/projects/wikipedia/&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Q: Why are all the articles in the root directory instead of being categorized like http://kb.mozillazine.org does it?&lt;br /&gt;
&lt;br /&gt;
A: Mainly because we haven't set up a guideline for categorizing stuff. mozillazine uses the same software, just a different theme, so it all depends on how the users lay out stuff. If you wanted to categorize your stuff just stick a colon in the title like I did with [[IpodLinux]]'s documentation and screenshots. --[[User:Flonejek|Flonejek]] 16:38, May 3, 2004 (EDT)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Q: How would I highlight code, is there any standard mechanism for highlighting code? (I already checked help pages) --[[User:Flonejek|Flonejek]] 09:25, May 3, 2004 (EDT)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Q: How do I sign my messages?&lt;br /&gt;
&lt;br /&gt;
A: With 4 tildes &amp;lt;nowiki&amp;gt;~~~~&amp;lt;/nowiki&amp;gt; goes to [[User:Flonejek|Flonejek]] 16:38, May 3, 2004 (EDT). I always stick two dashes in front of mine, I dunno why. --[[User:Flonejek|Flonejek]] 16:38, May 3, 2004 (EDT)&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=IpodLinux&amp;diff=8576</id>
		<title>IpodLinux</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=IpodLinux&amp;diff=8576"/>
		<updated>2004-05-03T14:00:51Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;IpodLinux is a distro of linux that is designed to run on the ipod. It uses a patched version of uClinux and is a [http://sf.net sourceforge] project.&lt;br /&gt;
===Overview===&lt;br /&gt;
&amp;lt;br&amp;gt;http://ipodlinux.sourceforge.net/images/penquinWithIPodSmall.gif&amp;lt;br&amp;gt;&lt;br /&gt;
IpodLinux is more of an enhancement rather than a replcaement for the apple firmware. A bootloader is used to enable you to select between a kernel image and the apple software. Choosing which one to boot is as simple as holding down the rewind key to boot linux, or doing nothing to boot the apple firmware. Also a large number of users have succesfully got it working, and there isn't anything risky about the installation if you follow the instructions carefully. Once booted the linux kernel starts a small linux app called podzilla ([[ipodlinux:screenshots|see screenshots]]) that has much of the functionality of the apple software. Currently music playback is limited (mp3 only, ogg coming soon), but you can browse the file system, leech files from other devices (including other ipods), use ip over firewire to telnet into your ipod, and write software for it using the Podzilla Tool Kit (PTK) - a work in progress.&lt;br /&gt;
&lt;br /&gt;
For those of you who want to get involved in development, check out the forums while the rest should read the documentation in order to get started installing it.&lt;br /&gt;
&lt;br /&gt;
Currently supports first, second, and third generation ipods, (no mini support at this time).&lt;br /&gt;
&lt;br /&gt;
===External Links:===&lt;br /&gt;
*[http://ipodlinux.sourceforge.net Home page]&lt;br /&gt;
*[http://sourceforge.net/project/showfiles.php?group_id=73079 Sourceforge downloads]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net/forums Forums]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net/documentation.shtml Official documentation]&lt;br /&gt;
::Note that the official documentation may be outdated. The latest documentation is included in the respective packages as readme's.&lt;br /&gt;
===LinuxQuestions.org Links:===&lt;br /&gt;
*[[ipodlinux:documentation|wiki documentation]]&lt;br /&gt;
*[[ipodlinux:screenshots|screenshots]]&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=LQWiki:FAQ&amp;diff=8496</id>
		<title>LQWiki:FAQ</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=LQWiki:FAQ&amp;diff=8496"/>
		<updated>2004-05-03T13:25:44Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As we get questions we will build a [[FAQ]] here.&lt;br /&gt;
----&lt;br /&gt;
Q: What is the best way to reach administrators? Where can I make suggestions/complaints? Where is general policy decided?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A: The [http://lists.linuxquestions.org/mailman/listinfo/lqwiki-list Mailing-list].&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Q: I need a help link that explains the editing syntax of this wiki. Where is it?&lt;br /&gt;
&lt;br /&gt;
A: [[Wiki markup]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Q: How do you delete a redundant page? I accindentally created a page that was already covered. I now want to remove it. Nothing liks to the page anymore, but it still exists. I could not find it in the Wiki documentation anywhere.&lt;br /&gt;
&lt;br /&gt;
A: Looks like it's an [http://meta.wikipedia.org/wiki/Meta:Deletion_policy admin-only option]. Presumably there's some way to request a deletion. Meantime, I guess you could [http://wiki.linuxquestions.org/wiki/LinuxQuestions.org_Wiki:How_to_use_a_redirect redirect] your accidental page to the existing one. See also http://meta.wikipedia.org/wiki/Redirect redirect for more information.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Q: What about #REDIRECTS(s) to pages that don't exist send you to that page in edit mode rather than displaying the soon to be redirected away from page with a list of the form:&lt;br /&gt;
&lt;br /&gt;
1. REDIRECT Page To Redirect To?&lt;br /&gt;
&lt;br /&gt;
A: Not sure I understand your question, but hopefully this will help:&lt;br /&gt;
You can create a redirect page to a page that doesn't exist yet. However, it will take you straight to the edit section of the nonexistent page. Until someone either changes the redirect or writes some content in the new page, it'll stay like that.&lt;br /&gt;
&lt;br /&gt;
Note that you can't have a list of options on a redirect page, only one redirect is allowed, otherwise the redirect page is invalid.&lt;br /&gt;
&lt;br /&gt;
See also [[LinuxQuestions.org_Wiki:How_to_use_a_redirect]]&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Q: What software is being used for this Wiki?&lt;br /&gt;
&lt;br /&gt;
A: http://sourceforge.net/projects/wikipedia/&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
Q: Why are all the articles in the root directory instead of being categorized like http://kb.mozillazine.org does it?&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Q: How would I highlight code, is there any standard mechanism for highlighting code? (I already checked help pages) --[[User:Flonejek|Flonejek]] 09:25, May 3, 2004 (EDT)&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=User:Flonejek&amp;diff=23928</id>
		<title>User:Flonejek</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=User:Flonejek&amp;diff=23928"/>
		<updated>2004-05-03T12:51:08Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;My current project - [http://glob.sf.net glob]&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Talk:IpodLinux&amp;diff=23927</id>
		<title>Talk:IpodLinux</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Talk:IpodLinux&amp;diff=23927"/>
		<updated>2004-05-03T12:50:27Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I based this on the original documentation, attempting to make it more readable. --[[User:Flonejek|Flonejek]] 08:50, May 3, 2004 (EDT)&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Talk:IpodLinux&amp;diff=8474</id>
		<title>Talk:IpodLinux</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Talk:IpodLinux&amp;diff=8474"/>
		<updated>2004-05-03T12:50:18Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I based this on the original documentation, attempting to make it more readable.&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Ipodlinux:basic&amp;diff=8599</id>
		<title>Ipodlinux:basic</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Ipodlinux:basic&amp;diff=8599"/>
		<updated>2004-05-03T08:45:53Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: goo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Throughout the document I use %1 to represent the kernel version and %2 to represent the patch version.&lt;br /&gt;
&lt;br /&gt;
I'm assuming that you downloaded all the files from &amp;quot;[[ipodlinux:files|Getting the required files]]&amp;quot; into ~/ipod (~ stands for your home directory, e.g. /home/flonejek/ is mine, so ~ipod would be /home/flonejek/ipod)&lt;br /&gt;
====Mac iPod Notice====&lt;br /&gt;
If you have a Mac Ipod you can skip the Partitioning step. Also swap '/mnt/ipod' for '/Volumes/ipod'&lt;br /&gt;
===Directory you should be in...===&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
==Backing Up Your Ipod's Firmware and Bootloader==&lt;br /&gt;
The iPod &amp;quot;firmware&amp;quot; is a complex beast that actually consists of some code stored on flash ROM as well as code stored on the hard drive. A complete discussion of the boot process may be found [http://ipodlinux.sourceforge.net/techdetails.shtml here] in the near future, but for the moment we shall say that the hard drive contains the operating system and bootloader which is loaded into the flash rom upon boot. We are going to replace the firmware (OS and bootloader), and thus need to make a backup of that code.&lt;br /&gt;
&lt;br /&gt;
The hard drive in the iPod is partitioned by default into two partitions. Normally these will be visible under Linux as /dev/sda1 and /dev/sda2. If you are currently using Linux tools to manage your music (i.e. gtkpod) you would be familiar with the second partition as it is a FAT32 formatted partition and contains your music.&lt;br /&gt;
&lt;br /&gt;
Once you can successfully access your iPod from Linux (for example mount -t msdos /dev/sda2 /mnt/iPod) you can make a backup of your iPod OS partition.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda1 of=ipodfirmware&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda  of=ipodbootloader bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
This will make a complete copy of the /dev/sda1 partition and save it to the file ipodfirmware, as well as saving the master boot record too ipodbootloader. You can modify the parameters to suite your local setup.&lt;br /&gt;
&lt;br /&gt;
To restore this data to your iPod you would simply switch the if and of arguments. That is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodfirmware of=/dev/sda1&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodbootloader  of=/dev/sda bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
Note, in order to do this you need to have your iPod in &amp;quot;diskmode&amp;quot;. This is because its risky to write to the partition while the os is running, but in diskmode, the os isn't running, making for a safer restore. In order to boot in &amp;quot;diskmode&amp;quot; you need to reset the iPod by holding down the menu and play/pause buttons for 10 seconds and then when the Apple icon appears hold down the fast forward and rewind buttons until the &amp;quot;OK to disconnect&amp;quot; message appears.&lt;br /&gt;
&lt;br /&gt;
In this forced diskmode removing the firewire cable does not cause the iPod to reboot as it would normally. Again you need to reset by holding down the fast forward and rewind buttons. If you have reverted to the Apple firmware it should start shortly after the Apple icon appears.&lt;br /&gt;
==Partition Your Ipod==&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /dev/sda2&lt;br /&gt;
:*Start fdisk&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
 The number of cylinders for this disk is set to 2431.&lt;br /&gt;
 There is nothing wrong with that, but this is larger than 1024,&lt;br /&gt;
 and could in certain setups cause problems with:&lt;br /&gt;
 1) software that runs at boot time (e.g., old versions of LILO)&lt;br /&gt;
 2) booting and partitioning software from other OSs&lt;br /&gt;
 (e.g., DOS FDISK, OS/2 FDISK)&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
Command (m for help):&lt;br /&gt;
:*Delete Firmware Partition&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create a new primary partition with a length of 1 cylinder.&lt;br /&gt;
 Command (m for help): n&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Activate the first partition.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Set partition type to 'Empty'&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;t&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Hex code (type L to list codes): &amp;lt;b&amp;gt;0&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create the 3rd primary partition from 2nd to 5th Cylinder (this is around 30 megs in size)&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;3&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;5&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Review the changes. Note, this is for a 20GB verison, the sda2 parition size will vary.&lt;br /&gt;
 Command (m for help): p&lt;br /&gt;
&lt;br /&gt;
 Disk /dev/sda: 20.0 GB, 20000268288 bytes&lt;br /&gt;
 255 heads, 63 sectors/track, 2431 cylinders&lt;br /&gt;
 Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
&lt;br /&gt;
     Device Boot    Start       End    Blocks   Id  System&lt;br /&gt;
 /dev/sda1   *         1         1      8001    0  Empty&lt;br /&gt;
 /dev/sda2   *         6      2431  19486845    b  Win95 FAT32&lt;br /&gt;
 /dev/sda3             2         5     32130   83  Linux&lt;br /&gt;
&lt;br /&gt;
 Partition table entries are not in disk order&lt;br /&gt;
:*If everything looks ok, write out the partition table.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&lt;br /&gt;
:*fdisk will now exit and we can create the new filesystem.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mke2fs -j /dev/sda3&lt;br /&gt;
:*If you don't want your ipod to run disk checks at boot, set the maximal mount count to never.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tune2fs -c 0 /dev/sda3&lt;br /&gt;
 tune2fs 1.34 (25-Jul-2003)&lt;br /&gt;
 Setting maximal mount count to -1&lt;br /&gt;
==Use the make_fw tool from the iPod Boot Loader to extract and patch the Apple firmware==&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
*Extract the bootloader&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.tar.gz&lt;br /&gt;
*mac ipod owners do command below instead of the command above&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf ipodloader-mac-ppc-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.tar.gz&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;&lt;br /&gt;
*Extract firmware from backup&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../apple_fw.bin -e 0 ../ipodfirmware&lt;br /&gt;
*Extract the precompiled kernel&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf uclinux-%1-ipod%2.tar.gz&lt;br /&gt;
*Patch firmware and&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../my_fw.bin -i ../apple_fw.bin -l ../uclinux-%1-ipod%2/uclinux-%1-ipod%2.bin loader.bin&lt;br /&gt;
==Copy over bootloader, boot images, and kernel modules==&lt;br /&gt;
*Copy the patched firmware/bootloader back to the ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=my_fw.bin of=/dev/sda1&lt;br /&gt;
*Copy the kernel modules to the ipod root filesystem&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /mnt/ipod &amp;lt;i&amp;gt;(just in case)&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mount -t ext3 /dev/sda3 /mnt/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cp -r /uclinux-%1-ipod%2/lib /mnt/ipod&lt;br /&gt;
==Copy over Root Filesystem==&lt;br /&gt;
*Change to the iPods directory&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd /mnt/ipod&lt;br /&gt;
*Extract the root filesystem onto the ipods root directory&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf ipod_fs_&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.tar.gz&lt;br /&gt;
==Unmount, eject, and reboot your ipod==&lt;br /&gt;
*unmount ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /mnt/ipod&lt;br /&gt;
*eject ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; eject /dev/sda&lt;br /&gt;
*Reboot your ipod by holding down the play and pause buttons together. To boot into linux hold down the rewind button when you see the apple, otherwise ipod will default boot into its native os. All of your files should be there, all the partitioning we did was only on the boot partition.&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Ipodlinux:compile&amp;diff=8572</id>
		<title>Ipodlinux:compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Ipodlinux:compile&amp;diff=8572"/>
		<updated>2004-05-03T08:36:32Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm assuming that you downloaded all the files from &amp;quot;[[ipodlinux:files|Getting the required files]]&amp;quot; into ~/ipod (~ stands for your home directory, e.g. /home/flonejek/ is mine, so ~/ipod would be /home/flonejek/ipod)&lt;br /&gt;
&lt;br /&gt;
Note: I will use %1 for kernel version and %2 for patch version throughout the document.&lt;br /&gt;
==Overview==&lt;br /&gt;
===Requirements===&lt;br /&gt;
# iPod (surprise!). iPod generation 1 (scroll wheel), generation 2 (touch wheel) and generation 3 (docking) iPods work well.&lt;br /&gt;
# These instructions assume the iPod configured as &amp;quot;Windows&amp;quot;, that is the filesystem is FAT32. HFS+ is supported in the CVS version of the kernel however there is no simple way to configure the user tools.&lt;br /&gt;
# You should be willing to accept that if you ruin your ipod there is very little chance apple will repair/replace it, though this is unlikely if you RTFM.&lt;br /&gt;
# A toolchain to build the software (the arm-elf-tools).&lt;br /&gt;
# Currently the build environment is Linux (x86) based. If you have another system (e.g. a Mac) you are currently on your own. Please edit this documentation to include workarounds that resulted in success.&lt;br /&gt;
# The ability to mount and umount your ipod (see [[ipodlinux:firewire|Getting your pc/mac working with usb/firewire]])&lt;br /&gt;
*Next we will install the arm-elf-tools toolchain to prepare the build environment. This enables us to compile programs for architectures different to our own (the host), i.e. the ipod. The build environment is based on the gcc compiler toolchain. &lt;br /&gt;
*Once the build environment is prepped we will backup the ipod firmware, in a safe place, so if you make a mistake you can revert to the original firmware.&lt;br /&gt;
*Now we build the patched linux kernel for the ipod&lt;br /&gt;
*Then we will install the bootloader and kernel to the ipod. Not quite finished though, we still have to install the root filesystem&lt;br /&gt;
*Finally we copy over either our own compiled root file system (from uClinux distro) or the root filesystem designed for the ipod (comes with podzilla).&lt;br /&gt;
==Preparing the Build Environment==&lt;br /&gt;
The build environment requires a compiler that targets the ARM processor (the CPU on the iPod). Normally you can simply install a cross-compiling tool chain based on the GNU tools (that is binutils and gcc). If you are running an Linux system on a x86 CPU, or MacOSX, then you can just download ([http://www.uclinux.org/pub/uClinux/arm-elf-tools/ Linux], [http://www.klingler.net/download/arm-elf-stl.pkg.sit MacOSX]) the toolchain as a binary. It likes to live in /usr/local/ so if that is okay on your system you can just untar it there.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sh ./arm-elf-tools-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.sh&lt;br /&gt;
On any other system you will need to build the tool chain from source. There are pointers on the Web to do this. Good luck :)&lt;br /&gt;
Once your binutils and gcc are targeted for arm-elf you can proceed. Note, in order to build user tools you will also need a C runtime library (a &amp;quot;libc&amp;quot;). The above toolchain includes a binary for uClibc which is a small implementation of the C library.&lt;br /&gt;
==Backing Up Your Ipod's Firmware and Bootloader==&lt;br /&gt;
The iPod &amp;quot;firmware&amp;quot; is a complex beast that actually consists of some code stored on flash ROM as well as code stored on the hard drive. A complete discussion of the boot process may be found [http://ipodlinux.sourceforge.net/techdetails.shtml here] in the near future, but for the moment we shall say that the hard drive contains the operating system and bootloader which is loaded into the flash rom upon boot. We are going to replace the firmware (OS and bootloader), and thus need to make a backup of that code.&lt;br /&gt;
&lt;br /&gt;
The hard drive in the iPod is partitioned by default into two partitions. Normally these will be visible under Linux as /dev/sda1 and /dev/sda2. If you are currently using Linux tools to manage your music (i.e. gtkpod) you would be familiar with the second partition as it is a FAT32 formatted partition and contains your music.&lt;br /&gt;
&lt;br /&gt;
Once you can successfully access your iPod from Linux (for example mount -t msdos /dev/sda2 /mnt/iPod) you can make a backup of your iPod OS partition.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda1 of=ipodfirmware&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda  of=ipodbootloader bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
This will make a complete copy of the /dev/sda1 partition and save it to the file ipodfirmware, as well as saving the master boot record too ipodbootloader. You can modify the parameters to suite your local setup.&lt;br /&gt;
&lt;br /&gt;
To restore this data to your iPod you would simply switch the if and of arguments. That is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodfirmware of=/dev/sda1&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodbootloader  of=/dev/sda bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
Note, in order to do this you need to have your iPod in &amp;quot;diskmode&amp;quot;. This is because its risky to write to the partition while the os is running, but in diskmode, the os isn't running, making for a safer restore. In order to boot in &amp;quot;diskmode&amp;quot; you need to reset the iPod by holding down the menu and play/pause buttons for 10 seconds and then when the Apple icon appears hold down the fast forward and rewind buttons until the &amp;quot;OK to disconnect&amp;quot; message appears.&lt;br /&gt;
&lt;br /&gt;
In this forced diskmode removing the firewire cable does not cause the iPod to reboot as it would normally. Again you need to reset by holding down the fast forward and rewind buttons. If you have reverted to the Apple firmware it should start shortly after the Apple icon appears.&lt;br /&gt;
==Building The Kernel==&lt;br /&gt;
*Unpack the vanilla sources&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar xvzf linux-%1.tar.gz&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;OR&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar xvjf linux-%1.tar.bz2&lt;br /&gt;
(The x stands for Extract, the v for Verbose (okay, yes, this is optional), the j for Decompress with bzip2 OR the z for Decompress with gunzip, the p for Preserve permissions and the f to denote that we want to extract a file, not standard input.)&lt;br /&gt;
*Change to kernel source directory&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd kernel-%1&lt;br /&gt;
*Apply the uClinux patch&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; gzip -d -c uClinux-2.4.20-uc0.diff.gz | patch -p1&lt;br /&gt;
*Apply the ipodlinux patch - note that you can use cvs but this isn't reccommended, as you may bork your ipod.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; gzip -d -c ipodlinux-2.4.20-0.1.diff.gzip | patch -p0&lt;br /&gt;
*Copy over a default config for the ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cp arch/armnommu/def-configs/ipod .config&lt;br /&gt;
*Edit the default config for the ipod - optional, but if you don't do this you might as well have used the precompiled kernel.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make oldconfig&lt;br /&gt;
:&amp;lt;i&amp;gt;select the options you want, then save your config and exit&amp;lt;/i&amp;gt;&lt;br /&gt;
*Compile the kernel&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make dep &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make modules&lt;br /&gt;
==Installing the Kernel==&lt;br /&gt;
In this step the ELF format kernel is patched into the current firmware image. To do this we first need to prepare the kernel image by converting it to a binary format. The kernel_pad.S file is simply an ARM exception table and some padding, I hope to find a cleaner solution than this hack.&lt;br /&gt;
&lt;br /&gt;
The steps in this process are as follows:&lt;br /&gt;
*convert the kernel to a raw binary image&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-as kernel.S -o kernel_pad&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-objcopy -O binary kernel_pad kernel_pad.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-objcopy -O binary linux linux_tmp.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cat kernel_pad.bin linux_tmp.bin &amp;gt; linux.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; rm linux_tmp.bin kernel_pad kernel_pad.bin &lt;br /&gt;
*Use the make_fw tool from the iPod Boot Loader to extract and patch the Apple firmware.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.tar.gz&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../apple_fw.bin -e 0 ../ipodfirmware&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../my_fw.bin -i ../apple_fw.bin -l ../kernel-%1/linux.bin loader.bin&lt;br /&gt;
====Partition the ipod for bootloader (plug in the ipod if it isn't already plugged in)====&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /dev/sda2&lt;br /&gt;
:*Start fdisk&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
 The number of cylinders for this disk is set to 2431.&lt;br /&gt;
 There is nothing wrong with that, but this is larger than 1024,&lt;br /&gt;
 and could in certain setups cause problems with:&lt;br /&gt;
 1) software that runs at boot time (e.g., old versions of LILO)&lt;br /&gt;
 2) booting and partitioning software from other OSs&lt;br /&gt;
 (e.g., DOS FDISK, OS/2 FDISK)&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
Command (m for help):&lt;br /&gt;
:*Delete Firmware Partition&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create a new primary partition with a length of 1 cylinder.&lt;br /&gt;
 Command (m for help): n&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Activate the first partition.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Set partition type to 'Empty'&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;t&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Hex code (type L to list codes): &amp;lt;b&amp;gt;0&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create the 3rd primary partition from 2nd to 5th Cylinder (this is around 30 megs in size)&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;3&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;5&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Review the changes. Note, this is for a 20GB verison, the sda2 parition size will vary.&lt;br /&gt;
 Command (m for help): p&lt;br /&gt;
&lt;br /&gt;
 Disk /dev/sda: 20.0 GB, 20000268288 bytes&lt;br /&gt;
 255 heads, 63 sectors/track, 2431 cylinders&lt;br /&gt;
 Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
&lt;br /&gt;
     Device Boot    Start       End    Blocks   Id  System&lt;br /&gt;
 /dev/sda1   *         1         1      8001    0  Empty&lt;br /&gt;
 /dev/sda2   *         6      2431  19486845    b  Win95 FAT32&lt;br /&gt;
 /dev/sda3             2         5     32130   83  Linux&lt;br /&gt;
&lt;br /&gt;
 Partition table entries are not in disk order&lt;br /&gt;
:*If everything looks ok, write out the partition table.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&lt;br /&gt;
:*fdisk will now exit and we can create the new filesystem.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mke2fs -j /dev/sda3&lt;br /&gt;
:*If you don't want your ipod to run disk checks at boot, set the maximal mount count to never.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tune2fs -c 0 /dev/sda3&lt;br /&gt;
 tune2fs 1.34 (25-Jul-2003)&lt;br /&gt;
 Setting maximal mount count to -1&lt;br /&gt;
====Copy over files====&lt;br /&gt;
*Copy the patched firmware/bootloader back to the ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=my_fw.bin of=/dev/sda1&lt;br /&gt;
*Copy the kernel modules to the ipod root filesystem&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /mnt/ipod &amp;lt;i&amp;gt;(just in case)&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mount -t ext3 /dev/sda3 /mnt/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cp -r /linux-%1/lib /mnt/ipod&lt;br /&gt;
&lt;br /&gt;
Once you have installed the kernel you can test it by resetting your iPod. You should see the kernel startup messages displayed on the LCD. Since you do not have any user tools installed the kernel will likely panic. This is expected, you will need to reset your iPod back into diskmode in order to install some user tools (see the details in 'Backing up your iPod firmware and bootloader').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you can either follow the last step in the simple install, copying over the root filesystem or you can compile your own root filesystem from the uClinux distro source&lt;br /&gt;
*will add docs on compiling uClinux later, still haven't managed to download it properly*&lt;br /&gt;
[[ipodlinux:documentation|Back]] to documentation&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Ipodlinux:compile&amp;diff=8468</id>
		<title>Ipodlinux:compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Ipodlinux:compile&amp;diff=8468"/>
		<updated>2004-05-03T08:25:50Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm assuming that you downloaded all the files from &amp;quot;[[ipodlinux:files|Getting the required files]]&amp;quot; into ~/ipod (~ stands for your home directory, e.g. /home/flonejek/ is mine, so ~/ipod would be /home/flonejek/ipod)&lt;br /&gt;
&lt;br /&gt;
Note: I will use %1 for kernel version and %2 for patch version throughout the document.&lt;br /&gt;
==Overview==&lt;br /&gt;
===Requirements===&lt;br /&gt;
# iPod (surprise!). iPod generation 1 (scroll wheel), generation 2 (touch wheel) and generation 3 (docking) iPods work well.&lt;br /&gt;
# These instructions assume the iPod configured as &amp;quot;Windows&amp;quot;, that is the filesystem is FAT32. HFS+ is supported in the CVS version of the kernel however there is no simple way to configure the user tools.&lt;br /&gt;
# You should be willing to accept that if you ruin your ipod there is very little chance apple will repair/replace it, though this is unlikely if you RTFM.&lt;br /&gt;
# A toolchain to build the software (the arm-elf-tools).&lt;br /&gt;
# Currently the build environment is Linux (x86) based. If you have another system (e.g. a Mac) you are currently on your own. Please edit this documentation to include workarounds that resulted in success.&lt;br /&gt;
# The ability to mount and umount your ipod (see [[ipodlinux:firewire|Getting your pc/mac working with usb/firewire]])&lt;br /&gt;
*Next we will install the arm-elf-tools toolchain to prepare the build environment. This enables us to compile programs for architectures different to our own (the host), i.e. the ipod. The build environment is based on the gcc compiler toolchain. &lt;br /&gt;
*Once the build environment is prepped we will backup the ipod firmware, in a safe place, so if you make a mistake you can revert to the original firmware.&lt;br /&gt;
*Now we build the patched linux kernel for the ipod&lt;br /&gt;
*Then we will install the bootloader and kernel to the ipod. Not quite finished though, we still have to install the root filesystem&lt;br /&gt;
*Finally we copy over either our own compiled root file system (from uClinux distro) or the root filesystem designed for the ipod (comes with podzilla).&lt;br /&gt;
==Preparing the Build Environment==&lt;br /&gt;
The build environment requires a compiler that targets the ARM processor (the CPU on the iPod). Normally you can simply install a cross-compiling tool chain based on the GNU tools (that is binutils and gcc). If you are running an Linux system on a x86 CPU, or MacOSX, then you can just download ([http://www.uclinux.org/pub/uClinux/arm-elf-tools/ Linux], [http://www.klingler.net/download/arm-elf-stl.pkg.sit MacOSX]) the toolchain as a binary. It likes to live in /usr/local/ so if that is okay on your system you can just untar it there.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sh ./arm-elf-tools-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.sh&lt;br /&gt;
On any other system you will need to build the tool chain from source. There are pointers on the Web to do this. Good luck :)&lt;br /&gt;
Once your binutils and gcc are targeted for arm-elf you can proceed. Note, in order to build user tools you will also need a C runtime library (a &amp;quot;libc&amp;quot;). The above toolchain includes a binary for uClibc which is a small implementation of the C library.&lt;br /&gt;
==Backing Up Your Ipod's Firmware and Bootloader==&lt;br /&gt;
The iPod &amp;quot;firmware&amp;quot; is a complex beast that actually consists of some code stored on flash ROM as well as code stored on the hard drive. A complete discussion of the boot process may be found [http://ipodlinux.sourceforge.net/techdetails.shtml here] in the near future, but for the moment we shall say that the hard drive contains the operating system and bootloader which is loaded into the flash rom upon boot. We are going to replace the firmware (OS and bootloader), and thus need to make a backup of that code.&lt;br /&gt;
&lt;br /&gt;
The hard drive in the iPod is partitioned by default into two partitions. Normally these will be visible under Linux as /dev/sda1 and /dev/sda2. If you are currently using Linux tools to manage your music (i.e. gtkpod) you would be familiar with the second partition as it is a FAT32 formatted partition and contains your music.&lt;br /&gt;
&lt;br /&gt;
Once you can successfully access your iPod from Linux (for example mount -t msdos /dev/sda2 /mnt/iPod) you can make a backup of your iPod OS partition.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda1 of=ipodfirmware&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda  of=ipodbootloader bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
This will make a complete copy of the /dev/sda1 partition and save it to the file ipodfirmware, as well as saving the master boot record too ipodbootloader. You can modify the parameters to suite your local setup.&lt;br /&gt;
&lt;br /&gt;
To restore this data to your iPod you would simply switch the if and of arguments. That is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodfirmware of=/dev/sda1&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodbootloader  of=/dev/sda bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
Note, in order to do this you need to have your iPod in &amp;quot;diskmode&amp;quot;. This is because its risky to write to the partition while the os is running, but in diskmode, the os isn't running, making for a safer restore. In order to boot in &amp;quot;diskmode&amp;quot; you need to reset the iPod by holding down the menu and play/pause buttons for 10 seconds and then when the Apple icon appears hold down the fast forward and rewind buttons until the &amp;quot;OK to disconnect&amp;quot; message appears.&lt;br /&gt;
&lt;br /&gt;
In this forced diskmode removing the firewire cable does not cause the iPod to reboot as it would normally. Again you need to reset by holding down the fast forward and rewind buttons. If you have reverted to the Apple firmware it should start shortly after the Apple icon appears.&lt;br /&gt;
==Building The Kernel==&lt;br /&gt;
*Unpack the vanilla sources&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar xvzf linux-%1.tar.gz&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;OR&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar xvjf linux-%1.tar.bz2&lt;br /&gt;
(The x stands for Extract, the v for Verbose (okay, yes, this is optional), the j for Decompress with bzip2 OR the z for Decompress with gunzip, the p for Preserve permissions and the f to denote that we want to extract a file, not standard input.)&lt;br /&gt;
*Change to kernel source directory&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd kernel-%1&lt;br /&gt;
*Apply the uClinux patch&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; gzip -d -c uClinux-2.4.20-uc0.diff.gz | patch -p1&lt;br /&gt;
*Apply the ipodlinux patch - note that you can use cvs but this isn't reccommended, as you may bork your ipod.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; gzip -d -c ipodlinux-2.4.20-0.1.diff.gzip | patch -p0&lt;br /&gt;
*Copy over a default config for the ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cp arch/armnommu/def-configs/ipod .config&lt;br /&gt;
*Edit the default config for the ipod - optional, but if you don't do this you might as well have used the precompiled kernel.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make oldconfig&lt;br /&gt;
:&amp;lt;i&amp;gt;select the options you want, then save your config and exit&amp;lt;/i&amp;gt;&lt;br /&gt;
*Compile the kernel&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make dep &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make modules&lt;br /&gt;
==Installing the Kernel==&lt;br /&gt;
In this step the ELF format kernel is patched into the current firmware image. To do this we first need to prepare the kernel image by converting it to a binary format. The kernel_pad.S file is simply an ARM exception table and some padding, I hope to find a cleaner solution than this hack.&lt;br /&gt;
&lt;br /&gt;
The steps in this process are as follows:&lt;br /&gt;
*convert the kernel to a raw binary image&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-as kernel.S -o kernel_pad&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-objcopy -O binary kernel_pad kernel_pad.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-objcopy -O binary linux linux_tmp.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cat kernel_pad.bin linux_tmp.bin &amp;gt; linux.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; rm linux_tmp.bin kernel_pad kernel_pad.bin &lt;br /&gt;
*Use the make_fw tool from the iPod Boot Loader to extract and patch the Apple firmware.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.tar.gz&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../apple_fw.bin -e 0 ../ipodfirmware&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../my_fw.bin -i ../apple_fw.bin -l ../kernel-%1/linux.bin loader.bin&lt;br /&gt;
====Partition the ipod for bootloader (plug in the ipod if it isn't already plugged in)====&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /dev/sda2&lt;br /&gt;
:*Start fdisk&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
 The number of cylinders for this disk is set to 2431.&lt;br /&gt;
 There is nothing wrong with that, but this is larger than 1024,&lt;br /&gt;
 and could in certain setups cause problems with:&lt;br /&gt;
 1) software that runs at boot time (e.g., old versions of LILO)&lt;br /&gt;
 2) booting and partitioning software from other OSs&lt;br /&gt;
 (e.g., DOS FDISK, OS/2 FDISK)&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
Command (m for help):&lt;br /&gt;
:*Delete Firmware Partition&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create a new primary partition with a length of 1 cylinder.&lt;br /&gt;
 Command (m for help): n&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Activate the first partition.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Set partition type to 'Empty'&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;t&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Hex code (type L to list codes): &amp;lt;b&amp;gt;0&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create the 3rd primary partition from 2nd to 5th Cylinder (this is around 30 megs in size)&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;3&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;5&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Review the changes. Note, this is for a 20GB verison, the sda2 parition size will vary.&lt;br /&gt;
 Command (m for help): p&lt;br /&gt;
&lt;br /&gt;
 Disk /dev/sda: 20.0 GB, 20000268288 bytes&lt;br /&gt;
 255 heads, 63 sectors/track, 2431 cylinders&lt;br /&gt;
 Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
&lt;br /&gt;
     Device Boot    Start       End    Blocks   Id  System&lt;br /&gt;
 /dev/sda1   *         1         1      8001    0  Empty&lt;br /&gt;
 /dev/sda2   *         6      2431  19486845    b  Win95 FAT32&lt;br /&gt;
 /dev/sda3             2         5     32130   83  Linux&lt;br /&gt;
&lt;br /&gt;
 Partition table entries are not in disk order&lt;br /&gt;
:*If everything looks ok, write out the partition table.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&lt;br /&gt;
:*fdisk will now exit and we can create the new filesystem.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mke2fs -j /dev/sda3&lt;br /&gt;
:*If you don't want your ipod to run disk checks at boot, set the maximal mount count to never.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tune2fs -c 0 /dev/sda3&lt;br /&gt;
 tune2fs 1.34 (25-Jul-2003)&lt;br /&gt;
 Setting maximal mount count to -1&lt;br /&gt;
====Copy over files====&lt;br /&gt;
*Copy the patched firmware/bootloader back to the ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=my_fw.bin of=/dev/sda1&lt;br /&gt;
*Copy the kernel modules to the ipod root filesystem&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /mnt/ipod &amp;lt;i&amp;gt;(just in case)&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mount -t ext3 /dev/sda3 /mnt/tmp&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cp -r /linux-%1/lib /mnt/tmp&lt;br /&gt;
&lt;br /&gt;
Once you have installed the kernel you can test it by resetting your iPod. You should see the kernel startup messages displayed on the LCD. Since you do not have any user tools installed the kernel will likely panic. This is expected, you will need to reset your iPod back into diskmode in order to install some user tools (see the details in 'Backing up your iPod firmware and bootloader').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you can either follow the last step in the simple install, copying over the root filesystem or you can compile your own root filesystem from the uClinux distro source&lt;br /&gt;
*will add docs on compiling uClinux later, still haven't managed to download it properly*&lt;br /&gt;
[[ipodlinux:documentation|Back]] to documentation&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Ipodlinux:files&amp;diff=20468</id>
		<title>Ipodlinux:files</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Ipodlinux:files&amp;diff=20468"/>
		<updated>2004-05-03T08:18:07Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Stuff you should know==&lt;br /&gt;
If you're going to install linux on your ipod theres two ways to go about it. Firstly you can use prebuilt kernel/binaries and its just a matter of copying files to your ipod (actually a tad more complex). The other option is to download and patch and build the uclinux kernel (mainly so you can choose your own kernel options), but the [http://www.uclinux.org/ uclinux distro] has some really slow servers so I think you should stick with the first one. The way I'll present this is 'Build it Yourself' and 'Using Prebuilt Binaries'.&lt;br /&gt;
&lt;br /&gt;
I use %1 and %2 to represent the kernel version and the patch version respectively.&lt;br /&gt;
&lt;br /&gt;
===Files you need===&lt;br /&gt;
#Build it yourself&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=101451 Boot Loader] - If you have a mac ipod get the mac-ppc version&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73071 Ipod Kernel Patch] - Note the latest version starts with uclinux. Rename it from &amp;lt;b&amp;gt;uclinux-%1-ipod%2.patch.gz&amp;lt;/b&amp;gt; to &amp;lt;b&amp;gt;ipodlinux-%1-patch-%2.gz&amp;lt;/b&amp;gt; for easier recognition later.&lt;br /&gt;
##[http://www.uclinux.org/pub/uClinux/ uClinux Kernel Patch] - Download the patch labelled &amp;lt;b&amp;gt;uClinux-%1-uc%2.diff.gz&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;linux-%1-uc%2.diff.gz&amp;lt;/b&amp;gt; (kernel 2.4.x versions only, 2.6 support coming soon).&lt;br /&gt;
##[http://www.uclinux.org/pub/uClinux/arm-elf-tools/ arm-elf-tools] - A toolchain required for compiling for the ipod.&lt;br /&gt;
##[http://www.kernel.org/pub/linux/kernel/ Vanilla Kernel Sources] - Download the kernel labelled &amp;lt;b&amp;gt;linux-%1.tar.gz&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;linux-%1.tar.bz2&amp;lt;/b&amp;gt;.&lt;br /&gt;
##&amp;lt;b&amp;gt;Optional&amp;lt;/b&amp;gt; - [http://www.uclinux.org/pub/uClinux/dist/ uClinux distribution] - This is incase you want to compile and use uClinux distro programs on your ipod. The source is pretty big so its easier to  use cvs and just checkout the ucLinux-dist portion of the tree.&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73279 Root Filesystem] - If you don't want to download and compile the distro yourself (number 6) you will need a root filesystem.&lt;br /&gt;
&lt;br /&gt;
#Using Prebuilt Binaries&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=101451 Boot Loader] - If you have a mac ipod get the mac-ppc version&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73283 Prebuilt Kernel]&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73279 Root Filesystem]&lt;br /&gt;
===Organizing Files===&lt;br /&gt;
Just dump all the files in a dir somewhere, I will use ~/ipod in the installation/build instructions.&lt;br /&gt;
&lt;br /&gt;
[[ipodlinux:documentation |Back]] to documentation&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Ipodlinux:compile&amp;diff=8467</id>
		<title>Ipodlinux:compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Ipodlinux:compile&amp;diff=8467"/>
		<updated>2004-05-03T08:13:19Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: made more readable&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm assuming that you downloaded all the files from &amp;quot;[[ipodlinux:files|Getting the required files]]&amp;quot; into ~/ipod (~ stands for your home directory, e.g. /home/flonejek/ is mine, so ~ipod would be /home/flonejek/ipod)&lt;br /&gt;
&lt;br /&gt;
Note: I will use %1 for kernel version and %2 for patch version throughout the document.&lt;br /&gt;
==Overview==&lt;br /&gt;
===Requirements===&lt;br /&gt;
# iPod (surprise!). iPod generation 1 (scroll wheel), generation 2 (touch wheel) and generation 3 (docking) iPods work well.&lt;br /&gt;
# These instructions assume the iPod configured as &amp;quot;Windows&amp;quot;, that is the filesystem is FAT32. HFS+ is supported in the CVS version of the kernel however there is no simple way to configure the user tools.&lt;br /&gt;
# You should be willing to accept that if you ruin your ipod there is very little chance apple will repair/replace it, though this is unlikely if you RTFM.&lt;br /&gt;
# A toolchain to build the software (the arm-elf-tools).&lt;br /&gt;
# Currently the build environment is Linux (x86) based. If you have another system (e.g. a Mac) you are currently on your own. Please edit this documentation to include workarounds that resulted in success.&lt;br /&gt;
# The ability to mount and umount your ipod (see [[ipodlinux:firewire|Getting your pc/mac working with usb/firewire]])&lt;br /&gt;
*Next we will install the arm-elf-tools toolchain to prepare the build environment. This enables us to compile programs for architectures different to our own (the host), i.e. the ipod. The build environment is based on the gcc compiler toolchain. &lt;br /&gt;
*Once the build environment is prepped we will backup the ipod firmware, in a safe place, so if you make a mistake you can revert to the original firmware.&lt;br /&gt;
*Now we build the patched linux kernel for the ipod&lt;br /&gt;
*Then we will install the bootloader and kernel to the ipod. Not quite finished though, we still have to install the root filesystem&lt;br /&gt;
*Finally we copy over either our own compiled root file system (from uClinux distro) or the root filesystem designed for the ipod (comes with podzilla).&lt;br /&gt;
==Preparing the Build Environment==&lt;br /&gt;
The build environment requires a compiler that targets the ARM processor (the CPU on the iPod). Normally you can simply install a cross-compiling tool chain based on the GNU tools (that is binutils and gcc). If you are running an Linux system on a x86 CPU, or MacOSX, then you can just download ([http://www.uclinux.org/pub/uClinux/arm-elf-tools/ Linux], [http://www.klingler.net/download/arm-elf-stl.pkg.sit MacOSX]) the toolchain as a binary. It likes to live in /usr/local/ so if that is okay on your system you can just untar it there.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sh ./arm-elf-tools-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.sh&lt;br /&gt;
On any other system you will need to build the tool chain from source. There are pointers on the Web to do this. Good luck :)&lt;br /&gt;
Once your binutils and gcc are targeted for arm-elf you can proceed. Note, in order to build user tools you will also need a C runtime library (a &amp;quot;libc&amp;quot;). The above toolchain includes a binary for uClibc which is a small implementation of the C library.&lt;br /&gt;
==Backing Up Your Ipod's Firmware and Bootloader==&lt;br /&gt;
The iPod &amp;quot;firmware&amp;quot; is a complex beast that actually consists of some code stored on flash ROM as well as code stored on the hard drive. A complete discussion of the boot process may be found [http://ipodlinux.sourceforge.net/techdetails.shtml here] in the near future, but for the moment we shall say that the hard drive contains the operating system and bootloader which is loaded into the flash rom upon boot. We are going to replace the firmware (OS and bootloader), and thus need to make a backup of that code.&lt;br /&gt;
&lt;br /&gt;
The hard drive in the iPod is partitioned by default into two partitions. Normally these will be visible under Linux as /dev/sda1 and /dev/sda2. If you are currently using Linux tools to manage your music (i.e. gtkpod) you would be familiar with the second partition as it is a FAT32 formatted partition and contains your music.&lt;br /&gt;
&lt;br /&gt;
Once you can successfully access your iPod from Linux (for example mount -t msdos /dev/sda2 /mnt/iPod) you can make a backup of your iPod OS partition.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda1 of=ipodfirmware&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda  of=ipodbootloader bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
This will make a complete copy of the /dev/sda1 partition and save it to the file ipodfirmware, as well as saving the master boot record too ipodbootloader. You can modify the parameters to suite your local setup.&lt;br /&gt;
&lt;br /&gt;
To restore this data to your iPod you would simply switch the if and of arguments. That is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodfirmware of=/dev/sda1&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodbootloader  of=/dev/sda bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
Note, in order to do this you need to have your iPod in &amp;quot;diskmode&amp;quot;. This is because its risky to write to the partition while the os is running, but in diskmode, the os isn't running, making for a safer restore. In order to boot in &amp;quot;diskmode&amp;quot; you need to reset the iPod by holding down the menu and play/pause buttons for 10 seconds and then when the Apple icon appears hold down the fast forward and rewind buttons until the &amp;quot;OK to disconnect&amp;quot; message appears.&lt;br /&gt;
&lt;br /&gt;
In this forced diskmode removing the firewire cable does not cause the iPod to reboot as it would normally. Again you need to reset by holding down the fast forward and rewind buttons. If you have reverted to the Apple firmware it should start shortly after the Apple icon appears.&lt;br /&gt;
==Building The Kernel==&lt;br /&gt;
*Unpack the vanilla sources&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar xvzf linux-%1.tar.gz&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;OR&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar xvjf linux-%1.tar.bz2&lt;br /&gt;
(The x stands for Extract, the v for Verbose (okay, yes, this is optional), the j for Decompress with bzip2 OR the z for Decompress with gunzip, the p for Preserve permissions and the f to denote that we want to extract a file, not standard input.)&lt;br /&gt;
*Change to kernel source directory&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd kernel-%1&lt;br /&gt;
*Apply the uClinux patch&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; gzip -d -c uClinux-2.4.20-uc0.diff.gz | patch -p1&lt;br /&gt;
*Apply the ipodlinux patch - note that you can use cvs but this isn't reccommended, as you may bork your ipod.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; gzip -d -c ipodlinux-2.4.20-0.1.diff.gzip | patch -p0&lt;br /&gt;
*Copy over a default config for the ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cp arch/armnommu/def-configs/ipod .config&lt;br /&gt;
*Edit the default config for the ipod - optional, but if you don't do this you might as well have used the precompiled kernel.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make oldconfig&lt;br /&gt;
:&amp;lt;i&amp;gt;select the options you want, then save your config and exit&amp;lt;/i&amp;gt;&lt;br /&gt;
*Compile the kernel&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make dep &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make modules&lt;br /&gt;
==Installing the Kernel==&lt;br /&gt;
In this step the ELF format kernel is patched into the current firmware image. To do this we first need to prepare the kernel image by converting it to a binary format. The kernel_pad.S file is simply an ARM exception table and some padding, I hope to find a cleaner solution than this hack.&lt;br /&gt;
&lt;br /&gt;
The steps in this process are as follows:&lt;br /&gt;
*convert the kernel to a raw binary image&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-as kernel.S -o kernel_pad&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-objcopy -O binary kernel_pad kernel_pad.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-objcopy -O binary linux linux_tmp.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cat kernel_pad.bin linux_tmp.bin &amp;gt; linux.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; rm linux_tmp.bin kernel_pad kernel_pad.bin &lt;br /&gt;
*Use the make_fw tool from the iPod Boot Loader to extract and patch the Apple firmware.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.tar.gz&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../apple_fw.bin -e 0 ../ipodfirmware&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../my_fw.bin -i ../apple_fw.bin -l ../kernel-%1/linux.bin loader.bin&lt;br /&gt;
====Partition the ipod for bootloader (plug in the ipod if it isn't already plugged in)====&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /dev/sda2&lt;br /&gt;
:*Start fdisk&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
 The number of cylinders for this disk is set to 2431.&lt;br /&gt;
 There is nothing wrong with that, but this is larger than 1024,&lt;br /&gt;
 and could in certain setups cause problems with:&lt;br /&gt;
 1) software that runs at boot time (e.g., old versions of LILO)&lt;br /&gt;
 2) booting and partitioning software from other OSs&lt;br /&gt;
 (e.g., DOS FDISK, OS/2 FDISK)&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
Command (m for help):&lt;br /&gt;
:*Delete Firmware Partition&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create a new primary partition with a length of 1 cylinder.&lt;br /&gt;
 Command (m for help): n&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Activate the first partition.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Set partition type to 'Empty'&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;t&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Hex code (type L to list codes): &amp;lt;b&amp;gt;0&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create the 3rd primary partition from 2nd to 5th Cylinder (this is around 30 megs in size)&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;3&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;5&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Review the changes. Note, this is for a 20GB verison, the sda2 parition size will vary.&lt;br /&gt;
 Command (m for help): p&lt;br /&gt;
&lt;br /&gt;
 Disk /dev/sda: 20.0 GB, 20000268288 bytes&lt;br /&gt;
 255 heads, 63 sectors/track, 2431 cylinders&lt;br /&gt;
 Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
&lt;br /&gt;
     Device Boot    Start       End    Blocks   Id  System&lt;br /&gt;
 /dev/sda1   *         1         1      8001    0  Empty&lt;br /&gt;
 /dev/sda2   *         6      2431  19486845    b  Win95 FAT32&lt;br /&gt;
 /dev/sda3             2         5     32130   83  Linux&lt;br /&gt;
&lt;br /&gt;
 Partition table entries are not in disk order&lt;br /&gt;
:*If everything looks ok, write out the partition table.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&lt;br /&gt;
:*fdisk will now exit and we can create the new filesystem.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mke2fs -j /dev/sda3&lt;br /&gt;
:*If you don't want your ipod to run disk checks at boot, set the maximal mount count to never.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tune2fs -c 0 /dev/sda3&lt;br /&gt;
 tune2fs 1.34 (25-Jul-2003)&lt;br /&gt;
 Setting maximal mount count to -1&lt;br /&gt;
====Copy over files====&lt;br /&gt;
*Copy the patched firmware/bootloader back to the ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=my_fw.bin of=/dev/sda1&lt;br /&gt;
*Copy the kernel modules to the ipod root filesystem&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /mnt/ipod &amp;lt;i&amp;gt;(just in case)&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mount -t ext3 /dev/sda3 /mnt/tmp&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cp -r /linux-%1/lib /mnt/tmp&lt;br /&gt;
&lt;br /&gt;
Once you have installed the kernel you can test it by resetting your iPod. You should see the kernel startup messages displayed on the LCD. Since you do not have any user tools installed the kernel will likely panic. This is expected, you will need to reset your iPod back into diskmode in order to install some user tools (see the details in 'Backing up your iPod firmware and bootloader').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you can either follow the last step in the simple install, copying over the root filesystem or you can compile your own root filesystem from the uClinux distro source&lt;br /&gt;
*will add docs on compiling uClinux later, still haven't managed to download it properly*&lt;br /&gt;
[[ipodlinux:documentation|Back]] to documentation&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Ipodlinux:compile&amp;diff=8465</id>
		<title>Ipodlinux:compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Ipodlinux:compile&amp;diff=8465"/>
		<updated>2004-05-03T08:11:07Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm assuming that you downloaded all the files from &amp;quot;[[ipodlinux:files|Getting the required files]]&amp;quot; into ~/ipod (~ stands for your home directory, e.g. /home/flonejek/ is mine, so ~ipod would be /home/flonejek/ipod)&lt;br /&gt;
&lt;br /&gt;
Note: I will use %1 for kernel version and %2 for patch version throughout the document.&lt;br /&gt;
==Overview==&lt;br /&gt;
===Requirements===&lt;br /&gt;
# iPod (surprise!). iPod generation 1 (scroll wheel), generation 2 (touch wheel) and generation 3 (docking) iPods work well.&lt;br /&gt;
# These instructions assume the iPod configured as &amp;quot;Windows&amp;quot;, that is the filesystem is FAT32. HFS+ is supported in the CVS version of the kernel however there is no simple way to configure the user tools.&lt;br /&gt;
# You should be willing to accept that if you ruin your ipod there is very little chance apple will repair/replace it, though this is unlikely if you RTFM.&lt;br /&gt;
# A toolchain to build the software (the arm-elf-tools).&lt;br /&gt;
# Currently the build environment is Linux (x86) based. If you have another system (e.g. a Mac) you are currently on your own. Please edit this documentation to include workarounds that resulted in success.&lt;br /&gt;
# The ability to mount and umount your ipod (see [[ipodlinux:firewire|Getting your pc/mac working with usb/firewire]])&lt;br /&gt;
*Next we will install the arm-elf-tools toolchain to prepare the build environment. This enables us to compile programs for architectures different to our own (the host), i.e. the ipod. The build environment is based on the gcc compiler toolchain. &lt;br /&gt;
*Once the build environment is prepped we will backup the ipod firmware, in a safe place, so if you make a mistake you can revert to the original firmware.&lt;br /&gt;
*Now we build the patched linux kernel for the ipod&lt;br /&gt;
*Then we will install the bootloader and kernel to the ipod. Not quite finished though, we still have to install the root filesystem&lt;br /&gt;
*Finally we copy over either our own compiled root file system (from uClinux distro) or the root filesystem designed for the ipod (comes with podzilla).&lt;br /&gt;
==Preparing the Build Environment==&lt;br /&gt;
The build environment requires a compiler that targets the ARM processor (the CPU on the iPod). Normally you can simply install a cross-compiling tool chain based on the GNU tools (that is binutils and gcc). If you are running an Linux system on a x86 CPU, or MacOSX, then you can just download ([http://www.uclinux.org/pub/uClinux/arm-elf-tools/ Linux], [http://www.klingler.net/download/arm-elf-stl.pkg.sit MacOSX]) the toolchain as a binary. It likes to live in /usr/local/ so if that is okay on your system you can just untar it there.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sh ./arm-elf-tools-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.sh&lt;br /&gt;
On any other system you will need to build the tool chain from source. There are pointers on the Web to do this. Good luck :)&lt;br /&gt;
Once your binutils and gcc are targeted for arm-elf you can proceed. Note, in order to build user tools you will also need a C runtime library (a &amp;quot;libc&amp;quot;). The above toolchain includes a binary for uClibc which is a small implementation of the C library.&lt;br /&gt;
==Backing Up Your Ipod's Firmware and Bootloader==&lt;br /&gt;
The iPod &amp;quot;firmware&amp;quot; is a complex beast that actually consists of some code stored on flash ROM as well as code stored on the hard drive. A complete discussion of the boot process may be found [http://ipodlinux.sourceforge.net/techdetails.shtml here] in the near future, but for the moment we shall say that the hard drive contains the operating system and bootloader which is loaded into the flash rom upon boot. We are going to replace the firmware (OS and bootloader), and thus need to make a backup of that code.&lt;br /&gt;
&lt;br /&gt;
The hard drive in the iPod is partitioned by default into two partitions. Normally these will be visible under Linux as /dev/sda1 and /dev/sda2. If you are currently using Linux tools to manage your music (i.e. gtkpod) you would be familiar with the second partition as it is a FAT32 formatted partition and contains your music.&lt;br /&gt;
&lt;br /&gt;
Once you can successfully access your iPod from Linux (for example mount -t msdos /dev/sda2 /mnt/iPod) you can make a backup of your iPod OS partition.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda1 of=ipodfirmware&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda  of=ipodbootloader bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
This will make a complete copy of the /dev/sda1 partition and save it to the file ipodfirmware, as well as saving the master boot record too ipodbootloader. You can modify the parameters to suite your local setup.&lt;br /&gt;
&lt;br /&gt;
To restore this data to your iPod you would simply switch the if and of arguments. That is:&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodfirmware of=/dev/sda1&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodbootloader  of=/dev/sda bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
Note, in order to do this you need to have your iPod in &amp;quot;diskmode&amp;quot;. This is because its risky to write to the partition while the os is running, but in diskmode, the os isn't running, making for a safer restore. In order to boot in &amp;quot;diskmode&amp;quot; you need to reset the iPod by holding down the menu and play/pause buttons for 10 seconds and then when the Apple icon appears hold down the fast forward and rewind buttons until the &amp;quot;OK to disconnect&amp;quot; message appears.&lt;br /&gt;
&lt;br /&gt;
In this forced diskmode removing the firewire cable does not cause the iPod to reboot as it would normally. Again you need to reset by holding down the fast forward and rewind buttons. If you have reverted to the Apple firmware it should start shortly after the Apple icon appears.&lt;br /&gt;
==Building The Kernel==&lt;br /&gt;
*Unpack the vanilla sources&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar xvzf linux-%1.tar.gz&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;OR&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar xvjf linux-%1.tar.bz2&lt;br /&gt;
(The x stands for Extract, the v for Verbose (okay, yes, this is optional), the j for Decompress with bzip2 OR the z for Decompress with gunzip, the p for Preserve permissions and the f to denote that we want to extract a file, not standard input.)&lt;br /&gt;
*Change to kernel source directory&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd kernel-%1&lt;br /&gt;
*Apply the uClinux patch&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; gzip -d -c uClinux-2.4.20-uc0.diff.gz | patch -p1&lt;br /&gt;
*Apply the ipodlinux patch - note that you can use cvs but this isn't reccommended, as you may bork your ipod.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; gzip -d -c ipodlinux-2.4.20-0.1.diff.gzip | patch -p0&lt;br /&gt;
*Copy over a default config for the ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cp arch/armnommu/def-configs/ipod .config&lt;br /&gt;
*Edit the default config for the ipod - optional, but if you don't do this you might as well have used the precompiled kernel.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make oldconfig&lt;br /&gt;
:&amp;lt;i&amp;gt;select the options you want, then save your config and exit&amp;lt;/i&amp;gt;&lt;br /&gt;
*Compile the kernel&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make dep &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make modules&lt;br /&gt;
==Installing the Kernel==&lt;br /&gt;
In this step the ELF format kernel is patched into the current firmware image. To do this we first need to prepare the kernel image by converting it to a binary format. The kernel_pad.S file is simply an ARM exception table and some padding, I hope to find a cleaner solution than this hack.&lt;br /&gt;
&lt;br /&gt;
The steps in this process are as follows:&lt;br /&gt;
*convert the kernel to a raw binary image&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-as kernel.S -o kernel_pad&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-objcopy -O binary kernel_pad kernel_pad.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-objcopy -O binary linux linux_tmp.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cat kernel_pad.bin linux_tmp.bin &amp;gt; linux.bin&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; rm linux_tmp.bin kernel_pad kernel_pad.bin &lt;br /&gt;
*Use the make_fw tool from the iPod Boot Loader to extract and patch the Apple firmware.&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.tar.gz&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../apple_fw.bin -e 0 ../ipodfirmware&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../my_fw.bin -i ../apple_fw.bin -l ../kernel-%1/linux.bin loader.bin&lt;br /&gt;
*Partition the ipod for bootloader (plug in the ipod if it isn't already plugged in)&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /dev/sda2&lt;br /&gt;
:*Start fdisk&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
 The number of cylinders for this disk is set to 2431.&lt;br /&gt;
 There is nothing wrong with that, but this is larger than 1024,&lt;br /&gt;
 and could in certain setups cause problems with:&lt;br /&gt;
 1) software that runs at boot time (e.g., old versions of LILO)&lt;br /&gt;
 2) booting and partitioning software from other OSs&lt;br /&gt;
 (e.g., DOS FDISK, OS/2 FDISK)&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
Command (m for help):&lt;br /&gt;
:*Delete Firmware Partition&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create a new primary partition with a length of 1 cylinder.&lt;br /&gt;
 Command (m for help): n&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Activate the first partition.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Set partition type to 'Empty'&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;t&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Hex code (type L to list codes): &amp;lt;b&amp;gt;0&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create the 3rd primary partition from 2nd to 5th Cylinder (this is around 30 megs in size)&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;3&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;5&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Review the changes. Note, this is for a 20GB verison, the sda2 parition size will vary.&lt;br /&gt;
 Command (m for help): p&lt;br /&gt;
&lt;br /&gt;
 Disk /dev/sda: 20.0 GB, 20000268288 bytes&lt;br /&gt;
 255 heads, 63 sectors/track, 2431 cylinders&lt;br /&gt;
 Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
&lt;br /&gt;
     Device Boot    Start       End    Blocks   Id  System&lt;br /&gt;
 /dev/sda1   *         1         1      8001    0  Empty&lt;br /&gt;
 /dev/sda2   *         6      2431  19486845    b  Win95 FAT32&lt;br /&gt;
 /dev/sda3             2         5     32130   83  Linux&lt;br /&gt;
&lt;br /&gt;
 Partition table entries are not in disk order&lt;br /&gt;
:*If everything looks ok, write out the partition table.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&lt;br /&gt;
:*fdisk will now exit and we can create the new filesystem.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mke2fs -j /dev/sda3&lt;br /&gt;
:*If you don't want your ipod to run disk checks at boot, set the maximal mount count to never.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tune2fs -c 0 /dev/sda3&lt;br /&gt;
 tune2fs 1.34 (25-Jul-2003)&lt;br /&gt;
 Setting maximal mount count to -1&lt;br /&gt;
*Copy the patched firmware/bootloader back to the ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=my_fw.bin of=/dev/sda1&lt;br /&gt;
*Copy the kernel modules to the ipod root filesystem&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /mnt/ipod &amp;lt;i&amp;gt;(just in case)&amp;lt;/i&amp;gt;&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mount -t ext3 /dev/sda3 /mnt/tmp&lt;br /&gt;
:&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cp -r /linux-%1/lib /mnt/tmp&lt;br /&gt;
&lt;br /&gt;
Once you have installed the kernel you can test it by resetting your iPod. You should see the kernel startup messages displayed on the LCD. Since you do not have any user tools installed the kernel will likely panic. This is expected, you will need to reset your iPod back into diskmode in order to install some user tools (see the details in 'Backing up your iPod firmware and bootloader').&lt;br /&gt;
&lt;br /&gt;
Now you can either follow the last step in the simple install, copying over the root filesystem or you can compile your own root filesystem from the uClinux distro source&lt;br /&gt;
*will add docs on compiling uClinux later, still haven't managed to download it properly*&lt;br /&gt;
[[ipodlinux:documentation|Back]] to documentation&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Ipodlinux:compile&amp;diff=8464</id>
		<title>Ipodlinux:compile</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Ipodlinux:compile&amp;diff=8464"/>
		<updated>2004-05-03T08:08:45Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: added lotsa documentation from main site&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I'm assuming that you downloaded all the files from &amp;quot;[[ipodlinux:files|Getting the required files]]&amp;quot; into ~/ipod (~ stands for your home directory, e.g. /home/flonejek/ is mine, so ~ipod would be /home/flonejek/ipod)&lt;br /&gt;
&lt;br /&gt;
Note: I will use %1 for kernel version and %2 for patch version throughout the document.&lt;br /&gt;
==Overview==&lt;br /&gt;
===Requirements===&lt;br /&gt;
# iPod (surprise!). iPod generation 1 (scroll wheel), generation 2 (touch wheel) and generation 3 (docking) iPods work well.&lt;br /&gt;
# These instructions assume the iPod configured as &amp;quot;Windows&amp;quot;, that is the filesystem is FAT32. HFS+ is supported in the CVS version of the kernel however there is no simple way to configure the user tools.&lt;br /&gt;
# You should be willing to accept that if you ruin your ipod there is very little chance apple will repair/replace it, though this is unlikely if you RTFM.&lt;br /&gt;
# A toolchain to build the software (the arm-elf-tools).&lt;br /&gt;
# Currently the build environment is Linux (x86) based. If you have another system (e.g. a Mac) you are currently on your own. Please edit this documentation to include workarounds that resulted in success.&lt;br /&gt;
# The ability to mount and umount your ipod (see [[ipodlinux:firewire|Getting your pc/mac working with usb/firewire]])&lt;br /&gt;
*Next we will install the arm-elf-tools toolchain to prepare the build environment. This enables us to compile programs for architectures different to our own (the host), i.e. the ipod. The build environment is based on the gcc compiler toolchain. &lt;br /&gt;
*Once the build environment is prepped we will backup the ipod firmware, in a safe place, so if you make a mistake you can revert to the original firmware.&lt;br /&gt;
*Now we build the patched linux kernel for the ipod&lt;br /&gt;
*Then we will install the bootloader and kernel to the ipod. Not quite finished though, we still have to install the root filesystem&lt;br /&gt;
*Finally we copy over either our own compiled root file system (from uClinux distro) or the root filesystem designed for the ipod (comes with podzilla).&lt;br /&gt;
==Preparing the Build Environment==&lt;br /&gt;
The build environment requires a compiler that targets the ARM processor (the CPU on the iPod). Normally you can simply install a cross-compiling tool chain based on the GNU tools (that is binutils and gcc). If you are running an Linux system on a x86 CPU, or MacOSX, then you can just download ([http://www.uclinux.org/pub/uClinux/arm-elf-tools/ Linux], [http://www.klingler.net/download/arm-elf-stl.pkg.sit MacOSX]) the toolchain as a binary. It likes to live in /usr/local/ so if that is okay on your system you can just untar it there.&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; sh ./arm-elf-tools-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.sh&lt;br /&gt;
On any other system you will need to build the tool chain from source. There are pointers on the Web to do this. Good luck :)&lt;br /&gt;
Once your binutils and gcc are targeted for arm-elf you can proceed. Note, in order to build user tools you will also need a C runtime library (a &amp;quot;libc&amp;quot;). The above toolchain includes a binary for uClibc which is a small implementation of the C library.&lt;br /&gt;
==Backing Up Your Ipod's Firmware and Bootloader==&lt;br /&gt;
The iPod &amp;quot;firmware&amp;quot; is a complex beast that actually consists of some code stored on flash ROM as well as code stored on the hard drive. A complete discussion of the boot process may be found [http://ipodlinux.sourceforge.net/techdetails.shtml here] in the near future, but for the moment we shall say that the hard drive contains the operating system and bootloader which is loaded into the flash rom upon boot. We are going to replace the firmware (OS and bootloader), and thus need to make a backup of that code.&lt;br /&gt;
&lt;br /&gt;
The hard drive in the iPod is partitioned by default into two partitions. Normally these will be visible under Linux as /dev/sda1 and /dev/sda2. If you are currently using Linux tools to manage your music (i.e. gtkpod) you would be familiar with the second partition as it is a FAT32 formatted partition and contains your music.&lt;br /&gt;
&lt;br /&gt;
Once you can successfully access your iPod from Linux (for example mount -t msdos /dev/sda2 /mnt/iPod) you can make a backup of your iPod OS partition.&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda1 of=ipodfirmware&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=/dev/sda  of=ipodbootloader bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
This will make a complete copy of the /dev/sda1 partition and save it to the file ipodfirmware, as well as saving the master boot record too ipodbootloader. You can modify the parameters to suite your local setup.&lt;br /&gt;
&lt;br /&gt;
To restore this data to your iPod you would simply switch the if and of arguments. That is:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodfirmware of=/dev/sda1&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=ipodbootloader  of=/dev/sda bs=512 count=1&lt;br /&gt;
&lt;br /&gt;
Note, in order to do this you need to have your iPod in &amp;quot;diskmode&amp;quot;. This is because its risky to write to the partition while the os is running, but in diskmode, the os isn't running, making for a safer restore. In order to boot in &amp;quot;diskmode&amp;quot; you need to reset the iPod by holding down the menu and play/pause buttons for 10 seconds and then when the Apple icon appears hold down the fast forward and rewind buttons until the &amp;quot;OK to disconnect&amp;quot; message appears.&lt;br /&gt;
&lt;br /&gt;
In this forced diskmode removing the firewire cable does not cause the iPod to reboot as it would normally. Again you need to reset by holding down the fast forward and rewind buttons. If you have reverted to the Apple firmware it should start shortly after the Apple icon appears.&lt;br /&gt;
==Building The Kernel==&lt;br /&gt;
*Unpack the vanilla sources&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar xvzf linux-%1.tar.gz&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;OR&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;amp;nbsp;&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar xvjf linux-%1.tar.bz2&lt;br /&gt;
(The x stands for Extract, the v for Verbose (okay, yes, this is optional), the j for Decompress with bzip2 OR the z for Decompress with gunzip, the p for Preserve permissions and the f to denote that we want to extract a file, not standard input.)&lt;br /&gt;
*Change to kernel source directory&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd kernel-%1&lt;br /&gt;
*Apply the uClinux patch&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; gzip -d -c uClinux-2.4.20-uc0.diff.gz | patch -p1&lt;br /&gt;
*Apply the ipodlinux patch - note that you can use cvs but this isn't reccommended, as you may bork your ipod.&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; gzip -d -c ipodlinux-2.4.20-0.1.diff.gzip | patch -p0&lt;br /&gt;
*Copy over a default config for the ipod&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cp arch/armnommu/def-configs/ipod .config&lt;br /&gt;
*Edit the default config for the ipod - optional, but if you don't do this you might as well have used the precompiled kernel.&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make oldconfig&lt;br /&gt;
::&amp;lt;i&amp;gt;select the options you want, then save your config and exit&amp;lt;/i&amp;gt;&lt;br /&gt;
*Compile the kernel&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make dep &amp;amp;&amp;amp; make &amp;amp;&amp;amp; make modules&lt;br /&gt;
==Installing the Kernel==&lt;br /&gt;
In this step the ELF format kernel is patched into the current firmware image. To do this we first need to prepare the kernel image by converting it to a binary format. The kernel_pad.S file is simply an ARM exception table and some padding, I hope to find a cleaner solution than this hack.&lt;br /&gt;
&lt;br /&gt;
The steps in this process are as follows:&lt;br /&gt;
*convert the kernel to a raw binary image&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-as kernel.S -o kernel_pad&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-objcopy -O binary kernel_pad kernel_pad.bin&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; arm-elf-objcopy -O binary linux linux_tmp.bin&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cat kernel_pad.bin linux_tmp.bin &amp;gt; linux.bin&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; rm linux_tmp.bin kernel_pad kernel_pad.bin &lt;br /&gt;
*Use the make_fw tool from the iPod Boot Loader to extract and patch the Apple firmware.&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tar -xvzf ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;.tar.gz&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ipodloader-&amp;lt;i&amp;gt;version&amp;lt;/i&amp;gt;&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../apple_fw.bin -e 0 ../ipodfirmware&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; make_fw -o ../my_fw.bin -i ../apple_fw.bin -l ../kernel-%1/linux.bin loader.bin&lt;br /&gt;
*Partition the ipod for bootloader (plug in the ipod if it isn't already plugged in)&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /dev/sda2&lt;br /&gt;
:*Start fdisk&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
 The number of cylinders for this disk is set to 2431.&lt;br /&gt;
 There is nothing wrong with that, but this is larger than 1024,&lt;br /&gt;
 and could in certain setups cause problems with:&lt;br /&gt;
 1) software that runs at boot time (e.g., old versions of LILO)&lt;br /&gt;
 2) booting and partitioning software from other OSs&lt;br /&gt;
 (e.g., DOS FDISK, OS/2 FDISK)&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; fdisk /dev/sda&lt;br /&gt;
Command (m for help):&lt;br /&gt;
:*Delete Firmware Partition&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;d&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create a new primary partition with a length of 1 cylinder.&lt;br /&gt;
 Command (m for help): n&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Activate the first partition.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;a&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Set partition type to 'Empty'&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;t&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt;&lt;br /&gt;
 Hex code (type L to list codes): &amp;lt;b&amp;gt;0&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Create the 3rd primary partition from 2nd to 5th Cylinder (this is around 30 megs in size)&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;n&amp;lt;/b&amp;gt;&lt;br /&gt;
 Command action&lt;br /&gt;
 e extended&lt;br /&gt;
 p primary partition (1-4)&lt;br /&gt;
 &amp;lt;b&amp;gt;p&amp;lt;/b&amp;gt;&lt;br /&gt;
 Partition number (1-4): &amp;lt;b&amp;gt;3&amp;lt;/b&amp;gt;&lt;br /&gt;
 First cylinder (1-2431, default 1): &amp;lt;b&amp;gt;2&amp;lt;/b&amp;gt;&lt;br /&gt;
 Last cylinder or +size or +sizeM or +sizeK (1-5, default 5): &amp;lt;b&amp;gt;5&amp;lt;/b&amp;gt;&lt;br /&gt;
:*Review the changes. Note, this is for a 20GB verison, the sda2 parition size will vary.&lt;br /&gt;
 Command (m for help): p&lt;br /&gt;
&lt;br /&gt;
 Disk /dev/sda: 20.0 GB, 20000268288 bytes&lt;br /&gt;
 255 heads, 63 sectors/track, 2431 cylinders&lt;br /&gt;
 Units = cylinders of 16065 * 512 = 8225280 bytes&lt;br /&gt;
&lt;br /&gt;
     Device Boot    Start       End    Blocks   Id  System&lt;br /&gt;
 /dev/sda1   *         1         1      8001    0  Empty&lt;br /&gt;
 /dev/sda2   *         6      2431  19486845    b  Win95 FAT32&lt;br /&gt;
 /dev/sda3             2         5     32130   83  Linux&lt;br /&gt;
&lt;br /&gt;
 Partition table entries are not in disk order&lt;br /&gt;
:*If everything looks ok, write out the partition table.&lt;br /&gt;
 Command (m for help): &amp;lt;b&amp;gt;w&amp;lt;/b&amp;gt;&lt;br /&gt;
:*fdisk will now exit and we can create the new filesystem.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mke2fs -j /dev/sda3&lt;br /&gt;
:*If you don't want your ipod to run disk checks at boot, set the maximal mount count to never.&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; tune2fs -c 0 /dev/sda3&lt;br /&gt;
 tune2fs 1.34 (25-Jul-2003)&lt;br /&gt;
 Setting maximal mount count to -1&lt;br /&gt;
*Copy the patched firmware/bootloader back to the ipod&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cd ~/ipod&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; dd if=my_fw.bin of=/dev/sda1&lt;br /&gt;
*Copy the kernel modules to the ipod root filesystem&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; umount /mnt/ipod &amp;lt;i&amp;gt;(just in case)&amp;lt;/i&amp;gt;&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; mount -t ext3 /dev/sda3 /mnt/tmp&lt;br /&gt;
::&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; cp -r /linux-%1/lib /mnt/tmp&lt;br /&gt;
&lt;br /&gt;
Once you have installed the kernel you can test it by resetting your iPod. You should see the kernel startup messages displayed on the LCD. Since you do not have any user tools installed the kernel will likely panic. This is expected, you will need to reset your iPod back into diskmode in order to install some user tools (see the details in 'Backing up your iPod firmware and bootloader').&lt;br /&gt;
&lt;br /&gt;
Now you can either follow the last step in the simple install, copying over the root filesystem or you can compile your own root filesystem from the uClinux distro source&lt;br /&gt;
*will add docs on compiling uClinux later, still haven't managed to download it properly*&lt;br /&gt;
[[ipodlinux:documentation|Back]] to documentation&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Ipodlinux:files&amp;diff=8466</id>
		<title>Ipodlinux:files</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Ipodlinux:files&amp;diff=8466"/>
		<updated>2004-05-03T06:48:34Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Stuff you should know==&lt;br /&gt;
If you're going to install linux on your ipod theres two ways to go about it. Firstly you can use prebuilt kernel/binaries and its just a matter of copying files to your ipod (actually a tad more complex). The other option is to download and patch and build the uclinux kernel (mainly so you can choose your own kernel options), but the [http://www.uclinux.org/ uclinux distro] has some really slow servers so I think you should stick with the first one. The way I'll present this is 'Build it Yourself' and 'Using Prebuilt Binaries'.&lt;br /&gt;
&lt;br /&gt;
I use %1 and %2 to represent the kernel version and the patch version respectively.&lt;br /&gt;
&lt;br /&gt;
===Files you need===&lt;br /&gt;
#Build it yourself&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=101451 Boot Loader]&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73071 Ipod Kernel Patch] - Note the latest version starts with uclinux. Rename it from &amp;lt;b&amp;gt;uclinux-%1-ipod%2.patch.gz&amp;lt;/b&amp;gt; to &amp;lt;b&amp;gt;ipodlinux-%1-patch-%2.gz&amp;lt;/b&amp;gt; for easier recognition later.&lt;br /&gt;
##[http://www.uclinux.org/pub/uClinux/ uClinux Kernel Patch] - Download the patch labelled &amp;lt;b&amp;gt;uClinux-%1-uc%2.diff.gz&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;linux-%1-uc%2.diff.gz&amp;lt;/b&amp;gt; (kernel 2.4.x versions only, 2.6 support coming soon).&lt;br /&gt;
##[http://www.uclinux.org/pub/uClinux/arm-elf-tools/ arm-elf-tools] - A toolchain required for compiling for the ipod.&lt;br /&gt;
##[http://www.kernel.org/pub/linux/kernel/ Vanilla Kernel Sources] - Download the kernel labelled &amp;lt;b&amp;gt;linux-%1.tar.gz&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;linux-%1.tar.bz2&amp;lt;/b&amp;gt;.&lt;br /&gt;
##&amp;lt;b&amp;gt;Optional&amp;lt;/b&amp;gt; - [http://www.uclinux.org/pub/uClinux/dist/ uClinux distribution] - This is incase you want to compile and use uClinux distro programs on your ipod. The source is pretty big so its easier to  use cvs and just checkout the ucLinux-dist portion of the tree.&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73279 Root Filesystem] - If you don't want to download and compile the distro yourself (number 6) you will need a root filesystem.&lt;br /&gt;
&lt;br /&gt;
#Using Prebuilt Binaries&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=101451 Boot Loader]&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73283 Prebuilt Kernel]&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73279 Root Filesystem]&lt;br /&gt;
===Organizing Files===&lt;br /&gt;
Just dump all the files in a dir somewhere, I will use ~/ipod in the installation/build instructions.&lt;br /&gt;
&lt;br /&gt;
[[ipodlinux:documentation |Back]] to documentation&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Ipodlinux:files&amp;diff=8462</id>
		<title>Ipodlinux:files</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Ipodlinux:files&amp;diff=8462"/>
		<updated>2004-05-03T06:17:28Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Stuff you should know==&lt;br /&gt;
If you're going to install linux on your ipod theres two ways to go about it. Firstly you can use prebuilt kernel/binaries and its just a matter of copying files to your ipod (actually a tad more complex). The other option is to download and patch and build the uclinux kernel (mainly so you can choose your own kernel options), but the [http://www.uclinux.org/ uclinux distro] has some really slow servers so I think you should stick with the first one. The way I'll present this is 'Build it Yourself' and 'Using Prebuilt Binaries'.&lt;br /&gt;
&lt;br /&gt;
I use %1 and %2 to represent the kernel version and the patch version respectively.&lt;br /&gt;
&lt;br /&gt;
===Files you need===&lt;br /&gt;
#Build it yourself&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=101451 Boot Loader]&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73071 Ipod Kernel Patch] - Note the latest version starts with uclinux. Rename it from &amp;lt;b&amp;gt;uclinux-%1-ipod%2.patch.gz&amp;lt;/b&amp;gt; to &amp;lt;b&amp;gt;ipodlinux-%1-patch-%2.gz&amp;lt;/b&amp;gt; for easier recognition later.&lt;br /&gt;
##[http://www.uclinux.org/pub/uClinux/ uClinux Kernel Patch] - Download the patch labelled &amp;lt;b&amp;gt;uClinux-%1-uc%2.diff.gz&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;linux-%1-uc%2.diff.gz&amp;lt;/b&amp;gt; (kernel 2.4.x versions only, 2.6 support coming soon).&lt;br /&gt;
##[http://www.uclinux.org/pub/uClinux/arm-elf-tools/ arm-elf-tools] - A toolkit required for compiling for the ipod.&lt;br /&gt;
##[http://www.kernel.org/pub/linux/kernel/ Vanilla Kernel Sources] - Download the kernel labelled &amp;lt;b&amp;gt;linux-%1.tar.gz&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;linux-%1.tar.bz2&amp;lt;/b&amp;gt;.&lt;br /&gt;
##&amp;lt;b&amp;gt;Optional&amp;lt;/b&amp;gt; - [http://www.uclinux.org/pub/uClinux/dist/ uClinux distribution] - This is incase you want to compile and use uClinux distro programs on your ipod. The source is pretty big so its easier to  use cvs and just checkout the ucLinux-dist portion of the tree.&lt;br /&gt;
&lt;br /&gt;
#Using Prebuilt Binaries&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=101451 Boot Loader]&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73283 Prebuilt Kernel]&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73279 Root Filesystem]&lt;br /&gt;
===Organizing Files===&lt;br /&gt;
Just dump all the files in a dir somewhere, I will use ~/ipod in the installation/build instructions.&lt;br /&gt;
&lt;br /&gt;
[[ipodlinux:documentation |Back]] to documentation&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Ipodlinux:files&amp;diff=8460</id>
		<title>Ipodlinux:files</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Ipodlinux:files&amp;diff=8460"/>
		<updated>2004-05-03T06:16:35Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Stuff you should know==&lt;br /&gt;
If you're going to install linux on your ipod theres two ways to go about it. Firstly you can use prebuilt kernel/binaries and its just a matter of copying files to your ipod (actually a tad more complex). The other option is to download and patch and build the uclinux kernel (mainly so you can choose your own kernel options), but the [http://www.uclinux.org/ uclinux distro] has some really slow servers so I think you should stick with the first one. The way I'll present this is 'Build it Yourself' and 'Using Prebuilt Binaries'.&lt;br /&gt;
&lt;br /&gt;
I use %1 and %2 to represent the kernel version and the patch version respectively.&lt;br /&gt;
&lt;br /&gt;
===Files you need===&lt;br /&gt;
#Build it yourself&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=101451 Boot Loader]&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73071 Ipod Kernel Patch] - Note the latest version starts with uclinux. Rename it from &amp;lt;b&amp;gt;uclinux-%1-ipod%2.patch.gz&amp;lt;/b&amp;gt; to &amp;lt;b&amp;gt;ipodlinux-%1-patch-%2.gz&amp;lt;/b&amp;gt; for easier recognition later.&lt;br /&gt;
##[http://www.uclinux.org/pub/uClinux/ uClinux Kernel Patch] - Download the patch labelled &amp;lt;b&amp;gt;uClinux-%1-uc%2.diff.gz&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;linux-%1-uc%2.diff.gz&amp;lt;/b&amp;gt; (kernel 2.4.x versions only, 2.6 support coming soon).&lt;br /&gt;
##[http://www.uclinux.org/pub/uClinux/arm-elf-tools/ arm-elf-tools] - A toolkit required for compiling for the ipod.&lt;br /&gt;
##[http://www.kernel.org/pub/linux/kernel/ Vanilla Kernel Sources] - Download the kernel labelled &amp;lt;b&amp;gt;linux-%1.tar.gz&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;linux-%1.tar.bz2&amp;lt;/b&amp;gt;.&lt;br /&gt;
##&amp;lt;b&amp;gt;Optional&amp;lt;/b&amp;gt; - [http://www.uclinux.org/pub/uClinux/dist/ uClinux distribution] - This is incase you want to compile and use uClinux distro programs on your ipod. The source is pretty big so its easier to  use cvs and just checkout the ucLinux-dist portion of the tree.&lt;br /&gt;
&lt;br /&gt;
#Using Prebuilt Binaries&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=101451 Boot Loader]&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73283 Prebuilt Kernel]&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73279 Root Filesystem]&lt;br /&gt;
===Organizing Files===&lt;br /&gt;
Just dump all the files in a dir somewhere, e.g. ~/ipod&lt;br /&gt;
&lt;br /&gt;
[[ipodlinux:documentation |Back]] to documentation&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Using_Ipodlinux&amp;diff=8571</id>
		<title>Using Ipodlinux</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Using_Ipodlinux&amp;diff=8571"/>
		<updated>2004-05-03T06:15:23Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#[[ipodlinux:firewire|Setting up firewire/usb on your PC/Mac]]&lt;br /&gt;
#[[ipodlinux:files|Getting the required files]]&lt;br /&gt;
#[[ipodlinux:compile|Compiling ipodlinux]] - optional, see [[ipodlinux:files|Getting the required files]]&lt;br /&gt;
#[[ipodlinux:basic|Simple installation guide]]&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Linux_installation&amp;diff=9045</id>
		<title>Linux installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Linux_installation&amp;diff=9045"/>
		<updated>2004-05-03T06:12:16Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: added ipodlinux&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;As installation varies so much, you are best advised to look at the details for your chosen distribution.&lt;br /&gt;
&lt;br /&gt;
Some [[Live CD distributions]], such as [[Knoppix]] allow you to test-drive before you install, and have a very good automatic detection and configuration system.&lt;br /&gt;
&lt;br /&gt;
Most distributions autodetect your hardware, although [[WiFi]] is still a sticking point.&lt;br /&gt;
&lt;br /&gt;
A [[Source_distributions|source based distribution]] such as [[Gentoo]] encourages people to get to grips with Linux by making you configure, compile and set up everything from scratch. It's really worth doing if you have the time to learn that way, and the learning method and quality of the documentation set it apart from most other distros.&lt;br /&gt;
&lt;br /&gt;
==System requirements==&lt;br /&gt;
&lt;br /&gt;
There are hardly default hardware requirements. It depends a lot on the used [[Distributions|distribution]] and how much you are willing to tweak it. Most Linux [[distributions]] are rather modest with their hardware requirements so running any of them on a modern computer will not pose any problems.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Of course if you require to run Linux on a pre Pentium machine you might get in trouble using the latest [[Mandrake]], [[Fedora]], etc. because they may not support every processor type and require a certain amount of system memory.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
On the other hand using the latest technology may confront you with a lack of drivers and propper support.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
A happy medium is probably the best solution.&lt;br /&gt;
&lt;br /&gt;
==Choosing a distribution==&lt;br /&gt;
===How to decide which distribution to use?===&lt;br /&gt;
&lt;br /&gt;
'''Always use the same [[distribution]] as the [[guru]] next door!'''&amp;lt;br&amp;gt;This way you have somebody around to question and ask for help.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
In general if you don't need special features or have exotic hardware requirements and little or no [[Linux]] knowledge you are on the safe side using one of the major [[distributions]], i.e. [[Fedora]], [[Mandrake]], [[Suse]], [[Red_Hat]]. All them are equipped with a graphical installation, preconfigured desktop and graphical configuration tools.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
If you just want to try [[Linux]] your best choice is one of the [[Live_CD_distributions | Live CD distributions]] which run from one CD and don't need to be installed at all.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Special hardware requirements and/or curiosity may lead you to other [[distributions]] like [[VectorLinux]] for sparse hardware which is based on [[Slackware]]...&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Probably every [[distribution]] would be worth mentioning but believe me as I said before: '''The best [[distribution]] is the one your personal [[guru]] has!'''&lt;br /&gt;
&lt;br /&gt;
===Distribution specific guides===&lt;br /&gt;
A comprehensive list of [[Distributions]].&lt;br /&gt;
===How to get them?===&lt;br /&gt;
&lt;br /&gt;
* Buy a boxed [[Distributions|distribution]] online or in a store. This way you get user guides specific to your distribution and support from the distributor. If you buy an official copy some of the money will help maintain the distribution.&lt;br /&gt;
* Download the [[ISO]] files and burn your own CD set. The ISO files can be found at the main [[Distributions|distribution]] site or on countless mirrors. If the option exists, downloading from a distributed [[p2p]] network such as [[BitTorrent]] is preferable. Using p2p the download is likely to be faster, especially at busy times, and the cost to the distributor is far less than over [[ftp]].&lt;br /&gt;
* Download only a small installation CD or floppy image and install your system directly per [[FTP Install]] or [[HTTP Install]]. Only the selected software is downloaded which is in most cases faster than downloading the whole CD set. But not every [[Distributions|distribution]] supports this installation type.&lt;br /&gt;
* Sometimes magazines add partial or even complete [[distributions]], occasionally before they are made available online.&lt;br /&gt;
&lt;br /&gt;
==Configuring Linux==&lt;br /&gt;
* [[Networking]]&lt;br /&gt;
* [[Security]]&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
* [[Booting]]&lt;br /&gt;
&lt;br /&gt;
==What next? How to make the most of Linux.==&lt;br /&gt;
* List of Linux [[Applications]]&lt;br /&gt;
* List of Linux [[Commands]]&lt;br /&gt;
* [[Common Tasks]]&lt;br /&gt;
* [[Documentation]]&lt;br /&gt;
* [[Gaming]]&lt;br /&gt;
&lt;br /&gt;
==Installation Guides==&lt;br /&gt;
(guides to install distros at linuxquestions.org)&lt;br /&gt;
*[[ipodlinux:documentation|ipodlinux]]&lt;br /&gt;
==External links==&lt;br /&gt;
(links to guides etc.)&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Ipodlinux:files&amp;diff=8459</id>
		<title>Ipodlinux:files</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Ipodlinux:files&amp;diff=8459"/>
		<updated>2004-05-03T06:06:55Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: added link back to documentation page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Stuff you should know==&lt;br /&gt;
If you're going to install linux on your ipod theres two ways to go about it. Firstly you can use prebuilt kernel/binaries and its just a matter of copying files to your ipod (actually a tad more complex). The other option is to download and patch and build the uclinux kernel (mainly so you can choose your own kernel options), but the [http://www.uclinux.org/ uclinux distro] has some really slow servers so I think you should stick with the first one. The way I'll present this is 'Build it Yourself' and 'Using Prebuilt Binaries'.&lt;br /&gt;
&lt;br /&gt;
I use %1 and %2 to represent the kernel version and the patch version respectively.&lt;br /&gt;
&lt;br /&gt;
===Files you need===&lt;br /&gt;
#Build it yourself&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=101451 Boot Loader]&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73071 Ipod Kernel Patch] - Note the latest version starts with uclinux. Rename it from &amp;lt;b&amp;gt;uclinux-%1-ipod%2.patch.gz&amp;lt;/b&amp;gt; to &amp;lt;b&amp;gt;ipodlinux-%1-patch-%2.gz&amp;lt;/b&amp;gt; for easier recognition later.&lt;br /&gt;
##[http://www.uclinux.org/pub/uClinux/ uClinux Kernel Patch] - Download the patch labelled &amp;lt;b&amp;gt;uClinux-%1-uc%2.diff.gz&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;linux-%1-uc%2.diff.gz&amp;lt;/b&amp;gt; (kernel 2.4.x versions only, 2.6 support coming soon).&lt;br /&gt;
##[http://www.uclinux.org/pub/uClinux/arm-elf-tools/ arm-elf-tools] - A toolkit required for compiling for the ipod.&lt;br /&gt;
##[http://www.kernel.org/pub/linux/kernel/ Vanilla Kernel Sources] - Download the kernel labelled &amp;lt;b&amp;gt;linux-%1.tar.gz&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;linux-%1.tar.bz2&amp;lt;/b&amp;gt;.&lt;br /&gt;
##&amp;lt;b&amp;gt;Optional&amp;lt;/b&amp;gt; - [http://www.uclinux.org/pub/uClinux/dist/ uClinux distribution] - This is incase you want to compile and use uClinux distro programs on your ipod. The source is pretty big so its easier to  use cvs and just checkout the ucLinux-dist portion of the tree.&lt;br /&gt;
&lt;br /&gt;
#Using Prebuilt Binaries&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=101451 Boot Loader]&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73283 Prebuilt Kernel]&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73279 Root Filesystem]&lt;br /&gt;
&lt;br /&gt;
[[ipodlinux:documentation |Back]] to documentation&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Ipodlinux:files&amp;diff=8456</id>
		<title>Ipodlinux:files</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Ipodlinux:files&amp;diff=8456"/>
		<updated>2004-05-03T06:04:02Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: added download instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Stuff you should know==&lt;br /&gt;
If you're going to install linux on your ipod theres two ways to go about it. Firstly you can use prebuilt kernel/binaries and its just a matter of copying files to your ipod (actually a tad more complex). The other option is to download and patch and build the uclinux kernel (mainly so you can choose your own kernel options), but the [http://www.uclinux.org/ uclinux distro] has some really slow servers so I think you should stick with the first one. The way I'll present this is 'Build it Yourself' and 'Using Prebuilt Binaries'.&lt;br /&gt;
&lt;br /&gt;
I use %1 and %2 to represent the kernel version and the patch version respectively.&lt;br /&gt;
&lt;br /&gt;
===Files you need===&lt;br /&gt;
#Build it yourself&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=101451 Boot Loader]&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73071 Ipod Kernel Patch] - Note the latest version starts with uclinux. Rename it from &amp;lt;b&amp;gt;uclinux-%1-ipod%2.patch.gz&amp;lt;/b&amp;gt; to &amp;lt;b&amp;gt;ipodlinux-%1-patch-%2.gz&amp;lt;/b&amp;gt; for easier recognition later.&lt;br /&gt;
##[http://www.uclinux.org/pub/uClinux/ uClinux Kernel Patch] - Download the patch labelled &amp;lt;b&amp;gt;uClinux-%1-uc%2.diff.gz&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;linux-%1-uc%2.diff.gz&amp;lt;/b&amp;gt; (kernel 2.4.x versions only, 2.6 support coming soon).&lt;br /&gt;
##[http://www.uclinux.org/pub/uClinux/arm-elf-tools/ arm-elf-tools] - A toolkit required for compiling for the ipod.&lt;br /&gt;
##[http://www.kernel.org/pub/linux/kernel/ Vanilla Kernel Sources] - Download the kernel labelled &amp;lt;b&amp;gt;linux-%1.tar.gz&amp;lt;/b&amp;gt; or &amp;lt;b&amp;gt;linux-%1.tar.bz2&amp;lt;/b&amp;gt;.&lt;br /&gt;
##&amp;lt;b&amp;gt;Optional&amp;lt;/b&amp;gt; - [http://www.uclinux.org/pub/uClinux/dist/ uClinux distribution] - This is incase you want to compile and use uClinux distro programs on your ipod. The source is pretty big so its easier to  use cvs and just checkout the ucLinux-dist portion of the tree.&lt;br /&gt;
&lt;br /&gt;
#Using Prebuilt Binaries&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=101451 Boot Loader]&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73283 Prebuilt Kernel]&lt;br /&gt;
##[http://sourceforge.net/project/showfiles.php?group_id=73079&amp;amp;package_id=73279 Root Filesystem]&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=Using_Ipodlinux&amp;diff=8458</id>
		<title>Using Ipodlinux</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=Using_Ipodlinux&amp;diff=8458"/>
		<updated>2004-05-03T05:25:01Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#[[ipodlinux:firewire|Setting up firewire/usb on your PC/Mac]]&lt;br /&gt;
#[[ipodlinux:files|Getting the required files]]&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=IpodLinux&amp;diff=8479</id>
		<title>IpodLinux</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=IpodLinux&amp;diff=8479"/>
		<updated>2004-05-03T04:26:23Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;IpodLinux is a distro of linux that is designed to run on the ipod. It uses a patched version of uClinux and is a [http://sf.net sourceforge] project.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
IpodLinux is more of an enhancement rather than a replcaement for the apple firmware. A bootloader is used to enable you to select between a kernel image and the apple software. Choosing which one to boot is as simple as holding down the rewind key to boot linux, or doing nothing to boot the apple firmware. Also a large number of users have succesfully got it working, and there isn't anything risky about the installation if you follow the instructions carefully. Once booted the linux kernel starts a small linux app called podzilla ([[ipodlinux:screenshots|see screenshots]]) that has much of the functionality of the apple software. Currently music playback is limited (mp3 only, ogg coming soon), but you can browse the file system, leech files from other devices (including other ipods), use ip over firewire to telnet into your ipod, and write software for it using the Podzilla Tool Kit (PTK) - a work in progress.&lt;br /&gt;
&lt;br /&gt;
For those of you who want to get involved in development, check out the forums while the rest should read the documentation in order to get started installing it.&lt;br /&gt;
&lt;br /&gt;
Currently supports first, second, and third generation ipods, (no mini support at this time).&lt;br /&gt;
&lt;br /&gt;
===External Links:===&lt;br /&gt;
*[http://ipodlinux.sourceforge.net Home page]&lt;br /&gt;
*[http://sourceforge.net/project/showfiles.php?group_id=73079 Sourceforge downloads]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net/forums Forums]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net/documentation.shtml Official documentation]&lt;br /&gt;
::Note that the official documentation may be outdated. The latest documentation is included in the respective packages as readme's.&lt;br /&gt;
===LinuxQuestions.org Links:===&lt;br /&gt;
*[[ipodlinux:documentation|wiki documentation]]&lt;br /&gt;
*[[ipodlinux:screenshots|screenshots]]&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=IpodLinux&amp;diff=8454</id>
		<title>IpodLinux</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=IpodLinux&amp;diff=8454"/>
		<updated>2004-05-03T04:26:08Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;IpodLinux is a distro of linux that is designed to run on the ipod. It uses a patched version of uClinux and is a [http://sf.net sourceforge] project.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
IpodLinux is more of an enhancement rather than a replcaement for the apple firmware. A bootloader is used to enable you to select between a kernel image and the apple software. Choosing which one to boot is as simple as holding down the rewind key to boot linux, or doing nothing to boot the apple firmware. Also a large number of users have succesfully got it working, and there isn't anything risky about the installation if you follow the instructions carefully. Once booted the linux kernel starts a small linux app called podzilla ([[ipodlinux:screenshots|see screenshots]]) that has much of the functionality of the apple software. Currently music playback is limited (mp3 only, ogg coming soon), but you can browse the file system, leech files from other devices (including other ipods), use ip over firewire to telnet into your ipod, and write software for it using the Podzilla Tool Kit (PTK) - a work in progress.&lt;br /&gt;
&lt;br /&gt;
For those of you who want to get involved in development, check out the forums while the rest should read the documentation in order to get started installing it.&lt;br /&gt;
&lt;br /&gt;
Currently supports first, second, and third generation ipods, (no mini support at this time).&lt;br /&gt;
&lt;br /&gt;
===External Links:===&lt;br /&gt;
*[http://ipodlinux.sourceforge.net Home page]&lt;br /&gt;
*[http://sourceforge.net/project/showfiles.php?group_id=73079 Sourceforge downloads]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net/forums Forums]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net/documentation.shtml Official documentation]&lt;br /&gt;
::Note that the official documentation may be outdated. The latest documentation is included in the respective packages as readme's.&lt;br /&gt;
===LinuxQuestions.org links:===&lt;br /&gt;
*[[ipodlinux:documentation|wiki documentation]]&lt;br /&gt;
*[[ipodlinux:screenshots|screenshots]]&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=IpodLinux&amp;diff=8453</id>
		<title>IpodLinux</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=IpodLinux&amp;diff=8453"/>
		<updated>2004-05-03T03:57:14Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;IpodLinux is a distro of linux that is designed to run on the ipod. It uses a patched version of uClinux and is a [http://sf.net sourceforge] project.&lt;br /&gt;
&lt;br /&gt;
===Overview===&lt;br /&gt;
IpodLinux is more of an enhancement rather than a replcaement for the apple firmware. A bootloader is used to enable you to select between a kernel image and the apple software. Choosing which one to boot is as simple as holding down the rewind key to boot linux, or doing nothing to boot the apple firmware. Also a large number of users have succesfully got it working, and there isn't anything risky about the installation if you follow the instructions carefully. Once booted the linux kernel starts a small linux app called podzilla ([[ipodlinux:screenshots|see screenshots]]) that has much of the functionality of the apple software. Currently music playback is limited (mp3 only, ogg coming soon), but you can browse the file system, leech files from other devices (including other ipods), use ip over firewire to telnet into your ipod, and write software for it using the Podzilla Tool Kit (PTK) - a work in progress.&lt;br /&gt;
&lt;br /&gt;
For those of you who want to get involved in development, check out the forums while the rest should read the documentation in order to get started installing it.&lt;br /&gt;
&lt;br /&gt;
Currently supports first, second, and third generation ipods, (no mini support at this time).&lt;br /&gt;
&lt;br /&gt;
===Links:===&lt;br /&gt;
*[http://ipodlinux.sourceforge.net Home page]&lt;br /&gt;
*[http://sourceforge.net/project/showfiles.php?group_id=73079 Sourceforge downloads]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net/forums Forums]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net/documentation.shtml Official documentation]&lt;br /&gt;
::Note that the official documentation may be outdated. The latest documentation is included in the respective packages as readme's.&lt;br /&gt;
===LinuxQuestions.org links:===&lt;br /&gt;
*[[ipodlinux:documentation|wiki documentation]]&lt;br /&gt;
*[[ipodlinux:screenshots|screenshots]]&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=IpodLinux&amp;diff=8451</id>
		<title>IpodLinux</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=IpodLinux&amp;diff=8451"/>
		<updated>2004-05-02T23:19:18Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;IpodLinux is a distro of linux that is designed to run on the ipod. It uses a patched version of uClinux and is a [http://sf.net sourceforge] project.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
*[http://ipodlinux.sourceforge.net Home page]&lt;br /&gt;
*[http://sourceforge.net/project/showfiles.php?group_id=73079 Sourceforge downloads]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net/forums Forums]&lt;br /&gt;
*[http://ipodlinux.sourceforge.net/documentation.shtml Official documentation]&lt;br /&gt;
:Note that the official documentation may be outdated. The latest documentation is included in the respective packages as readme's.&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
	<entry>
		<id>https://wiki.linuxquestions.org/index.php?title=List_of_Linux_distributions&amp;diff=8734</id>
		<title>List of Linux distributions</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxquestions.org/index.php?title=List_of_Linux_distributions&amp;diff=8734"/>
		<updated>2004-05-02T23:13:23Z</updated>

		<summary type="html">&lt;p&gt;Flonejek: added ipodlinux&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://kernel.org Linux] is a [[kernel]], in itself not an extremely useful piece of software, but very important: it provides hardware resources management, and access to the hardware is necessary to get anything done, of course.  To have a fully functional [[operating system]], some basic software is needed as well.  A [[GNU/Linux]] [[distribution]] is the complete package.  Most modern distributions also come with graphical installers to help with the initial setup.&lt;br /&gt;
&lt;br /&gt;
===Special categories===&lt;br /&gt;
*[[Live CD distributions]]&lt;br /&gt;
*[[Source distributions]]&lt;br /&gt;
*[[Firewall distributions]]&lt;br /&gt;
*[[Embedded Linux]]&lt;br /&gt;
&lt;br /&gt;
===Alphabetical distribution listing===&lt;br /&gt;
*[[AMSEL]]&lt;br /&gt;
*[[Arch Linux]]&lt;br /&gt;
*[[Ark]]&lt;br /&gt;
*[[Aurox]]&lt;br /&gt;
*[[BioKnoppix]]&lt;br /&gt;
*[[BLAG]]&lt;br /&gt;
*[[Buffalo]]&lt;br /&gt;
*[[cAos]]&lt;br /&gt;
*[[ClusterKnoppix]]&lt;br /&gt;
*[[CollegeLinux]]&lt;br /&gt;
*[[Conectiva]]&lt;br /&gt;
*[[DamnSmallLinux]]&lt;br /&gt;
*[[Debian]]&lt;br /&gt;
*[[Devil-Linux]]&lt;br /&gt;
*[[Feather]]&lt;br /&gt;
*[[Fedora]]&lt;br /&gt;
*[[Gentoo]]&lt;br /&gt;
*[[Gnoppix]]&lt;br /&gt;
*[[IPCop]]&lt;br /&gt;
*[[IpodLinux]]&lt;br /&gt;
*[[Kanotix]]&lt;br /&gt;
*[[KnopILS]]&lt;br /&gt;
*[[Knoppix]]&lt;br /&gt;
*[[Kurumin]]&lt;br /&gt;
*[[Libranet]]&lt;br /&gt;
*[[Linspire]], formerly [[LindowsOS]]&lt;br /&gt;
*[[Linux From Scratch]]&lt;br /&gt;
*[[LNX-BBC]]&lt;br /&gt;
*[[Lorma]]&lt;br /&gt;
*[[Lunar Linux]]&lt;br /&gt;
*[[Lycoris]]&lt;br /&gt;
*[[Mandrake]]&lt;br /&gt;
*[[Mandows]]&lt;br /&gt;
*[[MEPIS]]&lt;br /&gt;
*[[Morphix]]&lt;br /&gt;
*[[Peanut]]&lt;br /&gt;
*[[PCLinuxOS]]&lt;br /&gt;
*[[PHLAK]]&lt;br /&gt;
*[[Red Hat]]&lt;br /&gt;
*[[ROCK Linux]]&lt;br /&gt;
*[[Rubyx]]&lt;br /&gt;
*[[Slackware]]&lt;br /&gt;
*[[Slax]]&lt;br /&gt;
*[[SmoothWall]]&lt;br /&gt;
*[[SOL (Server Optimized Linux)]]&lt;br /&gt;
*[[SOT Linux]]&lt;br /&gt;
*[[Source Mage]]&lt;br /&gt;
*[[SPB-Linux]]&lt;br /&gt;
*[[Sun JDS]]&lt;br /&gt;
*[[SuSE]]&lt;br /&gt;
*[[SystemRescue]]&lt;br /&gt;
*[[Thiz]]&lt;br /&gt;
*[[Trustix Secure Linux]]&lt;br /&gt;
*[[TurboLinux]]&lt;br /&gt;
*[[VectorLinux]]&lt;br /&gt;
*[[Whitebox Linux]]&lt;br /&gt;
*[[Yellow Dog Linux]]&lt;br /&gt;
*[[Xandros]]&lt;/div&gt;</summary>
		<author><name>Flonejek</name></author>
	</entry>
</feed>