RK3568设备西瓜皮v3适配immortalwrt
适配设备信息
1 | # NL68K 西瓜皮V3购买链接:https://item.taobao.com/item.htm?id=711773675433 |
获取官方源码
1 | # 下载源码(--single-branch 仅下载单个分支/标签、--depth=1 只下载最新的一次提交、-b 指定分支/标签) |
开始适配设备
- 在
target/linux/rockchip/image/armv8.mk
文件最后添加如下内容,使其出现在make menuconfig
里面
1 | # target/linux/rockchip/image/armv8.mk |
- 添加适配设备名到指定文件使其可初始化网络和优化网络设备性能,记得不要包含
+
号哦
1 | # 将如下带 + 的行添加到:target/linux/rockchip/armv8/base-files/etc/board.d/02_network |
- 在内核源码中为需要适配的设备添加设备树源码文件
1 | # 将要适配设备的内核设备树源码文件放到指定位置,这样在Immortalwrt构建时该文件便会复制到内核源码中对应的位置 |
- 在
U-Boot
中添加本适配的设备
1 | # 首先在 package/boot/uboot-rockchip/Makefile 中添加本适配设备 |
- 适配过程中用到的相关变量和文件及解析
1 | # target/linux/rockchip/image/armv8.mk |
驱动 SPI屏幕
自带的SPI屏幕驱动器为GC9307,而它几乎与ST7789V相同,所以这里拿ST7789V模块改下来用
首先在
immortalwrt/package/kernel/linux/modules/video.mk
中添加如下内容使能在菜单中选择ST7789V
内核模块
1 | # 在 menuconfig 中的位置 > Kernel modules > Video Support > <*> kmod-fb-tft-st7789v |
- 再将如下内容的补丁放到
immortalwrt/target/linux/rockchip/patches-6.6/999-Add-GC9307.patch
中使内核能驱动这款屏幕
1 | --- a/drivers/staging/fbtft/fb_st7789v.c |
- 还需修改内核设备树中的spi3节点与内核源码文件中的内容相匹配来将设备和驱动绑定起来
1 | # 本文中LEDE的dts中已有spi3节点仅需修改其中的 compatible = "galaxycore,gc9307" 为 compatible = "sitronix,st7789v" 即可 |
- 若使用其他人的设备树需要修改
immortalwrt/target/linux/rockchip/files/arch/arm64/boot/dts/rockchip/rk3568-xgp*.dts
中的spi3节点为如下内容
1 | ...... |
- 内核显示输出及简单的显示测试
1 | root@ImmortalWrt:~# dmesg | grep fb |
其他优化项目
- 首次开机时自动执行命令和修改配置,根据你的需求及配置修改,这里仅提供简单的示例
1 | # 在 /etc/uci-defaults/ 目录中的所有脚本都会被 /etc/init.d/boot 服务自动执行并在成功执行后删除,脚本名称前面的数字大小代表启动顺序 |
- 添加QModem移动模组管理程序
1 | # 添加该项目源码后更新并安装,然后就可以在后面的 menuconfig 中选择构建使用了 |
- 解决EMMC和SD卡均刷OpenWrt后U-Boot的启动问题
1 | # 若EMMC和SD卡都用的是OpenWrt中的主线U-Boot 2024.10则会导致SD卡启动时内核用SD卡上的而RootFS依旧用EMMC上的,但分别用不同的就没问题 |
- 修改构建后系统默认使用的软件源
1 | # 以将源地址 https://downloads.immortalwrt.org 或 https://mirrors.vsean.net/openwrt 更改为 https://mirrors.cernet.edu.cn/immortalwrt 为例 |
- 调整内核后缀与immortalwrt官方源中版本一致来使用官方源中的内核模块
1 | # 首先请在官方的配置文件上增减软件包,因为官方内核中启用了BTF功能,而自编的没有将导致自编译的系统无法使用官方源中的内核模块 |
- 将 RM500Q 从 USB 切换到 PCIE,需要用到开头配套的
miniPCIE转5G转接板
,先在USB模式下通过AT命令切换成PCIE模式,然后再插到转接板上就行了
1 | # 注意:一旦切换为PCIE模式并重启后,/dev/ttyUSB* 之类的AT端口可能将失效,若你没有让模块支持PCIE模式的接口或转接板,还在USB接口下模块将因失去联系而无法调回 |
- 关于通过USB接入的FM350-GL在OpenWrt下命令行中手动拨号联网的方法
1 | # 部分FM350-GL模块的AT命令及解释 |
- 其他零碎的小知识
1 | # 一个可查询软件包相关信息的网站:https://openwrt.pkgs.org/ |