编译 Linux 内核¶
最新硬件使用 strongpi_nand_defconfig 和 sun8i-v3s-strongpi-spinand.dtb。同一套内核和设备树也可放入 TF 卡镜像,TF 卡根文件系统位置由 TF 版 U-Boot 的启动参数指定。
生成默认配置¶
export PATH=/opt/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin:$PATH
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
cd ~/v3s-workspace/kernel
make mrproper
make strongpi_nand_defconfig
检查蓝牙固件目录¶
RTL8723BS 蓝牙控制器在根文件系统挂载前初始化,因此固件需要内建到内核。默认配置使用内核目录的相对路径:
../strongpi-v3s-support/rootfs_overlay/lib/firmware
按本手册的工作区结构放置源码时,直接确认两个固件文件存在:
ls -l \
~/v3s-workspace/strongpi-v3s-support/rootfs_overlay/lib/firmware/rtl_bt/rtl8723bs_fw.bin \
~/v3s-workspace/strongpi-v3s-support/rootfs_overlay/lib/firmware/rtl_bt/rtl8723bs_config.bin
如果改变了默认工作区结构,可再用 scripts/config --set-str EXTRA_FIRMWARE_DIR <实际路径> 覆盖该配置并执行 make olddefconfig。
编译内核、设备树和模块¶
make -j"$(nproc)" zImage dtbs modules
主要产物:
arch/arm/boot/zImage
arch/arm/boot/dts/sun8i-v3s-strongpi-spinand.dtb
安装内核模块到根文件系统覆盖层¶
当前 Wi-Fi 驱动以模块形式编译。修改过内核或驱动后,更新板级支持包中的模块:
make INSTALL_MOD_PATH="$HOME/v3s-workspace/strongpi-v3s-support/rootfs_overlay" \
modules_install
后续重新编译 Buildroot,新的根文件系统才会包含这些模块。
修改配置¶
make menuconfig
保存配置:
make savedefconfig
cp defconfig arch/arm/configs/strongpi_nand_defconfig
保存前应确认 CONFIG_EXTRA_FIRMWARE_DIR 仍使用可移植的工作区相对路径。不要把个人主目录的绝对路径作为发布配置直接分发。