LubanCat RK3588 实时内核移植第一步:先确认硬件与系统版本

摘要:在开始 RT-Linux 移植前,建立硬件、rootfs、设备树、SDK 和内核版本基线,避免把旧教程直接套用到新内核。

写在前面

实时内核移植最容易犯的错误,是拿着旧版本教程直接执行命令。教程可能基于 5.10 内核,而当前设备运行的是 6.1;即使板卡名称相同,内核配置、设备树、启动分区和驱动接口也可能不同。

本文先建立一份"版本基线",后续所有编译和安装操作都以这份基线为准。

本次实测:LubanCat-5IOB(RK3588)从 6.1.84 迁移到 6.1.99-rt36-rk3588 #12。其他板卡不能直接复用本文的 DTB 和启动文件。

一、区分三个工作环境

移植过程通常同时涉及三个环境:

  • 开发主机 :运行 LubanCat SDK、交叉编译器和 build.sh
  • 目标设备:安装新内核、加载模块并进行运行验证。
  • 串口终端:连接目标设备调试串口,用于网络不可用时查看 U-Boot 和内核日志。

build.sh 在开发主机执行,unamemodprobeip 等验证命令在目标设备执行。串口工具运行在开发主机,但显示的是目标设备的控制台。

二、目标设备基线检查

在目标板执行:

bash 复制代码
uname -a
cat /proc/cmdline
findmnt /
cat /etc/os-release

重点记录四项:

  1. 当前内核版本,例如 6.1.84
  2. 根分区来源和文件系统;
  3. 启动参数中的 root=LABEL=...root=PARTUUID=...
  4. 发行版和架构,通常为 Ubuntu/Debian arm64。

还应记录板卡型号和设备树:

bash 复制代码
tr -d '\0' < /proc/device-tree/model
printf '\n'
tr '\0' '\n' < /proc/device-tree/compatible

modelcompatible 能确认设备树描述的板卡身份,但不能直接告诉你 U-Boot 实际加载了哪个 .dtb 文件;后者还要结合 /boot 配置和串口启动日志判断。

三、开发主机 SDK 检查

bash 复制代码
SDK="$HOME/lubancat/LubanCat_SDK"
cd "$SDK"
./build.sh rk3588:LubanCat_rk3588_ubuntu_linux6.1_gnome_defconfig
./build.sh help | sed -n '/available defconfigs:/,/olddefconfig/p'

如果输出中出现 Using preferred kernel version(6.1),说明 SDK 已选择 6.1 内核。不要使用不存在的旧 defconfig,例如直接执行不带芯片前缀的配置名,可能得到 No such defconfig

这里的 ubuntugnome 是 SDK 构建配置的一部分。只执行 kerneldeb 不会把目标板现有用户空间改成另一个 Ubuntu 版本,因此目标系统版本仍应以 cat /etc/os-release 为准。

四、为什么这一步不能省略

内核模块必须同时匹配内核版本、架构、配置和 vermagic。设备树还决定网卡、显示、CAN 控制器等硬件是否被描述。先固定版本,才能判断后续问题究竟来自编译、安装、启动还是驱动。

小结

移植的第一项成果不是生成一个文件,而是形成一份可追溯的版本基线。建议把 uname -a/proc/cmdline、SDK manifest 和板卡型号保存到专栏配套资料中。

下一篇将使用 picocom 建立串口恢复通道,确保新内核无法联网时仍能观察和修复系统。

相关推荐
是个西兰花1 小时前
网络基础1
linux·网络·c++·智能路由器
2601_962299882 小时前
Python编写Linux命令指南
linux·python·开发·命令·指南
此冬歌咏2 小时前
自动化服务器运维监控系统(python+shell)
linux·运维·服务器·开发语言·python·自动化
风景的人生2 小时前
虚拟机ip连不上(怀疑是最开始虚拟机复制造成的网络冲突)
linux·运维·服务器
Cx330❀2 小时前
【Linux网络】深入TCP协议:从滑动窗口到拥塞控制与性能优化全景解析
linux·开发语言·网络·tcp/ip·ai·性能优化·ai编程
代码村新手2 小时前
Linux-将普通用户添加到系统信任文件(sudoers file)白名单中
linux
Linux-lucky3 小时前
36-Linux学习之旅之MySQL主从复制
linux·运维·学习·mysql·ubuntu
SatanII3 小时前
华为云ECS实践:从创建、镜像制作到弹性伸缩完整实操指南
linux·运维·服务器·学习·centos·华为云
爱和冰阔落3 小时前
【Linux】epoll 真的是 O(1) 吗?从阻塞 I/O、select/poll 到 LT/ET 与 Reactor 一次讲透
linux·运维·高并发·tcp