Hi,
ich hab in meinem PC die digitale TV-Karte von Twinhan eingebaut - funktioniert unter Windows sehr gut. Will diese aber unter Linux (SuSE9.0) nutzen. Hierzu hab ich von Twinhan den Linuxtreiber bekommen und installiert. Dieser ist als Modul vorhanden - wenn ich diesen unter lsmod aufrufe wird dieser angezeigt aber als \'unused\'. insmod sagt mir Modul bereits vorhanden. Der Befehl lspci zeigt mir ebenfalls den Chipsatz Brooktree bt878. Wenn ich unter yast die Hardwarekonfiguration aufrufe wird diese TV-Karte ebenfalls angezeigt, aber unter den Punkt Treiber finde ich die Hinweise -Modul, -aktiv: nein.
Unter Yast kann ich diese TV-Karte nicht einrichten, da die Auswahlliste diese TV-Karte und den Tuner nicht kennt.
Frage: Wie kann ich diesen Treiber bzw. dieses Treibermodul aktivieren?
Kdetv meldet mir dass kein Gerät erkannt wurde.
Wie kann ich dafür sorgen, dass die TV-Karte nun endlich auf diesen Treiber zugreift?
Ich hab mittlerweile viel über Kernel und Module gelesen aber für dieses kleine Problem finde ich nirgends eine Lösung.
Gruss Olaf
Linux 15.070 Themen, 107.540 Beiträge
Mit dem Befehl "lsmod" kann man sich alle Module anzeigen lassen, die momentan geladen sind. Mit dem Befehl "modprobe Treiber" kann man manuell einen Treiber zur Laufzeit nachladen. Wenn es automatisch gehen soll muß die Datei /etc/modules.conf angepasst werden, damit kmod mit dem Befehl modprobe... den entsprechenden Treiber nachlädt.
Mit "insmod Treiber" kann auch ein Kernelmodul manuell geladen werden. Dabei werden aber nicht !! eventuelle Abhängigkeiten von anderen Kernelmodulen berücksichtigt.
Ich weiß nicht wie du den Treiber installiert hast, aber nur den Treiber in das Verzeichnis /lib/modules... zu kopieren reicht nicht. Kernelmodule sind kompilierte Objectdateien, also ein Teil des Kernels, welche zur Laufzeit nachgeladen werden und zum übrigen Kern hinzugelinkt (eingebunden) werden. Man kann einem Kernelmodul auch Optionen für die Hardware übergeben.
Wenn ein Gerät nicht richtig funktioniert reicht es manchmal, das Kernelmodul mit dem Befehl "rmmod Treiber" aus dem Speicher zu entfernen und wieder mit dem "modprobe Treiber" - Befehl in den Speicher zu Laden. Dabei wird die Hardware neu initialisiert.
Vielleicht war schon ein Treiber bei SUSE für diese TV-Karte mit dabei und du brauchst den Treiber vom Hersteller gar nicht zu installieren.
Hi Karsten,
ich möchte mich für Deine Antwort bedanken.
Ob der treiber bei Suse dabei ist weiss ich nicht, aber ich glaube nicht, da es nicht möglich war mit yast die TV-Karte einzurichten.
Ich hab den Treiber vom Hersteller der TV-Karte (Twinhan) per mail zugesandt bekommen. Es war eine Installationsdatei (./install).
lsmod zeigt mir an dass der Treiber als Modul geladen ist. Mit rmmod kann ich ihn auch wieder entladen. Mit modprobe kann ich ihn auch wieder laden. Es kommt die Meldung: Note: etc/modules.conf.local is more recent than /lib/modules/2.4.21-99-default/modules.dep
und eine Warnung ....will taint the kernel: no licence ......
Module twinhan2.4.21-99-default loaded
Der Befehl lsmod zeigt mir dann wieder das Modul an allerdings als 'unused'.
Vielleicht sagt Dir dies etwas mehr.
Gruss und DAnk Olaf
" etc/modules.conf.local is more recent than /lib/modules/2.4.21-99-default/modules.dep "
besagt , das die Datei /etc/modules.conf neuer ist als die Datei
/lib/modules/2.4.21-99-default/modules.dep
Ich weiß nicht welche Abhängigkeiten erfüllt sein müssen , damit dieser Treiber läuft. In der Datei /etc/modules.conf stehen links die Aliase, welche vom Betriebsystemkern gesendet werden und auf der rechten Seite stehen die jeweiligen Treiber, welche von Kmod zur Laufzeit automatisch geladen werden können. Der Betriebsystemkern sendet einen Alias an Kmod, damit Kmod den richtigen Treiber automatisch laden kann.
Kmod selbst lädt einen Treiber mit dem Befehl "modprobe Treiber". Das kann der Administrator auch selbst machen.
modprobe schaut dann noch in die Datei /lib/modules/..../modules.dep
rein, um den einen oder anderen Treiber automatisch mitzuladen. Manche Treiber sind von anderen Kernelmodulen abhängig. Diese Abhängigkeiten stehen in der Datei /lib/modules/..../modules.conf.
Ich nehme an das die Installationsroutine nicht richtig funktioniert oder eventuell irgendwelche Abhängigkeiten zwischen irgendwelchen Treibern (Kernelmodulen) nicht erfüllt sind. Vielleicht braucht dieser Treiber noch ein anderes Kernelmodul oder einen anderen Treiber, damit er funktioniert. Da müßte man sich beim Hersteller mal erkundigen. Ich kann nicht wissen welche Kernelmodule voneinander abhängig sind.
PS.:
" etc/modules.conf.local is more recent than /lib/modules/2.4.21-99-default/modules.dep "
Die Datei müßte eigentlich /etc/modules.conf heißen. Welche Distribution verwendest du ?
Hallo Karsten,
ich verwende die Distribution SuSE9.0. Ich hab gelesen, dass Änderungen der Module in die Datei ....modules.conf.local vermerkt werden sollen.
Diese Datei ist bei mir aber nahezu leer.
In der Datei modules.conf steht zu TV-Karte folgender Eintrag:
# YaST2 configured TV card
# bSAa.2xGeltw3Zm3:Bt878
alias char-major-81-0 bttv
alias char-major-81-1 off
alias char-major-81-2 off
alias char-major-81-3 off
In der Datei modules.dep steht folgendes zu dem Treiber:
/lib/modules/2.4.21-99-default/twinhan/twinhan2.4.21-99-default.o:
/lib/modules/2.4.21-99-default/v4l2/adv7170.o: /lib/modules/2.4.21-99-default/kernel/drivers/i2c/i2c-core.o
Vielleicht sagt dies etwas aus?? Aber das Modul twinhan... wird beim booten geladen ist aber inaktiv bzw. unused.
Gruss Olaf
Ich verwende Debian Sarge 3.1. Du mußt dich mal an den Hersteller wenden und in Erfahrung bringen, von welchen Kernelmodulen dieses Kernelmodul abhängig ist und in welcher Reihenfolge diese Kernelmodule geladen werden müssen. Ich kann das nicht wissen.
Ich kann mir vorstellen, das eventuell der Betriebsystemkern nicht zum Kernelmodul passt. Normalerweise bekommt man den Sourcecode vom Kernelmodul und muß gegen die Headerdateien des Kernels ein Interface kompilieren. Ich weiß nicht wie du den Treiber installiert hast.
Du mußt dir vorstellen, das ein Kernelmodul ein Teil des Betriebsystemkerns ist, welcher zur Laufzeit geladen wird und zum übrigen Kern hinzugelinkt wird.
Normalerweise bekommt man vom Hersteller einen Teil des Treibers als Binärdatei und einen Teil als Programmcode. Mit diesem Programmcode wird ein Interface gegen die Headerdateien des Kerns kompiliert, damit sich das Kernelmodul in den Speicher laden läßt und mit dem übrigen Kern verbunden wird. Dabei muß alles zueinander passen:
Der Betriebsystemkern, die Headerdateien des Kerns und die Version des C-Kompiler gcc.
Wenn du nicht weißt was eine Headerdatei ist, kann ich es mal versuchen zu erklären:
In der Headerdatei eines Programmes oder Betriebsystemkerns steht die Deklaration von Funktionen und anderen Dingen wie Variablen u.s.w. Der Kompiler muß wissen welche Funktionen der Betriebsystemkern hat, um den Treiber richtig zu kompilieren. Der Treiber muß hinterher genau zum Kern passen, sonst funktioniert er nicht richtig.
Die Headerdateien sind beim Programmcode des Kerns mit dabei.
Vielleicht passt der Treiber irgendwie nicht zum Betriebsystemkern. Normalerweise wird ein Interface gegen die Headerdateien des Kerns kompiliert, damit der Treiber sich mit modprobe hinterher laden läßt.
Hi Karsten,
also vom Hersteller erfahre ich nicht mehr - das äußerste was es gab war diese Sammlung von Treibern für verschieden Distributionen. Diese habe ich mit dem vorgegebenen Befehlt ./ist-twinhan installiert. Es war auch eine Datei Utility.tgz dabei - hab ich noch nicht installiert - allerdings hat dies mit den Sendereinstellungen zu tun - wenn man TV sehen will mit MPlayer oder xine. Nach meinem Verständnis muss es eine Konfigurationsdatei geben, in dem sich ein link o.Ä. geben welche die hardware anweist of den Treiber xyz zuzugreifen..
Aber jetzt bin ich erst einmal Skilaufen - vielleicht bringt mir das die Erkenntnis.
Gruss Olaf
Diese Abhängigkeiten stehen in der Datei /lib/modules/..../modules.conf.
ist falsch. Die Datei heißt /lib/modules/Kernelversion/modules.dep.
dep ist die Abkürzung für dependence (Abhängigkeit).
Habe selbst eine Twinhan und SUSE9.3
KdeTV ist doch nur für ANALOGE Tuner gedacht oder?
Ich habe die Karte mit meinem bescheidenen Wissen in YAST konfiguriert, KEINE ANDEREN TREIBER GELADEN!!!
nun muss ich bei jedem Start folgendes als root eingeben:
modprobe bttv i2c_hw=1 card=0x71
modprobe dvb-bt8xx
modprobe dst dst_type=0
dann starte ich KaxTV
damit geht die Sendersuche, ich sehe TV, etwas EPG, Timeshift geht auch
Wie kann ich die MODPROBE geschichten denn automatsch bein Start ausführen lassen?
Hi DJ-Elo,
ich weiss nicht ob es noch aktuell ist - aber öffne die Datei /etc/init.d/boot.local mit einem Editor - beispielsweise Kate - und füge die genannten 3 Zeilen modprobe........ etc. unten an. Dann schließen und neu starten - es müsste klappen.
Gruss Olaf
