转载地址:https://blog.csdn.net/qq_39101111/article/details/78683742
BusyBox的
如果您已经有BusyBox配置文件,则可以直接在Buildroot配置中使用指定该文件 BR2_PACKAGE_BUSYBOX_CONFIG。否则,Buildroot将从默认的BusyBox配置文件开始。
要对配置进行后续更改,请使用make busybox-menuconfig打开BusyBox配置编辑器。
也可以通过环境变量指定一个BusyBox配置文件,尽管这不是建议的。有关更多详细信息,请参阅 第8.6节“环境变量”。
uClibc的uClibc的配置与BusyBox相同。用于指定现有配置文件的配置变量是 BR2_UCLIBC_CONFIG。后续更改的命令是make uclibc-menuconfig。Linux内核
如果你已经有一个内核配置文件,你可以直接在Buildroot配置文件中使用 变量BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG。
如果您还没有内核配置文件,您可以通过在Buildroot配置中指定defconfig来BR2_LINUX_KERNEL_USE_DEFCONFIG启动,使用 或者创建一个空文件并将其指定为自定义配置文件变量 BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG。
要对配置进行后续更改,请使用make linux-menuconfig打开Linux配置编辑器。
BareboxBarebox的配置与Linux内核的配置相同。相应的配置变量是 BR2_TARGET_BAREBOX_USE_CUSTOM_CONFIG和 BR2_TARGET_BAREBOX_USE_DEFCONFIG。要打开配置编辑器,请使用make barebox-menuconfig。的U-Boot
U-Boot(版本2015.04或更新版本)的配置以与Linux内核相同的方式完成。相应的配置变量是BR2_TARGET_UBOOT_USE_CUSTOM_CONFIG和 BR2_TARGET_UBOOT_USE_DEFCONFIG。要打开配置编辑器,请使用make uboot-menuconfig。
并非所有的目标都是可用的,.config文件中的一些设置可能会隐藏一些目标:
busybox-menuconfig仅在busybox启用(选中)时才起作用;
linux-menuconfig而linux-savedefconfig只有当工作 linux启动(选中);
uclibc-menuconfig 只有在内部工具链后端选择了uClibc C库时才可用;
barebox-menuconfig而barebox-savedefconfig只有当工作 barebox启动引导程序。
uboot-menuconfig而uboot-savedefconfig只有当工作 U-Boot启动引导程序。
完全重建单个包的最简单的方法是在中删除其构建目录output/build。然后Buildroot将重新提取,重新配置,重新编译和重新安装这个包。使用 make <package>-dirclean命令,之后使用make <package>命令
从编译步骤重新开始编译包的构建过程,则可以运行make <package>-rebuild,然后按make或make <package>。它将重新开始编译和安装软件包,但不是从头开始:它基本上是重新执行的,make(搜索很麻烦)而且make install 在软件包内部,所以它只会重建那些已经改变文件。
从配置步骤重新启动程序包的构建过程,可以运行make <package>-reconfigure,然后按make或make <package>。它将重新启动软件包的配置,编译和安装。
make graph-depends 生成已编译完整系统的依赖关系图
output/graphs/graph-depends.pdf
make <pkg>-graph-depends 给定的包生成依赖关系图
output/graph/<pkg>-graph-depends.pdf
软件的构建过程(按它们执行的顺序):make+
命令/目标 描述(这些命令都是单步运行)
make source
获取源代码(下载压缩包,克隆源代码库等) 下载源码
make depends
构建并安装构建软件包所需的所有依赖关系 检查依赖关系
extract
把源代码放在包构建目录中(提取压缩包,复制源代码等) 解压源码包
patch
应用补丁,如果有的话 添加补丁
configure
运行configure命令(如果有的话) 进行软件的配置
build
运行编译命令 进行软件的编译
install-staging
目标软件包:如果需要,在分段目录中运行软件包的安装
install-target
目标软件包:如果需要,请在目标目录中运行软件包的安装
install
目标包:运行2个以前的安装命令 进行软件的安装
主机包:在主机目录中运行包的安装
另外,还有其他一些有用的目标:
命令/目标 描述(这些命令都是单步运行)
show-depends
显示构建包所需的依赖关系
graph-depends
在当前的Buildroot配置的上下文中生成包的依赖关系图。有关依赖关系图的更多详细信息,请参见 本节的 第8.8节“绘制包之间的依赖关系”。
dirclean
删除整个包构建目录
reinstall
重新运行安装命令
rebuild
重新运行编译命令 - 这只有在使用该OVERRIDE_SRCDIR功能(重新指定源码包位置)时才有意义,或者直接在编译目录中修改文件时才有意义
reconfigure
重新运行configure命令,然后重建 - 这只有在使用该OVERRIDE_SRCDIR功能时才有意义,或者直接在build目录中修改文件
Buildroot的正常运行是下载一个tarball,解压缩,打补丁,配置,编译和安装
命令 (重新指定哪个软件包的源码位置)
<pkg1> _OVERRIDE_SRCDIR = / path / to / pkg1 / sources
<pkg2> _OVERRIDE_SRCDIR = / path / to / pkg2 / sources
例如:
LINUX_OVERRIDE_SRCDIR = / home / bob / linux /
BUSYBOX_OVERRIDE_SRCDIR = / home / bob / busybox /
然后运行
make linux-rebuild all
make busybox-rebuild all
make <pkg>-rebuild all命令将源代码 <pkg>_OVERRIDE_SRCDIR复制到output/build/<package>-custom(仅修改过的文件被复制),并重新启动只是这个包的构建过程(包括 make rebuild 和make install)。
当Buildroot发现对于一个给定的包时,<pkg>_OVERRIDE_SRCDIR已经定义了一个包, 它将不再尝试下载,提取和修补包。它将直接使用指定目录中的可用源代码,而make clean不会触及此目录。
---------------------
作者:scw_zch
来源:CSDN
原文:https://blog.csdn.net/qq_39101111/article/details/78683742
版权声明:本文为博主原创文章,转载请附上博文链接!