UDEV y los dispositivos USB ( y firewire )

Hola, supongo que algunos ya conocereis esta componente de linux, disponible desde el kernel 2.6, se encarga de mantener una lista de los dispositivos conectados al sistema y crear la entrada en /dev oportuna.
Quizas, si alguna vez habeis tenido varios dispositivos USB o firewire, os habreis dado cuenta que su nombre (sda, sdb, etc) varia segun el orden en que los enchufeis al equipo. Si un dia enchufais primero la camara esta sera sda, y despues enchufais el Ipod, por ejemplo, y sera sdb. Pero si al dia siguiente lo haceis al reves, el ipod sera sda, y la camara sera sdb. El problema de esto, es que tenias que estar constantemente modificando el fstab.
Con udev se acaba este problema, puesto que entre otras cosas, puedes crear unos archivos de reglas, en el cual especificando como detectar un dispositivo conocido (por ejemplo, por su nombre de modelo) le pudes asignar un enlace con un nombre INVARIABLE que aparecera en /dev cuando lo conectes, ya sea el dispositivo sda, sdb..etc.

asi, si creamos una regla por la cual detectemos el ipod por su nombre, y le ordenemos que cree un enlace al dispositivo en /dev llamado ipod, en el fstab solo tendremos que poner /dev/ipod2 (el 2 es de la particion) y despreocuparnos por si es el dispositivo sda, o sdb o el que sea, y funcionará!

algunos links de interes:

http://linuca.org/body.phtml?nIdNoticia=259
http://www.badopi.org/node/630?PHPSESSID=bfffdd89321887ec566b3630640cfa4b

bien, ahora el problema, he conseguido hacer una regla para el ipod y funciona, pero intento hacer una para el lector multitarjetas y no lo consigo.

El lector es un conceptronic ( por si alguien lo tiene, pero no es importante) ya ha funcionado alguna vez en linux, aunque cuando le daba la gana.
La cosa, en bus, no se si tengo que poner scsi o usb, si alguien tiene alguna regla para un lector multiple de tarjetas se la agradeceria que me la postease. De todas maneras, con la mandrake 10.1 lo detectaba (antes de meter yo las zarpas) pero no conseguia montar las tarjetas.
Tengo el mismo lector, de las tarjetas sólo te crea nodo si están introducidas antes de conectar el cable USB.

Tengo un pelín de prisa, así que paso a listarte la configuración udev que yo tengo para estos dispositivos, un poco cutre, pero funciona ;-).

#Nokia N-gage, montada en /dev/ngage
bus="scsi", SYSFS{vendor}="Nokia", SYSFS{model}="N-Gage", NAME="ngage%n"

#Conceptronic lector tarjetas de memoria 8-en-1
bus="scsi", SYSFS{vendor}="ICSI", SYSFS{model}="CardReader CF", NAME="cardreader/cf%n"
bus="scsi", SYSFS{vendor}="ICSI", SYSFS{model}="CardReader MS", NAME="cardreader/ms%n"
bus="scsi", SYSFS{vendor}="ICSI", SYSFS{model}="CardReaderMMC/SD", NAME="cardreader/mmc-sd%n"
bus="scsi", SYSFS{vendor}="ICSI", SYSFS{model}="CardReader SM", NAME="cardreader/sm%n"

Edito:

lo anterior estaba un poquito mal, en realidad fué la primera versión que hice, actualmente utilizo otra un poco modificada, más lógica y funcional (con las prisas me equivoque de archivo e hice copy-and-paste del que no era).

#Nokia N-gage, nodo en /dev/ngage
BUS="scsi", KERNEL="sd?1", SYSFS{model}="N-Gage", NAME="%k", SYMLINK="ngage"

#Conceptronic lector tarjetas de memoria 8-en-1
BUS="scsi", KERNEL="sd?1", SYSFS{model}="CardReader CF", NAME="%k", SYMLINK="cardreader/cf"
BUS="scsi", KERNEL="sd?1", SYSFS{model}="CardReader MS", NAME="%k", SYMLINK="cardreader/ms"
BUS="scsi", KERNEL="sd?1", SYSFS{model}="CardReaderMMC/SD", NAME="%k", SYMLINK="cardreader/mmc-sd"
BUS="scsi", KERNEL="sd?1", SYSFS{model}="CardReader SM", NAME="%k", SYMLINK="cardreader/sm"
1 respuesta