suse-pxe-client

I am having a problem getting the KIWI pxe-client example to boot.
The Server and client are working in that I can boot DSL (made from an ISO image) and the SUSE Install example.

However, when I try to boot the pxe-client build I get the message:
Checking Server name: TFTP
Server: tftp. not found
Can’t ASSIGN server IP/Name

The INITRD and KERNEL are downloaded but I get the above message.

I have tried this on Opensuse 11.1 and 11.4
I modified the config.xml file to use our server “10.2.0.1”

Any suggestions?

On Mon, 14 May 2012 13:26:03 +0000, danstallman wrote:

> However, when I try to boot the pxe-client build I get the message:
> Checking Server name: TFTP Server: tftp. not found

Looks like a name resolution issue - from a running system (not the tftp
server), if you do “ping tftp” do you get resolution from your DNS server?

Do you have the necessary ports open in the firewall on the server that’s
running tftp?

Jim


Jim Henderson
openSUSE Forums Administrator
Forum Use Terms & Conditions at http://tinyurl.com/openSUSE-T-C

We don’t use by name, we list the IP address specifically.
The client never gets to a prompt.
The client ends just after: Loading KIWI Boot-System…
Creates device nodes with udev and then displays the error message.
This client and server work with **** Small Linux and the SuSe Install initrd/kernel.
Just not the initrd/kernel I built using KIWI?

Dan

On Mon, 14 May 2012 17:26:02 +0000, danstallman wrote:

> Just not the initrd/kernel I built using KIWI?

looking at the message a second time, I’m wondering if it’s a “command
not found” message - is the tftp command in the initrd?

Jim


Jim Henderson
openSUSE Forums Administrator
Forum Use Terms & Conditions at http://tinyurl.com/openSUSE-T-C

I don’t know. Please suggest how I should go about finding/changing this.
I have not found anything in the config.xml file or the unpackaged image calling out the server name as: tftp

Dan

On Mon, 14 May 2012 19:56:02 +0000, danstallman wrote:

> I don’t know. Please suggest how I should go about finding/changing
> this.
> I have not found anything in the config.xml file or the unpackaged image
> calling out the server name as: tftp

In the unpacked image being booted, is the tftp command included at all?
(It’d be in a bin or sbin directory)

Jim


Jim Henderson
openSUSE Forums Administrator
Forum Use Terms & Conditions at http://tinyurl.com/openSUSE-T-C

I’m also sometimes having troubles booting pxe images, so there are several reasons for this which I might think of.

Two config files on the server are important when you pxe-boot a kiwi image. I presume you use syslinux/pxelinux as bootloader. My pxelinux.cfg/default looks like this:


Label kiwi
  Linux linux  # <== Name of kernel image
  Initrd initrd  # <== Name of initrd image
  Append splash=off vga=normal kiwiserver=10.250.0.10  # <== IP of tftp server providing KIWI/config.default

The kiwiserver option is important! Your initrd will connect to the ip and download another important file: KIWI/config.default. On my machine it reads


NBDROOT=10.250.0.10;54024;/dev/nbd0
UNIONFS_CONFIG=/dev/ram1;/dev/nbd0;clicfs

I think the suse-pxe example also produces such a config.default file, but with different content (Caution: By default, the suse-pxe image overwrites the first harddisk on the client machine upon booting. Well, I think it does, and I have some bad memories about this. Such behaviour is controlled by the content of config.default).

Maybe you can post the content of your pxelinux.cfg/default and KIWI/config.default.
– Yarny

Jim: tftp is not in my image, I am adding it now.
Yarny:
Yes, we use pxelinux as the bootloader
My KIWI/config.default:
DISK=/dev/sda
PART=5;S;x,52;L;/,x;L;x,
IMAGE=/dev/sda2;suse-11.1-pxe-client.i686;1.2.8;10.2.0.1;4096
UNIONFS_CONFIG=/dev/sda3,/dev/sda2,aufs
(My client has a Compact Flash setup as per the KIWI/pxe-client example)

My pxelinux.cfg/default:
LABEL OCTTEST
MENU LABEL Octagon Test
KERNEL boot/linux
APPEND initrd=boot/initrd vga=0x314
IPAPPEND 1
******* Other extraneous stuff ommited *****

I added tftp to the image, and “kiwiserver=10.2.0.1” to the pxelinux.cfg/DEFAULT file.
And changed IPAPPEND to 2 instead of 1.
It still cannot find the server (kiwiserver=name does change the server name it is looking for)

Now the messages is:
Server: 10.2.0.1 not found
Using: 10.2.0.1 from dhcpcd-info
Checking for config file: (goes through various names looking for config.xxxx)
Registering new network client…
Registerd as: (macid of my client)
Waiting for configuration…
Couldn’t get image configuration
sleeping [60sec]
This message repeats*

I have tried naming the config.default but no luck.
I assume this is now an issue on my server?
Dan

This is strange. The file /usr/share/kiwi/image/netboot/suse-11.4/config.xml contains several lines which should pull in the package “atftp” into your initrd. Well…

Judging from the syslinux wiki’s description of this option, this is probably a good idea. kiwi’s pxe logic honors the bootif option if it is found. I’m not using this option, but I’m usually booting machines with only one NIC. Maybe you want to try without ipappend once and see if something changes…

Does it take 30 secs before this “Server…not found” appears? kiwi’s initrd tries to ping the server before it does anything else, and I think the timeout is 30 sec. If the ping fails, it tries different server names (tftp.something). I’d say your server/network is running a firewall that blocks the ping. If this is not the case, then the network config in the initrd is broken. While the initrd is booting, it starts a “Debugging Shell” somewhere, probably tty3 or tty4. Go there right after it complains about the missing server (Ctrl-Alt-F3/4) and look at the output of “ip addr”. Do you see the expected IP address (issued by your DHCP-server)?
– Yarny

P.S. The scripts which run inside the initrd can be found in /usr/share/kiwi/image/netboot/suse-11.4/root/. Sometimes it helps to grep for a specific error message there.

On Wed, 16 May 2012 19:16:03 +0000, danstallman wrote:

> I have tried naming the config.default but no luck.
> I assume this is now an issue on my server?

Maybe - but I’m also wondering if there might be an issue with the IP
address getting to your client machine.

Are you seeing an IP address being assigned by DHCP at boot time?

It’s been a while since I played with PXE booting systems, but I seem to
recall in some cases there’s a setting (in the BIOS maybe?) to tell the
system to let the PXE NIC driver stay resident in memory - without that,
you might lose the connection between driver and NIC once a kernel starts
booting (but it sounds like you’re not getting to a kernel yet, so maybe
this isn’t yet relevant).

I may have some time this weekend to look at some of my old PXE config
stuff and see what I did to get it working.

Jim


Jim Henderson
openSUSE Forums Administrator
Forum Use Terms & Conditions at http://tinyurl.com/openSUSE-T-C

Success!

I tried DEFAULT without IPAPPEND, no help.

Here is what made it to work:
DEFAULT:
kiwiserver= (name or IP)
IPAPPEND 2

Now for the odd part:
The files need to be in unexpected locations.
Boot and Kernel images under /srv/tftpboot/tftpboot/boot/
DEFAULT under /srv/tftpboot/tftpboot/pxelinux.cfg/
CONFIG.DEFAULT under /srv/tftpboot/KIWI/
System Image and md5 sum under /srv/tftpboot/image/

Many thanks to Yarny and Jim. Your help is very appreciated!

Dan