#define BLIST_LARGELUN 0x200 /* LUNs past 7 on a SCSI-2 device */ #define BLIST_REPORTLUN2 0x20000 /* try REPORT_LUNS even for SCSI-2 devs (if HBA supports more than 8 LUNs) */ #define BLIST_SPARSELUN 0x040 /* Non consecutive LUN numbering */For devices that are not yet listed, these options can be passed as options to the scsi_mod kernel module, by either putting it into module options by passing options on the kernel command line.
| Option (SLES9 + SLE10) | Option (SLES8) (works on SLES9/10 kernel commandline as well) |
Description |
|---|---|---|
| default_dev_flags=0x20000 | scsi_reportlun2=1 | Instruct the kernel to try the REPORT_LUNS command even for SCSI-2 devices in case the scsi host controller (HBA) does report to support more than 8 LUNs. This option is safe as the broken USB devices that lockup on REPORT_LUNS are on the USB controller which does not support more than 8 LUNs. |
| default_dev_flags=0x200 | scsi_largelun=1 | Try to scan beyond LUN 7 even for SCSI-2 devices. |
| default_dev_flags=0x040 | scsi_sparselun=1 | Continue in the sequential scan for LUNs until max_luns even if a LUN has been reported not to exist. |
You can combine more than one option. So to pass all three options, use default_dev_flags=0x20240 or scsi_largelun=1 scsi_reportlun2=1 scsi_sparselun=1 respectively.
The syntax to pass this on the command line is to put
scsi_mod.default_dev_flags=... there (SLES9+10 -- 2.6 kernels)
or simply scsi_...=1 (all SLES kernels).
To build it into your initrd, put
options scsi_mod default_dev_flags=...
into /etc/modprobe.conf.local (SLES9+10)
or
options scsi_mod scsi_...=1
into /etc/modules.conf (SLES8 only).
Note that the SLES8 syntax is only supported on SUSE kernels, whereas the newer syntax is supported in all 2.6 kernels and even our reportlun2 feature got into the 2.6.7 kernel.
The syntax for it on 2.6 kernels is
dev_flags=VENDOR:MODEL:FLAGS[,VENDOR2:MODEL2:FLAGS2[,..]]
The flags are the same as described above.
You need to prefix with scsi_mod. if passing on the
kernel command line.
For the SLES8 kernel, the syntax is
llun_blklst=C,B,T[,C,B,T[,..]]
It sets BLIST_LARGELUN | BLIST_SPARSELUN for the devices
on controller number C, bus number B (normally 0)
and for target ID T. Up to 8 devices can be modified
this way.
The REPORT_LUNS scanning method can also result in strange LUN
numbers to get reported to the Linux stack; this happens if the
device uses the more esoteric formats to report LUNs. You can avoid
this by setting the BLIST_NOREPORTLUN flag.
This translates to to the flag value of 0x40000 for the 2.6
kernel, or scsi_noreportlun=1 on the kernel commandline.