我正在使用buildroot构建一个嵌入式系统,我想用node.js替换nginx + php.
我的系统正在使用eglibc,但我想减小系统的大小,所以我想切换到uclibc.node.js可以使用uclibc-0.9.32-nptl编译吗?
更多,虽然我目前的测试硬件基于x86,alix,我将在几个月后切换到基于arm的插头计算机.node.js会在基于arm的硬件上运行吗?
这是设置:
我的同事有一台带有gcc 4.3.3交叉编译器的Fedora x64_86机器(来自buildroot).我有一个Ubuntu 9.04 x64_86机器与相同的交叉编译器.
我的同事建立了一个在测试机器上运行的库+测试应用程序,我编译了相同的库和testapp,它在同一台测试机器上崩溃了.
据我所知,gcc是针对buildroot编译的ucLibc构建的,所以,相同的代码,相同的编译器.哪种主机差异会影响交叉编译?
有任何见解赞赏.
更新:为了澄清,编译器是相同的.库和testapp的源代码是相同的.唯一的区别是testapp + lib已在不同的机器上编译.
我正在尝试使用 buildroot 构建嵌入式系统。一切似乎都有效。所有模块都在启动,系统稳定。问题是在系统初始化期间 /etc/init.d/rcS 没有启动。如果我手动运行它,一切正常。我的 inittab 文件中有它。
# /etc/inittab
#
# Copyright (C) 2001 Erik Andersen <andersen@codepoet.org>
#
# Note: BusyBox init doesn't support runlevels. The runlevels field is
# completely ignored by BusyBox init. If you want runlevels, use
# sysvinit.
#
# Format for each entry: <id>:<runlevels>:<action>:<process>
#
# id == tty to run on, or empty for /dev/console
# runlevels == ignored
# action == one of sysinit, respawn, askfirst, wait, and once
# process == program …Run Code Online (Sandbox Code Playgroud) 我有一个基于 ARM 的主板,它只能运行制造商提供的基于特定 buildroot 的发行版。我想尝试在这个板上运行 Docker。
每当我在 Google 搜索中结合 buildroot 和 docker 时,我都会得到解释如何使用 buildroot 创建容器的页面,而不是如何更改 buildroot 以将其用作主机。
谁能指点我一些文档吗?
我正在使用 buildroot 和 linaro 2016.11 for arm 一起玩。我实际上正在为 i.MX6 处理器构建最新的 Linux 内核。到目前为止,一切都很好。
我已经设置了 buildroot 配置
$ make makeconfig
Run Code Online (Sandbox Code Playgroud)
我已经配置了一个外部工具链(linaro 工具链)。我还配置了要构建的uboot。在 uboot 部分,我必须为 defconfig 选择适当的板名称。
现在问题是:
我已经完成了完整的 make,成功且没有任何错误。之后,我将 uboot 板名称更改为源代码中不存在的名称。只是为了确保一切正常。
我已经重新启动构建过程
$ make uboot-rebuild
Run Code Online (Sandbox Code Playgroud)
令我困惑的是,构建成功了。在深入研究 shell 命令后,我发现新的配置被忽略了。我已经尝试了一切但没有成功。它只有在我做了之后才能正确重建
$make clean
$make
Run Code Online (Sandbox Code Playgroud)
但这将重新构建整个东西,并且需要很多时间。
我希望有人可以帮助我并给我一些提示。
谢谢。
我正在尝试为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 …Run Code Online (Sandbox Code Playgroud) 我试图在我的 buildroot 目标中使用一个使用 PyDrive 的应用程序。
我收到以下错误:
# python driveapp.py
ERROR:root:code for hash md5 was not found.
Traceback (most recent call last):
File "usr/lib/python2.7/hashlib.py", line 147, in <module>
File "usr/lib/python2.7/hashlib.py", line 97, in __get_builtin_constructor
ValueError: unsupported hash type md5
ERROR:root:code for hash sha1 was not found.
Traceback (most recent call last):
File "usr/lib/python2.7/hashlib.py", line 147, in <module>
File "usr/lib/python2.7/hashlib.py", line 97, in __get_builtin_constructor
ValueError: unsupported hash type sha1
ERROR:root:code for hash sha224 was not found.
Traceback (most recent call last):
File …Run Code Online (Sandbox Code Playgroud) 我试过:
git checkout 2018.05
make qemu_x86_64_defconfig
make BR2_JLEVEL="$(nproc)" "$(pwd)/output/images/rootfs.ext2"
Run Code Online (Sandbox Code Playgroud)
但它仍然在以下位置构建内核:
output/images/bzImage
Run Code Online (Sandbox Code Playgroud)
我想这样做是因为:
我LINUX_OVERRIDE_SRCDIR在子模块上使用 Linux,因此 Linux 标头应该与我将用于构建的源匹配。
比如说,glibc 和内核构建之间是否存在基本的依赖关系,或者它只是一个从未被满足的奇怪用例?
啊,我现在注意到任何可加载的内核模块都需要在 rootfs 上运行,并且需要内核构建,而该构建确实.ko在 rootfs 中有一些。
我是 Buildroot 的新人。我有 P2041RDB NXP 板的 Linux 内核源代码,那么我应该将其放置在哪里以及如何在配置中设置此位置?
我正在尝试使用 Buildroot 构建一个在 PocketBeagle 上运行的嵌入式 Linux;并按照 ( source1。然后将生成的图像复制到 USB 卡。\n将 USB 卡插入 Pocketbeagle 并通过串行连接监视启动过程时;我收到以下错误:
\n\nNo filesystem could mount root, tried: \next4\nKernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,1)\n---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,1).\nRun Code Online (Sandbox Code Playgroud)\n\n使用的资源是:\nBuildroot:2018.02
\n文件系统:ext4
\nBootloader:U-Boot(自定义版本2018.01)
\n内核版本:4.14.24 \n应用上面源中所述的所有补丁,可以在( source2
)中找到:\n- 0001-Stripped-back-pocketbeagle-devicetree.patch \n- 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch \n- 0002-U-Boot-BeagleBone-Cape-Manager.patch \n - 0003-pocketbeagle-tweaks.patch
运行构建会产生以下文件和映像:
\nMLO:第一阶段引导加载程序
\nU-boot.img:第二阶段引导加载程序
\nuEnv.txt:U-boot 环境
\nzImage:Linux 内核映像
\nam335x-pocketbeagle.dtb:Linux内核设备树 Blob
\nrootfs.ext4:根文件系统映像
uEnv.txt如下:
\n\nfdtfile=am335x-pocketbeagle.dtb …Run Code Online (Sandbox Code Playgroud)