文章目录
前言
buildroot是一个构建文件系统的工具,虽然不如构建发行版的工具强大、完整,但总比手搓rootfs强
下载地址
https://buildroot.org/download.html
make menuconfig
make defconfig
在configs目录里有很多配置项,已经适配了很多板卡了,这里我们采用qemu的virt板
make qemu_aarch64_virt_defconfig
Target options
这个defconfig已经配好了,不用改
Toolchain
这里我用的自己的工具链,如果用默认的,就不需要修改
# 工具链类型: 用buildroot构建 or External
Toolchain type (External toolchain)
# 工具链: 用某些个官方的还是自定义的
Toolchain (Custom toolchain)
# 工具链起源: 下载 or path
Toolchain origin (Pre-installed toolchain)
# 工具链路径
(/home/arco/x-tools/aarch64-arco-linux-gnu/) Toolchain path
# 工具链前缀
($(ARCH)-arco-linux-gnu) Toolchain prefix
# 外部工具链的gcc版本、内核头文件版本、c库版本(不用担心,选错的话,编译的时候应该会提醒你)
External toolchain gcc version (11.x)
External toolchain kernel headers series (6.4.x)
External toolchain C library (glibc)
# 几个工具链是否支持的选项(仅使用外部工具链需要选),选错的话构建时会提醒
Toolchain has RPC support?
# 是否构建在宿主机上用来调试目标架构的gdb(不是在目标机上运行的)
Build cross gdb for the host
TUI support
这里我用的自己的工具链,所以需要修改
Custom kernel headers series 和 GCC compiler Version
Build options
# 下载包的站点,也可以自己配
Mirrors and Download locations
# 执行构建的任务数,根据自己的cpu配吧
Number of jobs to run simultaneously
# hash校验 (如果报错可能得关
Advanced --->
Force all downloads to have a valid hash
System configuration
# hostname ...就那个
(arco-host) System hostname
# 进系统前会打印的东西
(---ARCO WELCOMES YOU---) System banner
# init进程,可以选systemV、systemd
Init system (BusyBox)
# 允许root密码登录、配置root密码
Enable root login with password
() Root password
# 保留的语言配置文件,这里留个英文的
(C en_US) Locales to keep
Kernel
这里kernel也是我自定义的,如果直接用默认的 可以不配
# 内核版本,可以选 最新版/自定义版本/自定义的tarball/自定义Git仓
Kernel version (Custom tarball)
# 内核文件的url (本地的话就用file://)
(file:///home/kirin7/kernel/linux-6.6.57.tar.xz) URL of custom kernel tarball
# config文件路径
(board/qemu/aarch64-virt/linux.config) Configuration file path
# Image文件形式
Kernel binary format (Image)
# 构建设备树, 展开之后自己看吧
Build a Device Tree Blob (DTB)
Target packages
# 常见工具,比如binutils make flex git tree...
Development tools --->
# 太多了自己看吧
Filesystem images
# 文件系统格式
ext2/3/4 root filesystem
# 控制文件系统固定尺寸的,给出一个固定值,没达到就填0
(100M) exact size
# 其他没啥好看的
Bootloaders
# EDK2、grub2、uboot这几个比较常见,其他不认识
Host utilities Legacy config options
这俩感觉没啥好配的
报错处理
内置wget指令报错: --no-check-certificate
解决:
在/etc/wgetrc或~/.wgetrc添加
check_certificate = off
内核包报错缺少哈希:ERROR: No hash found for linux-6.6.57.tar.xz
解决:
Build options
Advanced --->
[] Force all downloads to have a valid hash
(我还没看到在哪加hash,干脆用这个了)
生成件
buildroot目录的output/images/路径下
可以直接用start-qemu.sh启动(它甚至还顺便构建了个qemu…)