Linux-Kernel: Device durch Treiber anmelden

Dieses Thema im Forum "Programmieren allgemein" wurde erstellt von chackie-lee, 30.11.2007.

  1. #1 chackie-lee, 30.11.2007
    chackie-lee

    chackie-lee Mitglied

    Dabei seit:
    26.11.2007
    Beiträge:
    25
    Zustimmungen:
    0
    Hallo zusammen,

    ich versuche seit geraumer Zeit nen Treiber für Video4Linux2 zu erstellen.
    Sieht bis jetzt ganz gut aus, allerdings habe ich noch 1-2 Verständnisfragen.

    1) Wer kümmert sich um das automatische Anlegen eines Device?
    Wenn ich ne UBS-Cam anschließe, wird automatisch video0 angelegt.
    Erstellt der Kernel video0, da er nen Video-Device entdeckt hat?
    Oder erstellt der Kernel video0, da er nen Video-Treiber geladen hat?
    Oder erstellt mein Treiber video0?

    2) Habe versucht nen Video Treiber (ohne angeschlossener Hardware) zu laden und dann mit mknod mir selbst mein Device mit passender Major-Nummer erstellt.
    Doch wenn ich dann per cat darauf zugreifen will, existiert angeblich mein Device nicht.

    3) In proc/devices sollen angeblich die Treiber inkl. Major stehen.
    Allerdings steht auf meinen System dort immer nur video4linux mit Major 81. Die video-Treiber melden sich aber doch beim Kernel an und sollten dann doch auch dort stehen, oder wird das alles über v4l gehandelt?!

    4) Habe gelesen, dass Treiber nur initialisiert werden können, wenn sie an irgendeine Hardware gebunden sind. PWC-Treiber an USB oder der VIVI-Treiber an PCI, obwohl er rein virtuell ist.
    Möchte nämlich erstmal einen virtuellen Treiber kreieren, der mir einfach nur ein Frame aus einer Datei ausliest und übergibt. Also nichts mit USB, PCI oder PPI.
    Doch wie melde ich so einen Treiber an und sorg dafür, dass video0 erstellt wird?

    Ok, sind insgesamt 4 Fragen geworden.
    Ich hoffe der eine oder andere hat vielleicht ein paar Antworten für mich oder Links, wo ich passende Informationen finde.

    Noch nen schönen Freitag,
    chackie-lee
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 chackie-lee, 03.12.2007
    chackie-lee

    chackie-lee Mitglied

    Dabei seit:
    26.11.2007
    Beiträge:
    25
    Zustimmungen:
    0
    Moin,

    wirklich niemand auch nur eine Antwort auf meine Fragen? :hilfe2:
     
  4. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Ich habe mich mit Treiberprogrammierung noch nicht auseinandergesetzt, doch wenn nichts angeschlossen ist, scheint die Auskunft doch korrekt zu sein, dass das Geraet nicht existiert .

    Welche Quelle benutzt Du denn, um Dich ueber die Kernelschnittstellen zu informieren? Soweit ich weiss, gibt es von O'Reilly ein Buch zur Kernelprogrammierung, vielleicht hilft das ja weiter?
     
  5. #4 chackie-lee, 03.12.2007
    chackie-lee

    chackie-lee Mitglied

    Dabei seit:
    26.11.2007
    Beiträge:
    25
    Zustimmungen:
    0
    Hi rikola,

    ja, der Treiber funktioniert richtig.

    Allerdings muss doch irgendwo geregelt werden, wer für das Anlegen des Device-Nodes verantwortlich, so dass man zum Testen manuell eines anlegen und registrieren kann und dann versucht erstmal allgemein mit dem Treiber zu kommunizieren.

    Der erste Schritt soll nämlich ein Dummy-Treiber sein, der als Device video0 hat und erstmal nur ein paar Status-Daten zurückgibt. Allerdings brauche ich zur Kommunikation ein video-Device. Und manuelles Anlegen funktioniert nicht und alle bis jetzt angeschauten Treiber vivi, Micron MT0T001 haben eine Abhängigkeit zu irgendeinem Bus (vivi will PCI, Micron I2C/PPI) und bei Micron muss ein Device angeschlossen sein, damit in /dev/ ein video-Device angelegt wird.
    Und diese Abhängigkeit würde ich nun erstmal gerne umgehen, nur leider finde ich das Anlegen der video-devices in keinem der besagten Treiber.

    Also rätsel ich gerade herum wer durch was zum Anlegen veranlasst wird.

    Das vorgeschlagene Buch kenne ich, hier der Link zum deutschen open-Book.
    Zusätzlich verwende ich noch "Linuxtreiber entwickeln" von Quade/Kunst.

    Leider sind die besagten Bücher nicht ganz aktuell und auf /dev/ wird zwar eingegangen, aber wer jetzt was warum anlegt und welche möglichen Alternativen es gibt wird leider nicht erläutert.

    Gruß
    chackie-lee
     
  6. #5 Keruskerfürst, 03.12.2007
    Keruskerfürst

    Keruskerfürst Kaiser

    Dabei seit:
    12.02.2006
    Beiträge:
    1.366
    Zustimmungen:
    0
    udev legt die Device-Nodes an.
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. #6 chackie-lee, 03.12.2007
    chackie-lee

    chackie-lee Mitglied

    Dabei seit:
    26.11.2007
    Beiträge:
    25
    Zustimmungen:
    0
    Hi,

    danke für den Tipp.
    Da es sich bei meiner Distri um uClinux handelt, wird anscheinend mdev von busybox verwendet.
    Zwar weiß ich, wie ich damit statische Nodes anlege. Aber das dynamische Einbinden scheint recht tricky zu sein. Mal gucken ob ich was herausfinde.

    Grüße
    chackie-lee
     
  9. #7 Keruskerfürst, 03.12.2007
    Keruskerfürst

    Keruskerfürst Kaiser

    Dabei seit:
    12.02.2006
    Beiträge:
    1.366
    Zustimmungen:
    0
    Dies stand aber nirgends in den obigen Posts.
     
Thema:

Linux-Kernel: Device durch Treiber anmelden

Die Seite wird geladen...

Linux-Kernel: Device durch Treiber anmelden - Ähnliche Themen

  1. Linux-Kernel 4.6 tritt in die Testphase ein

    Linux-Kernel 4.6 tritt in die Testphase ein: Linux-Initiator Linus Torvalds hat die Kernel-Version 4.6-rc1 als erste Testversion für Linux 4.6 freigegeben. Die Verbesserungen ziehen sich...
  2. Linux-Kernel 4.5 tritt in die Testphase ein

    Linux-Kernel 4.5 tritt in die Testphase ein: Linux-Initiator Linus Torvalds hat die Kernel-Version 4.5-rc1 als erste Testversion für Linux 4.5 freigegeben. Die Verbesserungen ziehen sich...
  3. Linux-Kernel 4.4 veröffentlicht

    Linux-Kernel 4.4 veröffentlicht: Linux-Initiator Linus Torvalds hat Version 4.4 des Kernels veröffentlicht. Die Neuerungen der aktuellen Version umfassen unter anderem...
  4. Linux-Kernel 4.4 tritt in die Testphase ein

    Linux-Kernel 4.4 tritt in die Testphase ein: Linux-Initiator Linus Torvalds hat die Kernel-Version 4.4-rc1 als erste Testversion für Linux 4.4 freigegeben. Neben einem Grafiktreiber für...
  5. Linux-Kernel 4.3 freigegeben

    Linux-Kernel 4.3 freigegeben: Linux-Initiator Linus Torvalds hat Version 4.3 des Linux-Kernels freigegeben. Einige der Neuerungen sind IPv6 als Voreinstellung, zahlreiche...