我使用buildroot和Armstrong linux(Linux4sam)处理SAM9G25 EK板.我的脚本是创建linux版本"2.6.39+",这个"+"令人困惑(/ lib/modules文件夹等).我想删除它.我发现只有两个文件.uImage.cmd和kernel.release包含这个字符串,但都生成了.
这个字符串在哪里创建?
交叉使用外部工具链别名编译库的buildroot code sourcery lite 2011导致
output/host/opt/ext-toolchain/bin/../lib/gcc/arm-none-linux-gnueabi/4.6.1/../../../../arm-none-linux-gnueabi/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
由于明显缺失 libgcc_s.a
# find . -iname "libgcc*"
./output/host/usr/arm-buildroot-linux-gnueabi/sysroot/lib/libgcc_s.so
./output/host/usr/arm-buildroot-linux-gnueabi/sysroot/lib/libgcc_s.so.1
./output/host/opt/ext-toolchain/arm-none-linux-gnueabi/libc/armv4t/lib/libgcc_s.so.1
./output/host/opt/ext-toolchain/arm-none-linux-gnueabi/libc/armv4t/lib/libgcc_s.so
./output/host/opt/ext-toolchain/arm-none-linux-gnueabi/libc/thumb2/lib/libgcc_s.so.1
./output/host/opt/ext-toolchain/arm-none-linux-gnueabi/libc/thumb2/lib/libgcc_s.so
./output/host/opt/ext-toolchain/arm-none-linux-gnueabi/libc/lib/libgcc_s.so.1
./output/host/opt/ext-toolchain/arm-none-linux-gnueabi/libc/lib/libgcc_s.so
./output/host/opt/ext-toolchain/lib/gcc/arm-none-linux-gnueabi/4.6.1/armv4t/libgcc.a
./output/host/opt/ext-toolchain/lib/gcc/arm-none-linux-gnueabi/4.6.1/armv4t/libgcc_eh.a
./output/host/opt/ext-toolchain/lib/gcc/arm-none-linux-gnueabi/4.6.1/plugin/libgcc
./output/host/opt/ext-toolchain/lib/gcc/arm-none-linux-gnueabi/4.6.1/thumb2/libgcc.a
./output/host/opt/ext-toolchain/lib/gcc/arm-none-linux-gnueabi/4.6.1/thumb2/libgcc_eh.a
./output/host/opt/ext-toolchain/lib/gcc/arm-none-linux-gnueabi/4.6.1/libgcc.a
./output/host/opt/ext-toolchain/lib/gcc/arm-none-linux-gnueabi/4.6.1/libgcc_eh.a
Run Code Online (Sandbox Code Playgroud)
有没有办法绕过这个问题,但仍然静态链接?是否有CLFAGS或LDFLAGS选项可以静态链接所有内容除外libgcc_s?
到目前为止尝试的东西(除了阅读适用的部分ld和gcc手册页):
CFLAGS="-static -static-libgcc"
CFLAGS="-static -shared-libgcc"
CFLAGS="-static -static-libgcc -Wl,-Bstatic"
CFLAGS="-static -shared-libgcc -Wl,-Bstatic"
Run Code Online (Sandbox Code Playgroud)
添加后-Wl,-lgcc_s,-Bstatic我得到了大量的未定义/未知符号...(-Bshared不是有效的选项说ld)
/home/bernhard/buildroot-2013.08/output/target/usr/lib/libgio-2.0.a(libgio_2_0_la-glocalfileinfo.o): In function `_g_local_file_info_get':
glocalfileinfo.c:(.text+0x2d90): warning: Using 'getgrgid' in statically linked applications requires at runtime the shared libraries from …Run Code Online (Sandbox Code Playgroud) buildroot支持从git repo下载软件包。但是我的git repo包含子模块。
如何命令buildroot下载带有子模块的软件包?
使用 CCACHE 时使用多个缓存目录或完全清除缓存的实际原因是什么?
Buildroot BR2_CCACHE 配置选项的帮助说明说:
请注意,当编译器以不兼容的方式更改时,Buildroot 不会尝试使缓存内容无效。因此,如果您更改编译器版本和/或配置,您有责任通过删除 $HOME/.buildroot-ccache 目录来清除 ccache 缓存。
如果我理解正确,CCACHE 会识别不同的编译器版本,并且缓存是基于每个编译器完成的。那么,描述所指的那些情况是什么?
此外,一些消息来源似乎建议应定期清除缓存。其他人指出缓存在达到“最大缓存大小”阈值时会自动清除。
显然,如果缓存的数据已损坏,那么您需要对其进行处理。是否有其他原因清除缓存?保留一个缓存没有意义吗?
我正在使用 buildroot 为 Raspberry PI 创建操作系统。如何将补丁应用于生成的 rootfs 中的文件?
例如添加行
自动 eth0
iface eth0 inet dhcp
到生成的 rootfs 上的 /etc/network/interfaces。
我意识到这可以在解压目标上的 rootfs 后使用脚本来完成,但我想知道是否可以使用 buildroot 来自动化它。
Debian 8 x64,buildroot 2016.02/2016-05-07/2016-05-13.之后make menuconfig并设置一些我运行的设置make.出现错误:
linux/linux.mk:424:***没有指定内核defconfig名称,检查你的BR2_LINUX_KERNEL_DEFCONFIG设置.停止.
这个答案没有帮助:我试过的每个版本/快照arch/arm/configs/中都不存在我的文件夹.只有包含此内容的文件夹:arch
-rw-r--r-- 1 user user 11K May 12 19:21 Config.in
-rw-r--r-- 1 user user 176 May 12 19:21 Config.in.aarch64
-rw-r--r-- 1 user user 1.7K May 12 19:21 Config.in.arc
-rw-r--r-- 1 user user 15K May 12 19:21 Config.in.arm
-rw-r--r-- 1 user user 2.2K May 12 19:21 Config.in.bfin
-rw-r--r-- 1 user user 735 May 12 19:21 Config.in.m68k
-rw-r--r-- 1 user user 279 May 12 19:21 Config.in.microblaze …Run Code Online (Sandbox Code Playgroud) 我目前正在尝试访问连接到应用程序的串行端口的两个方向上的数据。
我想做的是:
ttymxc0 <-----> socat sniff <--------> ttyV0 <------> 应用程序
ttymxc0 是真实端口,ttyV0 是虚拟端口。
我发现 socat 命令适用于 Ubuntu 16.04: http://www.iheartrobotics.com/2010/02/debugginng-serial-interfaces.html
但是当我使用 buildroot 在嵌入式系统上使用它时,我收到此错误:
socat -d /dev/ttymxc0,raw,echo=0 SYSTEM:'tee input.txt | socat - "PTY,link=/tmp/ttyV0,raw,echo=0,waitslave" | tee output.txt'
socat[3167.1996369920] E address "GOPEN..." in intermediate context, leftdirs=4, rightdirs=7, with 1 parameter(s) is not available
socat[3167.1996369920] W cannot restore terminal settings on fd 3: Bad file descriptor
Run Code Online (Sandbox Code Playgroud)
我尝试查看文件的访问属性,但没有成功。当您不要求打印输入和输出时它可以工作,但这对我的使用没有用
在这种情况下,buildroot 和 Ubuntu 之间有什么不同吗?
使用基于 Qt 5.7.0 的 Qt Creator 4.0.2,我的应用程序名称是test
主板:带有 buildroot 的 i.M6Q (Qt 5.9)
EGL library doesn't support Emulator extensions
Aborted
Application finished with exit code 134.
Run Code Online (Sandbox Code Playgroud)
但我可以使用 ./test 在板上运行 qt 应用程序,并且它显示正常
The GDB process terminated unexpectedly (exit code 1)
Run Code Online (Sandbox Code Playgroud)
如何修复这些错误?
test.pro
QT += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TARGET = test
TEMPLATE = app
SOURCES += main.cpp\
mainwindow.cpp
HEADERS += mainwindow.h
FORMS += mainwindow.ui
target.path = /root/test
INSTALLS …Run Code Online (Sandbox Code Playgroud)我是 Buildroot 系统的新手(我之前使用过 Yocto)。我需要修改我的主板的设备树,这是实现这一目标的最佳方法?
非常感谢,西蒙娜
buildroot ×10
linux-kernel ×3
c ×2
arm ×1
busybox ×1
caching ×1
ccache ×1
compilation ×1
device-tree ×1
flags ×1
imx6 ×1
kernel ×1
libgcc ×1
qt ×1
qt-creator ×1
release ×1
serial-port ×1
socat ×1
xilinx ×1