使用 Buildroot 为 Raspberry Pi 3 构建 rootfs 系统时出错 - 缺少 SysV IPC 支持
Posted
技术标签:
【中文标题】使用 Buildroot 为 Raspberry Pi 3 构建 rootfs 系统时出错 - 缺少 SysV IPC 支持【英文标题】:Error while building rootfs system for Raspberry Pi 3 using Buildroot - lack of SysV IPC support 【发布时间】:2018-01-10 04:47:03 【问题描述】:我正在尝试为 Raspberry Pi 3 构建 Buildroot 映像,如页面所示: https://github.com/buildroot/buildroot/tree/f8ff7ab0be1cd3aa846829dc234d8c67b1bda0dc/board/raspberrypi.
我正在使用适用于 Linux 的 Windows 子系统,我已将其升级到 Ubuntu 16.04.02 版本。 Buildroot 版本为 2017.05.2。
但是,在运行 make 时,我在 bash 中观察到以下输出:
/home/rijad/buildroot-2017.05.2/output/host/usr/bin/fakeroot --
/home/rijad/buildroot-2017.05.2/output/build/_fakeroot.fs
fakeroot, while creating message channels: Function not implemented
This may be due to a lack of SYSV IPC support.
fakeroot: error while starting the `faked' daemon.
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
fs/ext2/ext2.mk:42: recipe for target '/home/rijad/buildroot-2017.05.2/output/images/rootfs.ext2' failed
make[1]: *** [/home/rijad/buildroot-2017.05.2/output/images/rootfs.ext2] Error 1
Makefile:79: recipe for target '_all' failed
make: *** [_all] Error 2
有什么方法可以在 WSL 上启用 SysV IPC 支持,或者在 TCP IPC 支持下运行 fakeroot?
谢谢!
【问题讨论】:
这个错误是由于windows内核没有构建支持SYSV IPC。 如果你在运行 make 之前尝试 './configure' 您是否尝试在 Raspberry Pi 上构建您的映像?如果是,您可能应该考虑在台式电脑上使用交叉编译器构建它。 【参考方案1】:我自己遇到了同样的问题并与之斗争了一段时间,我在构建文件系统之前添加了以下命令来运行
cp -f /usr/bin/fakeroot-tcp /path-to-buildroot/output/host/usr/bin/fakeroot
【讨论】:
@Ricky12,考虑接受这个答案,因为它解决了你的问题。 (顺便说一句,它也解决了我的问题。)【参考方案2】:在适用于 Linux 的 Windows 子系统中出现了一个问题: https://github.com/Microsoft/BashOnWindows/issues/2465
SYSV IPS 消息队列尚未在当前内核中实现:
缺少 Sysvipc 消息队列会破坏 fakeroot
【讨论】:
【参考方案3】:在buildroot 2017.08.1,我修改fs/common.mk:109
如下,成功制作rootfs!
# before
PATH=$$(BR_PATH) $$(HOST_DIR)/bin/fakeroot -- $$(FAKEROOT_SCRIPT)
# after
if [ `uname -r | grep "Microsoft"` ] ; then \
cp -f `which fakeroot-tcp` $$(HOST_DIR)/bin/fakeroot ; fi
【讨论】:
以上是关于使用 Buildroot 为 Raspberry Pi 3 构建 rootfs 系统时出错 - 缺少 SysV IPC 支持的主要内容,如果未能解决你的问题,请参考以下文章
buildroot制作文件系统时,如何将output/target/lib 中的*.so库文件文件类型设置为 not stripped