如何使用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 中

posted @ 2026-05-06 14:58  BorisDimitri  阅读(0)  评论(0)    收藏  举报