分类: LINUX
2014-12-18 09:10:53
openWRT在官方支持的路由器上搞起来是有章可循的,这里面有各厂各型号的刷机指南。 。
现在想把openWRT移植到列表中没有的路由器上。终极目标是新增target system platform,不过还是先从简单搞起,先新增一个target profile。
TL-WVR300配置是AR9341+nor 8M+RAM 64M,AR9341这个平台openwrt中即为Atheros AR7XXX/AR9XXX,我要openWRT attitude adjustment工程在menuconfig - target profile中支持WVR300。
1. WVR300宏定义
tools\firmware-utils\src\mktplinkfw.c
#define
HWID_TL_WVR300_V1
0x03000001
#define
HWID_TL_WVR300_V2
0x03000002
#define
HWID_TL_WVR300_V3
0x03000003
2. WVR300 board 属性
tools\firmware-utils\src\mktplinkfw.c
在static struct board_info boards[] 中添加
{
.id = "TL-WVR300v1",
.hw_id = HWID_TL_WVR300_V1,
.hw_rev = 1,
.layout_id = "8Mlzma",
},{
.id = "TL-WVR300v2",
.hw_id = HWID_TL_WVR300_V2,
.hw_rev = 1,
.layout_id = "8Mlzma",
},{
.id = "TL-WVR300v3",
.hw_id = HWID_TL_WVR300_V3,
.hw_rev = 1,
.layout_id = "8Mlzma",
},
{
.id = "TL-WVR300",
.hw_id = HWID_TL_WVR300_V1,
.hw_rev = 1,
.layout_id = "8Mlzma",
}
3. 镜像生成
在target\linux\ar71xx\image\Makefile添加镜像生成命令来生成factory.bin
$(eval $(call
SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWVR300V1,tl-wvr300-v1,TL-WVR300,ttyS0,115200,0x03000001,1,8Mlzma))
$(eval $(call
SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWVR300V2,tl-wvr300-v2,TL-WVR300,ttyS0,115200,0x03000002,1,8Mlzma))
$(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWVR300V3,tl-wvr300-v3,TL-WVR300,ttyS0,115200,0x03000003,1,8Mlzma))
$(eval $(call MultiProfile,TLWVR300,TLWVR300V1 TLWVR300V2 TLWVR300V3))
openwrt后续trunk版本与AA可能不同,注意区分参考。
4. 添加 menuconfig 菜单
在target\linux\ar71xx\generic\profiles\tp-link.mk 添加Kconfig定义
define Profile/TLWVR300
NAME:=@@@@@ @@@@@@ TP-LINK TL-WVR300
PACKAGES:=
endef
define
Profile/TLWVR300/Description
Package set optimized for the TP-LINK
TL-WVR300.
endef
$(eval $(call Profile,TLWVR300))
define Profile/TLWVR300为选项CONFIG 宏,CONFIG_TARGET_ar71xx_generic_TLWVR300。
其中ar71xx是target_system名,genenric为subtarget名
NAME即为显示在menuconfig中的选项名;
5. 必须先删除tmp/目录
因为make menuconfig实际上依赖于,tmp/.config-target.in,若已存在就从此路径下去,若不存在则从target/linux/ar71xx/下重新生成到tmp目录下。
上面弄完后,menuconfig-target system选择,Atheros AR7XXX/AR9XXX,然后再到target profile下面应该就可以看到 TL-WVR300了。
make后,bin/ar71xx/下面会生成wvr300的factory.bin,但是这时候下载到flash还不能启动,
因为内核并没有支持wvr300,待续 kernel arch machine新增路由器。