From Bugzilla Helper: User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20021003 Description of problem: Dear developers, I got a Filand 6-in-1 cardreader with multiple slots. It's upper slot is SCSI LUN 0, and the lower slot is LUN 1. Therefore to make it works properly, the kernel must support multiple SCSI LUN, i.e. set CONFIG_SCSI_MULTI_LUN=y in the .config file. Unfortunately the RHL kernel has turned it off. However, as this kind of cardreaders are getting popular, I suggest the kernel should enable multiple LUN by default. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: 1. Press Ctrl-Alt-F1 and login as root. 2. Attach a Filand 6-in-1 cardreader to one of the USB ports (actually the situation should be the same for all kinds of cardreaders those support multiple card types) 3. Type cat /proc/scsi/scsi 4. Observe the LUN number detected. Actual Results: The kernel only detects LUN 0 (the LUN of the upper slot). The lower slot cannot be detected Expected Results: To make the lower slot working, it should be able to detect LUN 1. Additional info: To make this work, I have to set the parameter CONFIG_SCSI_MULTI_LUN=y in the config file and re-compile the kernel. Then it works: [hleung@localhost linux.20-ac2]$ cat /proc/scsi/scsi Attached devices: Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: Model: USB Card Reader Rev: 3.02 Type: Direct-Access ANSI SCSI revision: 02 Host: scsi0 Channel: 00 Id: 00 Lun: 01 Vendor: Model: USB Card Reader Rev: 3.02 Type: Direct-Access ANSI SCSI revision: 02 [hleung@localhost linux.20-ac2]$
there is a problme with making this the default: there are quite a few scsi devices that will just lock up the scsi bus when this is in use. HOWEVER the good news is that this is a runtime option....
following up on the last update: this can be configured at runtime - add the following to /etc/modules.conf: options scsi_mod max_scsi_luns=8 If you have something with more than 8 luns, change 8 to something higher. (4 is probably a reasonable value as well, 8 is pretty arbitrary.) The problem is that if you have a real scsi controller - this won't have any effect. See, if you have scsi hardware mkinitrd will include mod_scsi in your initial ramdisk - so the module will get loaded without being passed that parameter. One solution is to pass mkinitrd the --omit-scsi-modules - the other is to pass the argument to the kernel via the bootloader. Unfortunately, these card readers are becoming more common - and this sort of "black magic" to get them working is really annoying to a "normal user" (read windows convert) not accustomed to tweaking config files.
this is why we add all "known good" ones to the whitelist so that this becomes automatic
Another for the whitelist: vend/prod 0x781/0x830 is a SanDistk ImageMate. For more, see http://www.linuxjournal.com/article.php?sid=6687
Ben, Thanks for the information. In order to update the whitelist I need the exact vendor ID and product ID from the SCSI Inquiry data. This is shown by Linux in the /proc/scsi/scsi file after the device is configured. Does this device show exactly "SanDisk" and "ImageMate" (case matters)? Thanks.
Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: SanDisk Model: ImageMate CF-SD1 Rev: 0100 Type: Direct-Access ANSI SCSI revision: 02
Another for whitelist (Cbox 3 5 1/2 bay with 6in1 card reader): Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: CBOX3 Model: USB Storage-SMC Rev: 300A Type: Direct-Access ANSI SCSI revision: 02
Out of curiosity, where does this whitelist live? Is it a file or is it compiled into the driver or kernel?
For the 2.4 kernel, the whitelist is in drivers/scsi/scsi_scan.c This is compiled and linked into scsi_mod.o.
A fix for this problem has just been committed to the RHEL3 U3 patch pool this evening (in kernel version 2.4.21-15.12.EL).
To be clear, the requests in comment #4 through 7 have been taken care of in RHEL 3 U3: + {"SanDisk", "ImageMate", "*", BLIST_FORCELUN}, + {"CBOX3", "USB", "*", BLIST_FORCELUN}, We will not be able to add the USB cardreader that was initially requested in this BZ, because the "vendor" field in the Inquiry data is blank.
Will this also be taken care of in Fedora? Or should I create another bug report for that?
An errata has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on the solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2004-433.html