Sbp2

From IEEE 1394 FireWire Wiki
(Difference between revisions)
Jump to: navigation, search
(import from http://wiki.linux1394.org/sbp2, last edited 2007-12-31)
 
(sbp2 has been removed in Linux 2.6.37)
 
Line 1: Line 1:
 
  
 
__TOC__
 
__TOC__
Line 7: Line 6:
  
 
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.
 
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.
 +
 +
<span style="color:red;">sbp2 has been removed in Linux 2.6.37.  The same functionality is now provided by the firewire-sbp2 driver.</span>
  
  

Latest revision as of 13:36, 5 June 2011

Contents


[edit] Description

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.

sbp2 has been removed in Linux 2.6.37. The same functionality is now provided by the firewire-sbp2 driver.


[edit] Hotplug

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.).


[edit] 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.


[edit] Parameters

max_speed
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_io
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.
max_sectors
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.
exclusive_login
(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_inquiry_hack
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.


[edit] Dependencies

  • SCSI support (scsi_mod)
  • high-level SCSI driver: sd_mod (disk), st (tape), sr_mod (CD-ROM), and sg (generic/disc burner/scanner)
  • ieee1394
  • ohci1394 or pcilynx


[edit] /dev

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.

Personal tools