由于每个CPU架构的添加方式都不一样,所以我决定分N篇文章来写。首先就是Ramips架构,因为我有一台FW300R-V7的路由器(MT7620N的CPU),很不幸,不在Openwrt的官方支持列表里,网上的固件也不多,于是我决定自己写这路由器设备硬件信息描述
首先,就是我的试坑经历了,我找过配置差不多的路由器配置直接修改’compatible’和’model ‘,很遗憾,修改以后全部无法启动,不分配IP。后来确定是操作没做全。
本文仅供参考,我其实也没完全弄明白
好了,题外话不多说,我们切入主题
现在,我们需要找一个差不多能用(网口和LED都正常,就型号不同;当然如果你不介意LED的话,网口正常的机型也可以)的机型。直接复制他的硬件描述, 到一个新的dts文件里面。文件命名示例:mt7620n_fast_fw300r-v7.dts
然后修改 ‘compatible’和’model ‘ 比如
2020/6/27更新:请把旧文件中所有关于原机型的配置文件都改成新的
将此文件复制到./target/linux/ramips/dts目录中。
接下来,我们修改./target/linux/ramips/mt7620/base-files/etc/board.d下的02_network,这个文件是网络配置脚本 ,上一次直接修改好像就是这里没修改失败的
我们在ramips_setup_interfaces()这里直接复制黏贴你网口正常机器的配置就好了或者可以试试
[text] fast,fw300r-v7) ucidef_add_switch “switch0” \ “0:wan” “1:lan” “2:lan” “3:lan” “4:lan” “6t@eth0” ;; [/text]
然后,我们在修改同目录下的01_leds文件,如果不会配置的话就直接复制你那个LED正常但型号不同的LED配置即可,或者直接 ‘你设定的生产厂商,你设定的型号\‘即可 (至于具体如何配置LED,我现在我虽然成功了,但还没搞明白LED是怎么样设置的,等我完全搞明白在写文章发吧…现在发怕说错)
比如我就没有配置LED
接着,让这个新机型出现在选择列表中
我们编辑./target/linux/ramips/image目录下的mk文件,比如我是mt7620.mk
在里面添加
[text] define Device/fast_fw300r-v7 //机型文件去掉后缀和CPU MTK_SOC := mt7620n IMAGE_SIZE := 16064k DEVICE_VENDOR := FAST //生产厂商 DEVICE_MODEL := FW300R-V7 //具体型号 SUPPORTED_DEVICES += fw300r-v7 //具体型号 endef TARGET_DEVICES += fast_fw300r-v7 //机型文件去掉后缀和CPU [/text]
2020/6/27更新:mk文件应把MTK_SOC换成SOC,新版本的编译换MTK_SOC为SOC…我没注意到,然后编译失败了几十次看这个文件的时候才发现,太坑了
[text] define Device/fast_fw300r-v7 SOC := mt7620n IMAGE_SIZE := 16064k DEVICE_VENDOR := FAST DEVICE_MODEL := FW300R-V7 SUPPORTED_DEVICES += fw300r-v7 endef TARGET_DEVICES += fast_fw300r-v7 [/text]
记得修改成你的和把注释去掉。如果我的解释不清楚的话你就照着这个配置文件慢慢找规律
更改完毕后,删除编译目录下的tmp,然后输入make menuconfig,应该就能看到你的新添加的机型了,然后简单的选择下,编译,不出错的话就能在bin里面看到固件了。
如果有错误或解释不全面的欢迎提出