目 录
下载buildroot源码
首先需要到buildroot官网下载源码。Buildroot - Making Embedded Linux Easy
点击download下载,你需要版本的源码。拷贝到ubuntu下并解压。
配置
进入源码目录。输入下方命令,进入图形化配置界面。
make menuconfig
接下来我们就依次配置 buildroot,配置完成以后就可以进行编译了。
1、配置 Target options
Target options-> Target Architecture = ARM (little endian)-> Target Binary Format = ELF-> Target Architecture Variant = cortex-A7-> Target ABI = EABIhf-> Floating point strategy = NEON/VFPv4-> ARM instruction set = ARM
2、配置 Toolchain
Toolchain
-> Toolchain type = External toolchain-> Toolchain = Custom toolchain // 用户自己的交叉编译器-> Toolchain origin = Pre-installed toolchain // 预装的编译器-> Toolchain path =/usr/local/arm/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf-> Toolchain prefix = $(ARCH) -none-linux-gnueabihf //前缀-> External toolchain gcc version = 9.x-> External toolchain kernel headers series = 4.20.x // 交叉编译器的 linux 版本号-> External toolchain C library = glibc/eglibc-> [*] Toolchain has SSP support? (NEW) //选中-> [*] Toolchain has RPC support? (NEW) //选中-> [*] Toolchain has C++ support? //选中-> [*] Enable MMU support (NEW) //选中
3、配置 System configuration
System configuration
-> System hostname = huerli // 平台名字,自行设置-> System banner = Welcome to my workspace // 欢迎语 自行设置-> Init system = BusyBox // 使用 busybox-> /dev management = Dynamic using devtmpfs + mdev // 使用 mdev-> [*] Enable root login with password (NEW) // 使能登录密码
4、配置 Filesystem images
此选项配置我们最终制作的根文件系统为什么格式的,配置如下:
-> Filesystem images-> [*] ext2/3/4 root filesystem // 如果是 EMMC 或 SD 卡的话就用 ext3/ext4-> ext2/3/4 variant = ext4 // 选择 ext4 格式-> exact size =1G //ext4 格式根文件系统 1GB( 根据实际情况修改 )
5、禁止编译 Linux 内核和 uboot
-> Kernel
-> [ ] Linux Kernel //不要选择编译 Linux Kernel 选项!-> Bootloaders-> [ ] U-Boot //不要选择编译 U-Boot 选项!
6、配置 Target packages
-> Target packages
-> System tools-> [*] kmod //使能内核模块相关命令
7、保存配置项
保存以下 按两下esc 再回车确认保存。
同时我们还需要进行备份,将其放在configs下 。
将光标通过左右键切换到save回车保存,这里需要修改一下路径。
make my_defconfig
8、配置busybox
我们还需要配置一下busybox,因为buildroot相当于在busybox上再去添加一些东西,因为busybox配置出来真的很小,就是就基础的。
make busybox-menuconfig
Location:-> Settings-> Build static binary (no shared libs) 确保没选中-> vi-style line editing commands
-> Support Unicode //选中
-> Check $LC_ALL, $LC_CTYPE and $LANG environment variables // 选中-> Linux Module Utilities-> Simplified modutils 确保没选择-> depmod-> Linux System Utilities-> mdev (16 kb) //确保下面的全部选中,默认都是选中的
make show-targets
9、编译
make busybox
make
10、 验证
通过nfs网络挂在文件系统。
需要修改bootargs。bootargs修改教程
将编译好的根文件系统(在源码的output/image/)复制到 nfs/rootfs 下进行解压。再重启验证