如何使用buildroot简单构建Linux系统镜像(树梅派 Zero 2W)
Esential tools
sudo apt install build-essential bison flex gawk texinfo file git ssh libc6-dev libssl-dev libncurses-dev
Install the buildroot
git clone --depth=1 https://github.com/buildroot/buildroot.git
查看buildroot中的默认的树梅派设置
cd buildroot && make list-defconfigs | grep raspberry
其中我们的目标为树梅派Zero 2W
其为 raspberrypizero2w_64_defconfig
然后我们使用默认的config
make raspberrypizero2w_64_defconfig
make menuconfig
启用glibc(运行C程序),设置密码(新版登录终端需密码):
Toolchain
--> [*] Install glibc utilities
System configuration
--> () Root password
可以选择上vim,方便编辑
提前下载所需要的包
make source
编译并生成log
make -j32 | tee build-rpi.log
烧录镜像
sudo dd if=output/images/sdcard.img of=/dev/sda status=progress; sync
sudo eject /dev/sda
验证是否成功
串口,3根线,串口设备的TX接树莓派的RX,串口设备的RX接树莓的TX,默认比特率115200。
正常情况下应该看到正常的boot
Wifi setup
在menuconfig中
Target packages -> Hardware handling -> Firmware -> brcmfmac-sdio-firmware-rpi
Target packages -> Hardware handling -> Firmware -> linux-firmware -> Wifi firmware -> Broadcom bcm43xxx
Target packages -> Networking applicants -> wpa supplicant -> enable nl80211 support
编译烧录后,确认成功登陆后,编辑wpa_supplicnat.conf
vim /etc/wpa_supplicant.conf
#ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
network={
ssid="your_wifi_ssid"
psk="your_wifi_password"
key_mgmt=WPA-PSK
}
modprobe brcmfmac
wpa_supplicant -B -iwlan0 -c/etc/wpa_supplicant.conf
udhcpc -iwlan0
此时应该可以看到自己的wlan0已经可以有连接
之后可以试试 ping www.baidu.com 来检测是否成功连接到互联网
SSH
在 menuconfig 中开启 System Configuration -> Root password 输入一个简单的密码
在 Target Package -> Networking application 中勾选 openssh
编译下载
成功登陆之后修改 /etc/ssh/sshd_config
vim /etc/ssh/sshd_config
把 PermitRootLogin prohibit-password 改为 PermitRootLogin yes, 并删除前面的 #
在PC上可以尝试 sudo ssh root@192.20.2.105 (如果你的Soc的ip地址是192.20.2.105)
SDK 编译
执行 make sdk 来构建交叉编译器 (在 output/images 中生成一个 aarch64-buildroot-linux-gnu_sdk-buildroot.tar.gz)
将这个 tarball 放到一个合适的位置,如 ~/Softwares/Cross-Compile-aarch64
解压tarball
tar -xzf xxxxx.tar.gz
运行 ./relocate-sdk.sh 修复path
以后可以使用 ./environment-setup 来启用交叉编译器(覆盖 $CC $CXX等文件路径)
编译成功目标应用程序之后使用 scp 复制到 ssh 中

浙公网安备 33010602011771号