从家里翻出来一台斐讯K2路由器,这台路由器大概是我八年前硬改过的,因为主板Flash焊盘同时支持了SOP8和SOP16封装,所以当时直接把原来SOP8封装的8M Flash芯片换一个SOP16封装的32M Flash,当时焊接水平比较差也没啥好工具好不容易才搞好的,不过最后当我刷入了官方的固件后,实际也只能识别出8M,因为对openwrt不太了解自己编译也没成功所以就不了了之了,如今再来折腾就很轻松能解决了。
源码修改
这里基于https://github.com/immortalwrt/immortalwrt.git的源码修改
clone代码切换到最新的Tag:v25.12.2
这里我是基于官方的phicomm_k2-v22.5复制一份出来修改,修改如下:
# target/linux/ramips/image/mt7620.mk 文件增加以下代码
define Device/phicomm_k2-v22.5-32m
SOC := mt7620a
IMAGE_SIZE := 32128k
DEVICE_VENDOR := Phicomm
DEVICE_MODEL := K2
DEVICE_VARIANT := v22.5 32M
DEVICE_PACKAGES := kmod-mt76x2
endef
TARGET_DEVICES += phicomm_k2-v22.5-32m
然后在target/linux/ramips/dts/文件夹下增加一个文件mt7620a_phicomm_k2-v22.5-32m.dts:
#include "mt7620a_phicomm_k2x.dtsi"
/ {
compatible = "phicomm,k2-v22.5-32m", "ralink,mt7620a-soc";
model = "Phicomm K2 v22.5 32M";
};
&partitions {
partition@50000 {
label = "permanent_config";
reg = <0x50000 0x50000>;
read-only;
};
partition@a0000 {
compatible = "denx,uimage";
label = "firmware";
reg = <0xa0000 0x1f60000>;
};
};
ðernet {
mediatek,portmap = "llllw";
};
&wmac {
pinctrl-names = "default", "pa_gpio";
pinctrl-0 = <&pa_pins>;
pinctrl-1 = <&pa_gpio_pins>;
};
其实这个文件也是复制mt7620a_phicomm_k2-v22.5.dts后修改的,主要是修改partition@a0000里的reg
重新编译
改好后重新编译配置时就会看到新的选项了

确保网络没有问题,编译还是很顺利的,经过4个半小时的编译,生成编译出固件:

刷机
刷机比较简单,因为多年前我就已经给这个路由器刷入了Breedloader,所以长按rest键上电就会进入了, 直接上传固件包开刷,成功进入系统,我把Python3也装了,最后还剩下14M的空间,虽然只是一个百兆网口的路由器,但是无线性能还行,支持5G放在公司插网线作为一个AP用还是绰绰有余的

评论区