An extra kernel in the X2Go -PXE boot environment

X2Go Logo

X2Go thin client PXE boot environment works on top of the debian linux distribution. The standard linux kernels are proved to be stable, but most likely rather outdated and often don't support the graphics device of actual thin clients out of the box.

 

There are several ways to address this issue. We prefer to include an extra kernel from the debian backport project in the X2Go PXE boot environment. This way you don't brake the standard PXE boot environment build by X2Go.

Import new linux kernel from debian backport

Login to the X2Go PXE boot server. If there, enter the X2Go PXE boot environment typing:

 

x2gothinclient_shell

 

Add the debian backport repository as a source for debian packages to look for:

 

echo 'deb backports.debian.org/debian-backports squeeze-backports main'
    > /etc/apt/sources.list.d/backport.list

 

all in one single line.

Reimport the debian package descriptions, have a look which new linux kernels are available and import (the newest) one:

 

aptitude update
aptitude search linux
aptitude install linux-image-<KV> linux-modules-<KV>

 

with <KV> as the linux kernel version. Keep old initramfs.conf for save, or accept the new version from the maintainer and change in /etc/initramfs-tools/initramfs.conf the string

BOOT=local
to
BOOT=nfs

 

Leave PXE boot environment:

exit

Configure the tftp environment

Change to the tftp config directory:

 

 cd /srv/tftp

 

Have a look what is the name of your new installed kernel:

 

 ls -rlt /opt/x2gothinclient/chroot

 

Let us assume it calls vmlinuz. Create appropriate symlinks:

 

 ln -s /opt/x2gothinclient/chroot/vmlinuz 
 ln -s /opt/x2gothinclient/chroot/initrd.img 

 

Add the boot menu configuration for the new kernel in the file x2go-tce.cfg, e.g:

 

LABEL x2go-tce-MewLabelName 
        MENU LABEL  X2go ^Thin Client with Kernel MyNewKernel 
        MENU DEFAULT 
        KERNEL vmlinuz 
        APPEND initrd=initrd.img nfsroot=/opt/x2gothinclient/chroot 
                      boot=nfs ro quiet nomodeset 

 

With all after APPEND on one single line. Replace MewLabelName and MyNewKernel with strings easy to understand for people working on the tin client. If you have the line MENU DEFAULT in this section, it will be high lighted in the startup menu.

 

If you wish the new kernel to boot as the default one, edit the file default.cfg and replace the string following ONTIMEOUT with your above LABEL name.

 

That is all you have to do. Restart the tftp service:

 

service atftpd restart

 

and boot the thin clients,

 

If ever a thin client with an Intel graphics device (GMA) seams to hang at he login session (kworker process consumes most of the CPU), then execute on the command line of your PXE boot server the single statment:

 

echo “options drm_kms_helper poll=N” 
    > /opt/x2gothinclient/chroot/etc/modprobe.d/local.conf

 

and reboot the thin client.

Nach Oben