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

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


Hi,

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 10.1.57.0 netmask 255.255.255.0 {
include "/etc/dhcp/private/subnet_10.1.57%24"; 
option routers 10.1.57.11; 
option subnet-mask 255.255.255.0; 
}

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              10.1.57.13;
        }
        host bf014 {
                hardware ethernet       00:21:5A:1D:9F:F2;
                fixed-address               10.1.57.14;
        }
} 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.10.1.57.14 -> 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
#bootapic-x86_64=1-4
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,
Jiban





________________________________
 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
 

Hi,

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 ::

    tftpboot
    ├── menu.lst.10.110.4.51 -> 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;
        fixed-address 10.110.4.51;
        filename "tftpboot.nos5";
    }


Also, the  ``menu.lst.10.110.4.51`` 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.

Regards,
Pravin


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