In einem anderen Thread kam die Frage auf, wie man denn in einem echten Terminal (also ohne den X-server und großen DEs) Bilder anzeigen oder Videos gucken kann. Dort kann man ein wenig über die Geschichte der Terminals nachlesen
Diese Terminals finden sich mit den Tastenkombis <strg><alt><F1-6>
Die ersten 6 Terminals sind also für echte Konsolen standardmäßig reserviert. Auf den folgenden Konsolen mit <F7> liegt die erste graphische Konsole, meist KDE oder Gnome.
(Man kann auch mehrere solche DEs hintereinander starten. Auf F7 KDE als User looser, auf F8 mit Gnome als User zwerg usw. also soweit der Speicher reicht). Davon sei hier NICHT die Rede.
Der Framebuffer ist für echte Terminals. Also nicht für irgendwelche Terminalemulatoren (, wie z.B. Konsole unter KDE )
Also für diese finsteren Dinger, die nach Eingabe von <strg><alt><F1-6> erscheinen und einen schlichten Login-Prompt ausgeben.
Sie erscheinen auch, falls ihr mit eurem DE oder öfter mit eurem Graphikkartentreiber Ärger habt. Die Konsole auf F7 bleibt schwarz, aber die anderen laufen noch.
Bevor wir jetzt in einen solche Konsole wechseln und dort unsere Videos gucken, müssen wir noch zwei Dinge machen:
- Wir müssen DirectFB und mplayer installieren
- und die User, die das können sollen noch der Gruppe video hinzufügen.
Wir machen das gleich in einer echten Konsole.
Hinweis: Läuft schon ein KDE, Gnome oder sonst ein DE, so laufen diese Sitzungen weiter.
Aus Sicht des Kernels sind zwei verschiedene User angemeldet, so dass ein laufendes Video in KDE -obwohl es via pulseaudio Krach macht- nicht mehr zu hören ist. In dem echten Terminal kommt davon nichts an. Schaltet ihr zurück, könnt ihr wieder hören und sehen.
Ein Wort zu den proprietären Treibern.
Bei Nvidia wird auch ein Treiber der den Framebuffer darstellt mitgeliefert. Nur schafft es Nvidia seit geraumer Zeit nicht, den so lauffähig zu machen, dass man ihn zusammen mit dem Treiber für den X-org Server zusammen verwenden kann.
Will man in der Console also das Maximum aus seiner GraKa herausholen muss man sich zur Bootzeit entscheiden, ob man nun den Framebuffer oder den X-Org laden lassen will.
Macht nicht wirklich Sinn.
Oder, wie es Linus mal formulierte: Nvidia sucks.
Sie äußern sich auch dazu nicht.
Bei ATI weiß ich das nicht. Mag sein, dass das beides läuft.
Aber bei jedem modernen Linux ist schon ein brauchbarer Framebuffer installiert.
Also nun in eine echte Konsole gewechselt mit der Tastenkombi <strg><alt><F3>
Natürlich seid ihr frei eine Konsole zu wählen von F1 bis F6 ist alles standardmäßig erlaubt.
Auf F10 läuft übrigens immer "dmesg" der Kernel Ringpuffer. Wer Probleme hat, kann auch immer dort gucken, was dem Kernel gerade zu schaffen macht.
Sind wir nun in einer echten Konsole so melden wir uns ganz normal als User an.
Er verlangt das Spasswort, bei dessen Eingabe nichts -nicht einmal Sternchen- angezeigt werden. Einfach tippen und Entern.
Dann machen wir uns innerhalb dieser Konsole mit su zu root.
Sind wir auf einer echten Konsole eingeloggt, so tippen wir:
su # um innerhalb dieser Konsole root zu werden
zypper install DirectFB mplayer # Installation durchführen.
# falls nötig. oft schon installiert
yast --list # gibt eine Liste der Module aus, wir wollen
yast users # Jetzt den User auswählen und editieren.
# Alt+d für Details
# Alt+a für Additional groups
# Häckchen mit <space> bei "video" setzen.
# F10 für OK oder alt+o zweimal drücken. erledigt
# Nun drücken wir Strg+d (Das Ende der Eingabe/Datei Zeichen
# und sind wieder, weil die Bash-Instanz von root endete in der
# normalen User konsole.
# Wir müssen uns aber noch einmal abmelden und neu anmelden,
# damit die Gruppenänderung wirksam wird
# Also nocheinmal Strg+d drücken
# Wir sind wieder beim Login-Prompt
# Wie gehabt anmelden als user
# Als erstes gucken wir ein Bild
fbi /Pfad/zu/einem/lesbaren/Bild
# Das ist wirklich alles.
# Ein Video lassen wir hier mit dem UniversalSchweizerMesser
# für Videos unter Linux, dem berühmten "mplayer" laufen
# Da der standardmäßig das Video in einem DE ausgibt,
# müssen wir ihm sagen, dass die Ausgabe auf einem FrameBuffer
# zu erfolgen hat. "-vo" Video Out tut das.
mplayer -vo fbdev /Pfad/zu/lesbarem/Video
# Das ist wirklich alles.
# Es gibt in userem DirectFB Paket noch ein paar nützliche Programme.
# Wir lassen uns die aus einem Listing aller Dateien dieses Paketes herausgreppen.
rpm -ql DirectFB | grep bin # Zeilen, die "bin" enthalten sind meist aufrufbare Programme.
# und diese Liste lautet:
/usr/bin/dfbdump
/usr/bin/dfbdumpinput
/usr/bin/dfbfx
/usr/bin/dfbg
/usr/bin/dfbinfo
/usr/bin/dfbinput
/usr/bin/dfbinspector
/usr/bin/dfblayer
/usr/bin/dfbmaster
/usr/bin/dfbpenmount
/usr/bin/dfbscreen
/usr/bin/directfb-config
/usr/bin/directfb-csource
/usr/bin/mkdfiff
/usr/bin/mkdgiff
/usr/bin/mkdgifft
/usr/bin/pxa3xx_dump
/usr/bin/uwmdump
# Es springt schon in's Auge! Dieses "dfbg"
dfbg --help
DirectFB Desktop Background Configuration (version 1.6.3)
Usage: dfbg [options] <imagefile>|<color>
Options:
-c, --color Set <color> in AARRGGBB format (hexadecimal).
-t, --tile Set tiled mode.
-p, --premultiplied Create the surface with DSCAPS_PREMULTIPLIED
-h, --help Show this help message
-v, --version Print version information
Alles anzeigen
Das sollte reichen.
Viel Spass beim Spielen damit.
Einfach alle oben gelistete Programme mal mit --help aufrufen und spielen.
Leider ist die Doku dazu sehr mager und es sind keine man pages beigepackt.
Wer da tiefer einsteigen möchte, dem seien diese Links an's Herz gelegt:
Das echte FrameBuffer HowTo von LKML selbst.
Da dieses Zeugs aus längst vergangenen Zeiten stammt, sind da sehr viele alte Kernelversionen und uralte Tools genannt. Aber das gilt ja alles immer noch.
Eine etwas modernere Variante davon.
Und mit den bekannten Screenmultiplexern, wie screen oder tmux oder, oder,,, lässt sich auch ein eigenes DE innerhalb einer Konsole basteln. Man lese dazu das hier.
Ein Problem bleibt. Der Krach.
Sobald ein DE läuft, hat es den Krach unter Kontrolle.
pulseaudio ist ein Userprocess.
Zwar könnte man pulseaudio auch systemweit laufen lassen, aber davon ist DRINGEND abzuraten.
Das ist ein Sicherheitsloch allererster Güte.
Klar könnte man einfach den laufenden pulseaudio abschießen und gleichzeitig ein pulse in der Konsole starten, aber das ist kein wirklich gangbarer Weg.
Besser ist es innerhalb von pulseaudio den Sound via Netzwerksockets zu routen und pulse so einzurichten, dass es immer Krach macht.
Das könnte im Ernstfall dazu führen, dass der Sound der Videokonferenz mit den Chefs gemischt wird mit dem Sound vom Konsolenporno. Das Gestöhne der Chefs über mangelndes Geld gemischt mit dem Gestöhne vom Porno mag zwar gut zusammenpassen, sinnvoll ist das eher weniger und die Folgen davon sind ganz sicher nicht gewünscht..
Vor allem aber habe ich keine Lust, in dieses MiniHowTo ein riesiges Pulseaudio Tutorial einzubauen.