Früher konnte man sich als User auf der Console anmelden und X11 mit xinit oder startx starten. Man brauchte keinen Display Manager. Das funktioniert bei Debian seit einigen Jahren nicht mehr so einfach. Als Notlösung benutze ich ein eigenes xinit. Gibt es eigentlich noch eine "offizielle" Methode?
Das ist für einen Rechner ohne Monitor gedacht. Normalerweise braucht der keine grafische Oberfläche, aber jeder billige Switch oder Router kann nur per Browser mit JavaScript konfiguriert werden :(
Früher konnte man sich als User auf der Console anmelden und X11 mit
xinit oder startx starten.
...
Gibt es eigentlich noch eine "offizielle" Methode?
Bei Verwendung eines seat managers (logind auf Systemd systemen, elogind auf nicht-systemd Systemen, und/oder seatd (kann zusammen oder statt *logind genutzt werden. Für seatd braucht Xorg aber womöglich einen patch)), sollte das eigentlich weiterhin funktionieren.
Also headless. Das sollte eigentlich auch ohne Seat Manager gehen, der ist nur zuständig dafür Zugriff auf Sachen wie die die drm card node / KMS master zu vergeben, womit man die Bildschirmauflösung usw. kontrollieren kann. (und das gibt es noch nicht)
Der User sollte aber zugriff auf /dev/dri/renderD* haben, für Sachen die die GPU nutzen wollen, aber kein KMS brauchen.
Xorg bräuchte dafür aber einen headless Treiber, oder einen, der als solches verwendet werden kann. Mit dem modesetting Treiber geht das momentan nicht, wobei, es ist nicht allzu schwer, den Treiber etwas zu patchen, und daraus einen Headless Treiber zu machen. Der Treiber erstellt nämlich einen grossen BO, für den Screen, auf den gezeichnet wird, und die Outputs geben dann einen teil davon auf den Monitoren aus, vereinfacht ausgedrückt (Normalerweise ein KMS dumb BO von einer card node, müsste man einfach durch einen GEM BO ersetzen). Das mit den Outputs ist teil von KMS und müsste man einfach entfernen, der Rest geht alles auch mit einer render node.
(Ich musste mich mal damit auseinander setzen, als ich ein Gerät hatte, mit einer render + card node (GPU), ohne Outputs / KMS unterstützung, und eine card node für ein Panel mit einem Output, die keine GPU Sachen konnte. Da wurde dann aber in Mesa ein hack dafür eingebaut, nennt sich KMSRO, das importiert die KMS dumb buffer im Hintergrund einfach bei einer render node usw., dann ist es, als ob man mit der KMS only node gpu rendering zeug machen könnte).
Irgendwie scheint aber nie jemand Lust zu haben, Xorg zu patchen. Mittlerweile gibt es noch VKMS, damit kann man virtuelle drm card nodes mit virtuellen Outputs erzeugen. Ich weiss zwar nicht, ob das schon zusammen mit mesa KMSRO geht / ob man da die glamour GPU acceleration von Xorg kriegt.
Ist zwar alles etwas witzlos, wenn man das Bild eh nirgends sehen kann. Da machen dann VNC Server usw. mehr sinn.
Lies eventuell man https://wiki.archlinux.org/title/Headless durch.
Normalerweise braucht
der keine grafische Oberfläche, aber jeder billige Switch oder Router
kann nur per Browser mit JavaScript konfiguriert werden :(
Ernsthaft, dafür brauchst du das? Das tönt als wolltest du per jump host auf nen Router zugreifen. Mach einfach SSH und Port Forwarding, und öffne die Seite lokal auf deinem Rechner im Browser, so wie jeder andere normale Mench auch. Was auch ginge wäre X11 forwarding per ssh (ssh -X oder ssh -Y), da brauchst du auch kein startx usw. höchstens der Agent sollte installiert sein. Da drüber müsste auch z.B. Xephyr gehen, wenn du nen ganzen Desktop starten willst.
Der Vollständigkeit halber noch, bei wayland gibt es waypipe fürs forwarding. Aber keine Ahnung, wie genau das geht.
Früher konnte man sich als User auf der Console anmelden und X11 mit
xinit oder startx starten. Man brauchte keinen Display Manager. Das
funktioniert bei Debian seit einigen Jahren nicht mehr so einfach. Als
Notlösung benutze ich ein eigenes xinit. Gibt es eigentlich noch eine
"offizielle" Methode?
Das ist für einen Rechner ohne Monitor gedacht. Normalerweise braucht
der keine grafische Oberfläche, aber jeder billige Switch oder Router
kann nur per Browser mit JavaScript konfiguriert werden :(
Lass Dich mal nicht beirren.
Natürlich geht das auch mit Debian.
Ich betreibe selber ein paar "Kiosk"-Systeme auf Debian 13 (Trixie) in Minimalkonfiguration und mit autologin, startx und ohne desktop environment.
Du musst halt mit einer Debian Minimalkonfiguration anfangen und dann nur die benötigten Pakete dazu installieren.
Ist am Anfang ein bisschen Rumprobiererei, aber das funktioniert.
Wenn man nur den nackten X-Server haben will, braucht man nur das
Executable des X-Servers starten. Eine passende Configdatei sollte
der dann an der passenden Stelle allerdings vorfinden.
In welchem Installationspaket der steckt, sollte man auch recht
einfach herausfinden.
Es bleibt rätselhaft. Natürlich ist mein Wunsch mal wieder exotisch, ein Server braucht kein X, bei einem normalen Desktop-PC fällt ein fetter Display Manager nicht weiter auf und für Kiosk-ähnliche Fälle ist nodm perfekt. Wenn Debian diese xinit-Methode mangels Bedarf nicht mehr unterstützt, ist das ok. Aber warum gibt es xinit dann noch?
Anscheinend hat man "X ohne root-Rechte" aufgegeben. Mit nodm läuft der auch als root und ein Start als User scheitert an "xf86EnableIO: failed to enable I/O ports 0000-03ff (Operation not permitted)". Dagegen müsste der x-server seine root-Rechte freiwillig aufgeben und dafür braucht man einen neuen System-User oder ein User müsste konfiguriert werden. Das sieht doch ziemlich eindeutig aus? Muss ich kein schlechtes Gewissen haben, wenn der bei mir als root läuft?
Ja.
Was hast du deinem armen Debian angetan?
"startx" existiert weiterhin, und ist Teil vom "xinit"-dpkg.
Wenn du xinit benutzt, aber kein startx mehr hast, ist bei deinem Debian irgendwas stark schief gelaufen.
Das ist für einen Rechner ohne Monitor gedacht. Normalerweise braucht
der keine grafische Oberfläche, aber jeder billige Switch oder Router
kann nur per Browser mit JavaScript konfiguriert werden :(
Das ist für einen Rechner ohne Monitor gedacht. Normalerweise braucht
der keine grafische Oberfläche, aber jeder billige Switch oder Router
kann nur per Browser mit JavaScript konfiguriert werden :(
X11 forwarding hatte Daniel A. weiter oben auch schon empfohlen.
Um X zu forwarden braucht es einen laufenden X-Server.
Und, wie Daniel auch schrieb, braucht X einen Bildschirm oder sonst ein Device, wo es reinmalen kann.
In einem Headless-Setup lässt sich also kein X starten.
Alternative:
Bau einen dauerhaften SSH-Tunnel zwischen deiner Headless-Maschine und der Maschine, wo Firefox drauf läuft, auf. Konfiguriere Firefox um einen Proxy zu nutzen.
Du kannst nun auf Webseiten zugreifen die nur von deinem internen LAN aus zu erreichen sind, z.B. deine Router-GUI.
Ich bin zu faul ins Detail zu gehen, aber die KI hat das freundlicherweise mal schön aufbereitet.
Ich habe das viele Jahre so gemacht um von unterwegs auf mein Heimnetz zuzugreifen (jetzt nutze ich einfach VPN).
Was hast du deinem armen Debian angetan?
"startx" existiert weiterhin, und ist Teil vom "xinit"-dpkg.
Wenn du xinit benutzt, aber kein startx mehr hast, ist bei deinem Debian
irgendwas stark schief gelaufen.
Umgekehrt; ich habe beide, aber ich fragte mich wozu, wenn es beide nicht schaffen, den x-server mit genug Rechten zu starten. Ich habe nichts gegen die beiden, wenn die normalerweise funktionieren.
dpkg-reconfigure xserver-xorg-legacy
Da steht der Default drin (Console Users Only), aber Anybody geht auch nicht.
Witzigerweise kennt der jetzt Tastatur und Maus beim Namen, aber findet keinen Treiber und xinit geht nicht, nur startx. Egal, das sind normale Fehler, andere Baustelle.
Das letzte(?) große Rätsel ist gelöst, vielen herzlichen Dank!
wenn es beide
nicht schaffen, den x-server mit genug Rechten zu starten.
Welche Rechte fehlen denn? User sollte in der "video" Gruppe sein, um Bilder ausgeben zu können, und in der "input" Gruppe, um Eingabegeräte verwenden zu können. (Wenn du die Rechte von Hand vergeben willst, und das nicht seatd, systemd-logind, udev etc überlässt)
Die Warnmeldung wegen "I/O ports 0000-03ff" kommt von der Auto-Detection des VESA-Treibers, den du ziemlich sicher nicht brauchst. Wenn dich die Meldung stört, wegkonfigurieren, oder xserver-xorg-video-vesa deinstallieren.
Die Warnmeldung wegen "I/O ports 0000-03ff" kommt von der Auto-Detection
des VESA-Treibers, den du ziemlich sicher nicht brauchst. Wenn dich die
Meldung stört, wegkonfigurieren, oder xserver-xorg-video-vesa
deinstallieren.
Danke, das gefällt mir. Mit so einer Taktik hat das Unheil ja begonnen. Da wäre es nur konsequent, so weiter zu machen ;) Aber ich wollte doch langsam mal brav werden...
Wenn startx geht, dann geht auch xinit.
Das isses nämlich was von startx in letzter Konsequenz aufgerufen wird.
Nätürlich mit den richtig gesetzten Parametern.
Sollte man meinen. Aber lass gut sein, dies ist mal der ganz seltene Fall, wo sich tatsächlich eine Neuinstallation lohnt. Schuld an diesem Rätsel ist nämlich eine Installation, die auf eine 2GB CompactFlash passen sollte. Dabei kann man Pakete wie xorg-docs usw. natürlich nicht gebrauchen. Jetzt fehlt bestimmt noch ein unscheinbares Paket, genau wie bei nur x-server-xorg statt xorg.
Am Ende brauchte die CF-Installation sogar nur 1.3GB und dadurch wurde "minimal" zur Gewohnheit, es gab ja nie echte Probleme. Jetzt, bei einer Trixie-Neuinstallation, ist es wieder aufgefallen und da bin ich neugierig geworden.