关于「基于rk3566的泰山派」的一切
关于「基于rk3566的泰山派」的一切
Author: kkl
该笔记目前处于积极开发阶段。
嘿,没错,是我,我又来整活啦!自从一年前花重金188购置了一手嘉立创的泰山派(2 + 16GB),期间跟着教程做了个小手机,然后不出所料的,吃灰了。
显然这板子在我手上是不允许这样的事情发生的,于是便有了这次的企划,「拯救泰山派行动」!但是这几天,我花了些时间调查了一下泰山派的生态,做的是真的差劲,就连个像样的镜像都没有,对我这种刚入门的新手非常的不友好。
所幸,隔壁的野火的鲁班猫系列的sdk挺全面的,又于是乎,咱也来整一个曲线救国,分享一下我是如何用鲁班猫的sdk玩转泰山派的,这里算是给自己开了一个新坑,慢慢填吧,拭目以待!
——from 2025.11.3
哈哈哈喽,没想到一晃眼快两个月过去了,我真真正正等到一个合适的时间、一个慵懒的假期、美好的双休,来做这次更新,先填部分的坑,让泰山派用上鲁班猫的SDK,接上屏幕,连上网络,做成一个小电脑!我们开始吧!
——from 2025.12.27
嗨,我又来更新啦,每一次更新都挑了个夜深人静的时候(苦涩,这次来分享一下linux的驱动添加方法,不一定只是针对tspi,思想是通用的,也算是记录记录我这几天折腾的成果吧。我越发感觉这个坑是深不见底呀,啥时候能填完呢?内容分几天来零零碎碎更新,写的太困了就去睡了(嘿。
——from 2026.1.6
写在前面
本篇文章将简述如何从零到一玩转「基于rk3566的泰山派」。
我的环境
虚拟机:VMware Ubuntu 20.04,RAM >= 4GB / ROM >= 80GB
开发板:泰山派(2 + 16GB),_注意本篇文章主要针对有emmc的开发板哈_
屏幕:立创10.1寸31Pin MIPI显示触摸屏全贴合总成,详细戳这里<-
鲁班猫SDK:LubanCat_Linux_Generic_SDK_20251029.tgz,_我们使用的版本可能不一样,但是基本都是可以兼容的_
编译镜像版本:我们这次用鲁班猫SDK给泰山派编译的镜像版本是5.10内核的Ubuntu20.04
开始
💻. 你需要准备
- 泰山派官方SDK(可选):https://wiki.lckfb.com/zh-hans/tspi-rk3566/sdk-compilation/linux-compilation.html
- 鲁班猫通用SDK(必选):https://doc.embedfire.com/linux/rk356x/quick_start/zh/latest/quick_start/baidu_cloud/baidu_cloud.html
- 泰山派的Device-tree和wifi-firmware(必选):戳这里下载
📖. 你需要知道
tspi的资源标注


tspi的引脚定义表
- 40Pin默认引脚定义表
- 40Pin引脚复用详细图
sdk中的常用内容存放路径
mk: ~/LubanCat_SDK/device/rockchip/.chips/rk3566_rk3568/
drivers: ~/LubanCat_SDK/kernel-5.10/drivers
defconfig: ~/LubanCat_SDK/kernel-5.10/arch/arm64/configs
device-tree: ~/LubanCat_SDK/kernel-5.10/arch/arm64/boot/dts/rockchip/
device-tree overlay: ~/LubanCat_SDK/kernel-5.10/arch/arm64/boot/dts/rockchip/overlay/
device-tree overlay uEnv: ~/LubanCat_SDK/kernel-5.10/arch/arm64/boot/dts/rockchip/uEnv/
👾. 新手指引
因为是涉及内核编译,所以难度还是有点大的,需要较强的动手能力。因此,在正式开始搭建鲁班猫sdk之前,你如果是非常新手,可以先去跟着泰山派官方的Linux编译教程完整的走一遍,这样对整个流程会有一些认识,后续开展的时候会更顺利一些。下面我们真正开始!
1. 搭建鲁班猫SDK:LubanCat_Gen_SDK
🎉非常感谢野火官方的SDK和开发教程,此处鼓掌n秒,接下来的教程会大量参考野火官方(人家写的很全面,该偷懒的咱得偷…
LubanCat_Gen_SDK是基于Ubuntu LTS系统开发测试的,在开发过程中,主要是用Ubuntu 20.04版本,推荐用户使用Ubuntu20.04或Ubuntu22.04,不支持Ubuntu20.04以下版本开发。
硬件配置推荐:64位系统,硬盘空间⼤于80G。如果您进⾏多个构建,将需要更⼤的硬盘空间。我的虚拟机分了4G内存和4核CPU,体验下来还算凑合能用吧,不知道啥时候能够换一个趁手一点的“鞍”(笑
SDK开发环境搭建
鲁班猫SDK源码有两种获取方式,一个是从云上拉取,另一个是从网盘上面下载离线包,再到本地解压更新,我网没那么好,所以下面主要写一下离线包的安装,更全面的教程指路野火官方<-
安装软件依赖
安装SDK依赖的软件包,没装好这些依赖,编译时候报错会到处飞。
1 | |
安装repo
repo是google⽤Python脚本写的调⽤git的⼀个脚本,主要是⽤来下载、管理项⽬的软件仓库。
1 | |
执行完上面的命令后来验证repo是否安装成功能正常运行。
1 | |
切换Python 3 版本
首先,先要查看一下当前的Python版本:
1 | |
若返回的版本号为Python3版本,则无需再切换Python版本。若为Python2版本或未发现python,则可以用以下方式切换:
1 | |
此时系统默认Python版本便切换为python3,done!

源码获取
首先是解压下载好的sdk包,老样子,我习惯将sdk包解压到~/路径下:
1 | |
2. 制作适配tspi的镜像
修改mk
我这次准备构建5.10内核 + Ubuntu20.04的xfce含有图形操作界面的环境,这里lite指无图形操作界面,xfce指有图形操作界面。所以这里使用配置文件是LubanCat_rk3566_ubuntu_xfce_defconfig,但是鲁班猫默认是6.1内核+Ubuntu20.04的版本,这里需要进行修改:
RK_KERNEL_PREFERRED="5.10",它默认是6.1内核版本。
Ps:如何选择构建Ubuntu版本?RK_UBUNTU_FOCAL=y,FOCAL是Ubuntu20.04版本,这里=y的话,就是要构建Ubuntu20.04,所以注释它,这样就是构建Ubuntu22.04。
修改 ~/LubanCat_SDK/device/rockchip/.chips/rk3566_rk3568/LubanCat_rk3566_ubuntu_xfce_defconfig,完整内容如下:
1 | |
添加网卡驱动和固件
这里是在lubancat_linux_rk356x_defconfig中添加博通网卡配置去编译内核时能生成bcmdhd.ko等内核模块(网卡驱动),修改~/LubanCat_SDK/kernel-5.10/arch/arm64/configs/lubancat_linux_rk356x_defconfig
1 | |
接着,在对应位置~/LubanCat_SDK/ubuntu20.04/overlay-firmware/usr/lib/firmware添加博通网卡的固件wifi-firmware:

添加设备树
在对应位置~/LubanCat_SDK/kernel-5.10/arch/arm64/boot/dts/rockchip添加泰山派的设备树:
修改boot_init.sh
修改boot_init.sh中这个逻辑,让内核默认使用泰山派的设备树:

1 | |
镜像编译
1 | |
最后的编译出来的镜像为~/LubanCat_SDK/output/update/Image/update.img,然后用瑞芯微官方的烧录工具进行烧录就ok啦!
这里有泰山派官方详细的烧录教程,我就不重复赘述啦,讲得很好的!
烧录验证
最后我们就可以拿泰山派来验证一下咱们编译的镜像,启动非常的流畅,可以看到LubanCat的Logo,然后测试wifi连接网络也没有什么问题!
1 | |


这个时候,你把屏幕也接上的话,会显示出linux的操作界面,插上鼠标键盘就可以愉快的当成一个小电脑来玩耍啦,只是很卡就对了(苦笑。
3. tspi添加新的驱动
好的,当我们制作好了泰山派的ubuntu镜像以后,下一步肯定要接着搞事情嘛,做项目必然少不了传感器等外设的加入。为此,我们需要给tspi添加新的驱动。
如何添加驱动是一门大学问,知识点太多太多了,很多工程师上班天天写驱动才练的如此熟练,我们这些小卡拉米想要一下子全部记住还是非常难的,好在驱动不是在考我们数学,所以,熟能生巧!下面我们开始吧!
为10.1寸mipi屏幕添加触摸驱动gt9xx
tspi触摸驱动官方教程<-,讲得非常的仔细,赞哦!
为tspi添加六轴传感器mpu6050驱动
刚好手头上还有之前打电赛剩下的mpu6050模块,而且这芯片也是老江湖了,想必大家都非常熟悉,或多或少听过用过,非常适合做一手驱动演示。同时,刚好linux内核当中内置了mpu6050这个芯片的驱动,那是相当的哇塞了!
Plus:大家拿到一个芯片、模块以后要为它编写驱动之前,不妨先去linux内核里面查看一下有没有前人已经写好的轮子,找到赚到,省时省力,官方驱动网站在这里:www.kernelconfig.io
既然实物有了,驱动也有了,那么我们这次只是简单的演示一手操作流程:
- 想要添加一个传感器,设备树要怎么写?
- 设备树怎么和相应驱动对接?
- 配置文件怎么改?
- 驱动是如何生效的?
- 驱动如何打包到镜像当中?
编写设备树
我选择将mpu6050挂载到tspi的i2c2上面,于是需要按照官方提供的40Pin引脚示意表来进行接线.
用vscode打开设备树:code ~/LubanCat_SDK/kernel-5.10/arch/arm64/boot/dts/rockchip/tspi-rk3566-user-v10-linux.dts
我直接把相关的驱动源码喂给了豆包ai,它给我输出了对应的设备树写法,当然这样可能不太准确,其实还有两种好用的办法:
- 你可以参考linux官方的驱动设备树的说明书,只要是内核自带的驱动,这里都能找到参考写法;
- 你也可以参考内核中其他设备树文件有没有启用这个驱动,拿来主义 ->
grep -nr "invensense,mpu6050".
1 | |
配置kconfig
mpu6050的驱动源码:~/LubanCat_SDK/kernel-5.10/drivers/iio/imu/inv_mpu6050
去到这个目录,我们可以看到目录下的kconfig,找到我们需要配置的项:INV_MPU6050_I2C.
1 | |
接下来,我们开始配置驱动。
1 | |


=n、=m、=y三者的简单区分就是:
=n:为驱动不启用,不编译。=m:为驱动编译成模块.ko,如果打包时将其加入rootfs的话,linux启动时会自动加载。模块可加载(insmod)/可卸载(rmmod),会更加灵活一点。=y:为驱动编译到内核当中,这将是“永久性”的将驱动固化到编译出来的kernel当中,启动时驱动必会加载,不能卸载,适用于那些长期稳定的外设不需要变更内容。
我这里选择把驱动编译成模块ko,然后退出保存即可。
将ko模块打包到根目录系统
鲁班猫SDK里面需要把之前生成的rootfs.img删除掉,这样才能触发脚本重新编译rootfs,会默认自动把新编译出来的所有ko模块都打包到新的rootfs.img里面去。
所以这时咱们要把~/LubanCat_SDK/ubuntu20.04路径下的*rootfs.img给删掉,然后./build.sh重新编译打包镜像。
…
烧录验证
1 | |
能像如图这样加载驱动,说明驱动是成功打好了,报错信息问题不大(只是电源没有配置,没关系的.
1 | |
写在后面
鸣谢:
- https://doc.embedfire.com/linux/rk356x/build_and_deploy/zh/latest/README.html
- https://wiki.lckfb.com/zh-hans/tspi-rk3566/
- https://blog.csdn.net/qq_37264095/article/details/152731497?spm=1001.2014.3001.5502
- https://blog.csdn.net/qq_37264095/article/details/147023151?spm=1001.2014.3001.5502
- https://blog.csdn.net/qq_37264095/article/details/152455773?spm=1001.2014.3001.5502
- https://github.com/luckkfliu/tspi_ubuntu
- https://www.bilibili.com/opus/912396584371617809
…