Hallo,
hat jemand Erfahrung mit Openwrt? Ich will einen Hauppauge WinTV 930c DVB-C-Stick an's laufen bringen. Firmware habe ich schon runtergeladen und in /lib/firmware kopiert. Problem sind jetzt die Kernel-Module. Laut linuxtv-wiki braucht der Stick nur drei Stück:
QuoteComponents used
Xceive XC5000 (RF tuner and analog IF demodulator)
Emtec EM28XX (DVB Frontend)
Micronas drxk (3-in-1 Demodulator for DVB-C, DVB-T and analogue TV)
sie heißen dementsprechend
Auch die hab ich mittlerweile passend für den router gefunden. Leiter tut sich aber nicht viel. Das Problem ist glaube ich das em28xx-Modul.
Das ist laut Ubuntu-Seite vom Herausgeber eingestellt worden und unterstützt 'ne ganze Menge Karten. Dementsprechend hat es einige
Abhängigkeiten von anderen Modulen und die wiederrum von anderen. Immer wenn modprobe sich also beschwerte und weitere Module verlangte hab ich die
natürlich runtergeladen . Ich glaube aber, dass trotzdem noch was fehlt. Möchte ich zum Beispiel em28xx-dvb oder em28xx-alsa laden bleibt die Kommandozeile einfach hängen.
Ich muss dann mit Strg+C den Ladevorgang abbrechen. Lade ich em28xx kommt "segmentation fault", das Modul gilt danach aber trotzdem als geladen und lässt sich nicht wieder entladen.
dmesg gibt daraufhin sowas hier aus:
[ 921.360000] em28xx: New device WinTV HVR-930C @ 480 Mbps (2040:1605, interface 0, class 0)
[ 921.370000] em28xx: Audio interface 0 found (Vendor Class)
[ 921.370000] em28xx: Video interface 0 found: isoc
[ 921.380000] em28xx: DVB interface 0 found: isoc
[ 921.380000] em28xx: chip ID is em2884
[ 921.450000] em2884 #0: i2c eeprom 0000: 26 00 01 00 02 0c 2a e5 f5 64 01 60 09 e5 f5 64
[ 921.460000] em2884 #0: i2c eeprom 0010: 09 60 03 c2 c6 22 e5 f7 b4 03 13 e5 f6 b4 87 03
[ 921.470000] em2884 #0: i2c eeprom 0020: 02 0b b8 e5 f6 b4 93 03 02 0a 74 c2 c6 22 c2 c6
[ 921.480000] em2884 #0: i2c eeprom 0030: 22 00 60 00 d2 c6 7b 00 7a 00 79 23 22 90 05 9e
[ 921.480000] em2884 #0: i2c eeprom 0040: 75 f0 25 e5 35 02 09 1d 25 e0 24 c6 f5 82 e4 34
[ 921.490000] em2884 #0: i2c eeprom 0050: 06 f5 83 e4 93 22 e4 93 f5 36 e5 36 22 00 00 00
[ 921.500000] em2884 #0: i2c eeprom 0060: 00 00 02 01 1a eb 67 95 40 20 05 16 70 13 6a 03
[ 921.510000] em2884 #0: i2c eeprom 0070: 82 1e 6a 18 00 00 24 57 6e 07 29 00 00 00 00 00
[ 921.520000] em2884 #0: i2c eeprom 0080: 00 00 00 00 4e 00 13 00 f0 10 02 82 82 00 00 00
[ 921.520000] em2884 #0: i2c eeprom 0090: 5b 81 00 00 00 00 20 40 20 78 02 20 10 01 01 01
[ 921.530000] em2884 #0: i2c eeprom 00a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 921.540000] em2884 #0: i2c eeprom 00b0: c6 c5 00 00 84 00 00 a1 00 00 00 00 00 c2 00 00
[ 921.550000] em2884 #0: i2c eeprom 00c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 18 03
[ 921.560000] em2884 #0: i2c eeprom 00d0: 34 00 30 00 33 00 34 00 32 00 30 00 38 00 39 00
[ 921.560000] em2884 #0: i2c eeprom 00e0: 36 00 36 00 00 00 1e 03 57 00 69 00 6e 00 54 00
[ 921.570000] em2884 #0: i2c eeprom 00f0: 56 00 20 00 48 00 56 00 52 00 2d 00 39 00 33 00
[ 921.580000] em2884 #0: i2c eeprom 0100: ... (skipped)
[ 921.580000] em2884 #0: EEPROM ID = 26 00 01 00, EEPROM hash = 0xc5f00eaa
[ 921.590000] em2884 #0: EEPROM info:
[ 921.590000] em2884 #0: microcode start address = 0x0004, boot configuration = 0x01
[ 921.610000] em2884 #0: I2S audio, 3 sample rates
[ 921.620000] em2884 #0: 500mA max power
[ 921.620000] em2884 #0: Table at offset 0x24, strings=0x1e82, 0x186a, 0x0000
[ 921.630000] em2884 #0: Identified as Hauppauge WinTV HVR 930C (card=81)
[ 921.630000] tveeprom 1-0050: Hauppauge model 16009, rev B1F0, serial# 7677126
[ 921.640000] tveeprom 1-0050: MAC address is 00:0d:fe:75:24:c6
[ 921.650000] tveeprom 1-0050: tuner model is Xceive XC5000 (idx 150, type 76)
[ 921.650000] tveeprom 1-0050: TV standards PAL(B/G) PAL(I) SECAM(L/L') PAL(D/D1/K) ATSC/DVB Digital (eeprom 0xf4)
[ 921.660000] tveeprom 1-0050: audio processor is unknown (idx 45)
[ 921.670000] tveeprom 1-0050: decoder processor is unknown (idx 44)
[ 921.680000] tveeprom 1-0050: has no radio, has IR receiver, has no IR transmitter
[ 921.680000] CPU 0 Unable to handle kernel paging request at virtual address 3a312e34, epc == 80769420, ra == 807658fc
[ 921.690000] Oops[#1]:
[ 921.690000] CPU: 0 PID: 1297 Comm: modprobe Not tainted 3.10.49 #3
[ 921.690000] task: 805069e0 ti: 80fd6000 task.ti: 80fd6000
[ 921.690000] $ 0 : 00000000 00000001 3a312e30 00000048
[ 921.690000] $ 4 : 80f8b000 81042030 80770000 0000000f
[ 921.690000] $ 8 : 00100020 00100020 00000000 00000000
[ 921.690000] $12 : 00000000 00000001 000f0021 0000004d
[ 921.690000] $16 : 80f8b000 80f8b03c 80f8afe8 80f8b034
[ 921.690000] $20 : 00000001 80f8b094 8076df38 80f8b0cc
[ 921.690000] $24 : 00000000 00000005
[ 921.690000] $28 : 80fd6000 80fd7b98 80f8b730 807658fc
[ 921.690000] Hi : 00000000
[ 921.690000] Lo : b61f0000
[ 921.690000] epc : 80769420 em28xx_init_camera+0xb9c/0xe04 [em28xx]
[ 921.690000] Not tainted
[ 921.690000] ra : 807658fc em28xx_tuner_callback+0x111c/0x1500 [em28xx]
[ 921.690000] Status: 1000dc03 KERNEL EXL IE
[ 921.690000] Cause : 00800008
[ 921.690000] BadVA : 3a312e34
[ 921.690000] PrId : 00019374 (MIPS 24Kc)
[ 921.690000] Modules linked in: em28xx(+) tveeprom drxk xc5000 ath9k ath9k_common pppoe ppp_async iptable_nat ath9k_hw ath pppox ppp_generic nf_nat_ipv4 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 slhc nf_nat_irc nf_nat_ftp nf_nat nf_defrag_ipv4 nf_conntrack_irc nf_conntrack_ftp iptable_raw iptable_mangle iptable_filter ipt_REJECT ip_tables crc_ccitt compat videobuf2_vmalloc videobuf2_memops videobuf2_core v4l2_common videodev ledtrig_usbdev ip6t_REJECT ip6table_raw ip6table_mangle ip6table_filter ip6_tables x_tables nf_conntrack_ipv6 nf_conntrack nf_defrag_ipv6 snd_compress snd_pcm_oss snd_mixer_oss snd_pcm snd_page_alloc snd_timer snd_rawmidi snd_seq_device snd_hwdep snd input_core soundcore loop ipv6 arc4 crypto_blkcipher usb_storage sd_mod scsi_mod ext4 crc16 jbd2 mbcache crypto_hash ehci_platform ehci_hcd gpio_button_hotplug usbcore nls_base usb_common
[ 921.690000] Process modprobe (pid: 1297, threadinfo=80fd6000, task=805069e0, tls=7747a440)
[ 921.690000] Stack : 80efcc94 80efcc94 80efcc94 80efcc94 80efe038 80efe050 80efe058 80efe068
[ 921.690000] 80efe078 80efcc94 80efcc94 80efcc94 00000000 80f8b0cc 000000f4 00000000
[ 921.690000] 0000004c 00000006 00000000 807647e0 00000001 80f8b000 80f8b000 00000000
[ 921.690000] 81aea400 807658fc 000000d0 80f8b000 00000000 800c4ce0 00000000 00001605
[ 921.690000] 00000000 00000000 00000000 00000003 00000001 0000004c 03ff00ff 00000096
[ 921.690000] ...
[ 921.690000] Call Trace:
[ 921.690000] [<80769420>] em28xx_init_camera+0xb9c/0xe04 [em28xx]
[ 921.690000]
[ 921.690000]
[ 921.690000] Code: 081da517 8e12003c 8e420064 <8c420004> 10400006 00000000 8c42001c 10400003 02402021
[ 921.940000] ---[ end trace 56ba6c9404f7872a ]---
Display More
Da ist also plötzlich Leben in der Bude. /dev/dvb wird aber dennoch nicht angelegt. Ich hab mich natürlich vor dem Kauf des Sticks informiert: Ich hab den älteren WinTV HVR 930C (ohne HD), der eigentlich seit Kernel-Version 3.3 läuft. Vermutlich haben sie aus Platzgründen bei OpenWRT alle "unnötigen" Module für ihren Spezial-Kernel entfernt.
Am einfachsten wäre es sicher , video4linux zu benutzen. Leider ist das bei openwrt nicht in den Paketquellen und Kompilieren ist nicht möglich.
Video4Linux hängt von Programmen ab, die ebenfalls nicht per Paketmanager installiert werden können. Aus dem Forum weiß ich, dass sie das dort
wohl per Cross-Compiling erzeugen. Das ist mir aber zu hoch. Bin froh wenn ich schon normal was kompiliert kriege.
Bibliotheken wie libv4l oder v4l-utils sind aber verfügbar (wozu auch immer die gut sind).
Daher ist meine Hoffnung, dass ich doch noch rausbekommen kann, was dem em28xx-Treiber fehlt, um es von Hand reinzukopieren.
Das kann doch nicht viel sein...
Hab parallel zu diesem Threat auch noch in's OpenWRT-Forum gepostet. Aber die Leute da geben sich wortkarg.