Autor Tema: Un error recurrente desde siempre en Openwrt  (Leído 1952 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Sir-Stephen

  • Visitante
Un error recurrente desde siempre en Openwrt
« en: 25-09-2014, 22:14 (Jueves) »
Despues de dos años experimentado aqui con routers, radios wifi, GPIO, osciloscopios y demás, hay una cosa que siempre se me ha resistido:  Aprovechar este mando a distancia de Packard Bell, ya sea con triggerhappy, con lirc o con lo que sea...


Tanto en el HG553 como en el AR-5387UN sucede lo mismo, da igual si lo conecto a traves de un Hub USB o directo al puerto de turno, en el dmesg aparece esto:

[  968.564000] usb 2-1.1: new low-speed USB device number 5 using ohci-platform
[  968.712000] hid (null): usage index exceeded
[  968.724000] hid (null): usage index exceeded
[  968.760000] hid-generic 0003:147A:E020.0002: usage index exceeded
[  968.768000] hid-generic 0003:147A:E020.0002: item 0 2 2 2 parsing failed
[  968.776000] hid-generic: probe of 0003:147A:E020.0002 failed with error -22


Total, investigando investigando veo que a mucha gente con Linux le sucede igual cuando conectan algunos tipos de dispositivos Hid, tales como ratones o Joysticks... hay decenas de páginas con foros sobre ese error.  Por ejemplo:

http://lists.opensuse.org/archive/opensuse-bugs/2014-02/msg02351.html

La mayoría dan una solución:  Buscar el archivo /usr/src/linux/include/linux/hid.h  y modificar el valor:

#define HID_MAX_USAGES                        12288

por un valor superior a 32000...

Evidentemente, en openwrt estará en otra carpeta, digo yo...

Mis conocimientos de Linux son pocos, asi que me pongo en marcha y tras cargar un entorno para compilar, hid.h solo aparece cuando compilo la primera vez, en el directorio build_dir...  En realidad aparece en dos carpetas distintas en su interior... dicho y hecho, edito los dos archivos, cambio el valor 12288 por 32768 (aunque en una pagina recomendaban incluso 65535), compilo, cargo el firmware, conecto el receptor del mando a distancia y... sucede esto:

[  318.712000] usb 2-1.1: new low-speed USB device number 4 using ohci-platform
[  318.952000] usb 2-1.1: new low-speed USB device number 5 using ohci-platform
[  319.148000] hid (null): usage index exceeded
[  319.224000] ------------[ cut here ]------------
[  319.228000] WARNING: CPU: 0 PID: 179 at mm/slab_common.c:401 kmalloc_slab+0x4c/0xc0()
[  319.240000] Modules linked in: pppoe ppp_async iptable_nat b43 snd_usb_audio pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 mac80211 ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_CT usbhid snd_usbmidi_lib slhc nf_nat_irc nf_nat_ftp nf_nat nf_defrag_ipv6 nf_defrag_ipv4 nf_conntrack_irc nf_conntrack_ftp nf_conntrack iptable_raw iptable_mangle iptable_filter ipt_REJECT ip_tables hid_generic crc_ccitt compat fuse hid evdev ledtrig_usbdev ledtrig_oneshot xt_LED ledtrig_morse ledtrig_heartbeat ledtrig_gpio ip6t_REJECT ip6table_raw ip6table_mangle ip6table_filter ip6_tables x_tables snd_compress snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_rawmidi snd_seq_device snd_hwdep snd soundcore vfat fat nls_utf8 nls_iso8859_1 nls_cp850 nls_cp437 nls_cp1250 ipv6 arc4 crypto_blkcipher gpio_keys_polled usb_storage input_polldev ohci_platform ohci_hcd ehci_platform ehci_hcd sd_mod scsi_mod button_hotplug input_core usbcore nls_base usb_common
[  319.336000] CPU: 0 PID: 179 Comm: khubd Not tainted 3.14.18 #3
[  319.340000] Stack : 00000000 00000000 00000000 00000000 8049c99e 00000032 83ad2bf8 00000000
[  319.340000]      802d2540 803209e7 000000b3 80493e6c 83ad2bf8 00000000 00000002 00008000
[  319.340000]      00000000 802723d0 00000003 801d3314 00000191 00000000 802d5484 83b3f88c
[  319.340000]      00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[  319.340000]      00000000 00000000 00000000 00000000 00000000 00000000 00000000 83b3f818
[  319.340000]      ...
[  319.376000] Call Trace:
[  319.380000] [<802108ec>] show_stack+0x48/0x70
[  319.384000] [<80284584>] warn_slowpath_common+0x84/0xb4
[  319.388000] [<8028463c>] warn_slowpath_null+0x18/0x24
[  319.396000] [<8016cbd8>] kmalloc_slab+0x4c/0xc0
[  319.400000] [<8004d6e8>] __kmalloc+0x20/0x10c
[  319.404000] [<83101e64>] hid_open_report+0x52c/0xbcc [hid]
[  319.408000] [<83103af0>] hid_input_report+0x404/0x494 [hid]
[  319.416000]
[  319.416000] ---[ end trace ea8971429c5582e9 ]---
[  319.436000] hid-generic 0003:147A:E020.0002: usage index exceeded
[  319.444000] hid-generic 0003:147A:E020.0002: item 0 2 2 2 parsing failed
[  319.452000] hid-generic: probe of 0003:147A:E020.0002 failed with error -22


O sea, lo mismo pero encima parece que me he cargado algo... quizas no lo hice bien o deberia limpiar entorno o algo.

Sea lo que sea, es algo que sucede desde siempre en OpenWrt, que cuando conectas algun dispositivo hid "rarito" sale este error...
Sucede con Backfire, AA (attitudde Adjustment), con BB (Barrier Breaker), con CC (Chaos Calmer) y me pregunto... sucederá también con DD (Die Dancing)?  ;D ;D ;D ;D ;D

Alguna ayuda, por favor, alguna forma de corregir ese bug si es efectivamente un bug?

Graciasssss....

Postdata:  Gentilmente "dono" el nombre de Die Dancing para la proxima versión de Openwrt...


« Última modificación: 25-09-2014, 22:17 (Jueves) por Sir-Stephen »

Sir-Stephen

  • Visitante
Re: Un error recurrente desde siempre en Openwrt (Casi solucionado)
« Respuesta #1 en: 27-09-2014, 09:58 (Sábado) »
Bueno, pues al final hice caso a uno de los foros y sustituí el valor 12288 por 65535 y esto fue lo que pasó...

[  394.256000] usb 2-1.1: new low-speed USB device number 4 using ohci-platform
[  394.636000] ------------[ cut here ]------------
[  394.644000] WARNING: CPU: 0 PID: 179 at mm/slab_common.c:401 kmalloc_slab+0x4c/0xc0()
[  394.652000] Modules linked in: pppoe ppp_async iptable_nat b43 snd_usb_audio pppox ppp_generic nf_nat_ipv4 nf_conntrack_ipv6 nf_conntrack_ipv4 mac80211 ipt_MASQUERADE cfg80211 xt_time xt_tcpudp xt_state xt_nat xt_multiport xt_mark xt_mac xt_limit xt_id xt_conntrack xt_comment xt_TCPMSS xt_REDIRECT xt_LOG xt_CT usbhid snd_usbmidi_lib slhc nf_nat_irc nf_nat_ftp nf_nat nf_defrag_ipv6 nf_defrag_ipv4 nf_conntrack_irc nf_conntrack_ftp nf_conntrack iptable_raw iptable_mangle iptable_filter ipt_REJECT ip_tables hid_generic crc_ccitt compat fuse hid evdev ledtrig_usbdev ledtrig_oneshot xt_LED ledtrig_morse ledtrig_heartbeat ledtrig_gpio ip6t_REJECT ip6table_raw ip6table_mangle ip6table_filter ip6_tables x_tables snd_compress snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_rawmidi snd_seq_device snd_hwdep snd soundcore vfat fat nls_utf8 nls_iso8859_1 nls_cp850 nls_cp437 nls_cp1250 ipv6 arc4 crypto_blkcipher gpio_keys_polled usb_storage input_polldev ohci_platform ohci_hcd ehci_platform ehci_hcd sd_mod scsi_mod button_hotplug input_core usbcore nls_base usb_common
[  394.748000] CPU: 0 PID: 179 Comm: khubd Not tainted 3.14.18 #4
[  394.752000] Stack : 00000000 00000000 00000000 00000000 8049c99e 00000032 83ad2bf8 00000000
[  394.752000]      802d2540 803209e7 000000b3 80493e6c 83ad2bf8 00000000 00000002 00008000
[  394.752000]      00000000 802723d0 00000003 801d3314 00000191 00000000 802d5484 83b3f88c
[  394.752000]      00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[  394.752000]      00000000 00000000 00000000 00000000 00000000 00000000 00000000 83b3f818
[  394.752000]      ...
[  394.788000] Call Trace:
[  394.792000] [<802108ec>] show_stack+0x48/0x70
[  394.796000] [<80284584>] warn_slowpath_common+0x84/0xb4
[  394.804000] [<8028463c>] warn_slowpath_null+0x18/0x24
[  394.808000] [<8016cbd8>] kmalloc_slab+0x4c/0xc0
[  394.812000] [<8004d6e8>] __kmalloc+0x20/0x10c
[  394.816000] [<83101e64>] hid_open_report+0x52c/0xbcc [hid]
[  394.824000] [<83103aec>] hid_input_report+0x400/0x494 [hid]
[  394.828000]
[  394.828000] ---[ end trace eeb56b3b2390b9d1 ]---
[  394.920000] input: Formosa Industrial Computin Formosa RC102 USB Remot as /devices/platform/ohci-platform/usb2/2-1/2-1.1/2-1.1:1.0/0003:147A:E020.0002/input/input2
[  394.952000] hid-generic 0003:147A:E020.0002: input,hiddev0,hidraw1: USB HID v1.10 Keyboard [Formosa Industrial Computin Formosa RC102 USB Remot] on usb-ohci-platform-1.1/input0


En resumidas cuentas, despues de dos años, por fin el receiver IR fue reconocido, de hecho cmdpad y triggerhappy lo utilizan perfectamente excepto unos pequeños detalles que quedan por pulir... eso si, sigue saliendo ese chorreo de errores.

Entonces.... alguna posibilidad de modificar lo oportuno en Openwrt para evitar que dispositivos hid "raros" den problemas?
« Última modificación: 27-09-2014, 09:59 (Sábado) por Sir-Stephen »

vk496

  • Visitante
Re: Re: Un error recurrente desde siempre en Openwrt
« Respuesta #2 en: 27-09-2014, 16:30 (Sábado) »
Muy bueno! Vendrá bien a mas de uno cuando quieran hacer lo mismo.

Para lo que dices, habría que hacer apaños en el source....

Si Noltari se pasa, quizá pueda guiarnos mas...

Salu2

//FINAL Y MÁS DOS RESPUESTAS