为nanopi r2s plus适配armbian
前言
去年为了折腾一下旁路由,精挑细选,考虑到性能以及体积,最后选择了nanopi r2s plus。
可是买回来才发现arm板子的兼容性实在是太差了,为了安装上dae,调整内核参数后自己尝试编译官方固件的内核,结果根本无法启动,当然官方是没有管这些事情的,后面也就不了了之。
后来发现了armbian项目,这个项目对各种板子都做了适配,u-boot以及dts等都做了“微调”,对内核兼容性非常高,至少我编译的各种内核都可以正常启动。
也幸好他们为r2s做了适配,并且plus版本和原版本没有太大区别,只是多了一个emmc,一个wifi,一个usb2,以及wan和lan的led定义有变,就算直接刷入r2s的包也可以直接使用。
确认dts文件
基本原理就是根据官方的dts文件修改armbian/build项目中的dts文件即可。
以下操作均在armbian/build项目中进行。
找到r2s的配置文件config/boards/nanopi-r2s.csc
,确认dts文件为rk3328-nanopi-r2-rev00.dts
。(当然这里只是确认,实际上dts文件是由内核配置选项确定的)
并且比如目前情况下,当选择current时,编译的是6.12的内核,那么就找到patch/kernel/archive/rockchip64-6.12/dt/
文件夹。打开rk3328-nanopi-r2-rev00.dts
文件进行修改。
添加emmc支持
添加emmc支持很简单,找到以下内容
&emmc {
status = "disabled";
};
修改为以下内容
&emmc {
status = "okey";
};
即可
添加sdio wifi支持
找到以下内容
&sdmmc_ext {
status = "disabled";
};
&sdio_pwrseq {
status = "disabled";
};
这里需要定义sdmmc_ext节点,以及把sdio供电给打开。修改为以下内容
&sdmmc_ext {
vmmc-supply = <&vcc_io>;
vqmmc-supply = <&vcc_18>;
max-frequency = <150000000>;
sd-uhs-sdr104;
status = "okay";
/delete-node/ bcrmf@1;
rtl8822cs@1 {
reg = <1>;
compatible = "realtek,rtl8822cs";
};
};
&sdmmc0ext_clk {
rockchip,pins = <3 RK_PA2 3 &pcfg_pull_none_8ma>;
};
&sdmmc0ext_cmd {
rockchip,pins = <3 RK_PA0 3 &pcfg_pull_up_8ma>;
};
&sdmmc0ext_bus4 {
rockchip,pins =
<3 RK_PA4 3 &pcfg_pull_up_8ma>,
<3 RK_PA5 3 &pcfg_pull_up_8ma>,
<3 RK_PA6 3 &pcfg_pull_up_8ma>,
<3 RK_PA7 3 &pcfg_pull_up_8ma>;
};
&sdio_pwrseq {
status = "okay";
};
即可
尾声
由于r2s和r2s plus非常相似,armbian为r2s的patch也可以用在这上面,非常舒适,不用再作其他修改就行。由于我不用多余的usb2接口,我也就懒得再继续修改了。
保存文件重新编译刷机一气呵成。
编译镜像时,选择r2s即可。同时在编译内核时,wifi网卡驱动不用特别留意,默认是启用编译的,无需担心。
最后把我编译的镜像放在网盘(由于我需要使用dae,因此启用了btf相关的选项),供有需要的人使用。
咕咕咕~