Toolchain location: http://autobuilder.yoctoproject.org/pub/releases/yocto-1.8_M3.rc1/toolchain Git rev: master/ea562de57590c966cd5a75fda8defecd397e6436 Steps: 1. Download the toolchain sdk and install it 2. $ . /opt/poky/1.8+snapshot/environment-setup-core2-64-poky-linux 3. $ runqemu-extract-sdk core-image-sato-sdk-qemuarm-20150915110945.rootfs.tar.bz2 rootfs 4. $ runqemu nfs zImage-qemuarm.bin rootfs Error message: ######################### Assuming rootfs is an nfs rootfs Set MACHINE to [qemuarm] based on kernel [zImage-qemuarm.bin] Continuing with the following parameters: KERNEL: [zImage-qemuarm.bin] ROOTFS: [/home/zhaoyi/qemuarm/rootfs] FSTYPE: [nfs] Acquiring lockfile for tap0... Setting up tap interface under sudo Acquiring lockfile for tap1... runqemu-export-rootfs restart /home/zhaoyi/qemuarm/rootfs Error: Unable to find unfsd binary in /opt/poky/1.8+snapshot/sysroots/x86_64-pokysdk-linux/usr/sbin/ This shouldn't happen - something is missing from your toolchain installation #########################
Recreated the error in Fedora 22 machine: $ runqemu nfs zImage-qemuarm.bin rootfs Assuming rootfs is an nfs rootfs Set MACHINE to [qemuarm] based on kernel [zImage-qemuarm.bin] Continuing with the following parameters: KERNEL: [zImage-qemuarm.bin] ROOTFS: [/home/maxin/rootfs] FSTYPE: [nfs] Acquiring lockfile for tap0... Using preconfigured tap device 'tap0' If this is not intended, touch /tmp/qemu-tap-locks/tap0.skip to make runqemu skip tap0. runqemu-export-rootfs restart /home/maxin/rootfs Error: Unable to find unfsd binary in /opt/poky/1.8+snapshot/sysroots/x86_64-pokysdk-linux/usr/sbin/ This shouldn't happen - something is missing from your toolchain installation
In the latest toolchain, "unfsd" binary is located under "$OECORE_NATIVE_SYSROOT/usr/bin/" So, updating the location of "unfsd" from "/usr/sbin" to "/usr/bin" in "/opt/poky/1.8+snapshot/sysroots/x86_64-pokysdk-linux/usr/bin/runqemu-export-rootfs" resolves this error for me.
patch sent to oe-core: http://lists.openembedded.org/pipermail/openembedded-core/2015-September/110937.html
Fix accepted upstream: http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=452237b3f58d8839fbd80d7b557cf72f846a7002
verified with build yocto2.0 rc1 poky:eac61f37e36099f74485dab398b57f3812826d17
So the fix for this breaks nfs on non-SDK usage. If I build unfs3-native and it ends up in sysroot/usr/sbin. If I build nativesdk-unfs3 it ends up in .../usr/bin. Because nativesdk.bbclass does this: sbindir = "${bindir}" (oe-core 24b80d211f3808a0ffebee426932f11b8d4d46e0) So we either fiddle the configure arguments to unfs3-native to set --sbindir=${bindir}, or teach runqemu how to search paths for binaries.
Patch submitted to the list: http://lists.openembedded.org/pipermail/openembedded-core/2015-October/112056.html
Fixed with commit: http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=24cfcc4ac06e7768fd9ce19930bfabd321af472c
Verified with 2.0 rc3 (jethro/fc45deac89ef63ca1c44e763c38ced7dfd72cbe1)