Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
Parcheando el núcleo

Kernel
Por JulHer
departamento con_calzador , Sección Tecnología
Puesto a las Tue Sep 24th, 2002 at 12:25:32 AM CET
Voy a contar como le hice un retoque al núcleo para que mi escaner recién comprado sirviera para algo. Que nadie espere un curso avanzado de programación ni nada parecido, simplemente es algo que me surgió tener que hacer y a lo mejor le sirve a alguien. Aviso que es largo.

 


Resulta que una de mis aficiones es la fotografía. Otra los ordenadores. Estaba claro que me tenía que comprar un escáner de esos con soporte para escanear negativos y diapositivas. Cuando por fín tengo tiempo me pongo a ello, visito la página de sane y la de los escáneres USB... en fín, que me decido por un EPSON 1660 Photo. Una de las razones es que en la página de los escáner USB recomiendan EPSON por haber ellos colaborado como nadie para programar los drivers, con lo que supongo que estará bien soportado. (Pues si, señores de Epson, por lo menos han conseguido conmigo un cliente por su apoyo a linux).

En fin, que como todos mis ordenadores son del año de la polca pues no tienen puertos USB, con lo que hay que buscarse una tarjeta USB para pincharla en un PC para que el escáner pueda trabajar. Sí, hay escáners paralelo y SCSI, pero la diferencia de precio aconseja claramente ir por el camino del USB.

Ya dije que mis ordenadores son del año de la polca, pues bién, yo también, con lo que lo del USB era para mí una tecnología algo así como futurista y desconocida, así que me voy a #escomposlinux (un canal de la red de irc de ecol, véase www.escomposlinux.org para mas detalles), saludo a los amiguetes, charlamos un rato de la vida y de la muerte, y cuando están descuidados y en plan off-topic pregunto: ¿alguien sabe como le pongo una tarjeta USB a un linux?... silencio sepulcral... pero mi amigo linuxete me da un gran consejo: "Está chupado", dice, "compra la mas barata que encuentres y va sola". Como linuxete me inspira cierta confianza, voy a una tienda, miro precios, y me compro una tarjeta Conceptronic, que me da dos puertos USB y cumple con el estándar USB 1.0... efectivamente me salió muy barata, si...

Bueno, pues a compilar otro kernel mas... el manual de la tarjeta jura y perjura que cumple con la norma UCHI. Consulto la ayuda de la configuración del kernel y veo que hay dos posibilidades, UHCI y OHCI, y además indica que el UHCI es la norma en el mundo Intel. Con las ideas claras, elijo UHCI. El siguiente paso es elegir el driver scanner en el soporte USB... y poco mas. Compilo a la primera, instalo el núcleo, arranco... y una pila de errores que da gloria verla... que no encuentra nada que tenga que ver con UHCI. Estupendo, la primera en la frente... ¿estará mal la tarjeta?... después de varias vueltas me da por mirar la tarjeta y veo un estupendo chip que anuncia al mundo un OHCI como una casa... vale, documentación de Conceptronic a la basura. El siguiente paso es compilar con soporte para OHCI y con el escáner encendido pruebo el siguiente núcleo... carga bien el USB (¡¡bien!!) y me sigue diciendo...

19:35:44 hradcany kernel: Manufacturer: EPSON
19:35:44 hradcany kernel: Product: EPSON Scanner
19:35:44 hradcany kernel: usb.c: USB device 4 (vend/prod 0x4b8/0x11e) is not claimed by any active driver.

Otra en la frente... que si... que el escaner habla con el puerto, pero le da unos valores de fabricante y producto que no reconoce el driver del escaner. Vaya, así que como este escáner es muy nuevo aún no está soportado (#@!##).

Aprovecho para mirar en la documentación del kernel todo lo que hay sobre usb y escáners... son un par de ficheros muy claritos donde te enseñan todo, incluso a crear el dispositivo /dev/scanner0 si es que no lo tenías... como la primera parte no va muy bien que digamos, voy adelantando trabajo instalando el sane y xsane, que son necesarios para trabajar con los escáners.

Ya mas relajado, y pensando en los muertos del escáner, me decido a echarle un ojo al código del kernel, para ver como define los escáners y tal... hay un maravilloso scanner.c llenito de funciones... anda, y un scanner.h que promete. Lo abro, busco "epson" y me encuentro con una tabla tan sencilla de leer como esto:

/* Seiko/Epson Corp. */
{ USB_DEVICE(0x04b8, 0x0101) }, /* Perfection 636U and 636Photo */
{ USB_DEVICE(0x04b8, 0x0103) }, /* Perfection 610 */
{ USB_DEVICE(0x04b8, 0x0104) }, /* Perfection 1200U and 1200Photo*/
{ USB_DEVICE(0x04b8, 0x0106) },/* Stylus Scan 2500 */
{ USB_DEVICE(0x04b8, 0x0107) }, /* Expression 1600 */
{ USB_DEVICE(0x04b8, 0x010a) }, /* Perfection 1640SU and 1640SU Photo */
{ USB_DEVICE(0x04b8, 0x010b) }, /* Perfection 1240U */
{ USB_DEVICE(0x04b8, 0x010c) }, /* Perfection 640U */
{ USB_DEVICE(0x04b8, 0x010e) }, /* Expression 1680 */
{ USB_DEVICE(0x04b8, 0x0110) }, /* Perfection 1650 */

Ajá, ahí define los valores de fabricante y producto... así que si le añado algo así:

{ USB_DEVICE(0x04b8, 0x011e) }, /* Perfection 1660 */

pues a lo mejor traga...compilo, instalo y...

Pues si que traga, y el xsane, que es el programa para capturar las imágenes del escaner, ya va a la primera y sin problemas.

Otra cosa...como mas de uno se habrá dado cuenta, si es que alguien está a estas alturas leyendo, todo este rollo se reduce a una sola línea en el /etc/modules.conf, la línea sería

options scanner vendor=0x04b8 product=0x011e

si hubiera compilado el driver del escáner como módulo, pero bueno, así hemos echado un ratillo.

< Hilos en Linux (16 comments) | MySQL con motor de transacciones (5 comments) >
Enlaces Relacionados
· escomposlinux.org
· sane
· USB
· EPSON 1660 Photo
· www.escomposlinux.org
· More on Kernel
· Also by JulHer

Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

Ver: Modo: Orden:
Parcheando el núcleo | 1 comentarios (1 temáticos, editoriales, 0 ocultos)
Lo bueno del código abierto (none / 0) (#1)
por jcantero (jcantero@agujero-negro.escomposlinux.org) a las Wed Sep 25th, 2002 at 08:12:16 PM CET
(Información Usuario) http://www.escomposlinux.org/jcantero/

A mí me pasó algo parecido con la tarjeta de sonido del portatil, referente en este caso a los valores PCI. Me disponía ya a parchear el kernel, pero descubrí que ALSA ya lo soportaba, así que dejé los experimentos para otro momento. O:-)

Aun así, que haríamos sin los fuentes... ;-)

--
"Papá, ¡Internet es más que una red pornográfica global!" -- Lisa Simpson


 
Parcheando el núcleo | 1 comentarios (1 temáticos, editoriales, 0 ocultos)
Ver: Modo: Orden:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda