|
Other versions:
|
Contents |
Thin clients or recycled machines often have little memory, it is therefore important to verify that X11 has detected the correct amount of video memory otherwise the system will reset.
[17179636.596000] Out of Memory: Killed process 3407 (Xorg).
First step is to check for video memory according to the BIOS, switch on the PC, press any key sequence necessary to see the initial startup messages, and watch for a relevant video memory line.
On certain motherboards the BIOS needs to be configured for what is termed the AGP aperture size. The size should always be set to less than or equal to the system memory size.
Starting up X11 with auto-server detection and view the log file /var/log/xorg.log should detail the detection results.
(II) I810(0): VESA BIOS detected (II) I810(0): VESA VBE Version 3.0 (II) I810(0): VESA VBE Total Mem: 12288 kB (II) I810(0): VESA VBE OEM: Intel(r)845G/845GL/845GE/845GV Graphics Chip Accelerated VGA BIOS (II) I810(0): VESA VBE OEM Software Rev: 1.0 (II) I810(0): VESA VBE OEM Vendor: Intel Corporation (II) I810(0): VESA VBE OEM Product: Intel(r)845G/845GL/845GE/845GV Graphics Controller (II) I810(0): VESA VBE OEM Product Rev: Hardware Version 0.0 (II) I810(0): Integrated Graphics Chipset: Intel(R) 845G (--) I810(0): Chipset: "845G" (--) I810(0): Linear framebuffer at 0xE0000000 (--) I810(0): IO registers at addr 0xEC100000 (II) I810(0): 1 display pipe available. (II) I810(0): detected 8060 kB stolen memory. (WW) I810(0): Detected stolen memory (8000 kB) doesn't match what the BIOS reports (12288 kB) (II) I810(0): Kernel reported 22016 total, 1 used (II) I810(0): Checking Available AGP Memory: 88060 kB available (total 88064 kB, used 4 kB) (--) I810(0): Pre-allocated VideoRAM: 8060 kByte (==) I810(0): VideoRAM: 65536 kByte
In the above example the video memory is incorrectly set at 64MB, the following configuration will force the size to 8MB:
Section "Device"
Identifier "Intel Corporation 82865G Integrated Graphics Controller"
Driver "i810"
BusID "PCI:0:2:0"
VideoRam 8192
EndSection
With LTSP this setting is in /opt/ltsp/i386/etc/lts.conf as follows:
X_VIDEO_RAM = 8192
You can also specify the colour depth, i.e. bits per pixel, 1=monochrome, 4=16 colour, 8=256 colour, 15/16=high colour, 24=true colour.
X_COLOR_DEPTH = 16
For an LTSP environment it is recommended to disable most screensavers, whilst its possible to drop to just screen blanking there are a few that are reasonably friendly. The following configuration file and script can be used to limit a clean install of Ubuntu:
# xscreensaver.whitelist deco fuzzyflakes popsquares
#!/bin/sh
# move-screensavers.sh
XSCREENSAVER_ROOT=/usr/lib/xscreensaver
WHITELIST=xscreensaver.whitelist
mkdir ${XSCREENSAVER_ROOT}/disabled
mv ${XSCREENSAVER_ROOT}/* ${XSCREENSAVER_ROOT}/disabled
for theme in `grep -v "^#" ${WHITELIST}`
do
mv ${XSCREENSAVER_ROOT}/disabled/${theme} ${XSCREENSAVER_ROOT}
done
A little extra memory and CPU time can be saved by disabling the local X11 server on the LTSP server. Add the option --no-console to the gdm startup file /etc/init.d/gdm or apply the following patch:
--- gdm 2006-10-07 02:49:49.000000000 +0800
+++ gdm.orig 2006-10-07 02:49:40.000000000 +0800
@@ -56,7 +56,7 @@
DO_NOT_SWITCH_VT=yes /etc/init.d/usplash start
fi
log_begin_msg "Starting GNOME Display Manager..."
- start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --name gdm $SSD_ARG -- $CONFIG_FILE >/dev/null 2>&1 || log_end_msg 1
+ start-stop-daemon --start --quiet --oknodo --pidfile $PIDFILE --name gdm $SSD_ARG -- $CONFIG_FILE --no-console >/dev/null 2>&1 || log_end_msg 1
log_end_msg 0
fi
;;
Input devices are managed on the LTSP client. To enable full tablet support for GIMP and Inkskape follow the Ubuntu Wiki instructions on installing a USB Wacom tablet. It is highly likely that other tablet manufacturers such as Genius, and the many Chinese micro-tablets will only support basic mouse functionality, i.e. no pressure sensitivity.
To update /etc/X11/xorg.conf you have to modify /usr/bin/dexconf which generates the configuration file on boot unless one is specified in /etc/lts.conf. Simply add the input/ subdirectory to each Device line as per the wiki.
--- dexconf.moo 2006-09-30 19:08:24.000000000 +0800
+++ dexconf 2006-09-30 19:08:37.000000000 +0800
@@ -308,7 +308,7 @@
Section "InputDevice"
Driver "wacom"
Identifier "stylus"
- Option "Device" "/dev/wacom" # Change to
+ Option "Device" "/dev/input/wacom" # Change to
# /dev/input/event
# for USB
Option "Type" "stylus"
@@ -318,7 +318,7 @@
Section "InputDevice"
Driver "wacom"
Identifier "eraser"
- Option "Device" "/dev/wacom" # Change to
+ Option "Device" "/dev/input/wacom" # Change to
# /dev/input/event
# for USB
Option "Type" "eraser"
@@ -328,7 +328,7 @@
Section "InputDevice"
Driver "wacom"
Identifier "cursor"
- Option "Device" "/dev/wacom" # Change to
+ Option "Device" "/dev/input/wacom" # Change to
# /dev/input/event
# for USB
Option "Type" "cursor"
Local media devices are implemented used LTSPFS, they need to be enabled on the client with lts.conf:
LOCALDEV = True
On the LTSP server a LTSPFS client needs to be installed:
$ sudo apt-get install ltspfs
Then add the users to the fuse group, for example with /etc/group
fuse:x:115:steve-o,ying,edgar
Restart both the server and the client and any new media will appear directly on the users desktop (after a few seconds).
With external media card readers remove the entire device from its USB port then the card from the reader, otherwise hotplug events will not occur. There is no method to umount a device as the underlying system will automagically umount after a period of inactivity.
Currently unsupported as of Ubuntu Edgy 6.10. Planned for Edgy+2.
Best described as 'work in progress' due to multiple API standards: OSS, ALSA, ESD, aRts, NASD, Jack, and PulseAudio, and direct access to the audio device using /dev/dsp and /dev/mixer. For LTSP try whether ESD or NASD works for you. I found that RealPlayer only works with NASD and generates a bus error on ESD, Skype fails to detect any audio devices with either configuration.
Update /opt/ltsp/i386/etc/lts.conf to specify NASD:
SOUND = True SOUND_DAEMON = nasd
Install the audiooss wrapper on the LTSP server:
$ sudio apt-get install audiooss
I found that I needed to force re-install of NASD on the client:
$ sudo chroot /opt/ltsp/i386 apt-get remove nas $ sudo chroot /opt/ltsp/i386 apt-get install nas libaudio2
Then reboot the client and start any application with the audiooss wrapper, e.g.
$ audiooss realplayer
With multiple sound cards some modification to /opt/ltsp/i386/etc/nas/nasd.conf will be required.
Update /opt/ltsp/i386/etc/lts.conf to specify ESD:
SOUND = True SOUND_DAEMON = esd
All ESD friendly applications should work immediately, including the system login audio. For applications that access /dev/dsp directly there is a wrapper:
# esddsp program
However this fails with both Skype and Real Player.
For Real Player edit /usr/bin/realplayer and comment out the following line:
# See if LD_PRELOAD contains any of the sound servers libs. If so, remove them. #LD_PRELOAD=`echo $LD_PRELOAD | sed -e 's/\([^:]*libesd[^:]*\|[^:]*libartsp^:]*\);\?//g'` #export LD_PRELOAD
Audio conversations currently unsupported in Ubuntu Edgy 6.10. Planned for Edgy+1 with the PulseAudio sound system, or Edgy+2 with LocalApp support.
The Gconf tool allows setting of global defaults or mandatory values, alternatively use gconf-editor for a GUI similar to regedit on Windows. For complication configurations you might find it easier to configure a setup using the System Administration tools and investigate which settings were created in ~/.gconf/.
Examples of useful settings include:
Removing the default autostart mixer applet and update notifier requries a different approach, create the following files before creating the user accounts:
/etc/skel/.config/autostart/update-notifier.desktop:
[Desktop Entry] Name=No name Encoding=UTF-8 Version=1.0 Exec=update-notifier X-GNOME-Autostart-enabled=false
/etc/skel/.config/autostart/gnome-power-manager.desktop:
[Desktop Entry] Name=No name Encoding=UTF-8 Version=1.0 Exec=gnome-power-manager X-GNOME-Autostart-enabled=false
For kiosk style lockdown there is a Lockdown Editor called Pessulus that can be installed via Synaptic, however only suitable for certain deployments.
Similar to Google Desktop Search is Gnome Beagle, however this runs an extra task per user requiring more system resources. Install via Synaptic or on the command line:
$ sudo apt-get install beagle
In order to make Beagle start indexing your home directory, you need to disable then re-enable indexing in the Beagle preferences dialog (System->Preferences->Search & Indexing->Indexing tab->Uncheck then re-check the box next to Index my home directory.
By default Beagle ships with debugging enabled, this can create 1GB log files in every users home directory. To disable this edit /usr/bin/beagled and update line 104:
# CMDLINE="$BEAGLE_MONO_RUNTIME --debug $MONO_EXTRA_ARGS $TARGET_EXE $BEAGLED_ARGS $FGBG_ARG"
CMDLINE="$BEAGLE_MONO_RUNTIME $MONO_EXTRA_ARGS $TARGET_EXE $BEAGLED_ARGS $FGBG_ARG"
Further details are logged in launchpad: bug 64807, fixed in Feisty.
For shared resources you can setup static indexes, periodically rebuilding on a crontab. The crontab is already installed in Ubuntu and jobs for system documentation and applications are already setup for daily checking. To create a new one, e.g. for /miru, create a new file, and adjust the CRAWL_PATHS and other parameters as necessary. As this is NFS I enable the caching feature.
/etc/beagle/crawl-nfs:
CRAWL_ENABLED="yes" CRAWL_INDEX_NAME="nfs" CRAWL_PATHS="/miru" #CRAWL_ALLOW_PATTERNS="*.xml,*.html,*.docbook" CRAWL_DENY_PATTERNS=".beagle*,.nfs*,*.exe" CRAWL_RECURSIVE="yes" CRAWL_DISABLE_FILTERING="no" CRAWL_CACHE_TEXT="yes"
Next test that the configuration works correctly and update CRAWL_DENY_PATTERNS to remove any unneeded files or ones that break Beagle (*,exe in this case). The cron job does not log to a file so the commands are typed on the command line.
$ mkdir /tmp/.beagle
$ sudo chown beagleindex /tmp/.beagle
$ sudo su -s /bin/bash beagleindex -c "MONO_SHARED_DIR=/tmp/.beagle \
/usr/sbin/beagle-build-index \
--target /var/cache/beagle/indexes/nfs \
--recursive \
--enable-text-cache \
--deny-pattern \".beagle*,.nfs*,*.exe\" /miru"
To start searching you need to restart the Beagle daemon:
$ pkill beagle $ beagle
Update the initial ram disk image by editing /etc/initramfs-tools-pxe/initramfs.conf and set the following to reduce disk image by 50%. However module loading of additional devices might end up slower therefore test in each configuration for the best speed.
MODULES=netboot
Second step is to update the /etc/fstab mounting options to match those from the ram disk.
# NFS version 3 support with TCP /dev/nfs / nfs defaults,noatime,mand,vers=3,rsize=32768,wsize=32768,hard,proto=tcp,timeo=600,retrans=10 0 0 # NFS version 3 support with UDP only /dev/nfs / nfs defaults,noatime,mand,vers=3,rsize=32768,wsize=32768,hard,timeo=4,retrans=10 0 0 # NFS version 2 /dev/nfs / nfs defaults,noatime,mand,rsize=8192,wsize=8192,hard,timeo=4,retrans=10 0 0
Some services are specific to a single machine LTSP server or for a Ubuntu desktop not a thin client and they can be disabled with the "Services settings" administration applet.
The remote desktop implementation in Gnome is called Vino and currently fails to work on remote X11 desktops, although the underlying technology does albeit not very speedy. The alternative is to therefore install a VNC server on the thin client, the most efficient version is a module within the X11 server itself.
$ sudo chroot /opt/ltsp/i386 apt-get install vnc4server
As the configuration is regenerated each boot you will have to modify the source configuration to allow for VNC: /var/lib/dpkg/info/xserver-xorg.config, search for glx and add vnc to the answer line.
auto_answer db_input "$(priority_ceil low)" xserver-xorg/config/modules "i2c, bitmap, ddc, dri, extmod, freetype, glx, int10, type1, vbe, vnc" || true db_go
Next update /opt/ltsp/i386/usr/bin/dexconf to allow remote access with no password, refer to the RealVNC documentation for alternative options. Search for the line Screen and add the SecurityTypes option listed below.
Section "Screen"
Identifier "Default Screen"
Device "$DEVICE_IDENTIFIER"
Monitor "$MONITOR_IDENTIFIER"
DefaultDepth $DISPLAY_DEFAULT_DEPTH
Option "SecurityTypes" "None"
SECTION
To connect to the desktop install a VNC viewer program and specify the terminal name or IP address and window :6 or port 5906.
$ sudo apt-get install xvnc4viewer $ xvnc4viewer terminal123:6
To help diagnose problems with errant terminals you can configure the LTSP server to accept remote syslog events and the terminals to send syslog messages to the server instead of logging locally to MFS. On the server update /etc/default/syslogd
# For remote UDP logging use SYSLOGD="-r" # #SYSLOGD="" SYSLOGD="-r"
In the lts.conf file add the following to the top:
## Network syslog SYSLOG_HOST = server
To speed up client startup times an XFS server can be started which can process the X11 font configuration on behalf of all connecting clients. Install XFS on the server:
$ sudo apt-get install xfs
In the lts.conf file add the following to the top:
## X11 font server USE_XFS = True
By default xfs only create a local unix socket, for LTSP usage TCP connectivity needs to be enabled. Edit /etc/X11/fs/config and comment the following line.
# turn off TCP port listening (Unix domain connections are still permitted) #no-listen = tcp
© 2009 Novell, Inc. All Rights Reserved.