Añadiendo soporte al kernel para un lector de multitarjetas

Si usted usa un kernel ya compilado por su distribución, no tendrá problemas con lectores multitarjetas usb; sin embargo si usted ha compilado su propio kernel deberá añadir soporte para este tipo de dispositivos. En este tutorial se le indicará que opciones del kernel Linux debe compilar para añadir soporte a un lector multitarjetas usb.

Recompilando el kernel
Dado que Linux trata los dispositivos usb y firewire como dispositivos scsi, es necesario el subsistema scsi. Puesto que el interface sata también hace uso del subsistema scsi, casi con total seguridad usted habrá añadido soporte para scsi. En cualquier caso, nunca viene mal asegurarse:

root@agd-desktop:/usr/src/linux - .config - Linux Kernel ConfigurationDevice Drivers --->
  SCSI device support --->
    -*- SCSI device support
    <*> SCSI disk support
    <*> SCSI generic support
    [ * ] Probe all LUNs on each SCSI device

Además deberá añadir soporte para dispositivos de almacenamiento usb, concretamente precisará:
root@agd-desktop:/usr/src/linux - .config - Linux Kernel ConfigurationDevice Drivers --->
  [ * ] USB support --->
    <*> Support for Host-side USB
    <*> EHCI HCD (USB 2.0) support
    <*> UHCI HCD (most Intel and VIA) support
    < > OHCI HCD support
    <*> USB Mass Storage support

Recuerde que el driver EHCI gestiona los dispositivos usb 2.0, mientras que los drivers UHCI y OHCI gestionan los drivers usb 1.x. Las placas actuales suelen integrar controladores usb EHCI/UHCI, sin embargo deberá asegurarse que tipo de controlador usa su placa. Para ello puede recurrir al comando lspci [+/-]

Por último solo le queda compilar el kernel, agregarlo a su grub y reiniciar.

Identificando el lector desde consola
Si usted usa un gestor de ventanas, como gnome o kde por ejemplo, él solo se encargará de detectar y automontar las tarjetas de memoría introducidas en su lector. Sin embargo si su entorno no proporciona esta función, ha dejado de funcionar o simplemente quiere aprender a usar la consola, siga leyendo.

Para ello nos ayudaremos de las utilidades sg3_utils, las cuales permiten trabajar con dispositivos scsi genéricos. Con el comando sg_map podrá saber hacia que nodo (/dev/sdX) se están mapeando los dispositivos que dependen del controlador scsi genérico sg (/dev/sgX). Otro comando de utilidad es sg_scan, el cual escanea en busca de dispositivos /dev/sgX.

agd-desktop # sg_map -i
/dev/sg0      /dev/sda     ATA               OCZ-VERTEX2              1.11
/dev/sg1      /dev/sdb      ATA              TOSHIBA MK5055GS   FG00
/dev/sg2      /dev/sdc      ATA              ST31500341AS               CC1H
/dev/sg3      /dev/sdd      ATA              ST31500341AS               CC1H
/dev/sg4      /dev/sde      ATA              ST31500341AS               CC1H
/dev/sg5      /dev/scd0    HL-DT-ST    DVDRAM GH22NS40    NL00
/dev/sg6      /dev/sdf      ATA               ST3200822AS                 3.01
/dev/sg7      /dev/sdg     Generic           STORAGE DEVICE        9732
/dev/sg8      /dev/sdh     Generic           STORAGE DEVICE        9732
/dev/sg9      /dev/sdi      Generic           STORAGE DEVICE        9732
/dev/sg10    /dev/sdj      Generic           STORAGE DEVICE        9732
/dev/sg11    /dev/sdk     Generic           STORAGE DEVICE        9732

Como podrá ver, en mi caso, los dispositivos /dev/sdg al /dev/sdk se corresponden a Generic STORAGE DEVICE, es decir, al lector multitarjetas. Una vez conozca los nodos del dispositivo hacia los que están mapeadas las distintas ranuras del lector de tarjetas, tan solo debe montarlas vía mount o usar fstab para que se monten de forma automatizada al insertar una tarjeta.

agd-desktop # nano /etc/fstab
/dev/sdg1    /mnt/    auto,vfat    noauto,user    0    0
/dev/sdh1    /mnt/    auto,vfat    noauto,user    0    0
/dev/sdi1     /mnt/    auto,vfat    noauto,user    0    0
/dev/sdj1     /mnt/    auto,vfat    noauto,user    0    0
/dev/sdk1    /mnt/    auto,vfat    noauto,user    0    0

Con esta configuración, en caso de que inserte dos tarjetas de memoria al mismo tiempo habría problemas. Si usted va ha insertar dos o más tarjetas al mismo tiempo es probable que desee crear directorios para cada tipo de ranura, como por ejemplo:

agd-desktop # nano      Fichero: /etc/fstab
/dev/sdg1    /mnt/SD          auto,vfat    noauto,user    0    0
/dev/sdh1    /mnt/MMC     auto,vfat    noauto,user    0    0
/dev/sdi1     /mnt/MS         auto,vfat    noauto,user    0    0
/dev/sdj1     /mnt/CF          auto,vfat    noauto,user    0    0
/dev/sdk1    /mnt/MCSD    auto,vfat    noauto,user    0    0

Parea conocer que dispositivo de bloque corresponde con cada ranura del lector de tarjetas, siempre puede usar el método del prueba y error.

0 comentarios:

Publicar un comentario

Recuerde que puede utilizar algunos códigos HTML como <b>para negrita</b>, <i>para cursiva</i> y <a href="URL">para enlaces</a>.