Parche Kernel mando a distancia USB [Solucionado]
Bien, he visitado la pagina kernel.org, la cual ya van por el kernel 2.6.35, yo necesito el parche para implementar el mando a distancia de mi capturadora de TV TDT que incorpora un mando por infrarrojos de la marca Avermedia y en concreto del modelo RM-ks. Este modelo lo incluye en el kernel 2.6.34, lo que no me queda muy claro si es que tengo que aplicar el parche a ese kernel, o tengo que compilar ese kernel en debian. Estoy hecho un lio porque se que debian, su kernel ( el de linux ) es diferente al "creo que se llama vanilla". Ahora yo estoy en testing y el kernel actual de debian es 2.6.32-5 AMD64 que imagino que es una compilación sin drivers propietarios y para AMD64 del kernel oficial 2.6.32 desde la pagina Kernel.org.
A este punto tan liado, yo lo que quiero es tener el parche ( porque el kernel no lo necesito entero), pero parece ser que los parches van en función de un kernel, es decir, yo con el kernel actual de debian, seguro que no será compatible el parche ( si es que está para este kernel) y cúal y cómo usarlo para que en mi actual kernel tenga esta función.
Yo ya me he bajado el kernel entero y compilado al estilo debian desde la wiki, pero ( sin el parche porque se supone que ya viene el driver vl4 para af9015 que me sirve para mi mando a distancia). El problema es que nunca consigo arrancarlo porque me parece que al compilarlo, los sistemas de archivos los he dejado como módulos, incluso el del ext2, según leo por google provocaría el fallo que me sale de KERNEL FAILURE.
Mi pregunta es
¿Puedo aplicar cualquier parche que encuentre para mi dispisitivo en el kernel acutual de debian?
¿Tengo que compilar todo el kernel de nuevo y por tanto instalar los sources....?
He visto el kernel en "experimental" pero no me fio, puede ser que heche al traste todo y luego como estoy en debian, me imagino que ese driver lo quitarán de la propia compilación por no ser un driver libre.
Me liao...tu....
- Inicie sesión o regístrese para enviar comentarios
- 415 lecturas


Este es el parche pero no me entero de como va ni como se instala http://linuxtv.org/hg/v4l-dvb/rev/a57ea2073e77bed38e98bbe3f1d0f4f49bd8f1...
No perdés nada con probar!
Yo lo que haría es tratar de aplicar el parche sobre el kernel de Debian (paquete linux-sources). Creo que ese parche lo podés aplicar con la herramienta "patch", si no, que me corrijan. La idea es que apliques el parche sobre las fuentes y luego las compiles.
Fijate que cuando aplique el parche se realicen todos los cambios (que no te diga que falló un HUNK).
Saludos
Entonces procedo con la compilación del kernel al estilo debian, con el parche que me he bajado ( que no se si le sirve al kernel actual) y una vez hecho el paquete deb con el nuevo kernel, solo me queda instalar y probar....mmm lo probaré a ver que ocurre.
Pues hice lo siguiente:
Me bajé el último kernel de kernel.org ( 2.6.35 ) y ejecuté los pasos especificados "compilar kernel al estilo debian" que podrán encontrar por aquí.
Ejecute el make menuconfig pero parece ser que me faltaba alguna librerira ncurses.
Luego de instalar las librerias procedi a configurar el kernel.
Lo primero que hice es poner como compilado ( y no como módulo) los sistemas de archivos ext2, ext3 y ext4, el resto como viene por defecto. ( Si no realizaba este paso, me arrancaba con fallo del kernel failure).
Revisé el resto del kernel pero no modifiqué nada, asi que compilé directamente.
Una vez compilado y creado los paquetes deb correspondientes, procedo a la instalación sin aplicar en ningun momento el parche de mi tarjeta dvb-usb para el mando a distancia, porque ya lo tiene incluido.
Arranco debian y sorpresa, se autoinstala el driver privativo de Nvidia que tenia instalado en el kernel anterior ( no sabía que eso pudiera hacerse de forma automática gracias a que tengo instalado dkms).
El caso es que ahora ya tengo instalado el kernel, funcionando con el driver de nvidia pero con consigo arrancar o utilizar algún programa para el mando a distancia. Pero eso ya es otro hilo.
Tal vez al configurar el kernel debías agregar que compilara el módulo del mando a distancia. También podrías aplicar el parche de todas formas, o aplicarle el parche al kernel de Debian.
Saludos
Tal vez al configurar el kernel debías agregar que compilara el módulo del mando a distancia. También podrías aplicar el parche de todas formas, o aplicarle el parche al kernel de Debian.
Saludos
Si es cierto, no lo compilé por ser un dispositivo usb, y muy probablemente diera errores cada vez que arrancase el pc sin tener pinchada la tarjeta usb.
Se que el driver está en el kernel y esto es lo que muestra lsmmod:
miguel@linux:~$ lsmodModule Size Used by
h826d 646834 1
averusbh826d 87495 1 h826d
dvb_core 87828 1 h826d
ppdev 5592 0
lp 8847 0
sco 7932 2
bridge 61592 0
stp 2019 1 bridge
bnep 10252 2
rfcomm 31195 0
l2cap 30136 6 bnep,rfcomm
bluetooth 49661 6 sco,bnep,rfcomm,l2cap
rfkill 17171 3 bluetooth
powernow_k8 12671 0
mperf 1419 1 powernow_k8
cpufreq_powersave 1026 0
cpufreq_userspace 2184 0
cpufreq_conservative 9744 0
cpufreq_stats 3052 0
binfmt_misc 6925 1
fuse 57281 1
loop 13310 0
snd_hda_codec_nvhdmi 12013 1
snd_hda_codec_via 52685 1
snd_usb_audio 91773 0
snd_hda_intel 22470 2
nvidia 10821566 39
snd_hda_codec 84698 3 snd_hda_codec_nvhdmi,snd_hda_codec_via,snd_hda_intel
snd_hwdep 5938 2 snd_usb_audio,snd_hda_codec
snd_usbmidi_lib 17083 1 snd_usb_audio
snd_pcm_oss 32690 0
snd_mixer_oss 13090 1 snd_pcm_oss
snd_pcm 74024 5 h826d,snd_usb_audio,snd_hda_intel,snd_hda_codec,snd_pcm_oss
snd_seq_midi 4946 0
uvcvideo 52022 0
snd_rawmidi 19576 2 snd_usbmidi_lib,snd_seq_midi
snd_seq_midi_event 6337 1 snd_seq_midi
snd_seq 46614 2 snd_seq_midi,snd_seq_midi_event
snd_timer 19068 2 snd_pcm,snd_seq
snd_seq_device 5896 3 snd_seq_midi,snd_rawmidi,snd_seq
asus_atk0110 10065 0
tpm_tis 8758 0
tpm 14227 1 tpm_tis
snd 59579 18 h826d,snd_hda_codec_via,snd_usb_audio,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_usbmidi_lib,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
videodev 41306 3 h826d,uvcvideo
parport_pc 20766 1
v4l1_compat 11997 2 uvcvideo,videodev
parport 32010 3 ppdev,lp,parport_pc
v4l2_compat_ioctl32 9546 1 videodev
wmi 8103 0
usb_storage 45016 0
video 20623 0
tpm_bios 5425 1 tpm
output 2271 1 video
snd_page_alloc 7532 2 snd_hda_intel,snd_pcm
soundcore 6802 1 snd
edac_core 40068 0
pcspkr 1862 0
i2c_nforce2 5685 0
edac_mce_amd 8365 0
i2c_core 22395 3 nvidia,videodev,i2c_nforce2
button 5734 0
processor 32144 1 powernow_k8
evdev 7833 12
usbhid 35942 0
hid 69765 1 usbhid
sg 20200 0
sr_mod 13230 0
sd_mod 32791 4
cdrom 33007 1 sr_mod
crc_t10dif 1515 1 sd_mod
ata_generic 3539 0
pata_amd 10946 0
ohci_hcd 19267 0
ahci 20381 0
libahci 20527 4 ahci
libata 167468 4 ata_generic,pata_amd,ahci,libahci
ehci_hcd 31575 0
floppy 54879 0
usbcore 150897 9 averusbh826d,snd_usb_audio,snd_usbmidi_lib,uvcvideo,usb_storage,usbhid,ohci_hcd,ehci_hcd
scsi_mod 182438 5 usb_storage,sg,sr_mod,sd_mod,libata
thermal 13320 0
forcedeth 46618 0
thermal_sys 14244 3 video,processor,thermal
nls_base 8021 1 usbcore
y mirando con find busco mi driver que es el af9015:
root@linux:/home/miguel# find / |grep af9015*/usr/src/linux-headers-2.6.32-5-amd64/include/config/dvb/af9013.h
/usr/src/linux-headers-2.6.32-5-amd64/include/config/dvb/usb/af9015.h
/usr/src/linux-headers-2.6.35.1/include/config/dvb/af9013.h
/usr/src/linux-headers-2.6.35.1/include/config/dvb/usb/af9015.h
/home/miguel/Downloads/af9015-932dc08503ed.tar.gz
/home/miguel/linux-2.6.35.1/debian/linux-image-2.6.35.1/lib/modules/2.6.35.1/kernel/drivers/media/dvb/frontends/af9013.ko
/home/miguel/linux-2.6.35.1/debian/linux-image-2.6.35.1/lib/modules/2.6.35.1/kernel/drivers/media/dvb/dvb-usb/dvb-usb-af9015.ko
/home/miguel/linux-2.6.35.1/debian/linux-headers-2.6.35.1/usr/src/linux-headers-2.6.35.1/include/config/dvb/af9013.h
/home/miguel/linux-2.6.35.1/debian/linux-headers-2.6.35.1/usr/src/linux-headers-2.6.35.1/include/config/dvb/usb/af9015.h
/home/miguel/linux-2.6.35.1/drivers/media/dvb/frontends/.af9013.o.cmd
/home/miguel/linux-2.6.35.1/drivers/media/dvb/frontends/af9013_priv.h
/home/miguel/linux-2.6.35.1/drivers/media/dvb/frontends/af9013.c
/home/miguel/linux-2.6.35.1/drivers/media/dvb/frontends/.af9013.ko.cmd
/home/miguel/linux-2.6.35.1/drivers/media/dvb/frontends/af9013.mod.o
/home/miguel/linux-2.6.35.1/drivers/media/dvb/frontends/af9013.h
/home/miguel/linux-2.6.35.1/drivers/media/dvb/frontends/af9013.o
/home/miguel/linux-2.6.35.1/drivers/media/dvb/frontends/af9013.mod.c
/home/miguel/linux-2.6.35.1/drivers/media/dvb/frontends/af9013.ko
/home/miguel/linux-2.6.35.1/drivers/media/dvb/frontends/.af9013.mod.o.cmd
/home/miguel/linux-2.6.35.1/drivers/media/dvb/dvb-usb/af9015.h
/home/miguel/linux-2.6.35.1/drivers/media/dvb/dvb-usb/af9015.c
/home/miguel/linux-2.6.35.1/drivers/media/dvb/dvb-usb/dvb-usb-af9015.o
/home/miguel/linux-2.6.35.1/drivers/media/dvb/dvb-usb/.dvb-usb-af9015.mod.o.cmd
/home/miguel/linux-2.6.35.1/drivers/media/dvb/dvb-usb/.af9015.o.cmd
/home/miguel/linux-2.6.35.1/drivers/media/dvb/dvb-usb/.dvb-usb-af9015.o.cmd
/home/miguel/linux-2.6.35.1/drivers/media/dvb/dvb-usb/dvb-usb-af9015.mod.o
/home/miguel/linux-2.6.35.1/drivers/media/dvb/dvb-usb/.dvb-usb-af9015.ko.cmd
/home/miguel/linux-2.6.35.1/drivers/media/dvb/dvb-usb/dvb-usb-af9015.ko
/home/miguel/linux-2.6.35.1/drivers/media/dvb/dvb-usb/dvb-usb-af9015.mod.c
/home/miguel/linux-2.6.35.1/drivers/media/dvb/dvb-usb/af9015.o
/home/miguel/linux-2.6.35.1/.tmp_versions/af9013.mod
/home/miguel/linux-2.6.35.1/.tmp_versions/dvb-usb-af9015.mod
/home/miguel/linux-2.6.35.1/include/config/dvb/af9013.h
/home/miguel/linux-2.6.35.1/include/config/dvb/usb/af9015.h
/lib/modules/2.6.35.1/kernel/drivers/media/dvb/frontends/af9013.ko
/lib/modules/2.6.35.1/kernel/drivers/media/dvb/dvb-usb/dvb-usb-af9015.ko
/lib/modules/2.6.32-5-amd64/kernel/drivers/media/dvb/frontends/af9013.ko
/lib/modules/2.6.32-5-amd64/kernel/drivers/media/dvb/dvb-usb/dvb-usb-af9015.ko
root@linux:/home/miguel# find / |grep af9015*
/usr/src/linux-headers-2.6.32-5-amd64/include/config/dvb/af9013.h
/usr/src/linux-headers-2.6.32-5-amd64/include/config/dvb/usb/af9015.h
/usr/src/linux-headers-2.6.35.1/include/config/dvb/af9013.h
/usr/src/linux-headers-2.6.35.1/include/config/dvb/usb/af9015.h
/home/miguel/Downloads/af9015-932dc08503ed.tar.gz
/home/miguel/.local/share/Trash/expunged/3610338638/debian/linux-image-2.6.35.1/lib/modules/2.6.35.1/kernel/drivers/media/dvb/frontends/af9013.ko
/home/miguel/.local/share/Trash/expunged/3610338638/debian/linux-image-2.6.35.1/lib/modules/2.6.35.1/kernel/drivers/media/dvb/dvb-usb/dvb-usb-af9015.ko
/home/miguel/.local/share/Trash/expunged/3610338638/debian/linux-headers-2.6.35.1/usr/src/linux-headers-2.6.35.1/include/config/dvb/af9013.h
/home/miguel/.local/share/Trash/expunged/3610338638/debian/linux-headers-2.6.35.1/usr/src/linux-headers-2.6.35.1/include/config/dvb/usb/af9015.h
/lib/modules/2.6.35.1/kernel/drivers/media/dvb/frontends/af9013.ko
/lib/modules/2.6.35.1/kernel/drivers/media/dvb/dvb-usb/dvb-usb-af9015.ko
/lib/modules/2.6.32-5-amd64/kernel/drivers/media/dvb/frontends/af9013.ko
/lib/modules/2.6.32-5-amd64/kernel/drivers/media/dvb/dvb-usb/dvb-usb-af9015.ko
root@linux:/home/miguel#
parece ser que es el modulo dvb-usb que en el anterior "lsmod" no se ha cargado.... pero la verdad es que no se como arrancar algún programa que funcione con el mando usb, ya que ME-TV no se entera, y el procedimiento descrito usando LIRC en Kubuntu tampoco me funciona ya que al hacer el famoso "cat /proc/bus/input/devices " solo me muestra :
root@linux:/home/miguel# cat /proc/bus/input/devicesI: Bus=0011 Vendor=0001 Product=0001 Version=ab41
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input0
U: Uniq=
H: Handlers=sysrq kbd event0
B: EV=120013
B: KEY=402000000 3803078f800d001 feffffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7
I: Bus=0003 Vendor=0458 Product=003a Version=0110
N: Name="Genius Optical Mouse"
P: Phys=usb-0000:00:02.0-1/input0
S: Sysfs=/devices/pci0000:00/0000:00:02.0/usb3/3-1/3-1:1.0/input/input1
U: Uniq=
H: Handlers=mouse0 event1
B: EV=17
B: KEY=70000 0 0 0 0
B: REL=103
B: MSC=10
I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input2
U: Uniq=
H: Handlers=kbd event2
B: EV=3
B: KEY=10000000000000 0
I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=LNXPWRBN/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXPWRBN:00/input/input3
U: Uniq=
H: Handlers=kbd event3
B: EV=3
B: KEY=10000000000000 0
I: Bus=0010 Vendor=001f Product=0001 Version=0100
N: Name="PC Speaker"
P: Phys=isa0061/input0
S: Sysfs=/devices/platform/pcspkr/input/input4
U: Uniq=
H: Handlers=kbd event4
B: EV=40001
B: SND=6
I: Bus=0003 Vendor=046d Product=09a4 Version=0009
N: Name="UVC Camera (046d:09a4)"
P: Phys=usb-0000:00:04.1-1/button
S: Sysfs=/devices/pci0000:00/0000:00:04.1/usb2/2-1/2-1:1.0/input/input5
U: Uniq=
H: Handlers=kbd event5
B: EV=3
B: KEY=100000 0 0 0
root@linux:/home/miguel#
Por lo que al instalar Lirc tampoco me funciona, incluso en la propia instalación parece que me pide entre dos opciones elegir un controlador que me imagino que será la entrada tipica de una tarjeta especifica pci para mandos a distancia, que no es mi caso.
mmh, creo que esto se ha ido lejos de mis conocimientos...
Tengo la siguiente pregunta: cómo sabés vos que el parche ya está aplicado en el kernel 2.6.35?
Porque en el link de más arriba no vi nada de eso...
Me puse a mirar las funtes del kernel de Debian, el archivo que afecta ese parche, tal vez no puedas aplicarlo con la herramienta path pero si lo puedas agregar manualmente, si mirás el parche dice que hay que agregar unas lineas cerca de la linea 748, en esa parte del script lo que hay son "casos" (por favor no me maten aquellos que si saben C), el script va poniendo "case tal cosa... alguna instrucción", el parche es agregar un case más, podés tratar de ponerlo al final de los cases como uno más. Lo mismo para los otros archivos que parchea.
La idea de esto es que pruebes de poner el parche como corresponde, si no se puede tratá de arreglarlo manualmente, creo que no perdés nada, a lo sumo te tirará un error mientras compila.
Saludos
Bien, el parche es el af9015 que en kernel inferiror al 2.6.34 no se incluye ( bueno, en realidad es un driver) aunque ahora que lo dices no estoy muy seguro de si ese parche que se aplica al v4l dvb-usb, la verdad es que no entiendo mucho tampoco del tema. http://www.kernel.org/diff/diffview.cgi?file=/pub/linux/kernel/v2.6/patc... esto es lo que se supone que es el parche para esta tarjeta que se supone que activa el mando a distancia, pero no me entero ni jota.
{ AF9015_REMOTE_AVERMEDIA_KS,- af9015_rc_keys_avermedia, ARRAY_SIZE(af9015_rc_keys_avermedia),
+ ir_codes_af9015_table_avermedia, ARRAY_SIZE(ir_codes_af9015_table_avermedia),
af9015_ir_table_avermedia_ks, ARRAY_SIZE(af9015_ir_table_avermedia_ks) },
{ }
supongo que será ese el del mando RM-KS....
Debido a que me ha sido imposible que el mando a distancia funcione incluso en el kernel 2.6.35 complilado, me rindo ante ello y cierro el hilo ya que desistalé dicho kernel por otros motivos y no tiene sentido dejar el hilo abierto sin la causa que lo abrió.