Hello. I’m working on getting the BBB booting over network, for our CI testbench. I’ve got it booting the kernel over tftp:
`
setenv autoload no
setenv bootdelay 2
setenv ipaddr 192.168.0.2
setenv gatewayip 192.168.0.1
setenv netmask 255.255.255.0
setenv serverip 162.x.x.x
tftp 0x80300000 /boot/one/vmlinuz-3.8.13-bone70
tftp 0x81600000 /boot/one/initrd.img-3.8.13-bone70
setenv initrd_size ${filesize}
tftp 0x815f0000 /boot/one/am335x-boneblack.dtb
setenv bootargs ‘console=ttyO0,115200n8 root=/dev/nfs nfsroot=162.x.x.x:/root/one ip=192.168.0.2:162.x.x.x:192.168.0.1:255.255.255.0:one:eth0:off quiet init=/lib/systemd/systemd’
bootz 0x80300000 0x81600000:${initrd_size} 0x815f0000
`
but connecting to the NFS root filesystem times out:
`
Starting kernel …
Uncompressing Linux… done, booting the kernel.
[ 0.354449] omap2_mbox_probe: platform not supported
[ 0.509602] tps65217-bl tps65217-bl: no platform data provided
[ 0.572862] bone-capemgr bone_capemgr.9: slot #0: No cape found
[ 0.609972] bone-capemgr bone_capemgr.9: slot #1: No cape found
[ 0.647079] bone-capemgr bone_capemgr.9: slot #2: No cape found
[ 0.684188] bone-capemgr bone_capemgr.9: slot #3: No cape found
[ 0.699936] bone-capemgr bone_capemgr.9: slot #6: BB-BONELT-HDMIN conflict P8.45 (#5:BB-BONELT-HDMI)
[ 0.709504] bone-capemgr bone_capemgr.9: slot #6: Failed verification
[ 0.716242] bone-capemgr bone_capemgr.9: loader: failed to load slot-6 BB-BONELT-HDMIN:00A0 (prio 2)
[ 0.732702] omap_hsmmc mmc.5: of_parse_phandle_with_args of ‘reset’ failed
[ 0.795795] pinctrl-single 44e10800.pinmux: pin 44e10854 already requested by 44e10800.pinmux; cannot claim for gpio-leds.8
[ 0.807478] pinctrl-single 44e10800.pinmux: pin-21 (gpio-leds.8) status -22
[ 0.814753] pinctrl-single 44e10800.pinmux: could not request pin 21 on device pinctrl-single
[ 1.034056] libphy: PHY 4a101000.mdio:01 not found
[ 1.039123] net eth0: phy 4a101000.mdio:01 not found on slave 1
Loading, please wait…
IP-Config: eth0 hardware address d0:5f:b8:fa:42:dd mtu 1500
IP-Config: eth0 guessed broadcast address 192.168.0.255
IP-Config: eth0 complete:
address: 192.168.0.2 broadcast: 192.168.0.255 netmask: 255.255.255.0
gateway: 192.168.0.1 dns0 : 0.0.0.0 dns1 : 0.0.0.0
host : one
rootserver: 162.x.x.x rootpath:
filename :
connect: Connection timed out
connect: Connection timed out
connect: Connection timed out
`
It’s timing out, but under DHCP it doesn’t even get that far. It doesn’t list the “rootpath” so I wonder if that got passed to the kernel?
Here is the exports file on the server:
/tftpboot/root/one 162.x.x.x/28(rw,nohide,insecure,no_subtree_check,async,no_root_squash)
I can mount the nfs share on another device:
`
root@beaglebone:/# mount 162.x.x.x:/ /mnt
root@beaglebone:/# cd /mnt/
root@beaglebone:/mnt# ls
tftpboot
`
I’m not sure what to try next. Any ideas?
Drop the initrd & init=/lib/systemd/systemd...
Regards,
I changed bootargs to:
setenv bootargs ‘console=ttyO0,115200n8 quiet root=/dev/nfs nfsroot=162.218.156.29:/tftpboot/root/one rw ip=192.168.0.2:162.218.156.29:192.168.0.1:255.255.255.0:one:eth0:off’
the salient difference being ‘rw’ after nfsroot and adding /tftpboot to the path and it’s booting now, although the fsck check fails:
`
INIT: version 2.88 booting
[info] Using makefile-style concurrent boot in runlevel S.
findfs: unable to resolve ‘UUID=44c824c2-262c-4b4f-8d31-c9b5aec1eed2’
[ ok ] Starting the hotplug events dispatcher: udevd.
[ ok ] Synthesizing the initial hotplug events…done.
[ ok ] Waiting for /dev to be fully populated…done.
findfs: unable to resolve ‘UUID=44c824c2-262c-4b4f-8d31-c9b5aec1eed2’
[ ok ] Activating swap…done.
Usage: mountpoint [-q] [-d] [-x] path
[…] Checking root file system…fsck from util-linux 2.20.1
fsck.ext4: No such device or address while trying to open /run/rootdev
Possibly non-existent or swap device?
fsck died with exit status 8
failed (code 8).
[…] An automatic file system check (fsck) of the root filesystem failed. A manual fsck must be performed, then the system restarted. The fsck should be performed in maintenance mo[FAILth the root filesystem mounted in read-only mode. … failed!
[…] The root filesystem is currently mounted in read-only mode. A maintenance shell will now be started. After performing system maintenance, press CONTROL-D to terminate the main[warnce shell and restart the system. … (warning).
Give root password for maintenance
(or type Control-D to continue):
`
When you say say drop initrd, you mean?:
tftp 0x81600000 /boot/one/initrd.img-3.8.13-bone70
When I don’t load that bootz gives me a corrupt image error. I probably don’t understand the bootz command, I’ve been looking for documention on it and haven’t found any. I tried
bootz 0x80300000 0x815f0000
To load the zImage and the ftd. But I’m not sure what bootz expects.
I also saw this parameter, and wondered if I should point it at systemd:
I changed bootargs to:
setenv bootargs 'console=ttyO0,115200n8 quiet root=/dev/nfs
nfsroot=162.218.156.29:/tftpboot/root/one rw
ip=192.168.0.2:162.218.156.29:192.168.0.1:255.255.255.0:one:eth0:off'
the salient difference being 'rw' after nfsroot and adding /tftpboot to the
path and it's booting now, although the fsck check fails:
INIT: version 2.88 booting
[info] Using makefile-style concurrent boot in runlevel S.
findfs: unable to resolve 'UUID=44c824c2-262c-4b4f-8d31-c9b5aec1eed2'
[ ok ] Starting the hotplug events dispatcher: udevd.
[ ok ] Synthesizing the initial hotplug events...done.
[ ok ] Waiting for /dev to be fully populated...done.
findfs: unable to resolve 'UUID=44c824c2-262c-4b4f-8d31-c9b5aec1eed2'
[ ok ] Activating swap...done.
Usage: mountpoint [-q] [-d] [-x] path
[....] Checking root file system...fsck from util-linux 2.20.1
fsck.ext4: No such device or address while trying to open /run/rootdev
Possibly non-existent or swap device?
fsck died with exit status 8
failed (code 8).
[....] An automatic file system check (fsck) of the root filesystem failed.
A manual fsck must be performed, then the system restarted. The fsck should
be performed in maintenance mo[FAILth the root filesystem mounted in
read-only mode. ... failed!
[....] The root filesystem is currently mounted in read-only mode. A
maintenance shell will now be started. After performing system maintenance,
press CONTROL-D to terminate the main[warnce shell and restart the system.
... (warning).
Give root password for maintenance
(or type Control-D to continue):
Clean out your /etc/fstab.. Then only thing you need in their when
doing nfs root. is:
debugfs /sys/kernel/debug debugfs defaults 0 0
When you say say drop initrd, you mean?:
tftp 0x81600000 /boot/one/initrd.img-3.8.13-bone70
When I don't load that bootz gives me a corrupt image error. I probably
don't understand the bootz command, I've been looking for documention on it
and haven't found any. I tried
bootz 0x80300000 0x815f0000
Just replace the initrd address with a "-"
bootz zImage initrd ftd -> bootz zImage - ftd
Regards,
That did the trick! Thank you so much. I cleared fstab like you said. It hung on DHCP, but that makes sense. I configured interfaces to match the kernel options and it booted fine, network is working. For posterity the winning recipe was:
setenv autoload no
setenv bootdelay 2
setenv ipaddr 192.168.0.2
setenv gatewayip 192.168.0.1
setenv netmask 255.255.255.0
setenv serverip 162.x.x.x
tftp 0x80300000 /boot/one/vmlinuz-3.8.13-bone70
tftp 0x815f0000 /boot/one/am335x-boneblack.dtb
setenv bootargs ‘console=ttyO0,115200n8 quiet root=/dev/nfs nfsroot=162.x.x.x:/tftpboot/root/one rw ip=192.168.0.2:162.x.x.x:192.168.0.1:255.255.255.0:one:eth0:off’
bootz 0x80300000 - 0x815f0000