F8x86_64 on the Acer Ferrari 3400LMi
4.2 Configuring Firewire
If you experience the problems mentioned above, and you are running kernel version 2.6.13 or earlier, put the following line in your /etc/modprobe.config:
options sbp2 serialize_io=1 max_speed=2
The serialize_io=1 option tells the scsi drivers to only send one scsi command at a time. Unfortunately, this setting has a small impact on performance, but it is the fix that makes things work.
In kernel version 2.6.14 the default value for serialize_io was changed from 0 to 1. Thus, if you are running kernel version 2.6.14 or later you should not need do do anything, unless you want to optimize performance (see comments below) or fiddle with the other settings.
The max_speed option might be useful in rare occasions if you want to limit the maximum transfer rate to support “even more buggy” external hardware. Valid values for the max_speed option are:
0100 mb
1 200 mb
2 400 mb (default)
3 800 mb
When timing the very same read transfer as above I now get the following result:
#time cp rp /media/ieee1394disk/430MB_folder ~
real 0m24.871s
user 0m0.076s
sys 0m6.400s
That is what I call improvement! Going from over 20 minutes down to roughly 25 seconds.
4.3 Comments
After some further exercises with other external hard drives it turned out that the problem described in the previous section indeed seems to be related to the IEEE 1394 chip in the external drives. With some hardware it is quite possible to use the faster serialize_io=0 option. The performance benefit is in the range 2025%, so consider your options. If you only use IEEE 1394 for your own hardware and it works well with the faster setting, go for it. Otherwise, compatibility with other hardware might be more valuable. Personally, I think it was a wise decision to change the default setting in the sbp2 module. After all those “buggy IEEE 1394 chips” seem to be quite common, and prior to start
8