[CentOS] Multi-Card reader (SD, MMC, etc) and CONFIG_SCSI_MULTI_LUN kernel option in 34.0.2. Workaround

Fri Aug 11 06:42:51 UTC 2006
J.J. Garcia <stigmatedbrain at gmail.com>

El jue, 10-08-2006 a las 09:45 -0500, Aleksandar Milivojevic escribió:
> Quoting "J.J. Garcia" <stigmatedbrain at gmail.com>:
> 
> > Hi folks,
> >
> > Im trying to get a multi-card reader on centos (SD, MMC, and so, 4 card
> > slots) and i have read (http://www.cs.sfu.ca/~ggbaker/personal/cf-linux)
> > that CONFIG_SCSI_MULTI_LUN should be enabled on kernel (=Y) but current
> > 34.0.2 doesn't have it enabled by default, is there any particular
> > reason to not be enabled?
> 
> Because some broken SCSI devices choke on that, and you don't really need it.
> 
> > By the other hand i've also tweak the /etc/grub.conf file to boot the
> > kernel with max_luns=32 and results are the same, only scsc lun=0 is
> > recognized.
> 
> Not sure, but on command line you might need to specify for what  
> module the option is (also, it is loadable module, not part of static  
> kernel).  Try passing "scsi_mod.max_luns=32" to the kernel.

Well, finally i found a link following your steps (same as the Will
Hooper mail about 'max_luns' instead of using 'CONFIG_SCSI_MULTI_LUN'):

http://www.redhat.com/archives/kickstart-list/2005-August/msg00058.html

In our case, if i understand correctly

# echo "options scsi_mod max_luns=32" >> /etc/modprobe.conf  
# cd /boot 
# cp initrd-2.6.9-34.0.2.EL.img initrd-2.6.9-34.0.2.EL.img.last
# mkinitrd -f -v initrd-2.6.9-34.0.2.EL.img 2.6.9-34.0.2.EL
# reboot 

I did that but in another test machine using centos-plus kernel instead
the 2.6.9-34.0.2.EL kernel (i'll do next days on that kernel) and
finally after booting IT WORKED as you said !!! 

Now in dmesg you have:

<...>
SCSI subsystem initialized
Initializing USB Mass Storage driver...
scsi0 : SCSI emulation for USB Mass Storage devices
  Vendor: USB2.0    Model: CardReader CF     Rev: 0100
  Type:   Direct-Access                      ANSI SCSI revision: 02
  Vendor: USB2.0    Model: CardReader SM XD  Rev: 0100
  Type:   Direct-Access                      ANSI SCSI revision: 02
  Vendor: USB2.0    Model: CardReader MS     Rev: 0100
  Type:   Direct-Access                      ANSI SCSI revision: 02
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0
Attached scsi removable disk sdb at scsi0, channel 0, id 0, lun 1
Attached scsi removable disk sdc at scsi0, channel 0, id 0, lun 2
  Vendor: USB2.0    Model: CardReader SD     Rev: 0100
  Type:   Direct-Access                      ANSI SCSI revision: 02
Attached scsi removable disk sdd at scsi0, channel 0, id 0, lun 3
USB Mass Storage device found at 3
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
<...>

But since in initrd image im not using the scsi facilities (at least for
this subject and after watching the mkinitrd log msg) i replaced the
original one with the one i re-created and i just simple left the
modprobe.conf with the new conf for scsi_mod max_luns=32, rebooted and
the results were the same, the card-reader was recognized since the LUNs
were taken in account as expected.

That leads to me to conclude that there's no need in rebuilding the
initrd image, correct me if im wrong, but simple tu use the correct
parameter for change the LUNs observed in scsi_mod.


> 
> Have you tried putting it into /etc/modprobe.conf (options scsi_mod  
> max_luns=32) and rebuilding initrd image after that?  That's the way I  
> was doing it so far, and it always worked for me.
> 
> Also, since it is really USB device, could it be it doesn't have LUNs at all?
> 


Thank's both you and Will

Jose.


P.S: Nice Photos...