Gentoo Logo

Gentoo Linux Alpha Netboot HOWTO

Content:

1.  Introduction

This document will describe how to setup a network booting environment for a Alpha computer. The document assumes that you have an existing Gentoo Linux computer available to act as the netboot server.

Both the netboot server and netboot client will need to be on the same network subnet, as the ARP protocol is typically not forwarded across different network subnets.

A generic overview of what happens during the netboot process is as follows;

  1. Client machine sends out a BOOTP request to get an IP address
  2. A server machine returns a response to the client with the IP address
  3. The client then attempts to download a boot image from the BOOTP server using the TFTP protocol
  4. Once the image is downloaded, the netboot client then boots the image

Based on this overview, we will need to install software for a BOOTP server and a TFTP daemon.

2.  Software Installation And Configuration

The BOOTP server

The most easy BOOTP server to setup is net-misc/dhcp. Make sure you have it installed.

You'll need to find out the MAC address of your alpha machine. You can obtain it by running show dev on SRM. For example:

Code Listing 2.1: Obtaining the MAC address

>>>show dev
dka600.6.0.6.1             DKA600      HITACHI HUS103073FL3600  SA1B
dqa0.0.0.107.0             DQA0       Hewlett- Packard CD-Write  1.0c    
dva0.0.0.0.0               DVA0                               
ewa0.0.0.3.1               EWA0              AB-CD-DE-FF-FF-FF
pka0.7.0.6.1               PKA0                  SCSI Bus ID 7  5.57

Take note of the MAC address, which in the example is AB-CD-DE-FF-FF-FF

Now we'll setup the DHCP/BOOTP server configuration on the file /etc/dhcp/dhcpd.conf

Code Listing 2.2: Example /etc/dhcp/dhcpd.conf

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

# Use this to enble / disable dynamic dns updates globally.
ddns-update-style none;


subnet 192.168.0.0 netmask 255.255.255.0 { # This is my subnet
}

host alpha { # You can use any hostname
	filename "netboot-20110126.img"; # This is the netboot image filename
	fixed-address 192.168.0.5; # This is the ip the alpha machine will have
	hardware ethernet ab:cd:de:ff:ff:ff; # This is the MAC address we got before, notice we're using colons(:) instead of (-)
}

Note: Depending on the environment, you may need to consult your network administrator to get an appropriate IP address or addresses to netboot the host with.

The tftpd Daemon

In this guide we'll use net-misc/tftp-hpa as TFTP server.

Setting up common tftpd elements

The TFTP daemon will need a directory from which to serve files to tftp clients. The directory we will use for this howto will be /tftpboot. This will appear as the root (/) directory to the clients when requests are received. Additionally, we'll setup the system to run the TFTP daemon with the user and group nobody.

If the directory you have chosen does not currently exist, it will need to be created with the mkdir command. The command for the example /tftpboot is:

Code Listing 2.3: Creating /tftpboot

# mkdir /tftpboot

Then we will need to change the owner of /tftpboot so that it is owned by user nobody and group nobody:

Code Listing 2.4: Changing ownership

# chown nobody:nobody /tftpboot

The tftp-hpa Daemon

First, install the tftp-hpa package:

Code Listing 2.5: Installing tftp-hpa

# emerge net-misc/tftp-hpa

tftp-hpa comes with an init.d and the accompanying conf.d configuration file. Check to make sure that INTFTPD_PATH and INTFTP_OPTS in /etc/conf.d/in.tftpd match those below:

Important: If your alpha machine is an XP1000, you need to append the option "-r blksize" to the INTFPD_OPTS below.

Code Listing 2.6: /etc/conf.d/in.tftpd

INTFTPD_PATH="/tftpboot"
INTFTPD_OPTS="-s -v -l ${INTFTPD_PATH}"

The TFTP daemon can then be started via the init.d script:

Code Listing 2.7: Starting in.tftpd

# /etc/init.d/in.tftpd start

For more options, consult man 8 tftpd.

3.  Preparing a tftpboot image for use by a client

Make sure you have an image you want to use for netbooting. You can download it from here

Once you have an image, copy the image into /tftpboot:

Code Listing 3.1: Copying the image

# cp netboot-20110126.img /tftpboot
# chmod 644 /tftpboot/netboot-20110126.img

Make sure that both the BOOTP and TFTP daemon are currently running, then boot the host as described below in Netbooting the client.

Now everything should be set for netbooting!

4.  Netbooting the client

From SRM, enter the command;

Code Listing 4.1: Booting

(Replace ewa0 with your network interface that "show dev" reports)
>>> boot ewa0
(In case you want to use the first serial port (ttyS0))
>>> boot ewa0 -flags "console=ttyS0"

Note: If your system doesn't present you with SRM at boot time, you have to press CTRL-C before the system boots an OS.

This will initiate the networking booting process. You'll see a line of dots increasing as it downloads the netboot image, then it will boot.

5.  Troubleshooting

I get "bootstrap failure" or "p == &tftq = no request for this packet" when booting

In the Compaq XP1000 (and maybe other machines?) there's a bug in the SRM TFTP client, you need to use a workaround in the TFTP server. Make sure you did what the important note says in the TFTP configuration step. In the following link there's a discussion about it.



Print

Page updated May 3, 2011

Summary: Guide for setting up a netboot server for use with the Gentoo/Alpha netboot installation images.

Raúl Porcel
Author

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.