Additions:
Turn on Xinerama for better dual screen support
Section "
ServerFlags"
Option "Xinerama" "true"
Additions:
Additions:
Run gdmsetup, click the xdmcp button. then restart gdm. Make sure you have gdm configured to start automatically. I believe gdmsetup adds this to /etc/gdm/gdm.conf. Not 100% sure.
Deletions:
Run gdmsetup, the restart gdm. Make sure you have gdm configured to start automatically. I believe gdmsetup adds this to /etc/gdm/gdm.conf. Not 100% sure.
Additions:
Inside lts.conf, you can specify a full xorg.conf for each thin client. For ati, one can come up with a xorg.conf with
aticonfig. Pay attention to keyboard model and layout. If you have a 105-key keyboard and you put in pc104, you will loose your keyboard once X starts.
For nvidia, I believe the essentials are
Section "
ServerLayout"
EndSection
Section "Device"
EndSection
Enable xdmcp and gdm
Run
gdmsetup, the restart gdm. Make sure you have gdm configured to start automatically. I believe gdmsetup adds this to /etc/gdm/gdm.conf. Not 100% sure.
[xdmcp]
Enable=true
Deletions:
Inside lts.conf, you can specify a full xorg.conf for each thin client. For ati, one can come up with a xorg.conf with aticonfig
Additions:
config ltsp
Build ati driver package
Build nvidia driver
Run the installer with the options
--no-runlevel-check --no-x-check --keep -a --kernel-source-path=/usr/src/linux-source-2.6.x
If successful, you will find the binaries inside the temp directory created by the installer. Next, go into the temp directory and copy all those files to the corresponding directories in /opt/ltsp/i386 on LTSP server. The followings are the most critical ones, but I also copied all others created by the installer
Build xorg.conf-xxx
Inside lts.conf, you can specify a full xorg.conf for each thin client. For ati, one can come up with a xorg.conf with
aticonfig
[Default]
SERVER = 192.168.18.13
XSERVER = fglrx
XF86CONFIG_FILE = /etc/xorg.conf-aticonfig
X_MOUSE_PROTOCOL = "PS/2"
XkbModel = "pc105"
XkbLayout = "us"
XkbSymbols = "us(pc105)"
XkbGeometry = "us(pc105)"
#X_COLOR_DEPTH = 24
USE_XFS = N
SCREEN_01 = shell
SCREEN_07 = startx
SYSLOG_HOST = 192.168.18.13
Deletions:
# Build ati driver package
# Build nvidia driver
Run the installer with the options "--no-runlevel-check --no-x-check --keep -a --kernel-source-path=/usr/src/linux-source-2.6.18". If successful, you will find the binaries inside the temp directory created by the installer. Next, go into the temp directory and copy all those files to the corresponding directories in /opt/ltsp/i386 on LTSP server. The followings are the most critical ones, but I also copied all others created by the installer
# config ltsp
Additions:
chroot /opt/ltsp/i386
# then fix up a xorg.conf-ati, driver name = fglrx
# Build nvidia driver
Download the nvidia driver. Go to a thin client's shell, run apt-get install linux-headers, linux-source, gcc, etc. This is necessary because the installer won't build the drivers unless there it's able to detect an nvidia card - which is absent on the LSTP server. So the installer needs to be ran on the thin client.
Run the installer with the options "--no-runlevel-check --no-x-check --keep -a --kernel-source-path=/usr/src/linux-source-2.6.18". If successful, you will find the binaries inside the temp directory created by the installer. Next, go into the temp directory and copy all those files to the corresponding directories in /opt/ltsp/i386 on LTSP server. The followings are the most critical ones, but I also copied all others created by the installer
TMP_DIR/usr/src/nv/nvidia.ko --> /opt/ltsp/i386/lib/modules/2.6.x/kernel/driver/video/
TMP_DIR/usr/X11R6/lib/modules/drivers/nvidia_drv.so --> /opt/ltsp/i386/usr/lib/xorg/modules/drivers/
# config ltsp
Deletions:
config ltsp
Additions:
Additions:
add boot info to /etc/dhcp3/dhcpd.conf (ltspcfg generated a sample in /etc/ltsp/dhcp/)
Additions:
config ltsp
run ltspcfg
Change atftpd to serve /var/lib/tftpboot (in /etc/inetd.conf)
Additions:
dpkg -i fglrx-driver_8.476-1_i386.deb
dpkg -i fglrx-driver-dev_8.476-1_i386.deb
dpkg -i fglrx-kernel-src_8.476-1_i386.deb
dpkg -i fglrx-amdcccle_8.476-1_i386.deb
Additions:
# Build ati driver package
aptitude install gcc debhelper
ati-driver-installer...run --buildpkg Debian/etch
Additions:
LTSP5 on Debian
aptitude install atftpd
aptitude install dhcp3-server
aptitude install ltsp-utils ltsp-server-standalone
# Build client
> ltsp-build-client
NOTE: adding default dist and components to security mirror:
http://security.debian.org/∞ etch/updates main
I: Retrieving Release
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Found additional base dependencies: libgcrypt11 libgpg-error0 liblzo1 libopencdk8 tasksel
I: Checking component main on
http://http.us.debian.org/debian..∞.
I: Retrieving adduser
I: Validating adduser
I: Retrieving apt
I: Validating apt
info: LTSP client installation completed successfully
# build client for i386
> ltsp-build-client --arch i386
Additions:
http://ltsp.mirrors.tds.net/pub/ltsp/docs/ltsp-4.1-en.html#AEN754∞
lts.conf
Lots of stuff to cover. Just make sure there is a lts.conf in $NFS_ROOT/etc/
If you need to modify the init script ran by your thin client, edit the init file inside $LBE_HOME/ltsp_kernel_kit/initramfs. There the skeleton of the thin client OS environment is stored.
Additions:
If any of the source does not download, go to
http://ltsp.mirrors.tds.net/pub/ltsp/tarballs∞ and download it to the tarballs directory. Then re-run build_all --fetch. It tries to download and install a whole bunch of tools which already on the host machine. To me, it doesn't make sense to waste that much time but who knows...
Deletions:
Additions:
LTSP-5 is much simpler. Unfortunately, I'm stuck with a gentoo LTSP server, which runs LTSP4. Here are the stuff I came across when trying to load a GBe network driver.. I ended up having to upgrade to LTSP-4.2.
Deletions:
LTSP-5 is much simpler. Unfortunately, Im stuck with a gentoo LTSP server, which runs LTSP4. Here are the stuff I came across when trying to load a GBe network driver.. I ended up having to upgrade to LTSP-4.2.
Additions:
LTSP-4.2
LTSP-5 is much simpler. Unfortunately, Im stuck with a gentoo LTSP server, which runs LTSP4. Here are the stuff I came across when trying to load a GBe network driver.. I ended up having to upgrade to LTSP-4.2.
Deletions:
LTSP
Additions:
- Thin client downloads initramfs.gz and the kernel image from tftp, which contains a minimal OS environment. This file is extracted to /dev/ram0 on the thin client, and mounted as root. It will then execute the init script or the linuxrc script in older version.
pxelinux.cfg
Boot options can be specified in /tftpboot/2.6.20.9-ltsp-1/pxelinux.cfg/default. When the thin client boots, you will see that it tries to load the pxelinux.cfg with several names. If one is found, then it will use that file. If none is found, it will use the
default file. It's the place to customize each LTSP client's config.
prompt 0
label linux
kernel bzImage-2.6.17.8-ltsp-1
append rw root=/dev/ram0 initrd=initramfs-niclist.gz vga=791 NIC=tg3 panic=180 debug
Deletions:
- Thin client downloads initramfs.gz from tftp, which contains a minimal OS environment. This file is extracted to /dev/ram0 on the thin client, and mounted as root. It will then execute the init script or the linuxrc script in older version.
Additions:
DHCPd
option option-128 code 128 = string;
option option-129 code 129 = text;
subnet 192.168.18.0 netmask 255.255.255.0 {
...
}
group {
host ws12 {
hardware ethernet 00:1e:0b:79:f4:07;
fixed-address 192.168.18.112;
filename "/2.6.20.9-ltsp-1/pxelinux.0";
#option option-128 e4:45:74:68:00:00;
#option option-129 "NIC=tg3";
option root-path "192.168.18.11:/opt/ltsp42/i386";
}
}
Tftpd
/usr/sbin/in.tftpd -l -s /tftpboot
nfs exports
/opt/ltsp42/i386 192.168.18.0/255.255.255.0(ro,no_root_squash,async)
Additions:
- System continues to load modules specified in LTSP_NFS_SHARE:/etc/lts.conf, and startup X and another stuff specified in the SCREEN_0x directive in lts.conf
LTSP
Read
http://www.ltsp.org/twiki/bin/view/Ltsp/Build-LTSP-42∞
http://www.ltsp.org/twiki/bin/view/Ltsp/DownLoads∞
LTSP boot process
Inevitably, you will learn about this process if you tried to add a module without going thru the official LTSP doc.. and I think it's a good thing to know.
- Thin client boots from network, obtaining pxelinux.0 from tftpboot
- Thin client downloads initramfs.gz from tftp, which contains a minimal OS environment. This file is extracted to /dev/ram0 on the thin client, and mounted as root. It will then execute the init script or the linuxrc script in older version.
- The init script loads the network driver, starts up dhcpcd, mounts the NFS share on LTSP server, and "newroot" to that
Installing LBE
LBE comes to play when the pre-make ltsp kernels do not satisfy you. My directory structure:
- LTSP NFS share: /opt/ltsp42/i386
- tftpboot: /tftpboot
Getting LBE
cvs -d :pserver:anonymous@cvs.ltsp.org:/usr/local/cvsroot checkout lbe
Fetch source and build LBE
If any of the source does not download, go to
http://ltsp.mirrors.tds.net/pub/ltsp/tarballs∞ and download it to the tarballs directory. THen re-run build_all --fetch
cd lbe
./build_all --fetch
./build_all
cd ltsp-src
./build --makepkg
cd ../packages
cat *.ltsp >packages.list
Building the kernel
Download the correct kernel from www.kernel.org. What's the correct kernel? Check LTSP_nts_share/lib/modules/2.6.x
cd /usr/src
tar jxf linux-2.6.20.9.tar.bz2
cd linux-2.6.20.9
# find config file from the LBE directory and use it as old config
# edit make file and append -ltsp-3 or whatever that extra version is to the EXTRAVERSION variable
make oldconfig
make menuconfig
# for me, I enabled PCIe
make -j3
make modules_install
Add extra modules if necessary
For me, I want to load the latest tg3 driver
# refer to tg3's install doc
make KVER=2.6.20.9-ltsp-1
make KVER=2.6.20.9-ltsp-1 install
Build initramfs
cd /usr/local/lbe/ltsp_kernel_kit
./build_initramfs
# you will be asked about the kernel version, etc.