Desktop Multiplier 2 configuration for non-supported distributions
Introduction
This Mini-HOWTO describes how to configure an unsupported Linux distribution to support Userful's Desktop Multiplier (DM). These instructions DO NOT apply to the following supported officially Linux distributions:
Supported Linux distributions
- RPM based: Fedora Core 2, 3 or 4; SuSE 9.1, 9.3; Mandrake 10.0 & 10.1; Novell Desktop Linux; Red Hat Enterprise Linux WS; CentOS 4.0
- Debian based: Ubuntu 5.04; Linspire 5.0; Xandros v3; SimplyMEPIS 3.3.1; Debian 3.1 Sarge
If you are using one of the distributions listed above, you do not need to use this Mini-HOWTO.
If you are using a distribution closely related to one of the distributions listed above, we suggest attempting the regular installation prior to manually reconfiguring your system.
Following is the brief steps to configure your system for DM:
- Check the version of X
- Install Desktop Multiplier
- Update
/etc/inittab and remove initscript for Display Manager
- Configure
/opt/userful/bin/prefdm_multi
- Edit Display Manager configuration
- Edit Hotplug
Check the version of X
DM supports X11R6.8.2 or lower. The latest X, X11R6.9/X11R7, is not yet supported with DM. Please check the version of X installed before you proceed. You can check the version of X by running X -version.
Install Desktop Multiplier on your system
Download DM and install using the included INSTALL script. You will need to do this as a superuser.
sh INSTALL
Update /etc/inittab and remove initscript for the display manager
The boot sequence is different for each Linux distribution. Some distributions start the display manager from /etc/inittab, while others start it with initscript.
In any case, the display manager should not be started until end of the boot sequence for DM work.
To update the boot procedure:
- Find the runlevel your system uses for the graphical boot
- i.e: Fedora Core uses runlevel 5, while Ubuntu uses runlevel 2 for graphical boot
- the
runlevel command shows you current and previous runlevels
- You can get some more information by looking at the
/etc/inittab file
- If initscript is used to start the display manager, disable it
-
/etc/rc.d/rcN.d/ contains all the initscripts for the runlevel N. For example, if your system uses runlevel 5 for graphical boot, it will run all the scripts in the /etc/rc.d/rc5.d/
- In the directory you found above, backup and disable/remove the script related to the display manager. The script may be named something like
S99dm, S99xdm or S99gdm. It is actually the soft-link to a real script located in /etc/init.d/ which will be used in prefdm_multi. prefdm_multi is a script to configure system and start Dispaly Manager for DM.
- If the display manager is started from
/etc/inittab, comment out the line which starts it
- Some linux distributions like Fedora Core use
/etc/inittab to start the display manager with a line such as "x:5:once:/etc/X11/prefdm". Disable the line that starts display manager from the file /etc/inittab by prepending #.
- Add a new line, which will execute
prefdm_multi to configure the system and start Display Manager, into the end of /etc/inittab
- Use the command:
echo "x:N:once:/etc/X11/prefdm_multi" >> /etc/inittab
- N should be replaced with the runlevel for graphical boot of your system
Configure /opt/userful/bin/prefdm_multi
As mentioned before, prefdm_multi is a script to configure the system for use with DM and to start display manager after DM.
To configure prefdm_multi for your system:
- Backup and overwrite
/opt/userful/bin/prefdm_multi with /opt/userful/bin/prefdm_multi.template using the following command
-
cp -f /opt/userful/bin/prefdm_multi /opt/userful/bin/prefdm_multi.template
- Add a new line to the end of
prefdm_multi to start the display manager
- Starting the display manager is different for each Linux distribution. You need to find out how the display manager starts in your Linux system. As described previous section, the display manager is normally started from either
initscript or /etc/inittab
- If
initscript is used to start the display manager, run the following command to add a line into the prefdm_multi. You will find the script under /etc/init.d/ with a name similar to dm, gdm, kdm or xdm. Use the following command to add the display manager startup script to the end of the prefdm_multi script
echo "exec /etc/init.d/script start" >> /opt/userful/bin/prefdm_multi
- script should be the name of script you found in
/etc/init.d
- If your display manager is started from
/etc/inittab, find the command that start display manager in the end of /etc/inittab and run the following command to add a line into the prefdm_multi.
echo "exec command >> /opt/userful/bin/prefdm_multi
- command is the command you found in the
/etc/inittab. For example, Fedora Core uses /etc/X11/prefdm -nodaemon and Mandrake uses /etc/X11/prefdm to execute a script for display manager
Edit Display Manager configuration
Desktop Multiplier supports three general display managers: XDM, GDM and KDM. You need to find out which display manager your system uses and edit that display manager's configuration.
XDM
XDM (X window Display Manager) is the default Display Manager for X Window System. There are two configuration files for XDM, xdm-config and Xservers. You can find these files in /etc/X11/xdm/.
To configure the XDM:
- Add following lines to the end of
xdm-config
-
DisplayManager*openDelay: 3
-
DisplayManager*openRepeat: 1
-
DisplayManager*openTimeout: 24
-
DisplayManager*startAttempts: 3
- Disable/remove current local server(s) by prepending
# to the Xservers
-
#:0 local /usr/X11R6/bin/X
- Add these lines, one for each station into
Xservers
-
:0 local /opt/userful/bin/login-server
-
:1 local /opt/userful/bin/login-server
-
...
-
:N local /opt/userful/bin/login-server
- Note: You can find the number of stations in your system by running following command:
cat /etc/X11/stations
GDM
GDM (Gnome Display Manager) is an alternate Display Manager for X Window System. gdm.conf is the configuration file for GDM. The common locations for the gdm.conf configuration file are /etc/X11/gdm/, /etc/gdm/ or /etc/opt/gnome/gdm/, although this will vary by Linux distribution.
To configure the GDM, edit gdm.conf as follows:
- Disable
FirstVT=7 by prepending # to it in the [daemon] section
-
#FirstVT=7
- Set
VTAllocation to false in the [daemon] section
-
VTAllocation=false
- Comment out
Standard local X server
-
#0=Standard
- Add following lines, one for each station
-
0=Login
-
1=Login
- ...
-
N=Login
- Note: You can find the number of station in your system by running following command,
cat /etc/X11/stations
- Construct a new
[server-Login] section
-
[server-Login]
-
name=Login server
-
command=/opt/userful/bin/login-server
-
flexible=true
KDM
KDM (KDM Display Manager) is another display manager for the X Window System. kdmrc. The Xservers file is the configuration files for KDM. The common locations for the Xservers file are /etc/X11/xdm/, /etc/kde3/kdm/, /usr/share/config/kdm/ or /etc/opt/kde3/share/config/kdm/, but this is different for each Linux distribution.
To configure the KDM:
- Set the values as follows in the
[X-*-Core] section of kdmrc
-
OpenDelay=3
-
OpenTimeout=24
-
OpenRepeat=1
-
OpenRepeat=3
-
StartAttempts=3
-
StartInterval=2
- Disable/remove current local server(s) by prepending
# to Xservers
-
#:0 local /usr/X11R6/bin/X
- Add these lines, one for each station into
Xservers
-
:0 local /opt/userful/bin/login-server
-
:1 local /opt/userful/bin/login-server
-
...
-
:N local /opt/userful/bin/login-server
- Note: You can find the number of stations in your system by running following command,
cat /etc/X11/stations
Edit Hotplug agents
You need to edit two hotplug agents, the input and usb device agent, to get the hotplugging of USB devices working on your system with DM. The name and location of these hotplug agents are different for each Linux distribution. The following are the common names and locations for the agents:
- Input device agent
- Name:
input.agent , 50-input_device.hotplug
- Location:
/etc/hotplug/ , /etc/hotplug.d/input_device/
- USB device agent
- Name:
usb.agent , 50-usb.hotplug
- Location:
/etc/hotplug/ , /etc/hotplug.d/usb/
To update input device agent:
- Find the name and location of input device agent
- Add following codes after the
remove) section
remove)
devtype=`echo "$PHYS" | head -c 3`
if [ -f /etc/userful-currentdm ]; then
source /etc/userful-currentdm
fi
if [ "$PHYS" != "" -a "$devtype" != "isa" ]; then
usleep 500000
/opt/userful/bin/make-config-file -u
if [ -z "$CURRENTDM" ]; then
/opt/userful/bin/remove-usb-device -phys $PHYS
else
/opt/userful/bin/remove-usb-device -phys $PHYS -dm $CURRENTDM
fi
RET=$?
if [ $RET -eq 11 ]; then #Removed device is mouse or keyboard not configured
killall -s HUP userful-usbinput-config
fi
fi
To edit usb device agent:
- Find the name and location of usb device agent
- Add following codes after
usb_convert_vars in the add) section
usb_convert_vars
if [ "$INTERFACE" == "3/1/1" -o "$INTERFACE" == "3/1/2" ]; then
if [ -f /var/run/x.pid ]; then
XPROCESSID=/proc/`cat /var/run/x.pid`
if [ -d $XPROCESSID ]; then
# send USR1 signal to USB-config program
killall -s USR1 userful-usbinput-config
fi
fi
fi
- Add following lines before the
remove) section
# excuted only for the keyboard or mouse devices
if [ "$INTERFACE" == "3/1/1" -o "$INTERFACE" == "3/1/2" ]; then
# This part is only executed when X is running.
if [ -f /var/run/x.pid ]; then
XPROCESSID=/proc/`cat /var/run/x.pid`
if [ -d $XPROCESSID ]; then
usleep 500000
/opt/userful/bin/make-config-file -r
pkill -USR2 MXSigDaemon
killall -s HUP userful-usbinput-config
pkill -USR2 kbd-daemon
pkill -USR2 mse-daemon
fi
fi
fi
;;
remove)
Reboot
After completing all of the configuration changes above, you must reboot the system for changes to take effect.