- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我要设置构建环境,为 AT91SAM9X25 开发板制作我自己的 linux 嵌入式系统。我正在使用 buildroot 来执行此操作。 make 命令构建所有目标,首先构建工具链,然后打包,然后是 rootfs 和 rootfs 的镜像(tar、cpio ...)。要重建 rootfs,我通常使用 make clean 然后再 make。 make clean 命令删除所有工具链(包括工具链)。
所以我的第一个问题是:有没有什么方法可以在不构建工具链的情况下重新制作 rootfs?这需要很多时间。
我还在 buildroot 中构建 linux 内核。我在 buildroot 中打开了 BR2_LINUX_KERNEL [=y]。 linux 配置为使用初始 RAM 文件系统,因此要构建内核,它需要 rootfs 镜像(应由 buildroot 创建)。当我在 buildroot 的根目录下运行 make 时,构建失败并出现错误无法打开“buildroot-2013.05/output/images/rootfs.cpio”。因为(如果我理解正确的话)构建顺序是工具链 - pakages - rootfs - linux 内核 - rootfs 的图像。当它尝试构建 linux 内核时,不会创建 rootfs.cpio 镜像。
所以第二个问题是:如果我想使用初始 RAM 文件系统,如何在 buildroot 中构建 linux?
可能有比 buildroot 更有效的替代方案吗?
提前致谢。
最佳答案
The make command build all targets
您不想这样做(直到配置 Buildroot)。
您首先需要通过指定目标板来配置 Buildroot。
根据 manual您可以从头开始,或者为您的 AT91SAM9X25 板创建一个 Buildroot 配置文件,该文件源自类似的板,例如 configs/at91sam9g20dfc_defconfig
除了 Buildroot 配置文件外,您还需要一个 Linux 内核配置文件(除非您想尝试从头开始配置内核)。
带有 AT91SAM9x5 的 Atmel 评估板的内核配置文件是 at91sam9x5ek_defconfig
您还应该阅读第 3.4.2 节。 创建您自己的董事会支持
So the first my question is: Is there some way to remake rootfs without building toolchain? It takes a lot of time.
答案取决于您如何定义“remake rootfs”。如果删除目录output/images/
,那么rootfs的文件会被重写。
如果您删除 output/build/
中的目录,那么这些包或子系统将从源代码重新编译。
如果您将 Buildroot 配置为使用您自己的或外部工具链,则 make clean
不会删除它们。如果您将 Buildroot 配置为安装它在其目录之外构建的工具链,那么它可能会在 make clean
期间不理会它。
当然,Buildroot make
足够聪明,可以知道自上次构建以来发生了什么变化以及必须重新编译什么。
在极少数情况下,您需要删除 output/build/
中的目录以强制重新编译。
So the second question is: How to build linux within buildroot if I want to use Initial RAM filesystem?
您需要正确配置 Buildroot 和 Linux 内核。
make menuconfig
Filesystem images --->
make linux-menuconfig
General setup --->
make
关于将 Buildroot 用于 AT91SAM9x5 的更多简明信息是 this Linx4SAM page
Possibly are there more efficient alternatives than buildroot?
还有其他工具,例如Open Embedded ,但将它们描述为“更有效率”是主观的。
附录
how to rebuild rootfs in buildroot
要强制重建 rootfs(在本例中为 initramfs),请删除 output/build/linux-x.xx.xx 目录中的三个隐藏文件
.stamp_images_installed
.stamp_initramfs_rebuilt
.stamp_target_installed
关于linux - 如何在buildroot中重建rootfs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17885451/
我是 Buildroot 的新手。我有 P2041RDB NXP 板的 Linux 内核源代码,那么我应该把它放在哪里以及如何在配置中设置这个位置? 最佳答案 目前无法从 Buildroot 配置中设
Buildroot 中是否有某种方法可以更改使用“uname -a”命令显示的内核版本字符串?例如: # uname -a Linux buildroot 5.1.0 #1 PREEMPT Wed N
我继承的一个项目使用了一个非常旧版本的 buildroot,但我想将其更改为使用仅在以后的 buildroot 版本中添加的功能。 是否有一种直接的方法可以更新 buildroot 设置以使用更高版本
我正在实现一个 buildroot 包 foo,它不能与特定的其他包 bar 一起包含。我试图通过编写 depends on 来定义相互排斥的包- 相应 Config.in 中的声明-文件。 在 fo
是否有一个中心位置记录了 buildroot 的配置和 defconfig 文件中使用的所有 BR2 选项? 目前,我正在寻找自定义 buildroot 目标设备树的方法。我偶然发现了选项 BR2_L
Buildroot 是一种可用于为嵌入式系统板构建 Linux 镜像的工具。 Buildroot 带有一组预定义的 Python 包,我可以从它的菜单中选择。 此外,Buildroot 添加了一个漂亮
我试过: git checkout 2018.05 make qemu_x86_64_defconfig make BR2_JLEVEL="$(nproc)" "$(pwd)/output/image
Buildroot 提供了一种将 sqlite 添加到我的构建配置中的方法,但我看不到任何地方表明 sqlite 库是否具有多线程支持。如何判断Builtroot包含的sqlite库版本是否支持多线程
我试过: git checkout 2018.05 make qemu_x86_64_defconfig make BR2_JLEVEL="$(nproc)" "$(pwd)/output/image
Buildroot 提供了一种将 sqlite 添加到我的构建配置中的方法,但我看不到任何地方表明 sqlite 库是否具有多线程支持。如何判断Builtroot包含的sqlite库版本是否支持多线程
我将 Buildroot 用作子模块,并且我想通过自己的一些修改来重用现有的树内定义配置。 我只想将修改后的选项存储在配置片段中,就像我可以使用 BR2_LINUX_KERNEL_CONFIG_FRA
我已将 BR2_JLEVEL 设置为 2 ;不确定这个选项在 buildroot 中如何工作?有人可以详细说明它在 buildroot 中的工作方式,因为我没有看到我的构建时间有所改进。 最佳答案 B
我们已将 bash 添加到我们的 buildroot 配置中,现在希望将其设为 root 用户的默认 shell。我不希望将 passwd 文件添加到我们的覆盖中,所以有没有办法通过 buildroo
是否可以在 buildroot 的外部树(由 BR2_EXTERNAL 变量指定的树)中有一个主机包?我知道我可以实现这样的包,如果存在任何依赖它的包,它将被构建。但是如果没有板包依赖呢?例如,当我们
是否可以在 buildroot 的外部树(由 BR2_EXTERNAL 变量指定的树)中有一个主机包?我知道我可以实现这样的包,如果存在任何依赖它的包,它将被构建。但是如果没有板包依赖呢?例如,当我们
我正在尝试向 buildroot 添加一个包,但我没有取得太大的成功。我要添加的包是 autotools名为 scew 的包裹.我遵循了有关添加包的 buildroot 指南,尽管在 make men
我正在使用 buildroot 和 arm 的 linaro 2016.11。我实际上正在为 i.MX6 处理器构建最新的 Linux 内核。到目前为止一切顺利。 我已经用 设置了 buildroot
buildroot 支持从 git repo 下载包。但是我的 git repo 包含子模块。 如何命令 buildroot 下载带有子模块的包? 最佳答案 自~ July 2016您可以为包启用子模
我想知道是否可以在分区表中添加更多分区,以及如何添加。我已经测试过更改 genimage.cfg 但似乎 support/scripts/genimage.sh 没有创建它。 提前谢谢你。 最佳答案
我目前有一个 buildroot 配置,输出一个 U-Boot 包装的根文件系统。该过程的一部分覆盖来自外部目录的文件,其中包含网络接口(interface)、profile.d 脚本和一些自定义可执
我是一名优秀的程序员,十分优秀!