Kiwi-LTSP

I’m trying to setup LTSP in my school’s computer lab.
I downloaded and installed openSUSE 11.0 64 bit and KIWI-LTSP prebuilt
image on HP Proliant ML115. The clients are i386 machines.I set the
clients to pxe boot but they don’t load.
Below is the result of the code from the troubleshooting site.
Any help would be appreciated.

Thanks

teacher@linux-e0fh:~> rpm -qa | grep kiwi
kiwi-desc-ltsp-0.5.0-2.1
kiwi-desc-isoboot-3.01-100.1
kiwi-tools-3.01-100.1
kiwi-3.01-100.1
kiwi-ltsp-bootimages-0.5.0-1.1
kiwi-ltsp-prebuilt-0.5.0-4.1
kiwi-pxeboot-3.01-100.1
kiwi-desc-netboot-3.01-100.1
kiwi-desc-usbboot-3.01-100.1
teacher@linux-e0fh:~> cat /etc/sysconfig/kiwi-ltsp

Path: System/Kiwi-ltsp

Description: kiwi-ltsp setup - Part of KIWI-LTSP as created by

CyberOrg

Copyright (c) 2007 Cyberorg

This program is free software; you can redistribute it and/or modify

it under

the terms of the GNU General Public License as published by the Free

Software

Foundation; either version 2 of the License, or (at your option) any

later

version.

This program is distributed in the hope that it will be useful, but

WITHOUT

ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or

FITNESS

FOR A PARTICULAR PURPOSE. See the GNU General Public License for

more

details.

You should have received a copy of the GNU General Public License

along with

this program; if not, write to the Free Software Foundation, Inc., 59

Temple

Place, Suite 330, Boston, MA 02111-1307 USA

Authors: Cyberorg Cyberorg <cyberorg@cyberorg.info>

Magnus Boman <captain.magnus@gmail.com>

Version Date Changes

0.1.1 2007-08-25 Initial release

0.1.2 2007-08-27 Added {SUSE,LTSP}_INSTALL_SOURCE

0.1.2 2007-09-05 Image type and nfs chroot paths

0.1.3 2007-09-09 Added DHCP_IFACE=“eth0”

0.1.4 2007-09-11 Move it to /etc/sysconfig

0.1.5 2007-09-24 Added LTSSQUASHPATH="/srv/kiwi-ltsp"

0.1.6 2007-11-04 Auto detect server IP address based on specified

DHCP interface

Type: integer(0:1)

Default: 0

#Set LTSP_DEBUG “0” logs to file and “1” to log KIWI activity to screen
instead of log file
LTSP_DEBUG=“1”

Type: list(NFS,NBD)

Default: NBD

#Set the image type, NFS and NBD supported, NBD is default
IMAGETYPE=“NBD”

Type: string

Default: /mnt/10.3

#Set the installation source path or URL
SUSE_INSTALL_SOURCE="/mnt/11.0"

Type: string(yast2,rpm-dir)

Default: yast2

#Set the installation source type
SUSE_INSTALL_SOURCE_TYPE=“yast2”

Type: list(10.3,11.0)

Default: 11.0

#Set the openSUSE version to use for creating image
SUSE_VERSION=“11.0”

Type: string

Default: 10.0.0.50 10.0.0.100

#Range of IP addresses to be used for DHCP setup
DHCP_RANGE=“10.0.0.50 10.0.0.100”

Type: string

Default: 10.0.0.0

#Subnet to be used for DHCP setup
DHCP_SUBNET=“10.0.0.0”

Type: string

Default: 255.255.255.0

#Netmask to be used for DHCP setup
DHCP_NETMASK=“255.255.255.0”

Type: string(eth0,eth1,eth2,ANY)

Default: ANY

#DHCP Interface connected to ltsp network
DHCP_IFACE=“eth0”

Type: string

Default: 10.0.0.254

#Set the IP address of this server that would be accessed by ltsp
clients
SERVER_IP=“10.0.0.254”

Type: string

Default: digitalairlines.com

#your domainname for DHCP setup
DOMAIN=“digitalairlines.com

Type: string

Default: $SERVER_IP

#DNS server to be used for DHCP setup
NAME_SERVERS="$SERVER_IP"

Type: string

Default: $SERVER_IP

#Gateway IP to be used for DHCP setup
GATEWAY="$SERVER_IP"

Type: string

Default: $SERVER_IP

#TFTP server IP for PXE boot, this is the server where the netboot
image is stored
#This is usually same as server IP, do not change this if you don’t
know what it is.
TFTP_SERVER="$SERVER_IP"

Type: string

Default: /usr/share/kiwi/image/ltsp/suse-$SUSE_VERSION

#Please do not change this, unless you know what you are doing
KIWIPATH="/usr/share/kiwi/image/ltsp/suse-$SUSE_VERSION"

Type: string

Default: /srv/kiwi-ltsp

#Please do not change this, unless you know what you are doing
DESTPATH="/srv/kiwi-ltsp"

Type: string

Default: /srv/tftpboot

#Please do not change this, unless you know what you are doing
TFTPBOOTPATH="/srv/tftpboot"

Type: string

Default: /tmp/kiwi-netboot

#Please do not change this, unless you know what you are doing
TMPPATH="/tmp/kiwi-netboot"

Type: string

Default: /srv/kiwi-ltsp

#Please do not change this, unless you know what you are doing
LTSSQUASHPATH="/srv/kiwi-ltsp"

Type: string

Default: $LTSSQUASHPATH-nfs

#Please do not change this, unless you know what you are doing
LTSNFSPATH="$LTSSQUASHPATH-nfs"

Type: string

Default: /usr/share/kiwi/image/netboot/suse-$SUSE_VERSION

#Please do not change this, unless you know what you are doing
KIWINBPATH="/usr/share/kiwi/image/netboot/suse-$SUSE_VERSION"

Type: string

Default:

#Add space separated list of packages to be installed in the client for
use as localapps
LTSP_LOCALAPPS=""
teacher@linux-e0fh:~> cat /etc/dhcpd.conf

dhcpd.conf

Sample configuration file for ISC dhcpd

option definitions common to all supported networks…

option domain-name “example.org”;
option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 600;
max-lease-time 7200;

if you do not use dynamical DNS updates:

this statement is needed by dhcpd-3 needs at least this statement.

you have to delete it for dhcpd-2, because it does not know it.

if you want to use dynamical DNS updates, you should first read

read /usr/share/doc/packages/dhcp-server/DDNS-howto.txt

ddns-update-style none; ddns-updates off;

If this DHCP server is the official DHCP server for the local

network, the authoritative directive should be uncommented.

#authoritative;

Use this to send dhcp log messages to a different log file (you also

have to hack syslog.conf to complete the redirection).

log-facility local7;

No service will be given on this subnet, but declaring it helps the

DHCP server to understand the network topology.

subnet 10.152.187.0 netmask 255.255.255.0 {
}

This is a very basic subnet declaration.

subnet 10.254.239.0 netmask 255.255.255.224 {
range 10.254.239.10 10.254.239.20;
option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
}

This declaration allows BOOTP clients to get dynamic addresses,

which we don’t really recommend.

subnet 10.254.239.32 netmask 255.255.255.224 {
range dynamic-bootp 10.254.239.40 10.254.239.60;
option broadcast-address 10.254.239.31;
option routers rtr-239-32-1.example.org;
}

A slightly different configuration for an internal subnet.

subnet 10.5.5.0 netmask 255.255.255.224 {
range 10.5.5.26 10.5.5.30;
option domain-name-servers ns1.internal.example.org;
option domain-name “internal.example.org”;
option routers 10.5.5.1;
option broadcast-address 10.5.5.31;
default-lease-time 600;
max-lease-time 7200;
}

Hosts which require special configuration options can be listed in

host statements. If no address is specified, the address will be

allocated dynamically (if possible), but the host-specific

information

will still come from the host declaration.

host passacaglia {
hardware ethernet 0:0:c0:5d:bd:95;
filename “vmunix.passacaglia”;
server-name “toccata.fugue.com”;
}

Fixed IP addresses can also be specified for hosts. These

addresses

should not also be listed as being available for dynamic assignment.

Hosts for which fixed IP addresses have been specified can boot

using

BOOTP or DHCP. Hosts for which no fixed address is specified can

only

be booted with DHCP, unless there is an address range on the subnet

to which a BOOTP client is connected which has the dynamic-bootp

flag

set.

host fantasia {
hardware ethernet 08:00:07:26:c0:a5;
fixed-address fantasia.fugue.com;
}

You can declare a class of clients and then do address allocation

based on that. The example below shows a case where all clients

in a certain class get addresses on the 10.17.224/24 subnet, and all

other clients get addresses on the 10.0.29/24 subnet.

class “foo” {
match if substring (option vendor-class-identifier, 0, 4) = “SUNW”;
}

shared-network 224-29 {
subnet 10.17.224.0 netmask 255.255.255.0 {
option routers rtr-224.example.org;
}
subnet 10.0.29.0 netmask 255.255.255.0 {
option routers rtr-29.example.org;
}
pool {
allow members of “foo”;
range 10.17.224.10 10.17.224.250;
}
pool {
deny members of “foo”;
range 10.0.29.10 10.0.29.230;
}
}
teacher@linux-e0fh:~> ifconfig
bash: ifconfig: command not found
teacher@linux-e0fh:~> kiwi-ltsp-setup -c
bash: kiwi-ltsp-setup: command not found
teacher@linux-e0fh:~>


philadelphia

philadelphia’s Profile: http://forums.opensuse.org/member.php?userid=16858
View this thread: http://forums.opensuse.org/showthread.php?t=401460

Hi there,

I have only installed Kiwi-LTSP once, but I did as you did - installed
the pre-built image, etc. As I recall, I needed to set up the DHCP
settings and TFP next hop IP to be the localhost IP, etc.

I am sure you have already found this Wiki, but just in case:
‘LTSP/Configuration - openSUSE’
(http://en.opensuse.org/LTSP/Configuration)

When you say the clients won’t PXE boot - do you mean they don’t get an
IP address at all? If that is the case, the DHCP sever is likely not
running. If they get an address, but then you see a long list of MAC
addresses, then it means the PXE image to TFTP to the client is not
found.

Let me know what point exactly it is hanging at and perhaps we can get
this running for you.

NOTE: I though the clients ran the compute locally - meaning the
compute load was performed on the client. In actual fact, all the load
is carried by the server, all computer is performed there and the screen
is forwarded to the client. I was hoping for more of a cluster where
each client used it’s own CPU resources and ran the processes locally.
Despite this, Kiwi and LTSP is still very cool and might fit your school
needs very well. It would be great to get this set up for you!

Cheers,
Pete Eby


LewsTherinTelemon

LewsTherinTelemon’s Profile: http://forums.opensuse.org/member.php?userid=14043
View this thread: http://forums.opensuse.org/showthread.php?t=401460

Hi there,

Oh - I just noticed the end of your output. You have to be root to run
those commands, they are not is user’s paths so you are getting command
not found. su to root (#su -) and run them.

Pete


LewsTherinTelemon

LewsTherinTelemon’s Profile: http://forums.opensuse.org/member.php?userid=14043
View this thread: http://forums.opensuse.org/showthread.php?t=401460

The client never connect to the server.

Thanks Pete for your help.


philadelphia

philadelphia’s Profile: http://forums.opensuse.org/member.php?userid=16858
View this thread: http://forums.opensuse.org/showthread.php?t=401460

Hey there,

Okay - so that means the DHCP server is not running.

First, let’s make sure the DHCP server is really installed and running.
Do you see the DHCP server in yast → Network Services. If not, use
Yast to install: DHCP-server and yast2-dhcp-server (for the Yast control
panel interface)

Also, ensure that yast2-tftp and yast2-nfs are also installed. You need
them after the DHCP server is running.

Once everything is installed you will see the DHCP, TFTP and NFS
servers in Yast -> Network Services, like this:

[image: http://www.timelordz.com/webcontent/webpics/YastDHCP-TFTP.png]

Next, go into the DHCP server in Yast. Complete the DHCP network Setup
Wizard - most steps are pretty self explanatory. Note that if you
already have a DHCP server running on your network (for example your
router?) you might need to turn it off - that way there is only one DHCP
server running on your network segment. I am not sure exactly how your
Suse server is set up - if it has two network cards, or does it connect
to a switch in your lab with no outside (internet) connection that will
be accessed by the clients, etc.

Once you have configured the DHCP wizard, start the DHCP server. Verify
it is running by:
<code>
Callandor:/ # netstat -tuple | grep dhcp
udp 0 0 *:bootps :
root 589261 30494/dhcpd
</code>

Now - the real test, connect a client to the server (via a switch or
using a crossover cable) and see if you can get a DHCP IP address -
don’t worry about PXE yet, just make sure the server gives out an IP
address. If it is a linux client just run #dhclient and see if it gets
an IP. If a Windows client, configure the interface for DHCP in control
panel, network settings, yadda yadda.

Once you have this working you are half way there.

Let us know how it goes!

If you have trouble let us know exactly what you see in response to the
netstat command above, exactly how your network is setup and what you
are seeing on the clients when they try to get an IP.

Cheers,

Pete


LewsTherinTelemon

LewsTherinTelemon’s Profile: http://forums.opensuse.org/member.php?userid=14043
View this thread: http://forums.opensuse.org/showthread.php?t=401460

Thanks Pete,

I’ll give that a try when I get back to school tomorrow morning.


philadelphia

philadelphia’s Profile: http://forums.opensuse.org/member.php?userid=16858
View this thread: http://forums.opensuse.org/showthread.php?t=401460

Ok Pete,

The client now shows this message.

Client IP:10.3.5.97 MASK:255.255.255.0 dhcp IP: 10.3.5.75
Gateway IP: 10.3.5.75
PXE-E32: TFTP open timeout
TFTP…

But fails to load.

Jay


philadelphia

philadelphia’s Profile: http://forums.opensuse.org/member.php?userid=16858
View this thread: http://forums.opensuse.org/showthread.php?t=401460

Hi Jay,

You got the DHCP server running, so that is great - you are half way
there.

The error you are getting is saying the tftp server is not responding.
This may be because it is not running, or is blocked by the firewall
etc.

Check this out next: Go into Yast and ensure the TFTP server is running
(click on it and start it if needed) If there is no icon for the tftp
server in Yast then install the package (see previous post) Once
installed and running, ensure you have allowed the port in the firewall,
or turned off the firewall.

If it is running, and not blocked, but you the PXE client still does
not communicate with it - then you may need to specify the next hop IP
for the TFTP server as the IP of the server itself. (Some times the DHCP
server is one box, and the TFTP server is another. DHCP allows the lease
given the client to include the IP of the TFTP server too. This is how
the client learns who to contact to get the image.)

As I recall, you need to specify the next hop IP for the TFTP server
for Kiwi. Look at the Yast screen shot here ‘LTSP/Configuration -
openSUSE’ (http://en.opensuse.org/LTSP/Configuration) - although they
show the server’s main IP setting, you can also see in the Kiwi-ltsp
options and entry for “TFTP Server” - verify you have the correct IP
entered there.

Another option is to use another tftp server. The regular yast one just
uses a very simple one through xinit.d - there are not a lot of
configuration options, etc. The few options there are are given in
/etc/xinetd.d/tftp I believe.

You might try atfp instead. I used that and was able to get PXE working
correctly.

The original guide I followed was this one: ‘Configuring a TFTP/PXE
Server » SUSE Linux Enterprise in the Americas’
(http://opsamericas.com/?p=424) perhaps it might help you too.

Now - lastly, you need the files in /tftpboot that will be loaded
(these should have been installed when you installed Kiwi), but make
sure they are there. You should see pxelinux.0 pxelinux.cfg and other
files there

Try these suggestions out and let me know how it goes.

Cheers,
Pete

(By the way - what kind of school lab is this for? K-12, college, etc?)


LewsTherinTelemon

LewsTherinTelemon’s Profile: http://forums.opensuse.org/member.php?userid=14043
View this thread: http://forums.opensuse.org/showthread.php?t=401460

Hi there,

Oh, another site I found very useful in getting PXE to work was this
one:

‘SuSE install with PXE boot - openSUSE’
(http://en.opensuse.org/SuSE_install_with_PXE_boot)

Cheers,
Pete


LewsTherinTelemon

LewsTherinTelemon’s Profile: http://forums.opensuse.org/member.php?userid=14043
View this thread: http://forums.opensuse.org/showthread.php?t=401460

You’re aware that there’s a mailing list for Kiwi-LTSP you can ask for
help on?


ken_yap

ken_yap’s Profile: http://forums.opensuse.org/member.php?userid=221
View this thread: http://forums.opensuse.org/showthread.php?t=401460

Ah - and take all the fun out of it?

Where’s your sense of adventure! :wink:

Heck, Jay’s almost got it.

Pete


LewsTherinTelemon

LewsTherinTelemon’s Profile: http://forums.opensuse.org/member.php?userid=14043
View this thread: http://forums.opensuse.org/showthread.php?t=401460

Hey there,

Were you ever able to get this working? I hope so, if you got stuck let
us know and maybe we can help get you up and running.

What kind of school are you in? Do you use Linux in other areas of your
school?

Cheers,
Lews Therin


LewsTherinTelemon

LewsTherinTelemon’s Profile: http://forums.opensuse.org/member.php?userid=14043
View this thread: http://forums.opensuse.org/showthread.php?t=401460