First get the current kernel: kernel.org (use at least 2.4.20, the current IEEE1394 files won't work with earlier kernels)
Then get the current IEEE1394 files: linux1394.org (if these don't compile use the original directory delivered with the kernel)
This is not for total kernel compile newbie's, these should get comfy compiling the kernel and installing kernel/modules first.
Set up your kernel as you wish (don't forget FAT32 support), but select at least these SCSI options:
And at least these IEEE1394 options:
Now compile the kernel and modules and install them.
You may skip the next step if the kernel ieee1394 drivers work for you. The current drivers may be more/less stable. (The kernel drivers of <= 2.4.19 where unusable, 2.4.20 looks usable...). You should at least try to compile the current drivers, if they don't compile use the kernel drivers.
Try it: we update the ieee1394 driver, this is simple:
cd /usr/src/linux/drivers mv ieee1394 ieee1394_orig tar -xvzf your_ieee1394_tarball.tar.gz mv trunk ieee1394 cd /usr/src/linux make modules modules_install
If it did't work out: (skip if everything went fine)
cd /usr/src/linux/drivers mv ieee1394 ieee1394_current mv ieee1394_orig ieee1394 cd /usr/src/linux make modules modules_install
Reboot now and after you are logged in again type:
This is the command to set up the module dependencies.
Now we are set to ...
Lets communicate with our IEEE1394 hub:
Now connect your harddrive - in this case the iPod (wait for the checkmark to show up - this is important) and then type:
Now your drive should be set up as a harddrive:
... kernel: ieee1394: sbp2: Logged into SBP-2 device ... kernel: ieee1394: sbp2: Node[00:1023]: Max speed [S400] - Max payload  ... kernel: scsi2 : IEEE-1394 SBP-2 protocol driver (host: ohci1394) ... kernel: $Rev: 545 $ James Goodwin
... kernel: SBP-2 module load options: ... kernel: - Max speed supported: S400 ... kernel: - Max sectors per I/O supported: 255 ... kernel: - Max outstanding commands supported: 8 ... kernel: - Max outstanding commands per lun supported: 1 ... kernel: - Serialized I/O (debug): no ... kernel: - Exclusive login: yes ... kernel: Vendor: Apple Model: iPod Rev: 1.20 ... kernel: Type: Direct-Access ANSI SCSI revision: 02 ... kernel: Attached scsi removable disk sda at scsi2, channel 0, id 0, lun 0 ... kernel: SCSI device sda: 9780750 512-byte hdwr sectors (5008 MB) ... kernel: sda: test WP failed, assume Write Enabled ... kernel: sda: sda1 sda2
If the SCSI stuff does not appear try to:
rmmod sbp2 modprobe sbp2 sbp2_force_inquiry_hack=1
(Some old iPods/harddisks may need that.)
You can mount your iPod/harddisk:
mkdir /ipod mount /dev/sda2 /ipod
Disconnect your iPod/harddisk with:
umount /ipod rmmod sbp2
iPod users: wait for the checkmark and then do the physical disconnect ;-)
Sometimes - if you dis/reconnect your IEEE1394 drive too often, or if you have USB disks as well and dis/reconnect both drives in strange orders
may hang. I have to reboot to make the drive work again, the rest of the system ist stable, so you don't need to. Updating the ieee1394 drivers may help ;-)
Always wait for the checkmark to connect or disconnect!
Which sd* device it will be depends on your other scsi devices.
sda1 is the firmware partition, sda2 the data partition
If all this works you can put this line in your fstab:
/dev/sda2 /ipod auto noauto,rw,user 0 0
Now you can mount/unmount your harddrive as user. This leaves us with the modprobe/rmmod commands which have to be run as root, the solution to this is the sudo command, but this is another story...