This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PROCESSOR-SDK-AM335X: Network boot from a different host server

Part Number: PROCESSOR-SDK-AM335X


Hello,

Is there a workaround to boot the Beaglebone Black on different host like Red hat 7? 

I followed the instruction http://software-dl.ti.com/processor-sdk-linux/esd/docs/latest/linux/How_to_Guides/Host/How_to_Setup_Ubuntu_1404_Network_Boot.html and successfully booted from Ubuntu installed in VirtualBox. I am trying to do the same thing on Red hat 7. Understanding the "setup.sh" will check the Linux host, I instead did everything (DHCP, TFTP, NFS server, extracting Rootfs) manually. However, the BeagleBone black only started to boot the u-boot-spl-restore.bin & u-boot-restore.img on if I used Ubuntu. 

I did a workaround by set up the Red Hat 7 and Ubuntu exactly the same for DHCP server, then turned on both of them at the same time, but turn off connection of Ubuntu. Then, the BBB accepted the SPL and started to boot successfully to login with Red hat?

My question is how I can make the beaglebone starts to boot the SPL? I checked Wireshark and see the Red hat and beaglebone keeps sending back and forth BOOTP Request and Reply.

Thank you.

Best Regards,

Kenny

  • Hi Kenny,

    we only support Ubuntu-based development hosts. While you have found an interesting workaround, there is probably some configuration issue on the Red Hat side you can figure out by yourself if sufficiently motivated. Since you have a working Ubuntu setup, you could capture Wireshark traces there. Then capture on your non-working Red Hat setup. And compare the two traces in detail. This should give you some hits as to which step of the network-based boot process may be failing.

    Regards, Andreas

  • Hi Andreas,

    Thank you for your response. Could you please let me know which part of the configuration makes the SPL select the Ubuntu-based host? 

    I seems like the SPL.bin after I compiled already setup to choose the target to be Ubuntu. So without turning on Ubuntu host, the "eth0: eth_cpsw" can't even initialize. The BBB seems not to accept the IP that the host assign to it.  That's why the BBB can't start booting.

    Another thing that I notice is that witout Ubuntu, The BBB won't broadcast ARP protocol to ask the MAC address of the host. Therefore, on Red hat host, the RHEL7 can't send the u-boot-spl-restore.bin to the BBB and the loop keeps going between line 1 and line 2, Boot Request and Boot Reply The below is the difference on Ubuntu (yellow highlights). I've been scratching my head for days since the on the website, it says that it is possible to boot on other distributions with small change, but I don't know where to chagne. "Other versions of Ubuntu and other distributions will likely need small changes to configure this process correctly."

    I'm using TI SDK processor 06.03.00.106.

    Thank you.

    Best Regards,

    Kenny

  • Kenny Le said:
    So without turning on Ubuntu host, the "eth0: eth_cpsw" can't even initialize.

    How do you determine this?

    Is this from a log?

    Regards, Andreas

  • Hi Andreas,

    I just want to clarify. I used TTL console log to see how the BBB boots. Just as long as the Ubuntu-based host in the network range, the BBB starts to boot. 

    I checked my DHCP server on Red hat 7 by using another laptop, and it seems to work fine. It assigned IP an IP to my second laptop. 

    For some reasons, the BBB doesn't send an ARP asking for MAC address of the host (RHEL7) so that the host can reply to start sending the SPL.

    Any inputs would be much appreciated.

    Thank you.

    Best Regards,

    Kenny

  • Hi Kenny,

    Kenny Le said:
    I checked my DHCP server on Red hat 7 by using another laptop, and it seems to work fine. It assigned IP an IP to my second laptop. 

    That's a good datapoint.

    Kenny Le said:
    For some reasons, the BBB doesn't send an ARP asking for MAC address of the host (RHEL7) so that the host can reply to start sending the SPL.

    Earlier you said the BBB doesn't accept the IP address the RHEL host tries to assign to it, which implies an ARP request was sent. Now it sounds like no ARP requests are sent? Which is it? How do you determine this? Have you used Wireshark on the RHEL host to investigate?

    Regards, Andreas

  • I used Wireshark to see the communication between BBB and Red hat. There was no ARP request and that is why I think the BBB doesn't accept the IP. Sorry for the confusion. 

    About the Wireshark, I only see " BOOTP Boot request from Texas Ins)" and "BOOTP Boot reply from my host IP 192.168.2.1" and it keeps going like that forever.

    Best Regards,

    Kenny

  • Hi Kenny,

    thanks for the clarification.

    Kenny Le said:
    About the Wireshark, I only see " BOOTP Boot request from Texas Ins)" and "BOOTP Boot reply from my host IP 192.168.2.1" and it keeps going like that forever.

    Well, can you compare the contents of the BOOTP reply from RHEL with the one from Ubuntu then on a packet level?

    Seems like there is something with the BOOTP reply that the AM335x/BBB doesn't accept. If that's that case we need to see if there is something we can do on RHEL to make the BOOTP replies acceptable to the BBB (as we can't change what the BBB ROM code is doing).

    Regards, Andreas

  • Andreas,

    I think you're right. After comparing the BOOTP reply between Ubuntu and Red hat. They are not exactly the same. The discrepancies are as belows:

    1) Ubuntu sends BOOTP with "Next server IP address: 192.168.2.1" which is my host IP

    2) The option domain-name is just an example written on the dhcpd.conf file. 

    RED HAT BOOTP REPLY

    UBUNTU BOOTP REPLY and ARP who-has and ARP reply following after that.

    As crazy as it sounds, I also did a test to compare the difference between Red hat and Ubuntu when both of them OFFLINE (Disconnect the network), though I'm not sure it could help anything. So, without any connection, the BBB still recognize the the server host to send and ARP who-has to the host on Ubuntu, but not on Red hat.  Red hat still miss the "Next Server IP address"

    UBUNTU: DISCONNECT NETWORK BOOTP & ARP

    REDHAT: OFFLINE BOOTP & ARP

    Thank you. I'm sorry if this post is too long and if I broke any rules while asking question. 

    Best Regards,

    Kenny

  • updated: Thank you Andreas for your suggestion. I add the next-server 192.168.2.1 to the DHCP network configuration so that the BBB can find the the this IP specifically and ti worked. 

    I'm not sure this is the perfect solution or not, but it seems to work so far. Please let me know if you have any better suggestion. For example, the BBB can still know what is the IP of the host (redhat) no matter what IP it is. 

    Best Regards,

    Kenny.