第19章 buildroot根文件系统构建

buildroot构建根文件系统

网盘路径:开发板光盘A-基础资料\1、程序源码\7、Buildroot源码\buildroot-2020.02.6.tar.bz2
将buildroot源码拷贝到虚拟机的~/linux/tool目录下解压,进入buildroot源码使用图形化配置
cd ~/linux/tool
tar -vxjf buildroot-2020.02.6.tar.bz2
cd ~/linux/tool/buildroot-2020.02.6
make menuconfig

配置Target options

配置Toolchain

配置System configuration

配置Filesystem images

禁止编译Linux 内核和uboot

配置Target packages

保存配置项

将配置项命名为“stm32mp1_atk_defconfig”,以后要重新配置buildroot 的话就可以直接执行以下指令
make stm32mp1_atk_defconfig

编译buildroot

sudo make
编译完在 output/images 目录下会生成根文件系统
cd ~/linux/tool/buildroot-2020.02.6/output/images
拷贝rootfs.tar到nfs目录下的rootfs文件夹并解压
cp rootfs.tar ~/linux/nfs/rootfs/ -f 
cd ~/linux/nfs/rootfs
tar -vxf rootfs.tar 
rm rootfs.tar 

buildroot根文件系统测试

修改bootargs环境变量
setenv bootargs 'console=ttySTM0,115200 root=/dev/nfs nfsroot=192.168.1.208:/home/alientek/linux/nfs/rootfs,proto=tcp rw ip=192.168.1.250:192.168.1.208:192.168.1.1:255.255.255.0::eth0:off'
saveenv
boot

buildroot下的busybox配置

busybox配置

buildroot下的busybox压缩包位置在 buildroot-2020.02.6/dl/busybox
buildroot会自动解压这个busybox源码包,解压后的busybox目录在 buildroot-2020.02.6/output/build/busybox-1.31.1
在buildroot下打开busybox的配置界面
cd ~/linux/tool/buildroot-2020.02.6
sudo make busybox-menuconfig
按照18章的配置即可

busybox中文支持

见18章

编译busybox

在buildroot目录下执行指令编译busybox,再重新编译buildroot
sudo make busybox
sudo make
编译完成后看下 output/images 目录下的 rootfs.tar 是否更新时间

使用自己的busybox源码(略)

在buildroot源码的 configs 目录下创建 local.mk 文件,内容如下
BUSYBOX_OVERRIDE_SRCDIR=/home/alientek/linux/busybox/busybox-1.32.0
打开buildroot图形配置
。。。。

buildroot第三方软件和库的配置

使能VSFTPD服务

使能SSH

编译buildroot

buildroot根文件系统测试

depmod 命令测试

在busybox图形配置中使能depmod指令
cd ~/linux/tool/buildroot-2020.02.6
sudo make busybox-menuconfig
编译busybox再编译buildroot
sudo make busybox
sudo make
编译完在 output/images 目录下会生成根文件系统
cd ~/linux/tool/buildroot-2020.02.6/output/images
拷贝rootfs.tar到nfs目录下的rootfs文件夹并解压
cp rootfs.tar ~/linux/nfs/rootfs/ -f 
cd ~/linux/nfs/rootfs
tar -vxf rootfs.tar 
rm rootfs.tar 
板子启动系统后执行depmod指令
板子文件系统创建对应文件夹后就不会报错了
mkdir /lib/modules/5.4.31 -p

vsftpd 测试

在串口终端打开文件系统下的 /etc/vsftpd.conf ,去掉 local_enable=YES 和 write_enable=YES 前面的 # 符号,改完后效果
继续在此文件最后添加如下内容
chown root:root /etc/vsftpd.conf 
保存此文件
使用adduser来创建一个用户,这里以创建atk用户为例




posted @ 2021-02-19 17:18  orangebear  阅读(209)  评论(0)    收藏  举报