Unable to boot from NFS

Hello all. I’m having this problem and I’ve been banging my head against the wall for some time now. I’m running 64bit ubuntu 13.10 inside virtualbox vm. I’ve set up the NFS server and from what I can tell it’s configured properly because I’m able to mount it from another computer (laptop running ubuntu 12.04). I’m exporting /home/miro/export where I have a rootfs folder and a symbolic link to the kerel image (uImage-BBB-3.8.13)

NFS server is on 192.168.1.250, statically assigned ip
Beagle is on 192.168.1.115 assinged by DHCP. Beagleboard is running latest stock software.

I can ping server from beagle, but I’m not able to get past tftp 0x80200000 uImage-BBB-3.8.13

All devices are plugged into the same router. Also, I’m unsure about some of the env variables, such as rootpath.

If anyone could shed some light on this I would greatly appreciate it.

U-Boot# tftp 0x80200000 uImage-BBB-3.8.13
link up on port 0, speed 100, full duplex
Using cpsw device
TFTP from server 192.168.1.250; our IP address is 192.168.1.115
Filename ‘uImage-BBB-3.8.13’.
Load address: 0x80200000
Loading: T T T T T T T T T T T T T T T T T T T T
Retry count exceeded; starting again
using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
MAC 90:59:af:5d:07:b0
HOST MAC de:ad:be:af:00:00
RNDIS ready
ERROR: The remote end did not respond in time.
at ether.c:2395/usb_eth_init()
link up on port 0, speed 100, full duplex
Using cpsw device
TFTP from server 192.168.1.250; our IP address is 192.168.1.115
Filename ‘uImage-BBB-3.8.13’.
Load address: 0x80200000
Loading: T T T T T T T T T T T T T T T T T T T T
Retry count exceeded; starting again
using musb-hdrc, OUT ep1out IN ep1in STATUS ep2in
MAC 90:59:af:5d:07:b0
HOST MAC de:ad:be:af:00:00
RNDIS ready
ERROR: The remote end did not respond in time.
at ether.c:2395/usb_eth_init()
link up on port 0, speed 100, full duplex
Using cpsw device
TFTP from server 192.168.1.250; our IP address is 192.168.1.115
Filename ‘uImage-BBB-3.8.13’.
Load address: 0x80200000
Loading: T T T T T T
Abort

U-Boot# printenv
arch=arm
autoload=no
baudrate=115200
board=am335x
board_name=A335BNLT
board_rev=0A5C
bootcmd=gpio set 53; i2c mw 0x24 1 0x3e; run findfdt; mmc dev 0; if mmc rescan ; then echo micro SD card found;setenv mmcdev 0;else echo No micro SD card found, setting mmcdev to 1;setenv mmcdev 1;fi;setenv bootpart ${mmcdev}:2;mmc dev ${mmcdev}; if mmc rescan; then gpio set 54; echo SD/MMC found on device ${mmcdev};if run loadbootenv; then echo Loaded environment from ${bootenv};run importbootenv;fi;if test -n $uenvcmd; then echo Running uenvcmd …;run uenvcmd;fi;gpio set 55; if run loaduimage; then gpio set 56; run loadfdt;run mmcboot;fi;fi;
bootdelay=1
bootdir=/boot
bootenv=uEnv.txt
bootfile=uImage-BBB-3.8.13
bootpart=0:2
console=ttyO0,115200n8
cpu=armv7
dfu_alt_info_emmc=rawemmc mmc 0 3751936
dfu_alt_info_mmc=boot part 0 1;rootfs part 0 2;MLO fat 0 1;MLO.raw mmc 100 100;u-boot.img.raw mmc 300 3C0;u-boot.img fat 0 1;uEnv.txt fat 0 1
dfu_alt_info_nand=SPL part 0 1;SPL.backup1 part 0 2;SPL.backup2 part 0 3;SPL.backup3 part 0 4;u-boot part 0 5;kernel part 0 7;rootfs part 0 8
dnsip=192.168.1.1
ethact=cpsw
ethaddr=90:59:af:5d:07:b0
fdt_high=0xffffffff
fdtaddr=0x80F80000
fdtfile=am335x-boneblack.dtb
findfdt=if test $board_name = A33515BB; then setenv fdtfile am335x-evm.dtb; fi; if test $board_name = A335X_SK; then setenv fdtfile am335x-evmsk.dtb; fi;if test $board_name = A335BONE; then setenv fdtfile am335x-bone.dtb; fi; if test $board_name = A335BNLT; then setenv fdtfile am335x-boneblack.dtb; fi
gatewayip=192.168.1.1
importbootenv=echo Importing environment from mmc …; env import -t $loadaddr $filesize
ipaddr=192.168.1.115
kloadaddr=0x80007fc0
loadaddr=0x80200000
loadbootenv=load mmc ${mmcdev} ${loadaddr} ${bootenv}
loadfdt=load mmc ${bootpart} ${fdtaddr} ${bootdir}/${fdtfile}
loadramdisk=load mmc ${mmcdev} ${rdaddr} ramdisk.gz
loaduimage=load mmc ${bootpart} ${kloadaddr} ${bootdir}/${bootfile}
mmcargs=setenv bootargs console=${console} ${optargs} root=${mmcroot} rootfstype=${mmcrootfstype}
mmcboot=echo Booting from mmc …; run mmcargs; bootm ${kloadaddr} - ${fdtaddr}
mmcdev=0
mmcroot=/dev/mmcblk0p2 ro
mmcrootfstype=ext4 rootwait
mtdids=nand0=omap2-nand.0
mtdparts=mtdparts=omap2-nand.0:128k(SPL),128k(SPL.backup1),128k(SPL.backup2),128k(SPL.backup3),1920k(u-boot),128k(u-boot-env),5m(kernel),-(rootfs)
nandargs=setenv bootargs console=${console} ${optargs} root=${nandroot} rootfstype=${nandrootfstype}
nandboot=echo Booting from nand …; run nandargs; nand read ${loadaddr} ${nandsrcaddr} ${nandimgsize}; bootm ${loadaddr}
nandimgsize=0x500000
nandroot=ubi0:rootfs rw ubi.mtd=7,2048
nandrootfstype=ubifs rootwait=1
nandsrcaddr=0x280000
netargs=setenv bootargs console=${console} ${optargs} root=/dev/nfs nfsroot=${serverip}:${rootpath},${nfsopts} rw ip=dhcp
netboot=echo Booting from network …; setenv autoload no; dhcp; tftp ${loadaddr} ${bootfile}; tftp ${fdtaddr} ${fdtfile}; run netargs; bootm ${loadaddr} - ${fdtaddr}
netmask=255.255.255.0
nfsopts=nolock
ramargs=setenv bootargs console=${console} ${optargs} root=${ramroot} rootfstype=${ramrootfstype}
ramboot=echo Booting from ramdisk …; run ramargs; bootm ${loadaddr} ${rdaddr} ${fdtaddr}
ramroot=/dev/ram0 rw ramdisk_size=65536 initrd=${rdaddr},64M
ramrootfstype=ext2
rdaddr=0x81000000
rootpath=/home/miro/export
serverip=192.168.1.250
soc=am33xx
spiargs=setenv bootargs console=${console} ${optargs} root=${spiroot} rootfstype=${spirootfstype}
spiboot=echo Booting from spi …; run spiargs; sf probe ${spibusno}:0; sf read ${loadaddr} ${spisrcaddr} ${spiimgsize}; bootm ${loadaddr}
spibusno=0
spiimgsize=0x362000
spiroot=/dev/mtdblock4 rw
spirootfstype=jffs2
spisrcaddr=0xe0000
static_ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off
stderr=serial
stdin=serial
stdout=serial
usbnet_devaddr=90:59:af:5d:07:b0
vendor=ti
ver=U-Boot 2013.04-dirty (Jun 19 2013 - 09:57:14)

http://www.embeddedhobbyist.com/debian-tips/beaglebone-black/beaglebone-black-network-boot/

William, thanks for the link. I did see that article, but it’s requirement is debian on beagle. I’m running stock angstrom on beagle. Is it still relevant?

Thanks,

Miro

Hello all. I'm having this problem and I've been banging my head against the wall for some time now. I'm running 64bit ubuntu 13.10 inside virtualbox vm. I've set up the NFS server
and from what I can tell it's configured properly because I'm able to mount it from another computer (laptop running ubuntu 12.04). I'm exporting /home/miro/export where I have a
rootfs folder and a symbolic link to the kerel image (uImage-BBB-3.8.13)

NFS server is on 192.168.1.250, statically assigned ip
Beagle is on 192.168.1.115 assinged by DHCP. Beagleboard is running latest stock software.

I can ping server from beagle, but I'm not able to get past *tftp 0x80200000 uImage-BBB-3.8.13*

NFS != TFTP

Do you have a TFTP server running on your Ubuntu virtual machine?

Thanks for the help, I did make some progress. I’ve originally followed the instructions here which did get me started compiling the kernel: http://wiki.beyondlogic.org/index.php/BeagleBoneBlack_Building_Kernel#ARM_Cross_Compiler
(see ‘booting from nfs’)’. He talks about nfs, but invokes tftpboot.

The link that William posted did get me further, I’ve managed to load the new kernel and boot from it, but the bbb stops 5 seconds in. I believe I’m missing relevant files.

[ 5.446214] host=192.168.1.129, domain=, nis-domain=(none)
[ 5.452401] bootserver=255.255.255.255, rootserver=192.168.1.115, rootpath=
[ 5.459950] ALSA device list:
[ 5.463249] #0: TI BeagleBone Black

What I’m really after is barebone version of bbb with the ability to use the Eclipse to compile and debug my app:
http://www.michaelhleonard.com/cross-compile-for-beaglebone-black/#for-linux

If someone could point me in the right direction I’d appreciate it.

Thanks for all the help and BR,

Miro

No idea you’ll most likely need a serial debug cable / adapter to figure that out. That article was written by me by the way, and at the time I wrote it another person tested my instructions on many distributions, and Fedora, Ubuntu , and Angstrom all failed to network boot. Again, no idea why, this was just noted, and relayed to me via the groups here. With that said, the person said something like what you’re experiencing if memory serves.

Anyhow, I do not honestly know what all the resistance is about using Debian . . . and from the sound of it Angstrom may no longer be the shipping distro in the future. This remains to be seen.

Hello, William.

Being new to the whole linux thing (i have years in windows and embedded) i really didn’t know where to start. I thought that sticking with the default distribution will be the least painful route. On that note, I did install Ubuntu and I’m making progress, however I still can’t figure out how to flash the kernel only into the internal flash, though.

Cheers,

Miro

Just my own opinion and you’re welcome to think otherwise. For this sort of thing you need a Linux that is well documented to help ease other issues that will most definitely surface. Angstrom is not that Linux. Debian is very well documented, and 90% of the time, it wont matter if the documentation is for x86 / i386.

Also I do not hold a high opinion of Ubuntu. In the past I have tried to make Ubuntu work on many different levels, and it has always let me down. That is to say years of hands on, and attempting to get things to work correctly. Maybe the problem is me, but at this point I really do not care, as I feel perfectly at home with Debian, and have since the 90’s.

Thing is, this is most definitely a matter of preference for me.I can go on all day about why this that or the other. But instead of bashing another operating system or distro. I’ll just leave it at that.