[Barrelfish-users] Need Help configuring PXE/TFTP boot

jiban sarma jj_sep at yahoo.com
Mon Sep 23 10:03:50 CEST 2013


I have configured my system according to the instructions you have given, but still not able to boot barrelfish. It seems both tftp/dhcp are  up and working fine. While booting the PXE client it shows the IP address of the Gateway and the installation process stuck on that point. I looked at the /var/lib/messages for any error message and can see there are some error messages regarding to "tftp: client does not accept options ".

For your information :

1) Both my DHCP/TFTP servers are on the same machine("Red Hat Enterprise Linux Server release 6.4 (Santiago)").
2)Configuration of my "dhcp.conf" file is as below:

subnet netmask {
include "/etc/dhcp/private/subnet_10.1.57%24"; 
option routers; 
option subnet-mask; 

Configuration in (/etc/dhcp/private/subnet_10.1.57%24)

group {
      next-server                     next-server address;
        filename                        "tftpboot.bf014";

        host bf013 {
                hardware ethernet       00:21:5A:4D:7F:11;
                fixed-address    ;
        host bf014 {
                hardware ethernet       00:21:5A:1D:9F:F2;
                fixed-address     ;
} Now my directory structure for tftp are as below(/var/lib/tftpboot)

drwxrwxrwx 3 root root   4096   Sep 23 00:02       barrelfish
lrwxrwxrwx 1 root root   	 19        Sep 20 12:14       menu.lst. -> barrelfish/menu.lst
-rwxrwxrwx 1 root root 121776  Sep 18 01:21       pxegrub-undi
lrwxrwxrwx 1 root root     12     Sep 20 12:15        tftpboot.bf014 -> pxegrub-undi

barrelfish directory contains the below:

-rwxrwxrwx 1 root root   1277 Sep 23 00:02 menu.lst
-rwxrwxrwx 1 root root 653551 Sep  4 01:43 skb_ramfs.cpio.gz
drwxrwxrwx 3 root root   4096 Sep  4 01:43 x86_64

I have generated the binaries using the below command:
$ make install INSTALL_PREFIX=/var/lib/tftpboot/barrelfish

My "menu.lst" file in /var/lib/tftpboot/barrelfish is as below:

#boot the list of cores passed as argument.
# The APIC id of the cores to boot should be specified.
# This list may not include the bsp core id.

title   Barrelfish
root    (nd)
kernel  /barrelfish/x86_64/sbin/elver loglevel=4
module  /barrelfish/x86_64/sbin/cpu
module  /barrelfish/x86_64/sbin/init

# Domains spawned by init
module  /barrelfish/x86_64/sbin/mem_serv
module  /barrelfish/x86_64/sbin/monitor

# Special boot time domains spawned by monitor
module  /barrelfish/x86_64/sbin/ramfsd boot
module /barrelfish/x86_64/sbin/vbe
module / barrelfish/x86_64/sbin/skb boot
module /barrelfish/x86_64/sbin/lpc_kbd
modulenounzip barrelfish/skb_ramfs.cpio.gz nospawn
module  /barrelfish/x86_64/sbin/kaluga boot
module  /barrelfish/x86_64/sbin/acpi boot
module  /barrelfish/x86_64/sbin/spawnd boot
module  /barrelfish/x86_64/sbin/startd boot
module /barrelfish/x86_64/sbin/routing_setup boot

# Drivers
module /barrelfish/x86_64/sbin/pci auto
module /barrelfish/x86_64/sbin/ahcid auto
module /barrelfish/x86_64/sbin/rtl8029 auto
module /barrelfish/x86_64/sbin/e1000n auto
module /barrelfish/x86_64/sbin/NGD_mng auto
module /barrelfish/x86_64/sbin/netd auto

# General user domains
module  /barrelfish/x86_64/sbin/serial
module  /barrelfish/x86_64/sbin/fish

The only error I can see in my logs is "tftp: client does not accept options ".

Did I miss something in my configuration? 

Many Thanks,

 From: Pravin <shindep at student.ethz.ch>
To: jiban sarma <jj_sep at yahoo.com> 
Cc: "barrelfish-users at lists.inf.ethz.ch" <barrelfish-users at lists.inf.ethz.ch>; Kornilios Kourtis <kornilios.kourtis at inf.ethz.ch> 
Sent: Tuesday, 17 September 2013, 11:52
Subject: Re: [Barrelfish-users] Need Help configuring PXE/TFTP boot


To expand on Kornilios's answer, here are few configuration
details from our internal setup which might help you to use
as an example for your setup.

Directory structure ::

    ├── menu.lst. -> shindep/menu.lst
    ├── pxegrub-undi
    ├── tftpboot.nos5 -> ./pxegrub-undi
    └── shindep
       ├── menu.lst
       ├── skb_ramfs.cpio.gz
       └── x86_64
           └── sbin
               ├── NGD_mng
               ├── acpi
               ├── ahci_bench
               ├── .....
               ├── .....
               ├── .....
               ├── lot of binary images

While installing the barrelfish, you can use following prefix to get files
in proper place ::

    make install INSTALL_PREFIX=/path/to/tftpboot/shindep

What you need to note that tftp configuration will point the boot process to
``tftpboot.nos5`` file, which is essentially a symbolic link to ``pxegrub-undi``
from grub installation.  Here is a sample tftp configuration which configures
the tftp booting for the machine ``nos5`` ::

   host nos5-boot-interface {
        hardware ethernet 00:0f:53:07:4d:64;
        filename "tftpboot.nos5";

Also, the  ``menu.lst.`` is symbolic link to the ``shindep/menu.lst``
which is slightly modified version of ``menu.lst`` from your install directory.
The changes are mostly related to the paths.  Following is small part of
``menu.lst`` to give you an idea how paths should be modified
according to your directory structure (note the prefix ``/shindep/``
in each entry) ::

    title   barrelfish image
    root    (nd)
    kernel    /shindep/x86_64/sbin/elver loglevel=4
    module    /shindep/x86_64/sbin/cpu loglevel=4
    module    /shindep/x86_64/sbin/init

    # Domains spawned by init
    module    /shindep/x86_64/sbin/mem_serv
    module    /shindep/x86_64/sbin/monitor

    # Special boot time domains spawned by monitor
    module  /shindep/x86_64/sbin/ramfsd boot
    module  /shindep/x86_64/sbin/skb boot

    modulenounzip /shindep/skb_ramfs.cpio.gz nospawn

    module  /shindep/x86_64/sbin/kaluga boot
    module  /shindep/x86_64/sbin/acpi boot
    module  /shindep/x86_64/sbin/spawnd boot
    module  /shindep/x86_64/sbin/startd boot
    module /shindep/x86_64/sbin/routing_setup boot

   ....  and lot of other files ....

Essentially, DHCP will instruct the tftboot loader to download and use
``tftpboot.nos5`` for booting.  This file is part of grub bootloader
``pxegrub-undi`` and will then download and use ``menu.lst`` to figure out
which other modules to download.  Once it has downloaded all files, it will
give the control to ``elver`` (it should be there after doing ``make install``
on Barrelfish).  Then elver will do rest of the loading for Barrelfish and
then pass the control to cpu driver.

I hope that all this information will be helpful to you for setting up
the infrastructure.


On Thu, Sep 5, 2013 at 7:17 AM, Kornilios Kourtis
<kornilios.kourtis at inf.ethz.ch> wrote:
> Hi Jiban,
> On Thu, Sep 05, 2013 at 03:57:41AM -0700, jiban sarma wrote:
>> Hello All,
>> Today I have got a set up to install barrelfish on real hardware. I want to
>> boot the OS via PXE/TFTP. I have configured the DHCP server and TFTP/PXE
>> configuration as well. After that I have copied all the binary files of
>> barrelfish using
>> make install INSTALL_PREFIX=/var/lib/tftpboot/barrelfish .
>> Now i have the following directory structure within /var/lib/tftpboot
>> drwxr-xr-x 3 root root 4096 Sep  5 02:08 barrelfish
>> -rwxr-xr-x 1 root root  353 Sep  5 02:15 mybootmenu.cfg
>> drwxr-xr-x 2 root root 4096 Sep  5 03:25 pxelinux.cfg
>> Now when i start my Pxe boot client its stuck in PXE-32 TFTP open timeout.
>> Is there any additional file required to boot barrelfish?
>> Please can someone help me how to resolve the issue.
> In what file transfer is PXE stuck?
> Are you using grub?
> I'm not sure how well your setup matches ours, but (unless I'm mistaken) our
> booting process is:
>  - pxe loads the grub image over tftp
>    (the image is typically specified in the dhcpd configuration file)
>  - grub fetches proper menu.lst (usually it's menu.lst.$IP) using tftp
>  - grub reads menu.lst  (see README on Barrelfish source tree for an
>    example) and fetches the necessary files from tftp
>  - grub starts elver that loads Barrelfish kernel
> A good starting point would be to look at the tftp logs and see what files are
> requested and what files are actually transfered.
> cheers,
> Kornilios.
> --
> Kornilios Kourtis
> _______________________________________________
> Barrelfish-users mailing list
> Barrelfish-users at lists.inf.ethz.ch
> https://lists.inf.ethz.ch/mailman/listinfo/barrelfish-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://lists.inf.ethz.ch/pipermail/barrelfish-users/attachments/20130923/f166e1b6/attachment-0001.html 

More information about the Barrelfish-users mailing list