在日常开发中,我们经常会向buildroot文件系统里添加自定义文件。本文介绍几种添加的方法
一、buildroot/system/skeleton目录
skeleton能够在目标文件系统编译完成后将指定文件覆盖到某个目录。通过这种方式,我们可以方便地添加或修改一些文件到根文件系统。此目录有着有则覆盖,无则新建的特性。
比如说,在开发板的/根目录下创建app目录,具体步骤如下所示:
1.1、进入buildroot/system/skeleton目录
若buildroot/system/skeleton目录下无app目录,新建即可,之后放进app目录的文件会覆盖开发板上的app目录,保持有则覆盖,无则新建的特性。
1. 2、重新编译Buildroot
重新编译Buildroot后,在编译生成文件的目录buildroot/output/target下可以看到app文件夹
此时进入buildroot/output/images目录下,查看打包好的rootfs.tar文件里面已经包含了app文件夹
二、buildroot/output/target目录
buildroot/output/target目录是根文件系统的系统目录,用来创建根文件系统镜像。所以在此文件夹下添加自定义文件也可以打包进烧录的根文件系统。例如在buildroot/output/target目录下的etc目录下放置一个test.sh的脚本文件。注意:如果清除后重新编译的化,会导致文件丢失。
编译打包后,打包好的文件内的etc目录下就包含了test.sh的脚本文件
三、RK3568的Buildroot添加自定义文件
瑞芯微的RK3568的Buildroot添加自定义文件可以使用上述的两种方法:
3.1、buildroot/system/skeleton目录
在buildroot/system/skeleton目录的etc目录下放置一个test1.sh的脚本文件,如下图所示
重新编译后在/output/rockchip_rk3568/target/etc目录下出现了test1.sh文件
此时在打包的烧录文件下可以看到test1.sh文件。在目录/output/rockchip_rk3568/images目录下打开rootfs.tar文件可以看到etc目录下出现了test1.sh文件
同时在Buildroot的同级目录rockdev内找到rootfs.img文件,并挂载到系统上,查看/etc/目录下出现了test1.sh文件
3.2、buildroot/output/target目录
在buildroot/output/rockchip_rk3568/target目录下创建app文件夹,如下图所示:
重新编译后,在目录/output/rockchip_rk3568/images目录下打开rootfs.tar文件可以看到app文件夹
同时在Buildroot的同级目录rockdev内找到rootfs.img文件,并挂载到系统上,查看/目录下出现了app文件夹
3.3、buildroot/board/rockchip/rk356x/fs-overlay目录
rk3568除了上述两种方法外,还有第三种方法,就是buildroot/board/rockchip/rk356x/fs-overlay目录。fs-overlay能够在目标文件系统编译完成后将指定文件覆盖到某个目录。
在buildroot/board/rockchip/rk356x/fs-overlay目录的etc目录下放置一个test2.sh的脚本文件,如下图所示
重新编译后在/output/rockchip_rk3568/target/etc目录下出现了test2.sh文件
此时在打包的烧录文件下可以看到test2.sh文件。在目录/output/rockchip_rk3568/images目录下打开rootfs.tar文件可以看到etc目录下出现了test2.sh文件
同时在Buildroot的同级目录rockdev内找到rootfs.img文件,挂载到系统上后,查看/etc/目录下出现了test2.sh文件