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
    rm -f /dev/fb0autodetect
    rm -f /dev/fb1
    mknod /dev/fb1 c 29 1
    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

    VDR1: Odroid N2+ mit CoreELEC und Ubuntu in chroot, 2x WinTV DualHD, Sandisk 2TB SSD

    VDR2: Tanix TX3 mit VDR*ELEC, WinTV DualHD, 500GB SSD

    Edited once, last by Dr. Seltsam (December 16, 2006 at 9:48 PM).

  • 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
    GRUB_CMDLINE_LINUX_DEFAULT="quiet"
    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.

    VDR1: Odroid N2+ mit CoreELEC und Ubuntu in chroot, 2x WinTV DualHD, Sandisk 2TB SSD

    VDR2: Tanix TX3 mit VDR*ELEC, WinTV DualHD, 500GB 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...

    Meine VDRs

    VDR 1: Intel DH67BL, Celeron 540, 4 GB Ram, POV Geforce GT 1030, Ubuntu 24.04 (yavdr-ansible), VDR 2.7.4, CIR-Empfänger
    VDR 2: Acer Revo 3610, Pinnacle PCTV SAT 452e, Medion X10, yaVDR 0.6
    Client 1: Raspberry Pi 2, Ubuntu 22.04 (yavdr-ansible), VDR 2.6.1

    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

    Edited once, last by torsten lang (September 21, 2011 at 7:07 PM).

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

    Gruß Martin (linuxdep)

    VDR-Systeme

    Produktiv:
    MLD [5.4 unstable] * Q1900M * 2xCine S2 * ATRIC V4 * Nvidia 710

    Testsystem * ASUS M3N78-EM oBoard nVidia8300 * TiVii 464 DVB-S2 * yaUSBIR V3

    ausgemustert wegen Pro7Sat1 Bug * yaVDR 0.5.0a nVidia8300 onMoBo + Cine S2 +

    zumVerkauf:
    nix

  • 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.

    VDR1: Odroid N2+ mit CoreELEC und Ubuntu in chroot, 2x WinTV DualHD, Sandisk 2TB SSD

    VDR2: Tanix TX3 mit VDR*ELEC, WinTV DualHD, 500GB 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)

    VDR-Systeme

    Produktiv:
    MLD [5.4 unstable] * Q1900M * 2xCine S2 * ATRIC V4 * Nvidia 710

    Testsystem * ASUS M3N78-EM oBoard nVidia8300 * TiVii 464 DVB-S2 * yaUSBIR V3

    ausgemustert wegen Pro7Sat1 Bug * yaVDR 0.5.0a nVidia8300 onMoBo + Cine S2 +

    zumVerkauf:
    nix

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!