在ARM上移植Linux系统

在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目录。