泰山派移植Linux5.10.x内核

前言

泰山派官方的内核是4.19.x,运行Ubuntu chrome硬解好像有点问题,新版的内核据说有panfrost驱动。
GitHub上找到了个给rockchip用的新内核(https://github.com/Joshua-Riek/linux-rockchip/) 与之配套的还有Ubuntu 22或者ubuntu 24

基于https://github.com/Joshua-Riek/linux-rockchip/tree/5.10.160-34 开始移植

初步移植过程

进入泰山派官方sdk,mv一下官方的内核

1
mv kernel kernel_old

解压复制新版内核到sdk目录下

本人用的是ubuntu20,貌似交叉编译的工具链需要换一下,试了一下sdk自带的也能用,指定为linaro版gcc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function build_check_cross_compile(){

case $RK_ARCH in
arm|armhf)
if [ -d "$TOP_DIR/prebuilts/gcc/linux-x86/arm/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf" ]; then
CROSS_COMPILE=$(realpath $TOP_DIR)/prebuilts/gcc/linux-x86/arm/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf/bin/arm-linux-gnueabihf-
export CROSS_COMPILE=$CROSS_COMPILE
fi
;;
arm64|aarch64)
echo $TOP_DIR
if [ -d "$TOP_DIR/prebuilt/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu" ]; then
CROSS_COMPILE=$(realpath $TOP_DIR)/prebuilt/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
export CROSS_COMPILE=$CROSS_COMPILE
fi
echo $CROSS_COMPILE
;;
*)
echo "the $RK_ARCH not supported for now, please check it again\n"
;;
esac
}

复制设备树tspi*开头的dts到/kernel/arch/arm64/boot/dts/rockchip/
开始编译

1
./build.sh kernel

结束后kernel目录下会生成boot.img

刷入内核测试

将boot.img刷入后等待自动重启即可,过程比想象中的顺利,uname -a 可以看到5.10.160的内核已经起来了

1
2
zhong@localhost:~$ uname -a
Linux localhost.localdomain 5.10.160 #6 SMP Mon Apr 22 23:51:23 CST 2024 aarch64 aarch64 aarch64 GNU/Linux

测试了一下,这样初步移植,usb、hdmi都正常,只不过wifi暂时驱动不了。默认镜像的ubuntu的桌面很卡。下一步准备移植22.04的Ubuntu,在新的系统下慢慢解决这些驱动问题。

作者

ZhongHuihong

发布于

2024-04-22

更新于

2024-04-23

许可协议