Using xdm with QNX (Updated March 4, 1996) ******************************************* As of Nov 94, the QNX X servers support 'passive' xdm but not the XDMCP protocol. This means that you must not use any features of xdm that require XDMCP. Go through pages 43-70 in the X Window System Administrator's Guide to get a good feel for xdm if you have not used it before. To set up xdm to passively manage displays of other QNX workstations you must list their display names in the Xservers file. When you start the X server on the remote workstation do not use the -query or -broadcast options. Configuring the xdm server =========================== All configuration files are located in a single configuration directory. If you are using xdm on only one machine, you can keep them all in the default location, /usr/lib/X11/xdm. Otherwise, you may wish to keep a separate directory for each xdm display manager you are running. In our example, we copy the contents of /usr/lib/X11/xdm to /home/sysadmin/xdm and use this as our configuration directory, leaving the original configuration files intact. 1. Change the Xservers file in /home/sysadmin/xdm to tell xdm which servers should be managed (i.e. for which a login window is required). The following example illustrates a configuration with one local server that the display manager will start or restart as appropriate, and two foreign servers, that are handled passively. The display manager will display a login screen on any foreign server when the user terminates a session. # # Xservers file, workstation prototype # # This file should contain an entry to start the server on the # local display; if you have more than one display (not screen), # you can add entries to the list (one per line). If you also # have some X terminals connected which do not support XDMCP, # you can add them here as well. Each X terminal line should # look like: # XTerminalName:0 foreign # node68:0 foreign X server on node68 using TCP connections qnx/103:0 foreign X server on node 103 using native connections :0 local /usr/bin/X11/Xserver Note that the display names follow the normal X for QNX syntax. Native connections are established for displays that have names begining with "qnx/", while TCP connections are used for conventional hostname display specifications. Use the /usr/bin/X11/Xserver (or /usr/X11/Metro23/bin/Xserver if you have X 5.1 beta installed) to start up the local X server. This script automatically determines the correct configuration for the local server and starts the appropriate server. 2. Change the xdm-config file in /home/sysadmin/xdm to refer to the new paths for your configuration files. Here's an example for our configuration: DisplayManager.errorLogFile: /home/sysadmin/xdm/xdm-errors DisplayManager.pidFile: /home/sysadmin/xdm/xdm-pid DisplayManager.keyFile: /home/sysadmin/xdm/xdm-keys DisplayManager.servers: /home/sysadmin/xdm/Xservers DisplayManager.accessFile: /home/sysadmin/xdm/Xaccess DisplayManager._0.authorize: false DisplayManager._0.setup: /home/sysadmin/xdm/Xsetup_0 DisplayManager._0.startup: /home/sysadmin/xdm/GiveConsole DisplayManager._0.reset: /home/sysadmin/xdm/TakeConsole DisplayManager*resources: /home/sysadmin/xdm/Xresources DisplayManager*session: /home/sysadmin/xdm/Xsession DisplayManager*authComplain: false DisplayManager.daemonMode: false DisplayManager.terminateServer: false 3. If TCP connections are used to connect to any of the managed displays, make sure that TCP/IP is running. If it is not, start up the Socket services. e.g. slay -f Socket Socklet; Socket HOSTNAME & /etc/ifconfig en2 HOSTNAME up /etc/ifconfig lo0 localhost up where HOSTNAME is your desired hostname. Remember to make sure that the managed display is correctly configured to accept TCP connections. 4. Start the xdm server: /usr/bin/X11/xdm -c /home/sysadmin/xdm/xdm-config \ -debug 9 >/home/sysadmin/xdm/getdebug Any errors will be written to /home/sysadmin/xdm/xdm-errors. As well, very detailed debug information will be written to /home/sysadmin/xdm/getdebug. You can remove the -debug parameter if you wish. Starting xdm in your sysinit +++++++++++++++++++++++++++++ If you wish to start xdm within your sysinit file, several additional precautions must be followed: o Start xdm using the on utility, providing it with a controlling tty. e.g. on -t /dev/con1 xdm & o Ensure that xdm is started after Dev.con or Dev.ansi and after the reopen command in your sysinit file. Configuring the passively managed display ========================================== This machine will use the xdm services provided by the xdm server. It should be set up as follows: 1. Make sure that your display name is included in the Xservers file that xdm is using. 2. Start the X server on your machine. Do not specify -query or -broadcast. If the xdm configuration directory isn't accessible from the remote workstation, the magic cookie authorization used for the X session won't work. In this case, you will have to specify -ac to turn off access restrictions when you start the X server. e.g. /usr/bin/X11/Xserver :0 -ac That's it! You should get a login window.