Todo mi gozo en un pozo, compilando un kernel, ratones inalámbricos.

Hace tiempo me compré un ratón inalámbrico para el portatil dado que el anterior, de cable retractil, se lo cargó otro usuario por falta de cuidado al recoger el susodicho. La impaciencia y la economía me llevarón a comprar uno de marca Targus, concretamente el modelo PAWM004. Como todavía confío en la buena voluntad de las personas y seres afines, nunca se me ocurrió pensar que el fabricante había decidido hacer un ratón que no seguía ninguna norma ni protocolo estandar y, por lo tanto, no era compatible con Linux. Así que me encontré con un bonito ratón únicamente compatible con Windows, lo que me forzaba a usar la tableta gráfica con su ratón si quería tener uno externo en Linux, algo que si bien no es muy problemático, no deja de ser más engorroso que el uso del pequeño dispositivo inalámbrico.

Intentando dar con una solución al problema, llegué a una web en la que se afirmaba que añadiendo 6 sencillas líneas al archivo hid-core.c de las fuentes del kernel para, posteriormente, recompilar e instalar el núcleo, se lograba la ansiada compatibilidad.

La compilación del Kernel no es asunto de poca monta, y era una de las cosas que me faltaban por hacer en esto de Linux. Además quería ir cogiendo experiencia porque una de las cuentas que tengo pendientes es la instalación y utilización de Gentoo, que se basa en compilar a medida todo, para conseguir un sistema mucho más eficiente. Así que me puse manos a la obra. Despues de leer no pocas referencias me encontraba con que, siguiera los pasos que siguiera, en el portatil era imposible la compilación, no es que diera error, es que directamente se apagaba el equipo en un momento dado; no de golpe, sino cerrando el sistema. Ignoro la razón por la que ocurre esto y no he logrado encontrar nada al respecto en la red.

Esto me ha llevado hoy a intentar la compilación en el equipo de mi cuarto, un Pentium III a 500MHz con 256MB de RAM. Lo malo es que, al no poder importar la configuración del kernel en uso (el del portatil) he tenido que realizar la configuración como buenamente he podido, a mano… y no estoy del todo seguro de haberlo hecho bien. El caso es que aquí, siguiendo los mismos pasos que en el portatil, la configuración ha finalizado, después de 7 horas de trabajo del equipo.

Por desgracia me encuentro, al instalar el nuevo kernel en el portatil, con que el ratón sigue sin funcionar. Muy sencilla me parecía a mí esa solución, la verdad, pero bueno, la experiencia al menos, me ha servido de toma de contacto con esto de las compilaciones del núcleo del sistema. Siguiente paso, crearme un kernel a medida para este equipo.

P. D. Comprueben que sus periféricos son compatibles con Linux y no chapuzas como mi ratón.

Anuncios

16 comentarios sobre “Todo mi gozo en un pozo, compilando un kernel, ratones inalámbricos.

  1. Mmmh. Si es un ratón inalámbrico, debería comportarse como uno normal. Si es USB, prueba a hacerte (seguro que hasta lo trae) con un adaptador USB al conector tradicional de ratón y pruebalo así. Si no funciona es problema de la comunicación, así que comprueba pilas y si tiene un botón de reset (creo que ese modelo lo tiene) púlsalo para resincronizar con la base. Por cierto, odio los modelos inalámbricos. Yo he vuelto a los cables de toda la vida.

  2. En un portatil no hay conector ps/s que valga, es USB o USB. El problema con los inalámbricos es que no todos utilizan el protocolo USB-Wireless que se supone que es estandar sino que cada uno hace lo que le sale de la minga. En este caso el fabricante ya dice directamente que pasa del tema, que si quieres que devuelvas el ratón… pero eso después de bastante tiempo comprado ya no es factible.

    Por otra parte no es cosa del ratón, ni de las pilas ni de la conexión. En el mismo ordenador funciona perfectamente cuando utilizo Windows.

    En el portatil es en el único en el que tengo inalámbricos, aquí andar con cables es, por un lado pesado, y por otro poco práctico: al recogerlos los cables se enrollan mal, ocupan espacio, se taban, se doblan… al principio, como comenté, recurrí a un modelo con arrollador de cable, que era muy majo y funcionaba muy bien. Pero como no soy el único que lo usa y esas cosas son para personas… pues se acabó por joder el cable y dije que ni uno más.

    Muchas gracias en todo caso.

  3. Para utilizar un dispositivo usb de entrada en el kernel solo hace falta el modulo usb-hid, ni más ni menos. Ya sea alámbrico o inalámbrico y dada la fecha de la que data el post del enlace que remites a estas fechas ese código o uno optimizado a ese es fijo que está en el kernel vanilla (fuentes originales del kernel). Simplemente creará los dispositivos /dev/input/mouse# si tiene activado el controlador antiguo (que por compatibilidad actualmente fijo que si), y además el /dev/input/event# si tiene la nueva interfaz event para dispositivos de entrada.

    Sobre ese tema de los dispositivos usb, suele haber más problema con las tablas de ACPI que generan conflictos haciendo que los dispositivos funcionen incorrectamente, no funcionen, o funcionen hasta que congelan el sistema. (Vease las tablas ACPI hechas solo para el sistema operativo microsoft). Y en ese caso ya sería problema de la placa base y no del dispositivo, con la solución correspondiente, si tienes suerte y el fabricante se ha portado igual hay una actualización de la BIOS con una tabla ACPI correcta.

    Hay portátiles que si tienen entradas ps/2 para el ratón. A parte de los usb.

    Gentoo no se basa en compilarlo a medida todo para tenerlo más optimizado, efectivamente puedes poner las CFLAGS y si te lo curras un poquillo hasta las de enlace pero el aumento de rendimiento debido a esto no es apreciable en gran medida, su mayor beneficio es el compilar lo estrictamente necesario, quitar cierto soporte mediante las USE’s de forma global o a ebuilds concretos.

    Sobre lo de pasar la configuración del kernel de una máquina a otra me extraña mogollón dado que la mayoría de distribuciones por no decir todas de las más usadas, tienen activada la opcion de config a proc config.gz. Con lo que con un simple #zcat /proc/config.gz verás la configuración de dicho kernel.

  4. Por cierto se me olvidaba, compilar un kernel es harto sencillo, diría que de los componentes base de un sistema más faciles de compilar, prueba con glibc. Lo dificil es su configuración y dicha dificultad viene dada de que ha que tener ciertos conocimientos previos antes de embarcarse a ellos sin más, a no ser que solo sea añadir un simple módulo con respecto a una configuración ya hecha.

    Y sobre otra cosa que se me olvidaba de gentoo, lo unico que hay que trastear para instalar efectivamente es el kernel, lo demás el ebuild lo realiza desde su descarga de internet hasta el make install, pero de todas formas no es necesario, usando genkernel puedes hacerlo automático, a parte de initram’s personalizadas etc.

    Offtopic: Por decir que antaño para hacer correr el apache, más php, más mysql en windows todo en conjunto instalandolo cada uno con su respectivo instalador desde la web oficial de cada uno, había que trastear infinitamente más. Lo digo con malicia porque he visto que usas EasyPHP xD. Hoy día sigue siendo más dificil una instalación en windows que en linux de estos paquetes incluso usando un EasyPHP, Appserv o al uso. La ventaja de instalarlo uno mismo es que lo puedes dejar completamente a tu gusto, (php tiene configuraciones posibles muy interesantes más alla de la estándar), a cambio de editar un poco el httpd.conf copiar el php.ini a system porque windwos ya sabemos como es el con sus PATH’s, etc.

  5. Veamos, la supuesta modificación que hay que realizar no se me ha ocurrido a mí sino que ha sido la únca solución documentada que encontré por la red, Se supone que hay que modificar el hid-core.c.

    Efectivamente, el problema deriva de que al fabricante del ratón no se le debió de pasar por la cabeza que existían más SOs a parte de haseforch. Te aseguro que he probado todo lo probable y el cacharro no funciona. No es problema de módulos, ni de configuraciones, ni de drivers nuevos o antiguos. No hay conflictos ni cuelgues: el receptor usb directamente no funciona.

    No, no tengo actualización de la BIOS que, por otra parte, no es antigua. Y portátiles con PS/2 no los veo desde los tiempos de los primeros Pentium 4 Mobile, de cuando llevaban todas las conexiónes en la parte trasera. De esa época data el mío y, aunque tiene las marcas en la carcasa, ya no lleva esos puertos soldados. En cualquier portátil medianamente moderno, desde la omnipresencia de los USB raro es encontrar mucho más que eso. Supongo que pueda haber alguna excepción pero son eso, excepciones. La prueba está en que no hay manera de encontrar ratones de tamaño pequeño con dicha conexión.

    En cuanto a Gentoo no dudo de que sea como dices, pero en la documentación se insiste bastante en el tema de configurar y compilar un kernel a medida. Así que en eso me he basado dado que no tengo expericencia fuera de Debian y sus derivados.

    Apache, PHP y mySQL, junto con un servidor FTP y varias cosas más las tuve corriendo en el mismo equipo en el que tengo ahora mismo EasyPHP bajo una Xubuntu sin entorno gráfico. Igual no soy un mega-gurú del tema, pero me defiendo. El problema viene cuando tienes que usar ese mismo equipo para hacer fotocopias y escaneados y, en particular, quieres que eso se haga pulsando un botón en el escaner: se jodió el pingüino. Entonces volví a recurir a Easy, dado que ya lo había usado para hacer las primeras pruebas con webs cuando no tenía más equipos que los del curro y tenían que tener Windows por cojones. Eso sí, de que es más fácil que con Easy… las narices mías; podremos hacer lo que nos de la gana y configurarlo como queramos, pero la faclidad que da el EasyPHP no me importaría tenerla en Linux; masoquismos los justos.

    No tengo experiencia alguna en configuración del kernel; en los tutoriales que he seguido siempre hacen referencia al uso de la configuración de la máquina en la que estás funcionando. Esto en mi caso obviamente no es posible porque, como digo, en el portatil se me va el tema a la mierda, así que he tenido que configurar a mano, cambiando lo que he creído que debía de cambiar en dichas opciones (empezando por el procesador, las opciones de escalado de velocidad, etc, etc.) Algunas opciones no me sonaban demasiado, pero he de decir que eran las menos.

    Espero tener tiempo para dedicárselo a Gentoo, y entonces posiblemente sea más preciso en mis apreciaciones. Agradezco todas las correcciones y comentarios al respecto, y no me importaría encontrar ciertas cosas con más facilidad, porque luego nos quejamos de que no usa Linux ni dios, pero en este blog los 2 posts más leidos con abrumadora diferencia son los relativos a la instalación de la SB16… y tuve que hacer el pino con las orejas para conseguirlo ya que no encontré lo que se dice mucha información al respecto.

  6. Sobre lo del ratón en ese caso no sabría darte ninguna solución fructífera.

    Lo de gentoo el kernel ya verás te ofrecen alternativas varias, suele ser asi con varias cosas el uso de grub o lilo…etc, del kernel pues si esta la opción de compilarlo entero que si te ves con ganas animo, pero sino te da la opción de utilizar genkernel que al fin al cabo es una herramienta que automatiza ese paso dejandote un kernel si compilado con las opciones del gcc que hayas puesto pero al estilo de las distros pensadas en ejecutarse en cualquier pc metiendo todo lo posible en forma de modulos para luego cargarlos según sea aplicable.

    Lo de Apache y php en gentoo por ejemplo tan sencillo como meter 3 ebuilds (paquetes), el de apache, el de php y el de mysql (eso si el de php con la use de que cree el modulo para apache), y tan sencillo como editar una sola linea en /etc/conf.d/apache2 añadiendo -D PHP4 o -D PHP5 según cual hayas instalador y vayas a usar, e incluso ambas si quieres uso de php4 y 5 simultáneos. Solo es eso para dejarlo como una instalación estilo EasyPHP, solo tiene de complicado en comparación añadir un poco de texto en l archivo de configuración del demonio de apache2, el configurar las uses del php y demás cuando se lleva un tiempecillo con gentoo no tiene ninguna complicación.

    La configuración para sacarla del modo que te he dicho no debería irse a la mierda, solo es necesario que el kernel que te viene tenga una opción activada que es guardar la configuración en /proc/config.gz, que en ese caso mediante el comando que te puse el de #zcat /proc/config.gz te la visualizará, así que si quieres exportarla a un archivo llamemoslé por ejemplo .config-portatil solo tienes que escribir en una consola (#zcat /proc/config.gz >> .config-portatil) lógicamente sin las comillas ni el #, no tienes ni que ejecutar el menuconfig del kernel ni nada, solo saca por salida estándar el contenido de proc/config.gz y la pasa a un archivo .config-portatil que lo creara en el directorio que tengas actual en ese momento en la consola. Luego ese archivo lo pasas al ordenador con el que puedas compilar el kernel y luego desde menuconfig con Load config cargas el archivo de configuración del portatil.

    Sobre la SB16 ISA ya leí el post y me pareció raro, seguramente algún bug introducido con nuevas líneas de código porque yo la usé hace tiempo mediante OSS y con versiones muy iniciales de ALSA sin problemas y desde entonces iba. Haber si para próximas versiones no hay que hacer nada como era antes. Yo la verdad que la tengo desterrada a la pobre.

  7. Dudo que el problema que tengo en el portatil se deba a la configuración, sospecho que se debe al propio aparato; siguiendo los mismos pasos es el único en el que me pasa: sospecho que la temperatura del procesador suba por encima de lo recomendable y sea eso lo que desencadena el apagado. Y digo sospecho porque no lo he comprobado ni tengo demasiadas ganas de hacerlo, la verdad. El equipo de refrigeración me da que está un poco por debajo de lo que necesitaría el procesador (que no dispone de SpeedStep) y cuando lleva un buen rato dando chicha de contínuo aquello se pone que da gusto tocarlo; tengo pensado cambiar el procesador por uno un poco más moderno en poco tiempo, veremos entonces si es de ahí.

    Desde luego no puedo decir que me parezca difícil instalar PHP, MySQL y Apache en Linux, en Debian es tan sencillo como usar synaptics desde el modo gráfico o aptitude desde la línea de comandos para bajar todos los paquetes que sean necesarios, dependencias incluídas, luego se editan los archivos de configuración y santas pascuas… pero chico, es que con Easy es TODAVÍA MÁS sencillo.

    Sobre la SB16 sucede en Ubuntu desde versiones muy antiguas y, por lo que he podido comprobar, sucede en Gentoo (el Live CD no la detecta) y en otras distribuciones. El proceso para hacerla funcionar, como habrás visto, no es complicado… pero es otra de las cosas que no aparecía por ningún sitio y todo el mundo se empeñaba en decirte que instalases el módulo que con eso valía… Una tarjeta antigua, pero perfectamente válida y que tenía mucha pero mucha gente.

    Tampoco he encontrado nada acerca de que durante la carga de Ubuntu la pantalla del portatil se me quede en negro, no es que me preocupe en exceso (de hecho me planteo pasar la carga a modo texto) pero no estaría de más encontrar algo de información al respecto…

    Son pijadillas que a los que trasteamos mejor o peor con estas cosas nos pueden molestar más bien poco (sobre todo si tenemos tiempo para dedicarlo a su solución) pero para usuarios medios, que desconocen casi todo del funcionamiento del ordenador son auténticos muros infranqueables.

  8. No te estoy diciendo que el que se apage el portatil sea por la configuración, te estoy dando la forma de poder sacar la configuración del kernel del portatil para compilartelo en el otro ordenador, que vamos, o te estoy leyendo mal cada vez o lo que leo es (control+c control+v)”Lo malo es que, al no poder importar la configuración del kernel en uso (el del portatil) he tenido que realizar la configuración como buenamente he podido, a mano…”, luego te estoy dando la forma de poder obtener la configuración del portatil para que no tengas que realizarla a mano.

    A parte, del EasyPHP el comentario inicial en el que hable sobre el, yo no decia que fuese más dificil EasyPHP que meterlo a mano cada componente, lo que yo decia era (control+c control+v) “Offtopic: Por decir que antaño para hacer correr el apache, más php, más mysql en windows todo en conjunto instalandolo cada uno con su respectivo instalador desde la web oficial de cada uno, había que trastear infinitamente más. Lo digo con malicia porque he visto que usas EasyPHP xD.”, dicho de otra forma, es mas dificil meter en windows apache+mysql+php usando las instalaciones de cada uno que en linux mediante el mismo método, y luego, recalcaba que tu usas EasyPHP, nada más. Luego dado que confundiste eso con que afirmaba que EasyPHP es más dificil que meter en linux apache+mysql+php cada uno por su lado, te dije que meterlo en gentoo la unica complicación extra que tiene es añadir un pequeño texto a una linea ya existente de un archivo, nada más, pero yo no te he dicho en ningún momento EasyPHP es más dificil de instalar.

    LA SB16 mía con livecd del gentoo 2004 (todavía tenia la tarjeta entonces) iba sin problemas y, efectivamente, la posibilidad que te he dicho de igual un bug introducido en el codigo de ALSA en versiones más reciente sigue siendo válida. ALSA en esa versión de gentoo era la serie 0.9.x ya en 2005 en adelante era la serie 1.0.x (con esa serie no use la SB16). Además que de la 0.9 a la 1.0 había cambios muy importantes, tanto, que eran incompatibles a nivel binario, por lo que facilmente pueda haber un bug en ALSA, simplemente comunicarlo en la web http://www.alsa-project.org.

    Sobre la pantalla negra al iniciar el problema radica en el framebuffer, encontrar un sobremesa con ese problema incluso cuando la grafica es integrada es dificilisimo, en cambio los portatiles debido a sus versiones de bajo consumo de las graficas (mobility de radeon etc), tienen cambios que afectan a su correcto funcionamiento cuando se usa un driver genérico vesa o vga, driver usado generalemente al arrancar, ya que driver para la grafica que se usa en concreto, solo se puede usar en un servidor X (salvo que tengas una radeon o geforce muy antiguas, o una rivaTNT o una matrox que tienen drivers para usar hasta acel 3d en las consolas, solo que no hay programas que lo aprvechen dado que no es muy común tener una de esas), motivo por el que luego vuelves a ver la pantalla cuando entra en las X.

    De hecho si a los de ubuntu les diera por dejar las consolas también en framebuffer para ponerte el logo de ubuntu de fondo o cualquier mariconada ni siquiera verías las consolas en modo texto.

  9. Pues efectivamente te he debido de entender mal las otras veces sobre el kernel.

    El último live CD de Gentoo dice que la SB16 para mí; voy a probar con la versión que citas que también la tengo por ahí a ver si, como dices, la reconoce bien. No sé si habrá que echarle toda la culpa a ALSA; ahora mismo funciona con ALSA 1.

    Ciertamente, lo del framebuffer tiene bastante sentido, no lo había contemplado hasta ahora porque no tengo el problema con otros portátiles en condiciones parecidas… parecidas, pero no iguales. Gráfica Intel + TFT de 15″ 4:3 =muerte. La versión 6.06, que recuerde, tenía arranque gráfico y funcionaba… creo. Desde luego algo cambiaron porque sí que he tenido arranque gráfico en ese equipo. Como decía, tampoco es que me preocupe en exceso, prefiero el arranque en modo texto, que es bastante más informativo.

    En cualquier caso gracias por los comentarios.

  10. Alomejor mi solución te llega un poko tarde pro simplemente para configurar el targus pawm004 (en mi caso la versión E, pawm004e) lo que he hecho es cambiar los valores del xorg. Poniendolos como indico (muestro solo la parte dl raton)
    Section “InputDevice”
    Identifier “Configured Mouse”
    Driver “mouse”
    Option “CorePointer”
    Option “Device” “/dev/input/mouse1”
    Option “Protocol” “IMPS/2”
    Option “ZAxisMapping” “4 5”
    Option “Emulate3Buttons” “true”
    EndSection

    Section “ServerLayout”
    Identifier “Default Layout”
    Screen “Default Screen”
    InputDevice “Generic Keyboard”
    InputDevice “Configured Mouse”

    Espero haber sido de ayuda, saludos

  11. Pues te agradezco el comentario, yo también tengo esa versión, pero haciendo eso mismo que me dices sigo sin conseguir absolutamente nada de nada. ¿Se enciende en tu equipo la luz del receptor? porque en el mío se queda apagada, no hay manera de efectuar la sincronización entre el ratón y el receptor.

    Muchas gracias de todas formas.

  12. Alomejor es que tienes que poner otro “Device” yo comprobé cual necesitaba un poko al descarte, sabía q podia ser entre /dev/input/mouse(desde el 0 hasta el 4) o /dev/input/mice o /dev/psaux. Y es poner en un terminal “cat /dev/input/mouse1” en mi caso y ver q al moverlo t escribe, tonses supe que ese era mi “Device” (recuerda q se sale con ctrl+C).

    Pero es curioso que me hagas la pregunta de la lucecita, porque hay veces que tarda en detectar el receptor. En plan de que llevo 30 minutos sin ratón y derrepente se enciende y se queda conectado ya, pero alomejor es que aún estoy reconfigurando todo un poko y siempre toco el xorg y tal…

    Bueno espero que te sirva de algo todo este royo x DD

    Saludos

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s