Custom Kernel Configuration for LTSP So you have got LTSP installed but those darn marketing guys still think they are scientists as they see their Workstations booting up, filled with messy messages that hardly make sense (atleast to them). Thanx to enduring efforts of Jim Mcquillian (for LTSP) and Nigel Smith (for making lpp patch for 2.4.18 kernel), its now possible to replace the initial bootup messages with a graphical boot up screen (similar to the Windows 98 splash screen with scrolling bar) In this How-To, I shall be going through the steps of installing kernel version 2.4.18, applying the LPP (Linux Progress Patch) and finally getting your client to boot up. Pre-requisites: 1.) You should atleast be able to read/write english. 2.) Kernel version 2.4.18 http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.18.tar.gz 3.) ltsp_initrd package http://umn.dl.sourceforge.net/sourceforge/ltsp/ltsp_initrd_kit-3.0.4-i38 6.tgz 4.) mknbi package http://telia.dl.sourceforge.net/sourceforge/etherboot/mknbi-1.2.tar.gz 5.) lpp patch lpp-2.4.18.patch.bz2 I presume that all packages are copied in / directory. Though some of you may curse me for this, while writing How-To's I prefer to adopt a particular standard so when I receive queries via email, I know exactly how to address the problem. A short naming convention has been adopted in this How-To. [brainless]# => implies commands to be typed at the console. -- => is a comment explaning why I am using the particular command [brainless]# cp /linux-2.4.18.tar.gz /usr/src -- copies the downloaded kernel to /usr/src [brainless]# cd /usr/src -- changes directory to /usr/src [brainless]# tar zxvf linux-2.4.18.tar.gz -- untars the kernel [brainless]# mv linux linux-3.4.18-ltsp -- moves the kernel from /usr/src/linux directory to /usr/src/linux-2.4.18-ltsp [brainless]# cd / -- self explanatory ;) [brainless]# tar zxvf ltsp_initrd_kit-3.0.4-i386.tgz -- untars ltsp_initrd_kit [brainless]# cd ltsp_initrd_kit -- self explanatory ;) [brainless]# mv config-2.4.18-ltsp-1 /usr/src/linux-2.4.18-ltsp -- moves the config-2.4.18-ltsp-1 file to /usr/src/linux-2.4.18-ltsp LTSP kernel makes some changes to the default kernel allowing it to act as a server. Though it is possible to manually make these changes via make menuconfig (explained later), the config file automates the task. [brainless]# cd /usr/src/linux-2.4.18-ltsp -- self explanatory ;) [brainless]# mv config-2.4.18-ltsp-1 .config -- Please note the "." in ".config" [brainless]# cd / -- self explanatory ;) [brainless]# tar zxvf mknbi-1.2.tar.gz -- untars mknbi-1.2.tar.gz [brainless]# cd mknbi-1.2 -- self explanatory ;) [brainless]# make [brainless]# make install -- for compiling mknbi utility. Essential for booting via the network. [brainless]# cd / [brainless]# bzip2 -d lpp-2.4.18.patch.bz2 -- unzips the lpp (Linux Progress Patch) [brainless]# cd /usr/src/linux-2.4.18-ltsp -- self explanatory ;) [brainless]# cp /lpp-2.4.18.patch /usr/src/linux-2.4.18-ltsp -- Copies the patch to /usr/src/linux-2.4.18-ltsp [brainless]# patch -p1 < lpp-2.4.18.patch -- patches the kernel with lpp patch. [brainless]# make xconfig -- This is an X based kernel configuration utility. For those who hate X, there is "make menuconfig". Click on - Load configuration from file. In the pop-up box, type ".config" (without quotes) and press OK. This shall load the custom kernel file required for LTSP. Click on Console Drivers -> Frame Buffer Support. Scroll below and click checkbox besides "y" option for "Enable Linux Progress Patch (EXPERIMENTAL)" Scroll below again and click checkbox besides "y" option for "Virtual Frame Buffer Support (Only for Testing!)" Click Ok. Click Main Menu Click on Save and Exit button. Next, on the console type: [brainless]# make dep && make bzImage && make modules && make modules_install -- These are typical statements for compiling your own kernel. If you shall like to know what these statements actually mean and/or for further information, read the Kernel How-To @ www.linuxdocs.org Kernel compilation will take some time. Typically 20-45 minutes depending upon your system configuration. Meanwhile, some text messages will continue to appear on the console. Stare at them for a couple of minutes. Though its not possible to know what they actually mean, it will give you a sense of gratification. While your kernel compiles, its an appropriate time to go and order pizza ;) [brainless]# cd /ltsp_initrd_kit -- Changes to /ltsp_initrd_kit [brainless]# ./buildk -- This is a script file which automates the task of creating your own etherboot image. A series of questions will now be asked. The default values are enclosed in [].If everything has been done in accordance to this how-to, simply press "enter" for each question. The kernel bootrom image will now be prepared at /ltsp_initrd_kit/vmlinuz-2.4.18 [brainless]# cp vmlinuz-2.4.18 /tftpboot/lts -- Copies the image to your boot directory. Next you need to edit the dhcpd.conf file on your DHCP server to point to the new kernel. Its assumed out here that you already have a workstation configured via dhcpd and the DHCP server is the same machine where the Kernel has been compiled. Here is a sample entry of my dhcpd.conf file:- host brainless { next server 192.168.2.213; hardware ethernet 00:50:BA:32:31:C6; fixed-address 192.168.2.81; filename "/lts/vmlinuz-2.4.18"; option root-path "192.168.2.213:/opt/ltsp/i386"; } [brainless]# /etc/rc.d/init.d/dhcpd restart Simply reboot your client and be ready to be greeted by a nice swirling debian startup screen :) This How-To is a result of conglomerate efforts of Jim McQuillian (jam@ltsp.org), Nigel Smith (nigel.smith@maplin.co.uk) and Scott Balneavs (sbalneav@ltsp.org). If you face any problems, I shall only be glad to help you out :) Until next time, adigo amigos.... :) Anurag Phadke anurag@netcore.co.in Research & Development NetCore Solutions http://www.netcore.co.in http://www.emergic.org