Image location: http://autobuilder.yoctoproject.org/pub/releases/1.5_M5.rc1/ Git rev: master/566ca1e4769b4ec7e3f6c6a98bb817db2221cf82 All qemu and BSPs can not boot up via nfs. Steps: 1. For qemu: $ runqemu-extract-sdk core-image-sato-sdk-qemumips.rootfs.tar.bz2 rootfs $ runqemu nfs vmlinux.bin rootfs 2. For BSPs: Boot up the system with NFS. The boot process hangs after the connection manager (connmand) start up: ############### ... INIT: version 2.88 booting Error, no support currently for 8 bpp frame buffers Trying to change pixel format... Error, failed to switch to a 32 bpp 8,8,8 frame buffer Switched to a 16 bpp 5,6,5 frame buffer Starting udev udevd[65]: starting version 182 piix4_smbus 0000:00:0a.3: SMBus Host Controller at 0x1100, revision 0 Starting Bootlog daemon: bootlogd. Populating dev cache ALSA: Restoring mixer settings... /usr/sbin/alsactl: load_state:1729: No soundcards found... Configuring network interfaces... done. Starting rpcbind daemon...done. hwclock: can't open '/dev/misc/rtc': No such file or directory INIT: Entering runlevel: 5 Starting system message bus: dbus. Starting Connection Manager Starting OpenBSD Secure Shell server: sshd generating ssh RSA key... Bad SWSTYLE=0x04 nfs: server 192.168.7.1 not responding, still trying ############
This issue is introduced by the commit:c73487302270a7c2d3bbbb191ce1dd63ee2016dc diff --git a/meta/recipes-connectivity/connman/connman/connman b/meta/recipes-connectivity/connman/connman/connman index 67ba7c8..2625ade 100644 --- a/meta/recipes-connectivity/connman/connman/connman +++ b/meta/recipes-connectivity/connman/connman/connman @@ -29,8 +29,18 @@ done do_start() { EXTRA_PARAM="" if test $nfsroot -eq 1 ; then - ethn=`ifconfig | grep eth | sed -e "s/\(eth[0-9]\)\(.*\)/\1/"` - EXTRA_PARAM="-I $ethn" + NET_DEVS=`cat /proc/net/dev | sed -ne 's/^\([a-zA-Z0-9 ]*\):.*$/\1/p'` + NET_ADDR=`cat /proc/cmdline | sed -ne 's/^.*ip=\([^ ]*\):.*$/\1/p'` + + if [ x$NET_ADDR != x ]; then + for i in $NET_DEVS; do + ADDR=`ifconfig $i | sed 's/addr://g' | sed -ne 's/^.*inet \([0-9.]*\) .*$/\1/p'` + if [ "$NET_ADDR" = "$ADDR" ]; then + EXTRA_PARAM="-I $i" + break + fi + done + fi fi if [ -f @LIBDIR@/connman/wired-setup ] ; then . @LIBDIR@/connman/wired-setup This patch can not get the correct NET_ADDR, so the connman doesn't ignore the interface which is used by NFS root. Furthermore, this patch can not deal with NFS dhcp method like below: # cat /proc/cmdline root=/dev/nfs rw nfsroot=128.224.159.157:/export/pxeboot/rootfs ip=dhcp console=ttyS0,115200 diufb=15M video=fslfb:800x600-24@60,monitor=1 tty0 debug cache-sram=0xfff00000,0x8000
Fixed in master with http://git.yoctoproject.org/cgit.cgi/poky/commit/?id=42ef04b3648f4e29ed130ff8e37800f5aac44b15, would appreciate QA verifying this.
verified.