[gelöst] bttv in SuSE 10.0

Falkenstein

Hacker
Nach welchem System startet SuSE 10.0 denn jetzt die TV-Karte?
Mit einem "modprobe bttv" mit meinen Parametern tut sich garnix.
 

ambkosh

Member
Ähm, Du solltest schon ein bißchen ausführlicher beim stellen deiner Frage sein. Ich habe mich eigentlich recht ausführlich mit dem Thema beschäftigt aber weiß ehrlich gesagt nicht, was Du willst.
Grundsätzlich:
Die "automatische" Erkennung mit Yast legt eine Datei tv in /etc/modprobe.d an. Dort steht alles drin, was zum laden des bttv-Treibers gebraucht wird. Solltest Du aber eine DVB-Karte haben musst Du zusätzlich noch den DVB-Dienst im Runlevel-Editor aktivieren, bzw. den entsprechenden DVB-Frontend-Treiber laden (bei mir zum Beispiel dvb-bt8xx)

Gruß
Kosh
 

Falkenstein

Hacker
Ich versuch mit lirc die Fernbedienung zum Laufen zu bewegen.
Dafür würd ich gern dem bttv-Modul ein "modprobe bttv i2c_scan=1 tuner=0 pll=28 card=1 autoload=1 bttv_gpio=1 bttv_debug=1 bttv_verbose=1 irq_debug=1" verpassen.
YaST hat die Karte erkannt und die notwendigen Module geladen,
nur weiss ich nicht, welche da wie geladen wurden.
Es scheinen die falschen zu sein, mit denen die TV-Karte zwar läuft aber der IR-Port daran nicht.

Ah, in der Datei "tv" stehen die Parameter.
Aber mein modprobe bleibt nach wie vor ohne Wirkung....
Wie aktivier ich denn Änderungen in der Datei /etc/modprobe.d/tv? Ohne YaST?
 

taki

Advanced Hacker
Seit wann ist denn bttv für die Fernbedienung zuständig?

Bei meiner Fernbedienung ist ein ATI-Modul für die Fernbedienung zuständig, nicht das Modul, welches den Tuner steuert (bei mir saa7134, bei anderen bttv, wieder bei anderen bt878 bzw ivitv). Bei anderen braucht es wohl gar kein Kernelmodul, aber den lircd, der im Userspace läuft und konfiguriert sein will (frag aber nicht mich, damit kenne ich mich nicht aus).

Falls Du andere Probleme mit der TV-Karte hast (falscher Tuner erkannt und daher kein Umschalten möglich oder schlechter Emfang): in /etc/modprobe.d/tv kannst Du die Optionen für das Modul anhängen. Bei mir sieht das z.B. so aus (passt bei Dir sicher nicht, wenn Du eine Karte mit bttv-Chip hast):

Code:
alias char-major-81 videodev
options i2c-algo-bit bit_test=1
options saa7134 card=12 disable_ir=1

# YaST configured TV card
# RE4e._aKCaEiJii5:Benutzerdefinierte TV-Karte
alias char-major-81-0 saa7134
alias char-major-81-1 off
alias char-major-81-2 off
alias char-major-81-3 off

Oops, wenn ich mir die von YaST eingebaute Option disable_ir=1 ansehe, scheint der Kartentreiber wohl doch evtl. für den lircd eine Rolle zu spielen.
 

ambkosh

Member
Der kartentreiber speilt dann eine Rolle, wenn der Empfänger an der Karte angeschlossen ist, dann gibt es diese bttv_gpio=1 Einstelllung die schraubt irgendwie an den Registern rum, die für die IR/I2C etc zuständig sind.
Leider wird meine Nebula DigiTV nicht unterstützt :cry: und mit lirc verzweifle ich schon am einrichten eines gekauften IR-Recv für den seriellen Port :!:

Gruß
Kosh
 

Falkenstein

Hacker
Hab grad noch mal mein Glück probiert.
Geht leider weder mit Änderungen im YaST noch mit "rmmod" oder "modprobe -r" dort irgendwie eine Änderung am bttv-Treiber durchzuführen.
Das einzige was geklappt hat war eine Änderung mit YaST und Neu starten.
Das ist mir ehrlich gesagt ein wenig umständlich, da ich verschiedene Parameter durchprobieren möchte.
Der IR-Empfänger lief mal für diese Karte.
mit bttv 0.6.4... Schon ein wenig her.
Aber es muss irgendwie gehen...
 

Falkenstein

Hacker
Der Kartentreiber spielt eine entscheidende Rolle.
Ich kann meine KArte mit 3-4 versch. Treibern betreiben, der i2c-Bus der FB läuft aber nur mit einem davon. Und auch nur mit den richtigen Parametern.
Auf http://www.lirc.org steht die Bestätigung:
Autodetection is performed using the API from the bttv module - this means that if bttv doesn't properly recognize the card type the remote control won't work.

Komm mir hier schon vor wie bei Windows.
Für jede Änderung in der /etc/modprobe.d/tv einen Neustart.
Das kanns doch nicht sein!
 

ambkosh

Member
und was passiert bei:

...Änderungen in Yast machen...
und dann:
modprobe -r bttv
modprobe bttv

Hast du evtl. versucht ohne Änderungen in yast die Parameter per Kommandozeile einzugeben? Das könnte solche Probleme verursachen.
Was sagt denn das Kernel-Log zu deinen Befehlen, speziell, wie unterscheidet es sich bei unterschiedlichen Parameter?
 

Falkenstein

Hacker
dmesg sagt mir zum Bootvorgang:

bttv0: Bt848 (rev 18) at 0000:00:0b.0, irq: 12, latency: 32, mmio: 0xd8a01000
bttv0: using: Askey CPH03x TV Capturer [card=59,insmod option]
bttv0: enabling ETBF (430FX/VP3 compatibilty)
bttv0: gpio: en=00000000, out=00000000 in=00ffffff [init]
i2c-algo-bit.o: (0) scl=1, sda=1
i2c-algo-bit.o: (1) scl=1, sda=0
i2c-algo-bit.o: (2) scl=1, sda=1
i2c-algo-bit.o: (3) scl=0, sda=1
i2c-algo-bit.o: (4) scl=1, sda=1
i2c-algo-bit.o: bt848 #0 [sw] passed test.
i2c_adapter i2c-0: adapter [bt848 #0 [sw]] registered
i2c_adapter i2c-0: found normal entry for adapter 0, addr 0x50
i2c_adapter i2c-0: master_xfer[0] W, addr=0x50, len=0
bttv0: using tuner=0
bttv0: i2c: checking for MSP34xx @ 0x80... <7>i2c_adapter i2c-0: master_xfer[0] R, addr=0x40, len=1
not found
bttv0: i2c: checking for TDA9875 @ 0xb0... <7>i2c_adapter i2c-0: master_xfer[0] R, addr=0x58, len=1
not found
bttv0: i2c: checking for TDA7432 @ 0x8a... <7>i2c_adapter i2c-0: master_xfer[0] R, addr=0x45, len=1
not found
bttv0: i2c: checking for TDA9887 @ 0x86... <7>i2c_adapter i2c-0: master_xfer[0] R, addr=0x43, len=1
not found
tuner: Unknown parameter `type'
bttv0: registered device video0
bttv0: registered device vbi0
bttv0: PLL: 28636363 => 35468950 .. ok

Wobei da irgendwas dran faul sein muss, xawtv geht nicht mehr.
Card=59 ist aber korrekt. Hm.

Zu meinen Änderungen im YaST oder per modprobe sagt /var/log/messages garnix.
Scheint nicht anzukommen.

Und Modul tuner fehlt auch:
linux:/var/log # lsmod | grep bttv
bttv 150864 0
video_buf 20100 1 bttv
firmware_class 10112 1 bttv
i2c_algo_bit 8584 1 bttv
v4l2_common 5888 1 bttv
btcx_risc 4744 1 bttv
tveeprom 13968 1 bttv
videodev 9088 2 cpia,bttv
 

Falkenstein

Hacker
Ok,, wenn ich jetzt mit YaST rumfummel bekomm ich dies:

bttv0: unloading
i2c_adapter i2c-1: adapter [bt848 #0 [sw]] unregistered
i2c-core: driver [tveeprom] unregistered
tuner: Unknown parameter `type'
i2c-core: driver [tveeprom] registered
bttv: driver version 0.9.16 loaded
bttv: using 8 buffers with 2080k (520 pages) each for capture
bttv: Host bridge needs ETBF enabled.
bttv: Bt8xx card found (0).
ACPI: PCI Interrupt 0000:00:0b.0[A] -> Link [LNKC] -> GSI 12 (level, low) -> IRQ 12
bttv0: Bt848 (rev 18) at 0000:00:0b.0, irq: 12, latency: 32, mmio: 0xd8a01000
bttv0: using: Askey CPH03x TV Capturer [card=59,insmod option]
bttv0: enabling ETBF (430FX/VP3 compatibilty)
bttv0: gpio: en=00000000, out=00000000 in=00ffc2ff [init]
i2c-algo-bit.o: (0) scl=1, sda=1
i2c-algo-bit.o: (1) scl=1, sda=0
i2c-algo-bit.o: (2) scl=1, sda=1
i2c-algo-bit.o: (3) scl=0, sda=1
i2c-algo-bit.o: (4) scl=1, sda=1
i2c-algo-bit.o: bt848 #0 [sw] passed test.
i2c_adapter i2c-1: adapter [bt848 #0 [sw]] registered
i2c_adapter i2c-1: found normal entry for adapter 1, addr 0x50
i2c_adapter i2c-1: master_xfer[0] W, addr=0x50, len=0
i2c_adapter i2c-1: found normal entry for adapter 1, addr 0x51
i2c_adapter i2c-1: master_xfer[0] W, addr=0x51, len=0
i2c_adapter i2c-1: found normal entry for adapter 1, addr 0x52
i2c_adapter i2c-1: master_xfer[0] W, addr=0x52, len=0
i2c_adapter i2c-1: found normal entry for adapter 1, addr 0x53
i2c_adapter i2c-1: master_xfer[0] W, addr=0x53, len=0
i2c_adapter i2c-1: found normal entry for adapter 1, addr 0x54
i2c_adapter i2c-1: master_xfer[0] W, addr=0x54, len=0
i2c_adapter i2c-1: found normal entry for adapter 1, addr 0x55
i2c_adapter i2c-1: master_xfer[0] W, addr=0x55, len=0
i2c_adapter i2c-1: found normal entry for adapter 1, addr 0x56
i2c_adapter i2c-1: master_xfer[0] W, addr=0x56, len=0
i2c_adapter i2c-1: found normal entry for adapter 1, addr 0x57
i2c_adapter i2c-1: master_xfer[0] W, addr=0x57, len=0
i2c_adapter i2c-1: found normal entry for adapter 1, addr 0x50
i2c_adapter i2c-1: master_xfer[0] W, addr=0x50, len=0
bttv0: using tuner=0
bttv0: i2c: checking for MSP34xx @ 0x80... <7>i2c_adapter i2c-1: master_xfer[0] R, addr=0x40, len=1
not found
bttv0: i2c: checking for TDA9875 @ 0xb0... <7>i2c_adapter i2c-1: master_xfer[0] R, addr=0x58, len=1
not found
bttv0: i2c: checking for TDA7432 @ 0x8a... <7>i2c_adapter i2c-1: master_xfer[0] R, addr=0x45, len=1
not found
bttv0: i2c: checking for TDA9887 @ 0x86... <7>i2c_adapter i2c-1: master_xfer[0] R, addr=0x43, len=1
not found
tuner: Unknown parameter `type'
bttv0: registered device video0
bttv0: registered device vbi0
bttv0: PLL: 28636363 => 35468950 . ok
cpia_init_isoc: usb_submit_urb 0 ret -28
cpia_init_isoc: usb_submit_urb 0 ret -28
cpia_init_isoc: usb_submit_urb 0 ret -28
cpia_init_isoc: usb_submit_urb 0 ret -28
Es tut sich was. Noch nicht das Richtige aber es tut sich was.

Mit meinem "modprobe" auf der Konsole komm ich aber immer nochnicht weiter...
 

Falkenstein

Hacker
Frage: Was soll mir dies hier sagen? bttv gibts nicht mehr?

lirc_dev: IR Remote Control driver registered, at major 61
lirc_gpio: no version for "lirc_unregister_plugin" found: kernel tainted.
The bttv_* interface is obsolete and will go away,
please use the new, sysfs based interface instead.
lirc_gpio (-1): card type 0x3b, id 0x0
lirc_gpio (-1): TV card type 0x3b not supported!
The bttv_* interface is obsolete and will go away,
please use the new, sysfs based interface instead.

lirc_gpio (-1): card type 0x3b, id 0x0
lirc_gpio (-1): TV card type 0x3b not supported!
 

ambkosh

Member
Nee, bttv gibt's noch. Es geht zum Einen nur um das Interface, mit dem lirc den bttv-Treiber bedient und zum Anderen gibt's ne neue Schnittstelle (seit kernel 2.6), nämlich das sysfs-dateisystem. Wie das jetzt im Einzelnen funktioniert, weiß ich nicht (bin kein kernel-Entwickler), aber die Meldung heißt halt, das sich die lirc-Jungs mal darüber Gedanken machen sollten ihre Module umzuschreiben, bevor das alte Treiber-Interface verschwindet.

Hast Du mal nach dem modprobe -r... ein lsmod gemacht, um zu sehen, ob der Treiber wirklich entfernt wurde?
 

Falkenstein

Hacker
Ja, ein "lsmod | grep bttv" zeigt nix nach dem rmmod.

Diese Fehlermeldung da oben kommt ja auch nach lirc_gpio.
Ist der ir-kbd-gpio -Treiber aus dem Kernel was besseres?
Mit dem komm ich irgendwie auch nicht weiter.
 

Falkenstein

Hacker
Ich habs!
hab diese Zeile in der /etc/modprobe.conf einfach "ent"kommentiert:
Code:
install bttv /sbin/modprobe --ignore-install bttv && { /sbin/modprobe -k tuner; /sbin/modprobe -k msp3400; }

Jetzt geht das mit meinem ganzen modprobe.


Nur mit lirc_gpio bin ich noch kein Stück weiter:
linux:~ # modprobe lirc_gpio card=53 bttv_id=59 sample_rate=10 soft_gap=100 gpio_mask=0x000000f8 gpio_xor_mask=0x000000f8
FATAL: Error inserting lirc_gpio (/lib/modules/2.6.15.6-default/misc/lirc_gpio.ko): Invalid request code
Ich find die Werte für gpio_mask usw. nicht.
 
Oben