玩转鲁班猫之-魔改dtb支持 Msata 存储
背景
继上个月尝鲜 Armbian之后,就逐步搭建各种生产力工具平台,这个时候小主板自带的 32GB EMMC就显得有点捉急了(羡慕隔壁家的 OrangePi的可拆卸EMMC)。尝试了几次TF卡 莫名其妙挂载异常后,决定对版上的 Mini Pcie入手。
根据野火科技官方文档的介绍
鲁班猫的mini-pcie接口除了能作为mini-pcie的功能使用外,还能作为msata接口使用,可以连接msata硬盘"
野火科技还附带了dtbo的文件挂载用。当然毫无意外,Armbian无法正常加载。需要参考 dtbo 进行魔改 Armbian的 dtb文件,于是有了本文的摸索记录。
分析官方通过dtbo开启 msata方法
dtbo文件是无法直接查看内容的。借助chatGPT工具,使用下面指令可以反解析出来dts文件
dtc -I dtb -O dts -o rk3568-lubancat-msata-overlay.dts rk3568-lubancat-msata-overlay.dtbo
文件内容如下
/dts-v1/;
/ {
compatible = "rockchip,rk3568";
fragment@0 {
target = <0xffffffff>;
__overlay__ {
status = "disable";
};
};
fragment@1 {
target = <0xffffffff>;
__overlay__ {
status = "okay";
vpcie3v3-supply = <0xffffffff>;
};
};
__fixups__ {
pcie2x1 = "/fragment@0:target:0";
sata2 = "/fragment@1:target:0";
mini_pcie_3v3 = "/fragment@1/__overlay__:vpcie3v3-supply:0";
};
};
虽然格式很奇怪,但这个文件的意思是
- 关闭 pcie2x1 (
/fragment@0:target:0
)status = "disable"
- 开启 mdata (
/fragment@1:target:0
)status = "okay"
参考官方修改办法修改本地 lubancat-2.dtb
1. 找到当前系统所依赖的 dtb文件
cd /boot
cat armbianEnv.txt
2. 反编译为 dts 文件
## 备份原dtb
cp /boot/dtb/rockchip/rk3568-lubancat-2.dtb /boot/dtb/rockchip/rk3568-lubancat-2.dtb.old
## dtb转dts
dtc -I dtb -O dts -o /root/rk3568-lubancat-2.dts /boot/dtb/rockchip/rk3568-lubancat-2.dtb
## 修改 rk3568-lubancat-2.dts
pcie@fe260000 ---> status = "disabled";
sata@fc800000 ---> status = "okay";
## dts转dtb
dtc -@ -Hepapr -I dts -O dtb -o /boot/dtb/rockchip/rk3568-lubancat-2.dtb /root/rk3568-lubancat-2.dts
3. 生效
重启系统后,查看 fdisk -l
确认硬盘是否识别到
美中不足
- 由于Armbian自带系统dtb来自 lubancat-2,因此适配2N的设备并不完整
- 建议在TF卡刻录系统,当系统崩溃时,可通过 SD卡带的系统来进行挂载文件修复
- 修改dtb支持双2.5GB网卡还在调试中,复杂度高,容易无法正常启动。