XDMCP - ich komme damit nicht zurecht

H

holgerw

Guest
Hallo,

wenn ich es richtig verstanden habe, muss auf der Maschine, in welche ich mich Remote einlogge - also dem Server - der XDM installiert sein und es muss dort Remote-Login in der xdm-config frei geschaltet werden und in der Xaccess muss der Client per LISTEN * ip-Adresse bekannt gemacht werden.

Der xdm muss außerdem über die /etc/ttys aktiviert werden.

Auf dem Rechner, mit welchem ich mich Remote einlogge - also dem Client - muss ich dies per
Code:
Xorg -query ip-Adresse-des-Servers :1
tun.

Nun gibt es aber schon eine Schwierigkeit mit dem XDM auf dem Server. Er soll auf dem Display-Device, also unserem Fernseher erscheinen, er tut das aber auf dem Display des Servers, also dem Fujitsu-Notebook, was ja klar ist, da die arandr-Datei, die den Fernseher als Primäres aktives Device setzt, erst mit Start von openbox abgearbeitet wird.

Zuerst also: Wie bekomme ich den XDM gleich auf unseren Fernseher?

Zweitens, auch noch auf die Server-Maschine bezogen: Was muss in welche Konfigurationsdatei, damit der xdm die openbox-session startet? Reicht da eine ~.xsession mit folgendem Inhalt:
Code:
export LANG=de_DE.UTF-8
exec openbox-session
Oder muss ich da in den zahlreichen Dateien in /usr/local/etc/X11/xdm irgendwas modifizieren?
(Langsam bekomme ich den Eindruck, poudriere und eigner Repo-Bau sind für einen Nicht-Informatiker simpler zu handhaben, als den xdm einzurichten, wenn ich mir schon die ganzen Dateien im xdm-Ordner anschaue.) :D

Und wie genau muss ich dann vorgehen, damit ich vom Client aus die Xserver Sitzung des Servers starten kann? Sorry, ich habe da keinen rechten Überblick, zumal auch im FreeBSD-Handbuch das Thema sehr rudimentär nur abgehandelt wird.

Bei meinen bisherigen Versuchen wurde ein
Code:
Xorg -query ip-Adresse-des-Servers :1
immer quittiert mit einem
Code:
Fatal server error:
(EE) XDMCP fatal error: Manager unwilling

Jede Hilfe, ob Verweise auf anfängerfreundliche Dokumentationen oder direkte Tipps, sind willkommen.
 
Es geht eben sehr viel einfacher mit dem xrdp, denke ich und ist auch im Verhalten ziemlich identisch.
Ich habe derzeit keine PCs mit X-Server frei, um selbst etwas zu testen, ich weiß aber noch, dass ich es immer nur mit KDM geschafft habe und mit XDM noch nie probiert hatte. Das Szenario sieht da etwa so aus, um einige Fragen von oben aufzugreifen, dass du dich aus der Ferne genauso einloggst, wie lokal. Du siehst also den Begrüßungsbildschirm deines entfernten Rechners und loggst dich auf diesem ein. Alles wird dann so ausgeführt, wie du das auf dem entfernten Rechner festgelegt hast. Hat der Nutzer in seiner .xinitrc drin stehen (und wertet der DM diese aus), dass openbox gestartet werden soll, dann startet dies und steht dort fluxbox, dann eben das und wenn es eine autostart gibt, dann wird eben diese ausgeführt und die entsprechenden Programme werden gestartet.
Wie das genau abläuft, um jeweils die korrekte $DISPLAY durch zu reichen, ob man dafür zusätzliche SW braucht (einen ConsoleKit vielleicht) oder ob das alles automatisch passiert, weiß ich nicht. Mit KDM lief alles automatisch und auch das Einloggen gestaltete sich sehr bequem.

Ich habe schon mehrfach darauf hingewiesen, dass man hierfür den X-Server eingerichtet haben muss, bevor ein User sich anmeldet. Man kann natürlich alles User-abhängig gestalten, keyboard und Verhalten und ich möchte mich darüber nicht streiten, welche Philosophie hier mehr Sinn macht, aber man muss es eben bedenken, dass alle Konfigurationen sozusagen auf Null stehen, so lange noch kein User eingeloggt ist und wenn nicht andere Mechanismen vorher schon greifen.
 
Hallo Pit,
per startx einloggen geht.

Das Tastaturlayout für X steht in der xorg.conf.d/input.conf systemweit auf deutsch.

X samt kodi am Fernseher habe ich über den HTPC schon regelmäßig genutzt.

Was muss ich denn in ...etc/X11 modifizieren, damit xdm auf dem Fernseher erscheint und nicht auf dem Display des HTPC-Notebooks?
 
Erst gemeinter Tipp: Lass es. Das X11-Protokoll kommt aus den tiefsten 80ern, es ist in seinen ersten Versionen älter als ich. Es ist darauf ausgelegt Zeichenbefehle für Vektorgrafiken zu übertragen, nicht die hochauflösenden Bitmaps moderner GUIs. Es ist selbst über ein schnelles Netzwerk unerträglich langsam, zumindest wenn man ernsthaft arbeiten möchte. Ein VNC-Server wie net/x11vnc mit einem guten Client wie net/tigervnc ist wesentlich schneller. Und einfacher einzurichten.

Wenn du es doch versuchen willst ist es sehr wahrscheinlich dein Problem, dass der X11-Server schon seit längerem nicht mehr ohne explizite Aufforderung auf Verbindungen aus dem Netzwerk lauscht. Dafür muss dem X11-Server Binary beim Start die Option "-listen tcp" mitgegeben werden. Das muss xdm machen, wenn er den Server startet, aber ich habe keine Ahnung, wo man das einstellt.
 
Hallo,

danke für alle bisherigen Hinweise und Hilfen.

Ich habe es nun doch mit xdmcp hinbekommen, zum Vorgehen:
1. Auf dem HTPC-System (server) xdm installiert.
2. Per /etc/ttys den xdm aktiviert
3. in der /usr/local/etc/X11/xdm/Xaccess folgende Zeilen durch Entfernen der # am Zeilenanfang aktiviert:
Code:
*                         #any host can get a login window
* CHOOSER BROADCAST #any indirect host can get a chooser
4. In der /usr/local/etc/X11/xdm/xdm-config folgende Zeile durch ein ! auskommentiert:
Code:
!DisplayManager.requestPort:    0
5. Neustart des HTPC
6. Aus einer X Sitzung des TP R500 (client) über ein xterminal dann aufgerufen:
Code:
X :1 -query  ip-adresse-des-htcp

Es erscheint xdm, ich kann mich dann in die openbox-session des HTPC einloggen.
@Yamagi: Langsam finde ich das nicht, allerdings gehe ich da immer über GB-Lan drauf, mit Wlan arbeite ich im Haus nur bei Nutzung von Smartphones und Tablets. Die Notebooks sind im Haus über Lan-Kabel angeschlossen. Sicherlich gibt es noch schnellere Übertragungen aber wenn ich über die Remote Sitzung z.B. audacity starte, dann geht das ähnlich flott wie direkt über das HTPC.

Nun möchte ich noch folgendes hinbekommen:
Der xdm auf dem HTPC soll direkt auf dem Fernseher erscheinen, und nicht auf dem Display des HTPC-Notebooks. Ich habe eine arandr-Datei mit folgendem Inhalt:
Code:
#!/bin/sh
xrandr --output DP3 --off --output DP2 --off --output DP1 --off --output HDMI3 --off --output HDMI2 --off --output HDMI1 --set "Broadcast RGB" "Full" --primary --mode 1360x768 --pos 0x0 --rotate normal --output LVDS1 --off --output VGA1 --off

Das muss irgendwie in die /usr/local/etc/XX11/xorg.conf.d/10-monitor.conf "übersetzt" werden. Wie packe ich das korrekt da rein, damit schon für den Login-Manager auf dem HTPC generell der Fernseher das Ausgabe-Device ist?
 
Hi Holger,
Das muss irgendwie in die /usr/local/etc/XX11/xorg.conf.d/10-monitor.conf "übersetzt" werden. Wie packe ich das korrekt da rein, damit schon für den Login-Manager auf dem HTPC generell der Fernseher das Ausgabe-Device ist?

xorg.conf(5):
Code:
With RandR 1.2-enabled drivers, monitor sections may be tied to spe-
cific outputs of the video card. Using the name of the output defined
by the video driver plus the identifier of a monitor section, one asso-
ciates a monitor section with an output by adding an option to the
Device section in the following format:

Option "Monitor-outputname" "monitorsection"

(for example, Option "Monitor-VGA" "VGA monitor" for a VGA output)
 
Danke, Marcel, dann werde ich mal versuchen, eine 10-monitor.config zusammen zu bauen, die funktioniert.
 
Danke, Marcel, dann werde ich mal versuchen, eine 10-monitor.config zusammen zu bauen, die funktioniert.
Stichwort dualhead oder multihead sollte weiter führen. Wie man einen Monitor ganz abschaltet, weiß ich nicht. Dazu wäre vielleicht eine Einstellung am PC (BIOS) hilfreich. Meine beiden Monitore sind so in der xorg.conf beschrieben:
Code:
Section "ServerLayout" 
 Identifier  "X.org Configured"
  Screen  0  "Screen0" 0 0
  Screen  1  "Screen1" RightOf "Screen0"
  InputDevice  "Mouse0" "CorePointer"
  InputDevice  "Keyboard0" "CoreKeyboard"
EndSection

Section "Screen"
  Identifier  "Screen0"
  Device  "Card0"
  Monitor  "Monitor0"
  SubSection  "Display"
  Viewport  0 0
  Depth  24
  EndSubSection
EndSection

Section "Screen"
  Identifier  "Screen1"
  Device  "Card1"
  Monitor  "Monitor1"
  SubSection  "Display"
  Viewport  0 0
  Depth  24
  EndSubSection
EndSection
Ich könnte mir schon vorstellen, dass man einfach einen weglassen könnte und der dann nicht bedient wird.
 
Hallo,

ich möchte es nun doch noch zum Abschluss bringen - dank der Bronchitis habe ich noch ein paar Tage Zeit dafür - und es hinbekommen, dass XDM auf dem externen HDMI-Fernseher erscheint und das Notebook Display komplett ignoriert wird.

Mir ist nicht klar, was wohin in die 10-monitor.conf gehört.

Das funktionierende arandr-Skript hat ja folgenden Output:
Code:
#!/bin/sh
xrandr --output DP3 --off --output DP2 --off --output DP1 --off --output HDMI3 --off --output HDMI2 --off --output HDMI1 --set "Broadcast RGB" "Full" --primary --mode 1360x768 --pos 0x0 --rotate normal --output LVDS1 --off --output VGA1 --off
Relevant ist hier ja folgender Teil:

Code:
--output HDMI1 --set "Broadcast RGB" "Full" --primary --mode 1360x768 --pos 0x0 --rotate normal

So, nun habe ich eine /usr/local/etc/X11/xorg.conf.d/10-monitor.conf die schonmal nicht funktioniert (no screens found)
Code:
Section "Monitor"
    Identifier "HDMI1"
    Modeline "1360x768"
    Option "PreferredMode" "1360x768"
EndSection
                                            
Section "Screen"
    Identifier "Screen0"
    Monitor "HDMI1"
    DefaultDepth 24
    SubSection "Display"
        Modes "1360x768"
    EndSubSection
EndSection

Section "Device"
    Identifier "Device0"
    Driver "intel"
EndSection

Was muss denn gemäß des arandr-Skriptes in diese 10-monitor.conf?

xorg läuft seit zig Jahren ohne xorg.conf automatisch, und davor erledigten Tools wie SAX unter S.u.S.E oder drakconf oder .... das Generieren. Daher ist eine händische Konfiguration für mich sehr neu.

Allerdings: Warum kann man dem XDM nicht einfach beim Start das arandr-Skript mitgeben? Das geht ja ohne Login-Manager auch bequem über eine ~/.xinitrc.

Wie es auch hinzubekommen ist, über Hilfe würde ich mich freuen.
 
Da fehlt vermutlich ein:
Code:
Section "ServerLayout"
        Identifier      "Default Layout"
        Screen          "Screen0"
EndSection

welches den darzustellenden Screen definiert - "Screen0" bei dir - aber nagel mich ned drauf fest, mit xorg hatt ich lang nicht mehr zu tun; ich kann mich allerdings noch mit Schaudern dran erinnern, dass der "no screens found" Fehler oft vorkam
 
Hi @holgerw ,

Code:
Section "Monitor"
  Identifier "HDMI1"
  Mode "1360x768"
  Option "PreferredMode" "1360x768"
  Option "Position" "0 0"
  Option "Enable" "true"
  Option "Primary" "true"
EndSection

Section "Monitor"
  Identifier "HDMI2"
  Option "Enable" "false"
EndSection

Section "Monitor"
  Identifier "HDMI3"
  Option "Enable" "false"
EndSection

Section "Monitor"
  Identifier "DP1"
  Option "Enable" "false"
EndSection

Section "Monitor"
  Identifier "DP2"
  Option "Enable" "false"
EndSection

Section "Monitor"
  Identifier "DP3"
  Option "Enable" "false"
EndSection

Section "Monitor"
  Identifier "LVDS1"
  Option "Enable" "false"
EndSection

Section "Monitor"
  Identifier "VGA1"
  Option "Enable" "false"
EndSection

Section "Device"
  Identifier "Device0"
  Driver "intel"
  Option "Monitor-HDMI1" "HDMI1"
EndSection

Ist bestimmt etwas redundant, und ich weiss nicht, ob es funktioniert. Diese Konfiguration ist jedenfalls die Essenz, die ich aus der Manpage von xorg.conf ziehe.

Gute Besserung :)
 
wie ich das verstehe, sind bei der neuen Methode mit den vielen kleinen Dateien eben auch viele kleine Dateien nötig und möglicherweise verträgt sich das nicht, wenn mehrere Sections in einer einzigen aufgeführt werden.
Was man alles dann jeweils in einer einzigen Datei vorher festlegen muss, ist mir nicht klar. Wenn man die Beispiele im Handbuch ansieht, dann benutzten die dort auch bekannte Namen, ohne die zuvor noch eigens eingeführt und gesetzt zu haben.

Bei dir wäre sicher wichtig, die Zuordnung des Ausgangs zu deinem screen irgendwo zu machen. Wie sieht denn die Ausgabe von xrandr aus (wenn es geht)?
 
Hallo an alle Helfenden,

danke für Euer Interesse. Ich werde mit Euren Vorschlägen Morgen experimentieren: Da ich noch krank geschrieben bin, habe ich schön viel Zeit dafür, in Ruhe Sachen durch zu testen. Ich habe aber schon aufgrund der konkreten Vorschläge ein gutes Gefühl, dass das Morgen was wird.
Was habe ich heute geschimpft :D

Liebe Grüße
Holger
 
Da ich gerade einen Displaymanager schreibe, der RandR benutzt, bot es sich an, das mal zu testen. Um ein Display abzuschalten, setzt man die Option "Ignore" auf "true":
Code:
Section "Monitor"
  Identifier "HDMI1"
  Mode "1360x768"
  Option "PreferredMode" "1360x768"
  Option "Position" "0 0"
  Option "Enable" "true"
  Option "Primary" "true"
EndSection

Section "Monitor"
  Identifier "HDMI2"
  Option "Ignore" "true"
EndSection

Section "Monitor"
  Identifier "HDMI3"
  Option "Ignore" "true"
EndSection

Section "Monitor"
  Identifier "DP1"
  Option "Ignore" "true"
EndSection

Section "Monitor"
  Identifier "DP2"
  Option "Ignore" "true"
EndSection

Section "Monitor"
  Identifier "DP3"
  Option "Ignore" "true"
EndSection

Section "Monitor"
  Identifier "LVDS1"
  Option "Ignore" "true"
EndSection

Section "Monitor"
  Identifier "VGA1"
  Option "Ignore" "true"
EndSection

Section "Device"
  Identifier "Device0"
  Driver "intel"
  Option "Monitor-HDMI1" "HDMI1"
EndSection
Mehr ist nicht nötig. Stelle nur sicher, wie @pit234a erwähnte, dass Du keine weiteren Konfigurationsdateien unter /usr/local/etc/X11/xorg.conf.d/ hast, die sich mit obiger beißen.
 
Hallo @marcel

es klappt leider nicht. Ich habe Deine Konfiguration als 10-monitor.conf in /usr/local/etc/X11/xorg.conf.d abgespeichert.

XDM startet nach dem Reboot nicht, immerhin auch nicht auf dem Notebook-Display. Es kommt bei einem manuellen startx wieder das "Fatal no screens found"

Ich kenne mich wie gesagt kaum aus mit xorg Konfigurationen, weshalb ich nun auch keine Idee habe, mit welchen Einstellungen ich mal herum spielen kann.
 
Hast Du vielleicht eine xorg.conf in /etc/X11 oder in /usr/locall/etc/X11 liegen? Hast Du noch andere Dateien in /usr/local/etc/X11/xorg.conf.d liegen? Könntest Du die /var/log/Xorg.0.log mal posten?
 
Hallo @marcel

danke für Deine Hilfe.
Die gewünschten Infos kommen Morgen.

@turrican hat etwas von screens geschrieben, was in Deiner Konfiguration nicht vorkommt. Muss da vielleicht noch was ergänzt werden?
 
Hallo @holgerw ,

es ist eigentlich nicht nötig, einen "Screen" zu definieren. Es sei denn, man hat eine /etc/X11/xorg.conf, dann ist es zwingend. Ich habe bei meinen Rechnern nur Konfigurationsdateien unter /usr/local/etc/X11/xorg.conf.d für Eingabegegeräte, Font-Pfade, und bei einem Rechner noch eine Datei für "Serverflags". Einen Screen habe ich nicht definiert. In der /var/log/Xorg.0.log sieht das dann so aus:
Code:
[  23.664] (==) No Layout section.  Using the first Screen section.
[  23.664] (==) No screen section available. Using defaults.
[  23.664] (**) |-->Screen "Default Screen Section" (0)
[  23.664] (**) |  |-->Monitor "<default monitor>"
[  23.665] (==) No monitor specified for screen "Default Screen Section".
  Using a default monitor configuration.
 
Hallo @Arjan ,
Ich hake mal hier ein: die Datei für die Font-Pfade würde mich mal interessieren.
Die sieht bei mir so aus:
Code:
Section "Files"
  FontPath "/usr/local/share/fonts/100dpi"
  FontPath "/usr/local/share/fonts/75dpi"
  FontPath "/usr/local/share/fonts/Hana"
  FontPath "/usr/local/share/fonts/OTF"
  FontPath "/usr/local/share/fonts/TTF"
  FontPath "/usr/local/share/fonts/Type1"
  FontPath "/usr/local/share/fonts/bitstream-vera"
  FontPath "/usr/local/share/fonts/cantarell"
  FontPath "/usr/local/share/fonts/cyrillic"
  FontPath "/usr/local/share/fonts/dejavu"
  FontPath "/usr/local/share/fonts/encodings"
  FontPath "/usr/local/share/fonts/freefont-ttf"
  FontPath "/usr/local/share/fonts/gost"
  FontPath "/usr/local/share/fonts/misc"
  FontPath "/usr/local/share/fonts/terminus-font"
  FontPath "/usr/local/share/fonts/urwfonts"
  FontPath "/usr/local/share/fonts/urwfonts-ttf"
  FontPath "/usr/local/share/fonts/util"
  FontPath "/usr/local/share/fonts/webfonts"
  FontPath "/usr/local/share/fonts/Droid"
  FontPath "/usr/local/share/fonts/Vectora LH 45 Light"
EndSection
 
Ok, war etwas mißverständlich gefragt - also konkret: welchen Namen hat die Datei?

Davon abgesehen ist auch die Reihenfolge interessant, bei mir benutzt der X-Server manchmal völlig unpassende Schriften...


Gruß
 
Ok, war etwas mißverständlich gefragt - also konkret: welchen Namen hat die Datei?
Die Datei heißt bei mir einfach files.conf, allerdings spielt das keine Rolle, wenn man keine spezielle Reihenfolge benötigt. Xorg lädt alle Dateien mit der Endung .conf, die in /usr/local/etc/X11/xorg.conf.d liegen.
Davon abgesehen ist auch die Reihenfolge interessant, bei mir benutzt der X-Server manchmal völlig unpassende Schriften...
Interessant. Das war mir gar nicht bewusst. Habe mal hier nachgeschaut. Demgemäß könnte man also die Font-Pfade wie folgt angeben:
Code:
#!/bin/sh
for i in /usr/local/share/fonts/*; do
   mkfontscale $i/;
   mkfontdir $i/;
done
echo "Section \"Files\""
for i in /usr/local/share/fonts/*; do
   n=`head -1 $i/fonts.scale`;
   if [ $n -gt 0 ]; then
     echo "  FontPath \"$i\""
   else
     ns="$ns $i"
   fi
done
for i in $ns; do
   echo "  FontPath \"$i\""
done
echo "EndSection"
Code:
# ./mkfontpaths > /usr/local/etc/X11/xorg.conf.d/files.conf
 
Eine solche Reihenfolge ist zwar nicht unbedingt hinreichend, aber sie gewährt schon mal allen skalierbaren Fonts den Vorzug.
 
Ok, Einwurf beantwortet - nächstens ist sowieso 6.2 auf einer neuen Maschine fällig...


Gruß
 
Zurück
Oben