占楼备用。这层也占了吧。应该够用了。
已经全部都编译完毕了。安装环境花了1天。
还没有试tp-link 的 uboot 是否是真的屏蔽了USB。我从日志上看应该是没有禁用。晚上回去试下。
编译固件花了整整3天3夜,72小时。 主要时间都花在了,编译交叉编译工具链上了。
此贴用来发编译uboot、固件的方法。
下载 编译uboot需要用到的 TP-LINK GPL 。。。。。。
机器是941 V2.3所以我们要下载的就是 V2版本。
安装固件编译环境中。。。
安装Fedora 14 做为编译环境。
当然你要是不喜欢用 Fedora 也可以用别的。
具体的编译环境的配置,我就不细说了,我一般是缺什么安装什么。
我这只说固件要怎么改才能让USB可以用。
注意:我这用的是最新版的trunk. 如果你的是老代码,可能是不一样的。新版的文件目录改变。
这里写的路径都是相对trunk的路径。
目录 ./build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.10.24/arch/mips/ath79/修改 Kconfig
找到此位置 加入 红色内容
config ATH79_MACH_TL_WR941ND bool "TP-LINK TL-WR941ND support"
select SOC_AR913X
select ATH79_DEV_DSA
select ATH79_DEV_ETH
select ATH79_DEV_GPIO_BUTTONS
select ATH79_DEV_LEDS_GPIO
select ATH79_DEV_M25P80
+ select ATH79_DEV_USB
select ATH79_DEV_WMAC
修改 mach-tl-wr941nd.c
加入头文件
#include "dev-usb.h"
在函数中加入调用。static void __init tl_wr941nd_setup(void)
{
......
ath79_register_usb(); // 调用USB初始化
}
添加完毕后,就完成了固件中USB的添加。
来一张 插上U盘后的TTL信息的图。
改8M固件
打开./tools/firmware-utils/src/mktplinkfw.c 看看
static struct flash_layout layouts[] = {
{
.id = "4M",
.fw_max_len = 0x3c0000,
.kernel_la = 0x80060000,
.kernel_ep = 0x80060000,
.rootfs_ofs = 0x140000,
}, {
.id = "4Mlzma",
.fw_max_len = 0x3c0000,
.kernel_la = 0x80060000,
.kernel_ep = 0x80060000,
.rootfs_ofs = 0x100000,
}, {
.id = "8M",
.fw_max_len = 0x7c0000,
.kernel_la = 0x80060000,
.kernel_ep = 0x80060000,
.rootfs_ofs = 0x140000,
}, {
.id = "8Mlzma",
.fw_max_len = 0x7c0000,
.kernel_la = 0x80060000,
.kernel_ep = 0x80060000,
.rootfs_ofs = 0x100000,
}, {
.id = "16Mppc",
.fw_max_len = 0xf80000,
.kernel_la = 0x00000000,
.kernel_ep = 0xc0000000,
.rootfs_ofs = 0x2a0000,
}, {
/* terminating entry */
}
};
看到红色的字了吗,在代码中,已经定义好了4M 8M 16M的分区信息。
所以只要修改下面:
向下翻
{
.id = "TL-WR941NDv2",
.hw_id = HWID_TL_WR941ND_V2,
.hw_rev = 2,
.layout_id ="8M",
},
且
./target/linux/ar71xx/image/Makefile, 把941ndv2最后的4M改成了8M或8Mlzma或16M或16Mlzma就可以得到相应的固件
$(eval $(call SingleProfile,TPLINK,64kraw,TLWR941NV2,tl-wr941nd-v2,TL-WR941ND,ttyS0,115200,0x09410002,2,8M))
固件编译就说到这了。
下面研究研究编译带httpd的俗称刷不死的uboot.
待续......
[ 此帖被comeon010在2014-01-09 22:09重新编辑 ]