(import from http://wiki.linux1394.org/sbp2, last edited 2007-12-31)
Revision as of 21:58, 7 August 2008
sbp2 implements the Serial Bus Protocol (SBP-2) for storage devices. It is essentially a tunnel for SCSI. Therefore, sbp2 is a Linux SCSI low-level driver. Ironically, most SBP-2 devices implement an IDE bridge.
Linux 2.6 has support for per-device hotplugging in the scsi subsystem. If the userspace environment is correctly set up, the sbp2 driver will be automatically loaded if an SBP-2 device was detected, and SCSI high-level drivers will be loaded according to the SCSI command set which the device implements (sd_mod for HDDs, sr_mod for DVD-ROM/R/Ws etc.).
Logical Unit Support
For devices with multiple logical units, Linux 2.6.12 or preferably later should be used. It should support both types of LUN entries. Because of how SBP-2 interfaces with the SCSI subsystem, LUNs will not show up as actual SCSI LUNs, but will instead show as discrete devices on the bus. This should not affect operability.
- Force max speed allowed.
- (3 = 800mb, 2 = 400mb, 1 = 200mb, 0 = 100mb. default = 3)
- Reduce this to work around bad controllers, bad cables, etc.
- Serialize all I/O coming down from the scsi drivers.
- (0 = deserialized, 1 = serialized, default = 0 in old kernels, 1 in new kernels)
- Always use serialize_io=1. There are bugs in sbp2 when running with serialize_io=0.
- Change max sectors per I/O supported
- (default = 255)
- The default value is safe for older SBP-2 bridges. You may gain some performance by raising this value.
- (default = 1)
- Set to zero if you'd like to allow multiple hosts the ability to log in at the same time, e.g. modprobe sbp2 exclusive_login=0. Sbp2 device must support this, and you must know what you're doing. Useful for clustered storage systems.
- Force SCSI inquiry hack
- (default = 0)
- Try this if the driver cannot login to a device. Give notice to the linux1394-devel mailing list if you find a device that requires this.
NOTE: If you link sbp2 statically into the kernel (instead of configuring it as a loadable module), you can use the above module options on the boot loader's kernel command line. You have to prepend "sbp2." to the options then.
- SCSI support (scsi_mod)
- high-level SCSI driver: sd_mod (disk), st (tape), sr_mod (CD-ROM), and sg (generic/disc burner/scanner)
- ohci1394 or pcilynx
Udev automatically creates and destroys device files such as /dev/sda (HDD), /dev/sda1 (partition on a HDD), /dev/sr0 (DVD-ROM/R/W) and so on when SBP-2 devices are plugged in and plugged out. Udev also creates symbolic links like /dev/disk/by-id/ieee1394* and /dev/disk/by-path/*ieee1394* which can for example be used for static fstab entries.