修改设备树与内核配置¶
Linux 板级设备树¶
最新硬件使用:
kernel/arch/arm/boot/dts/sun8i-v3s-strongpi-spinand.dts
常见修改包括:
- 启用或关闭外设节点
- 修改 GPIO、I2C 地址和中断
- 修改 NAND 分区
- 调整触摸方向
- 修改背光 PWM 参数
编辑完成后只编译设备树:
cd ~/v3s-workspace/kernel
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- \
sun8i-v3s-strongpi-spinand.dtb
产物位于:
arch/arm/boot/dts/sun8i-v3s-strongpi-spinand.dtb
TF 卡启动时,将它复制到第一个分区并命名为:
sun8i-v3s-strongpi.dtb
NAND 启动时写入:
xfel spinand write 0x100000 sun8i-v3s-strongpi-spinand.dtb
修改内核配置¶
载入板级默认配置:
cd ~/v3s-workspace/kernel
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- strongpi_nand_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
配置保存后编译:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- \
-j"$(nproc)" zImage dtbs modules
驱动选择:
y:驱动编入zImage,启动早期即可使用。m:生成.ko模块,需要安装到根文件系统并由系统加载。n:不编译该功能。
安装模块¶
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- \
INSTALL_MOD_PATH="$HOME/v3s-workspace/strongpi-v3s-support/rootfs_overlay" \
modules_install
随后重新编译 Buildroot 根文件系统。
连续内存配置¶
摄像头或其他需要大块 DMA 缓冲区的驱动可能依赖 CMA。设备树已经声明 linux,cma-default 时,内核还需要启用:
CONFIG_CMA=y
V3S 的 64MiB DDR 地址范围为 0x40000000–0x44000000。CMA 的 reg 起始地址和长度必须完全落在该范围内;默认设备树使用 0x43000000 起始的 16MiB 区域。启动日志出现 reserved mem ... compatible matching fail 时,应检查 CONFIG_CMA 和预留区域是否越过 DDR 边界。