Configurar Lector de tarjetas ENE en Linux
Estoy trabajando con un portátil (Acer travelmate 5210 con Kubuntu Feisty) con lector de tarjetas EME, que no habia manera de hacer que funcione.
Bueno, me ha costado un poquito pero aquí os dejo un pequeño howto.
En la versión actual del kernel deja de funcionar el lector de tarjetas, siendo necesario aplicar un parche al kernel, no se me asusten que no es grave.
Lo primero de todo, instalar las fuentes del kernel.
>sudo apt-get-updateCreamos un archvo con el patch, copia y pega el siguiente texto en un archivo, por ejemplo con kate, y guardalo en /usr/src ; recuerda debes arrancar kate como root para poder guardarlo en un directorio restringido a los usuarios. Eeste ejemplo lo llamaremos enepatch.
>sudo apt-get install linux-source
> Y despúes las extraemos
> cd /usr/src
> sudo tar xvfj linux-source-2.6.20.tar.bz2y hacemos el link a /usr/src/linux
> sudo rm linux
> sudo ln -s linux-source-2.6.20 linux
El patch está bajado de aquí y tiene una pequeña modificación hecha por mi para que funcione en nuestro sistema (simplemente he corregido las rutas a los archivos).
diff -Bbur linux/drivers/mmc/sdhci.c linux-2.6.20-suspend2-r4/drivers/mmc/sdhci.c
--- linux/drivers/mmc/host/sdhci.c 2007-05-11 01:43:16.000000000 +0300
+++ linux/drivers/mmc/host/sdhci.c 2007-05-11 01:51:00.000000000 +0300
@@ -74,6 +74,14 @@
.driver_data = SDHCI_QUIRK_SINGLE_POWER_WRITE,
},
+ {
+ .vendor = PCI_VENDOR_ID_ENE,
+ .device = PCI_DEVICE_ID_ENE_CB712_SD_2,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .driver_data = SDHCI_QUIRK_SINGLE_POWER_WRITE,
+ },
+
{ /* Generic SD host controller */
PCI_DEVICE_CLASS((PCI_CLASS_SYSTEM_SDHCI <<>
y aplicamos el parche (asegúrate que estás en /usr/src/)
> sudo cat enepatch | patch -p0
Si no nos ha dado ningún error el parche se ha aplicado a las fuentes del kernel, ahora queda compilar el módulo necesario. Siempre desde /usr/src
> sudo make SUBDIRS=drivers/mmcy esto nos debe haber generado los archivos .ko parcheados. Entramos al directorio.
> cd /usr/src/linux/drivers/mmc/host/borramos el módulo actual y probamos el nuestro:
> sudo rmmod -f sdhci
> sudo insmod ./sdhci.ko
En este momento si tienes la tarjeta de memoria en su ranura ya te debería aparecer el asistente de KDE avisándote de que se ha detectado un nuevo dispositivo.
Ahora solo falta un detalle, copiar el módulo parcheado sobre el antiguo para que se cargue automáticamente el modificado:
> sudo cp ./sdhci.ko /lib/modules/2.6.20-16-generic/kernel/drivers/mmc/host/Si vuestra versión del kernel es otra, obviamente el nombre del directorio cambiará.
Así es como lo he hecho yo paso a paso y ahora me funciona perfectamente.
Espero que os sirva de ayuda.




14 comentarios:
Hola, intento configurar el lector de tarjetas de mi travelmate 4152 y al poner en consola
$ sudo apt-get update linux-sourceY
me da el siguiente mensaje
E: El comando de actualización no toma argumentos
Mi gozo en un pozo... de momento. Me he saltado algún paso?
Gracias por tu tiempo
Ya está corregido omali exists, era un "error tipográfico". No olvides decirnos por aqui si todo te va bien.
Ok, te sigo empirio... llego hasta:
sudo tar xvfj linux-source-2.6.20.tar.bz2
me descomprime un montón de archivos, y... no sé cómo hacer el link a /usr/src/linux
he intentado usar el comando link y no me quedo aquí, sigo buscando en foros.
Gracias!
Perdona pero estaba de vacaciones y he vuelto hoy. El comando es ln -s "loquequieras linkar' 'el link que quieras crear' (o sea sudo ln -s /usr/src/linux-source-2.6.20 /usr/src/linux)
Hola, mi nick es Blacko, encantado!
Mira tengo un problemon con tu parche...
verás.. yo creo ese parche llamado enepatch y lo pongo en usr/src.
hago todo todito lo que dices, pero al poner en el terminal:
sudo cat enepatch | patch -p0
la consola me salta error, dice:
patching file linux/drivers/mmc/host/sdhci.c
Hunk #1 FAILED at 74.
patch: **** Can't rename file linux/drivers/mmc/host/sdhci.c to linux/drivers/mmc/host/sdhci.c.orig : Permission denied
He de decir tambien que el parche esta mal escrito y he tenido que retocar varios errores de sintaxis que me detectaba la consola.. pero bueno el problema esta ahora aki.. que no me deja....
Gracias!!!!
hola Blacko.
Dime los errores exactos a ver que te dice.
el problema es que no lo haces como root y no tienes permiso para tocar los archivos.
Aquí Blacko otra vez, qué tal? :D
Gracias por responderme, mira... te explico lo que hago y los errores que me da, vale?
Pues yo lo q hago es abrir una terminal y tecleo:
sudo apt-get update ... y se "updatea" correctamente ;)
luego tecleo:
sudo apt-get install linux-source
y sin problemas ;)
luego extraigo. El link lo hago de la siguiente manera, dime si es correcta o no:
sudo ln -s /usr/src/linux-source-2.6.20 /usr/src/linux
así es como hago el link, y no me da ni error ni nada... bueno continuo:
Luego con un edito de texto creo un archivo llamado enepatch, y su contenido lo copio y pego de tu post, es decir Copiar Y pegar, COPIA EXACTA:
diff -Bbur linux/drivers/mmc/sdhci.c linux-2.6.20-suspend2-r4/drivers/mmc/sdhci.c
--- linux/drivers/mmc/host/sdhci.c 2007-05-11 01:43:16.000000000 +0300
+++ linux/drivers/mmc/host/sdhci.c 2007-05-11 01:51:00.000000000 +0300
@@ -74,6 +74,14 @@
.driver_data = SDHCI_QUIRK_SINGLE_POWER_WRITE,
},
+ {
+ .vendor = PCI_VENDOR_ID_ENE,
+ .device = PCI_DEVICE_ID_ENE_CB712_SD_2,
+ .subvendor = PCI_ANY_ID,
+ .subdevice = PCI_ANY_ID,
+ .driver_data = SDHCI_QUIRK_SINGLE_POWER_WRITE,
+ },
+
{ /* Generic SD host controller */
PCI_DEVICE_CLASS((PCI_CLASS_SYSTEM_SDHCI <<>
guardo y lo meto en usr/src/
Tecleo:
sudo cat enepatch | patch -p0
y me sale lo siguiente:
patching file linux/drivers/mmc/host/sdhci.c
patch: **** malformed patch at line 5: .driver_data = SDHCI_QUIRK_SINGLE_POWER_WRITE,
es decir, que el parche está mal escrito en esa linea (la linea 5), y lo que he hecho ha sido buscar un parche parecido por internet... y esa linea la escriben de otra manera, así que la retoco conforme el otro modelo de parche, y ese error ya no me salta... y cuando ya no me da ningun error de lineas, hago lo de sudo cat enepatch | patch -p0 y me dice lo siguiente:
patching file linux/drivers/mmc/host/sdhci.c
Hunk #1 FAILED at 74.
patch: **** Can't rename file linux/drivers/mmc/host/sdhci.c to linux/drivers/mmc/host/sdhci.c.orig : Permission denied
segun entiendo yo en este error, está intentando cambiarle el nombre a ese archivo??? porque no le deja el nombre como está??? porque le intenta añadir eso de "orig" al final???çNo entiendo que me pasa... bueno segun todo lo que te he dicho, espero que tengas informacion suficiente como para poder decirme que me pasa :)
Gracias de veras, estaba esperando tu respuesta con ansias jejejej bueno me alegro de que estes aki, y eso... aver que logramos.. GRACIAS MILES ;)
Hola soy Blacko otra vez, mira he solucionado lo anterior pero me aparece un nuevo error:
root@cuca:/usr/src# sudo cat enepatch | patch -p0
patching file linux/drivers/mmc/host/sdhci.c
Hunk #1 succeeded at 126 with fuzz 2 (offset 52 lines).
Hola,
a mí también me sale el error "patch: **** malformed patch at line 5: .driver_data = SDHCI_QUIRK_SINGLE_POWER_WRITE,"
¿Qué hay que cambiar en el patch para que solucionarlo?
Gracias
Comprueba que no haya perdido el formato con el copy & paste que es muy habitual, si me mandas un mail te envio el archivo con el parche, yo lo he vuelto a hacer esta misma mañana y no me ha dado ningún problema.
Hola, tengo un Acer Travelmate 4152WLMi, el cual no consigo hacer funcionar ni los infrarrojos ni el lector de tarjetas, y buscando he llegado hasta aquí.
Mi pregunta es:¿por qué todas la distribuciones que conozco (respectivos foros) indican que este portátil no tiene soporte para infrarrojos ni para el lector de tarjetas, si tú dices que "En la versión actual del kernel deja de funcionar el lector de tarjetas, siendo necesario aplicar un parche al kernel, no se me asusten que no es grave."?
Perdón por el chorizo de post.
Hola me llamo Alfredo.
He estado leyendo el blog y no encuentro la solucion al problema del parche, es decir, ¿cual es el codigo válido para el parche? He estado buscando por internet pero no lo encuentro.
A continuacion les adjunto mi e-mail por si quieren contestar a mi correo, les estaria muy agradecido: balulu3@gmail.com
Sin más, muchas gracias.
Hola he estado intentando instalar el patch, la version de mi kernel es .24 en lugar de .20.
He modificado eso y funciona pero me da el error ese de linea 5 incorrecta.
Me puedes mandar a mi tambien el patch que le dijiste antes a un usuario???
Gracias de antemano.
Por cierto, mi correo es zirogirls@hotmail.com
Hola
Tengo un Aser Aspire 5100 Ubuntu 8.04, mi lector de tarjeta SD no me detecta nada.
No se como instalar el drive o no se que deba de hacer, espero me puedan ayudar, ya que es el mejor foro que encontrado.
Gracias de antemano
Publicar un comentario en la entrada