A veces los desarrolladores del kernel estiman conveniente quitar un elemento de una estructura, cuando la funcionalidad que provee, se puede obtener de otro modo.

Por ejemplo, aplicando unos parches de linux ABI en el (hasta hace no mucho) último kernel (2.6.17.3), encontré que en el "struct inode", se había quitado el elemento "i_sock".

Luego de buscar por ejemplos y parches en google por buen rato, me encontré con que la misma funcionalidad (si el inodo es un socket), se obtiene evaluando el elemento "i_mode" del inodo con la macro S_ISSOCK, que está documentada en el man 2 stat.

Me imaginé que tu problema podía ir por ese lado, asi que bajé todos los patch desde el 2.6.13 al 2.6.17 y busqué por algo que modifique el archivo "uinput.h", esperando encontrar la "sacada" del elemento "id" y el correspondiente cambio en el changelog.

He ubicado dos cambios (patch-2.6.15 y patch-2.6.17), pero ninguno de ellos quita ningún elemento al struct uinput_user_dev

Yo tengo un src del 2.6.17.3 y si tiene el bendito elemento "id", y en ninguno de los patch-2.6.17.X hay cambios a esa estructura.

Qué distro usas, como para revisar el src de esa distro?

PD: El kernel que estoy revisando es el vanilla.

On 9/8/06, Jaime G. Wong <[EMAIL PROTECTED]> wrote:
Saludos,

  Tengo un problema extraño. He venido usando un programa ("g15lcd") que compilé desde fuentes. En ese entonces tenía el kernel 2.6.13.1. Recientemente hice un upgrade al kernel 2.6.17.4 y el programa dejó de funcionar.
  Descargué una versión más reciente del programa y me aparece el siguiente error:

keys.cpp: In function `void initKeyHandling(const std::string&)':
keys.cpp:73: error: 'struct uinput_user_dev' has no member named 'id'
keys.cpp:74: error: 'struct uinput_user_dev' has no member named 'id'

  El struct uinput_user_dev pertenece a uinput.h. Efectivamente, en el struct de /usr/include/linux/uinput.h no existe ningún miembro "id". Lo extraño es que antes sí compiló y ahora ya no quiere compilar. He tratado de compilar la versión primera del programa y nada. En las fuentes del kernel, tanto del 2.6.13 como del 2.6.17 sí tienen un struct con "id". He probado, a la mala, reemplazar el uinput.h de /usr/include/linux con el que viene en el kernel 2.6.17 pero obtengo otro tipo de error -- no es el camino a seguir.

  No recuerdo haber hecho ningún cambio mayor en el sistema y no sé qué pueda estar ocurriendo. No tengo mucha experiencia en C, sólo sé "lo suficiente." No me explico cómo antes compiló y ahora ya no. Alguien podría ayudarme con esto? Busqué en Google sobre uinput pero no sé cuál sería la forma más apropiada de buscar. Le envié un mail al autor y no me ha respondido.

  Tras agotar mis posibilidades... help. :)

--
Jaime G. Wong Chacaltana
[EMAIL PROTECTED]
Coordinador



--
Nestor
_______________________________________________
Lista de correo Linux-plug
Temática: Discusión general sobre Linux
Peruvian Linux User Group (http://www.linux.org.pe)

Participa suscribiéndote y escribiendo a:  [email protected]
Para darte de alta, de baja  o hacer ajustes a tu suscripción visita:
http://www.linux.org.pe/cgi-bin/mailman/listinfo/linux-plug

IMPORTANTE: Reglas y recomendaciones
http://www.linux.org.pe/listas/reglas.php
http://www.linux.org.pe/listas/comportamiento.php
http://www.linux.org.pe/listas/recomendaciones.php

Responder a