我试图建立与内核图像的buildroot,做后make menuconfig和make,我得到:
No kernel defconfig name specified, check your BR2_LINUX_KERNEL_DEFCONFIG setting
Run Code Online (Sandbox Code Playgroud)
我可以设置一个字符串defconfig,但我不知道该放什么.
我的目标系统是AT91SAM9RL板.
编辑:我发现某些设备有一些预制的配置文件,实际上并不完全匹配我的目标.
我已将BR2_JLEVEL设置为2; 不确定此选项在buildroot中如何工作?有人可以提供有关它如何在buildroot中工作的细节,因为我没有看到我的构建时间的改进.
我正在尝试使用Buildroot在1 Mb以下构建最小的内核。它适用于具有qspi存储器和基本功能,以太网,usb,spi和某些GPIO的小型主板。通过ssh和UART进行基本的终端访问。我的第一个想法是,是否甚至可以通过linux-menuconfig修改kernel .config以达到此大小。
同样,如果无需了解内核体系结构就可以识别冗余部分,并将它们从编译中排除。
如果有人可以指导我如何解决这个问题,甚至指定一些工具和方法来解决问题,将非常有帮助。
谢谢!
我使用以下工具链交叉编译了用于Atmel SAMA5D36的nodejs 0.12.2
export AR=arm-linux-gnueabihf-ar
export CC=arm-linux-gnueabihf-gcc
export CXX=arm-linux-gnueabihf-g++
export LINK=arm-linux-gnueabihf-g++
Run Code Online (Sandbox Code Playgroud)
并配置和构建如下
./configure --without-snapshot --dest-cpu = arm --dest-os = linux --prefix =/home/root/nodejs-v0.12.2
make make install DESTDIR =/home/user/Desktop/nodejs_arm/nodebins
编译的文件夹在/ home/user/Desktop/nodejs_arm/nodebins/home/root中生成
我将该文件夹压缩成tar文件并传输到AtmelSAMA5D36 arm board.我在/ home/root目录中的板上解压缩并在符号链接后创建
ln -s /home/root/nodejs-v0.12.2/bin/npm /bin/npm
ln -s /home/root/nodejs-v0.12.2/bin/node /bin/node
Run Code Online (Sandbox Code Playgroud)
当我使用"node -v"和"npm -v"测试它时,
"node -v"给出正确的输出但是
"npm -v"抛出"非法指令"错误
与"节点"相同.
但是,交叉编译的nodejs 0.10.40工作正常.
任何帮助都非常感谢.
更新:
(gdb) run
Starting program: /usr/bin/node
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/libthread_db.so.1".
Program received signal SIGILL, Illegal instruction.
0xb6edfec0 in _armv7_neon_probe () from /usr/lib/libcrypto.so.1.0.0 …Run Code Online (Sandbox Code Playgroud) 在 Buildroot 上,给定一个包P,我试图从文本上了解所有依赖于P的包。
我已经知道make <pgk>-graph-dependscommand ,但是这个命令显示了P依赖的包,但我想知道谁依赖P。
我正在使用 Buildroot 版本 2015-08。
谢谢
是否可以在没有 usermod 的情况下将用户添加到组中?我正在使用嵌入式 Linux 3.14.52,但我没有 usermod 命令行。如果不可能,如何使用 Buildroot 将此命令添加到内核?
例如,我想将选项添加--enable-foo --enable-bar到命令中./configure。
许多./configure选项可以通过配置间接设置BR2_,但许多软件有如此多的选项,以至于不可能BR2_为每个可能的选项都使用一个配置./configure。
是否有适用于所有自动工具包的通用机制?
我对 Buildroot 和 OpenWrt 感到困惑。我的意思是在哪种情况下会选择 OpenWrt 而不是 Buildroot。
根据我的理解,Buildroot 和 OpenWrt 之间只有 2 个区别
OpenWrt 提供了 buildroot 不可用的包管理器(opkg)。
OpenWrt 为大多数网络相关设备(路由器、交换机等)提供了大量的包支持。
如果我的项目不需要任何包管理器,但我想要网络支持,那么我可以选择 Build root over OpenWrt,对吗?是否无法在 Buildroot 本身中构建与网络相关的包?
我的意思是如果包管理器不是问题,我们可以继续使用 buildroot 本身,对吗?有没有必要选择OpenWrt?
如果我错了,谁能解决 buildroot 失败而 Openwrt 获胜的情况?
我的意思是有可能用 Buildroot 本身来实现 OpenWrt 正在做的事情(为网络相关硬件构建固件映像)。我观察到 Buildroot 和 OpenWrt 的 init 进程(早期用户空间)行为是不同的。
etc/inittab并init.d执行其下的脚本。procd是 init 脚本 ( rc.common),它将运行 init.d 下列出的脚本以及rc.d.如果我尝试使用 Buildroot 为 OpenWrt 支持的固件生成映像,这会产生任何影响吗?
我正在使用buildroot创建一个简单的linux内核,并添加了一个我自己完成的小驱动程序,创建了该Config.in文件并drivername.mk能够make menuconfig成功选择该驱动程序。
当执行make构建映像时,编译会正确进行,直到驱动程序开始编译为止,它看起来似乎可以正确编译并创建映像,但是我收到很多警告,指出其中./lib/gcc/arm-buildroot-linux-uclibcgnueabihf/多个文件涉及多个文件:[u'host-gcc-initial', u'host-gcc-final']。
任何人都可以向我解释一下这个问题,这是什么原因造成的?您是否需要更多信息以了解发生了什么?忽略它们是否安全?
预先感谢
完整免责声明:过去 6 周我一直在使用 buildroot。这是我第一次接触嵌入式Linux,因此我还很新手,但已经能够自己解决99%的问题。在很大程度上,这个过程很简单。
因此,当我被困在家里且无法工作时,为了让自己忙碌起来,我一直致力于嵌入式硬件项目。我已经选择了我的硬件,构建了一个原型,学习了 buildroot 基础知识,启动了基本系统,优化了内核配置,为我的硬件构建了一个自定义设备树,到目前为止我很高兴。
与此同时,我一直在桌面上用 python 编写目标应用程序,它依赖于一些库(硬件抽象、通信、显示等),但相对简单。
我已经有了一份构建到我的 buildroot 系统中所需的软件包列表。buildroot 工具在这里使用 scanpypi 工具非常有用:
~/buildroot$ utils/scanpypi diskcache -o package
Run Code Online (Sandbox Code Playgroud)
只需将所有依赖项添加到 /package/config.in 中,就可以在 menuconfig 中选择它们并将其添加到配方中。
问题出现在构建时,对于 python-diskcache 上面的模块,Python 模块的构建失败。
它依赖于一些东西,但其中之一是 slqite3,它已添加为: 核心 python 模块“sqlite module”外部包“python-pysqlite3”库>数据库> sqlite
但是,它在构建时失败:
>>> python-diskcache 4.1.0 Building
Traceback (most recent call last):
File "setup.py", line 5, in <module>
import diskcache
File "/home/buildroot/output/build/python-diskcache-4.1.0/diskcache/__init__.py", line 9, in <module>
from .core import Cache, Disk, EmptyDirWarning, JSONDisk, UnknownFileWarning, Timeout
File "/home/buildroot/output/build/python-diskcache-4.1.0/diskcache/core.py", line 14, in <module>
import sqlite3
File "/home/buildroot/output/host/arm-buildroot-linux-uclibcgnueabihf/sysroot/usr/lib/python3.8/sqlite3/__init__.py", …Run Code Online (Sandbox Code Playgroud)