buildroot , 把开发板上的改动 落回到overlay里
解压 Buildroot 压缩包时 ,不要用 sudo 解压,建议切换普通用户 再解压、编译。
编译 Buildroot 不要用 sudo,sudo make 会引发权限混乱,污染编译环境。
1. 每次修改 Busybox ,要保存配置
make busybox-menuconfig 修改
make busybox-update-config 保存
在 buildroot 目录,查看最后 -> 修改时间
stat package/busybox/busybox.config
2. 每次修改 Buildroot ,要保存配置
make menuconfig # 修改
make savedefconfig # 保存 (defconfig 保存的精简配置)
cp .config .config-backup 备份完整配置( make distclean 会删除 .config )
看全部配置 (默认值+修改值):cat .config
看自己改了哪些:cat defconfig
make menuconfig 图形化界面 启动时,读取已有.config载入配置,修改保存后覆盖原.config,后续 make编译时 读取.config,依照配置编译。
创建目录 rootfs_overlay :( 把开发板上的改动 落回到overlay里 )
添加目录 rootfs_overlay 的路径,然后保存退出。
rootfs_overlay只存放开发板上手动修改的文件,按照源目录结构摆好,Buildroot 读取rootfs_overlay中的文件,然后打包到rootfs.tar中。
(举例)开发板上修改的文件 拷贝到rootfs_overlay -> etc/: -a 保留权限属性
sudo cp -a /home/leo/linux/nfs/buildrootfs/etc/profile .
因为 编译buildroot 不要用 sudo ,所以rootfs_overlay里的文件所有权要改回普通用户leo:
sudo chown leo:leo profile
拷贝编译生成的根文件系统:-p 保留权限属性
sudo tar xpf output/images/rootfs.tar -C /home/leo/linux/nfs/buildrootfs/
-------------------------------------------------------------------------------------------------------------------------
Buildroot 2022.02.12 创建 普通用户:
第一步:
创建用户表文件 users_table.txt
cd buildroot-2022.02.12
mkdir -p board/imx6ull
vim board/imx6ull/users_table.txt
users_table.txt 表内容:
leo -1 leo -1 =123456 /home/leo /bin/sh - "Leo User"| 字段 | 含义 |
|---|---|
| leo | 用户名 |
| -1 | 自动分配UID |
| leo | 主组名 |
| -1 | 自动分配GID |
| =123456 | 密码 |
| /home/leo | 家目录 |
| /bin/sh | shell |
| - | 附加组 设置为 wheel,可以 用su切换 root |
| "Leo User" | 描述 |
第二步:
- 在 Buildroot 里打开
make menuconfig - 进入
System configuration - 找到 () Path to the users tables ,按回车,填入 用户表文件 的 绝对路径。比如
/home/leo/linux/buildroot/buildroot-2022.02.12/board/imx6ull/users_table.txt
保存退出。
重新make,再把新生成的 rootfs 烧到板子上。
