| Summary: | Fail to run qemu via nfs with toolchain sdk | ||
|---|---|---|---|
| Product: | [Build System, Metadata & Runtime] OE-Core | Reporter: | Yi Zhao <yi.zhao> |
| Component: | devtools / tool chain | Assignee: | Maxin B. John <maxin.john> |
| Status: | VERIFIED FIXED | QA Contact: | Yi Zhao <yi.zhao> |
| Severity: | normal | ||
| Priority: | High | CC: | alexandru.c.georgescu, cristian.iorga, ke.zou, meta.mr.watcher, meta.watcher, ross.burton, yi.zhao, zhangle.yang |
| Version: | 1.9 | ||
| Target Milestone: | 2.0 | ||
| Hardware: | x86 | ||
| OS: | Multiple | ||
| Whiteboard: | |||
| OS type for building Yocto: | --- | Type of Regression: | Regression (Used to work) |
| Verified: | Documentation change: | No (bug/feature does not impact docs) | |
|
Description
Yi Zhao
2015-09-17 06:45:41 UTC
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) |