在ARM上移植Linux系统

在 RK3588 上为 Ubuntu 24.04 扩展芯片驱动,有两种方式:

方法一:快速加载独立模块(适合常见外设)

以单个 .ko 文件提供的驱动(比如某些 WiFi 或 USB 网卡驱动),通常不需要重新编译内核。

比如Ubuntu上有PWM驱动,但是没有输入捕获驱动,可以写一个rk3588_capture.ko

核心步骤包括:准备交叉编译环境 (在x86电脑上用 aarch64-linux-gnu- 工具链编译) -> 修改驱动的 Makefile ,指定 RK3588 内核源码路径和交叉编译工具链地址 -> 执行 make 编译生成 .ko 文件 -> .ko 拷贝到开发板,用 insmodmodprobe 加载

复制代码
# 在开发板上加载驱动
sudo insmod rk3588_capture.ko

要读写设备文件,rk3588_capture.ko 里面必须注册字符设备:

alloc_chrdev_region();

cdev_init();

cdev_add();

class_create();

device_create();

方法二:重新编译内核(适合深度定制)

  1. 获取内核源码 :从你的开发板厂商或社区项目(如 ubuntu-rockchip)获取对应 Ubuntu 24.04 内核(6.1 版本)的源码和配置。

  2. 配置内核选项 :在内核源码目录执行 make menuconfig,找到并启用你需要的功能(比如 Device Drivers -> Rockchip platform drivers 下的相关驱动)。

  3. 编译与替换 :执行编译命令生成新的内核镜像和驱动模块,然后替换开发板上的内核文件和 /lib/modules 目录。