Konsolen vor der Übernahme durch ivtv-fb schützen - so funktioniert es wirklich!

  • Nutzer des pvr350-Plugins kennen es wahrscheinlich: Kaum ist ivtv-fb geladen, sind alle Konsolen eingefroren, und man kann den VDR nur noch übers Netzwerk per ssh administrieren. Die im wiki unter http://www.vdr-wiki.de/wiki/index.php/Pvr350-plugin hinterlegte Lösung hat bei mir (und auch vielen anderen) nie funktioniert, obwohl es Erfolgsberichte von Nutzern anderer Distibutionen gibt.


    Selbst wenn man sich daran gewöhnt hat, den Rechner übers Netz zu administrieren, so bleibt doch das Problem, dass ivtv nicht entladen werden kann, solange ivtv-fb in Benutzung ist. Und ivtv-fb lässt sich nicht entladen, solange es sich die Konsolen gekrallt hat. Ergo: Man muss einen reboot machen.


    Ich habe das heute mal näher untersucht und folgende Lösung gefunden:


    Im LinVDR-Kernel ist vesafb fest einkompiliert, so dass /dev/fb0 vesa wird. Insofern ist schon mal klar, dass die Konsolen für fb0 freigehalten werden müssen und nicht auf 1 gemappt werden können. Der Eintrag in /boot/grub/menu.lst sieht daher wie folgt aus:


    title LinVDR (800x600)
    root
    kernel /boot/vmlinuz vga=792 video=vc:64-64 video=map:0 root=/dev/hda1 quiet
    savedefault
    boot


    Das alleine reicht aber nicht. Bei mir hat das pvr350-Plugin nun kein Bild mehr geliefert. Eine Kontrolle ergab, dass ivtv-fb sich auf /dev/fb0autodetect eingenistet hat. Da hat das pvr350-Plugin es aber nicht gefunden. Geholfen hat mir nun ein Auszug aus dem KnoppmythWiki:


    Code
    1. rm -f /dev/fb0autodetect
    2. rm -f /dev/fb1
    3. mknod /dev/fb1 c 29 1
    4. chmod 666 /dev/fb1


    Nun kann man die ivtv-Module auch in der /etc/init.d/rcStart (wo die meisten sie wahrscheinlich eingetragen haben) löschen und in /etc/init.d/runvdr verlegen, und zwar in den Abschnitt MODULES=". Ich habe ans Ende dieses Abschnitts erst ivtv und darunter ivtv_fb eingetragen. Jetzt kann man den vdr über Einstellungen - Neustart neu starten, und beide ivtv-Module werden sauber entladen und wieder neugestartet! :]
    Sicherheitshalber habe ich die Zeit zwischen Beenden von vdr und Entladen der Treiber noch von 1s auf 2 s hochgesetzt:


    down)
    vdradmind.pl -k
    PID=`ps -C vdr -o "%p" | grep -vw PID | tac`
    if [ x"$PID" != "x" ]; then
    kill $PID
    fi
    sleep 2


    Gruß
    Dr. Seltsam

    VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
    VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von Dr. Seltsam ()

  • Nur zur Info:


    Bei der c't-VDR Distribution 4 (Kernel 2.6.12) habe ich mit ivtv 0.4.x und ivtv_fb keine solchen Probleme festgestellt, obwohl ivtv_fb sich den fb0 greift.


    Bei der c't-VDR Distribution 5 (Kernel 2.6.16) mit ivtv 0.6.x kann man das Problem lösen, indem man lediglich in der Datei /boot/grub/menu.lst zu den Kernelparametern die Option vga=786 (oder je nach gewünschter Farbtiefe und Auflösung anders) hinzfügt.


    Rusk

    Hardware: Silverstone LC11B, DFI 855GME-MGF, Pentium M-745 1,8GHz, 512MB, TT-2300 DVB-C FF, TT 1300 DVB-T, Samsung HA250JC, ASUS DRW-1608P2S, GraphLCD 128x64, Attric IR-Einschalter
    Software: Debian Squeeze + eTobi VDR, Kernel 2.6.32, VDR 1.7.28, DVBSDevice, ACPI-Wakeup, EPGSearch, Burn, Sysinfo, DVD, Streamdev, ...
    Lärmschutz: Pentium-M, CPU-Lüfter gedrosselt, leiser Gehäuselüfter gedrosselt, 5400U/min HDD weich aufgehängt, Gehäusedämmung
    Infos: Booten 45s, Verbrauch 70W, Standby 5W

  • Hallo zusammen,
    das Thema ist zwar alt, bei mir aber gerade durch ein Kernel-Upgrade (wegen S2-6400) wieder hochgekocht. Meine Lösung sieht wie folgt aus:


    /etc/default/grub:


    Code
    1. GRUB_CMDLINE_LINUX_DEFAULT="quiet"
    2. GRUB_CMDLINE_LINUX="vga=792 nomodeset video=vc:0-0 video=map:1"


    Damit erhalten die fb-Devices korrekte Namen und das PVR350-Plugin funktioniert einfach so. Außerdem funktionieren so auch die Single-User-Konfigurationen, ohne daß da plötzlich die Konsole weg ist!


    Das "nomodeset" ist wichtig, falls es Probleme mit dem Auslesen der EDIDs aus dem Monitor gibt. Das scheint ein bekanntes (aber bisher ungelöstes) Problem bei verschiedenen GPUs zu sein zu sein. Wenn es auftritt, werden Konsole und Logs u. U. minutenlang vollgemüllt, das System ist während dieser Zeit nahezu unbedienbar. "nomodeset" habe ich als Workaround in einem der Bug-Reports dazu gefunden.


    Viele Grüße,
    Torsten

    "The day Microsoft makes something that doesn't suck is probably
    the day they start making vacuum cleaners" - Ernst Jan Plugge
    __________________
    Torsten Lang

  • der Parameter nomodeset war mir bisher nicht bekannt. Eventuell hilft das auch bei Problemen mit dem Kernel Mode Setting bei älteren Grafikkarten.


    Die video-Optionen hatten bei mir zuletzt nicht mehr funktioniert. Ich hab dann das Modul fbcon.ko umbenannt in fbcon.ko.HIDE und anschließend ein depmod -ae ausgeführt. Danach konnte sich die Konsole den ivtv-framebuffer nicht mehr krallen. Das geht aber nur, wenn fbcon nicht fest im Kernel einkompiliert ist.
    Der Eintrag fbcon in /etc/modprobe.d/blacklist.conf hatte bei mir nie irgendeine Wirkung.

    VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
    VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

  • aber mal eine blöde Frage: wozu brauchst Du ivtvfb und das pvr350-Ausgabeplugin, wenn Du eine S2-6400 hast?

    VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
    VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

  • "Brauchen" vielleicht nicht wirklich. Die PVR hab' ich aber als Eingabe-Device für analoge Einspielungen eingebaut. Statt den Ausgabeteil nun einfach brach liegen zu lassen habe ich halt versucht, die Hardware im VDR komplett einzubinden...

    "The day Microsoft makes something that doesn't suck is probably
    the day they start making vacuum cleaners" - Ernst Jan Plugge
    __________________
    Torsten Lang

  • Geht das denn mit 2 parallel aktiven Frontends (S2-6400 FF + PVR350)? Spätestens bei der OSD-Auflösung wird das doch etwas widersinnig...

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Geht das denn mit 2 parallel aktiven Frontends (S2-6400 FF + PVR350)? Spätestens bei der OSD-Auflösung wird das doch etwas widersinnig...

    Ja, das funktioniert so gut oder schlecht wie das Umschalten der Auflösung der S2-6400. Die Frontends kann man einfach auswählen, wie das auch bei reinem SD schon ging, das OSD paßt sich halt an die aktuelle Auflösung an.


    Nachtrag: "Parallel" im Sinne von "gleichzeitig aktiv" laufen die Frontends ohnehin nicht, im VDR kann ich ja nur genau eins auswählen.

    "The day Microsoft makes something that doesn't suck is probably
    the day they start making vacuum cleaners" - Ernst Jan Plugge
    __________________
    Torsten Lang

    Dieser Beitrag wurde bereits 1 Mal editiert, zuletzt von torsten lang ()

  • mal ne "dumme" Frage an die PVR350 Nutzer hier, kann man die PVR350 mit ivtvfb als graphtft plugin ausgabe eigentlich nutzen?

    Gruß Martin (linuxdep)

  • ich habe in den Code des Plugins gesehen. Unterstützung für die PVR350 ist zwar drin, aber bezieht sich dieser auf den alten stand-alone- ivtv-Treiber vor Kernel 2.6.22.


    Vielleicht schau ich mir mal an, ob ich den Code auf die API des neuen Treibers konvertieren kann.


    Was für TFTs gibt es denn, die dafür interessant wären? Das Ding müsste ja einen FBAS oder S-Videoeingang haben.

    VDR 1: Silverstone LC20, Cougar A300/R, MSI C847MS-E33, passive Asus GT520, KNC One DVB-C, Cine CT V6, WD10EACS; Atric-IR-Einschalter. SW: yavdr 0.5 per SSD
    VDR 2: im Aufbau: ACT-620 mit Coba-NT, Asrock B75 Pro3-M, Celeron G540, Sundtek MediaTV Digital Home (DVB-C/T), passive Asus GT610. SW: Ubuntu 13.04 minimal (ohne grafische Oberfläche) per SSD

  • Was für TFTs gibt es denn, die dafür interessant wären? Das Ding müsste ja einen FBAS oder S-Videoeingang haben.


    Mein PSone, alt, aber dafür denke ich ausreichend, da es ja irgendwie mit ner FF-SD nicht so recht will und ich auch noch ne PVR350 hätte die dafür ja dann nutzbar wäre. siehe hier


    Und da ich bei meiner Suche gefunden habe das die PVR350 als FB Device als zweiter Monitor bei yaVDR durchgehen würde, oder liege ich da falsch?

    Gruß Martin (linuxdep)