加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

编译TPLINK WR703Nv1 8M trunk固件

(2013-01-09 17:29:15)
标签:

杂谈

分类: python/GAE/android[转]

1.       安装ubuntu12

2.       安装编译环境,安装下面这些应该就足够编译openwrt

         sudo apt-get update

         sudo apt-get install subversion build-essential

         sudo apt-get install libncurses5-dev ncurses-term zlib1g-dev gawk bison flex autoconf

3.       获取源码

         mkdir openwrt         

         cd openwrt 

         svn co svn://svn.openwrt.org/openwrt/trunk/ 

         cd trunk

         ./scripts/feeds update -a 

         ./scripts/feeds install -a

4.       检查一下环境,如果报告有依赖项缺少,请用apt-get安装缺少的库

         make defconfig 

         make prereq

5.       进行一些编译前的修改,这节的东西请根据自己的需要进行修改。但总体思路不变

 

5.a. 添加对中文编码cp936的支持,openwrt实际上是支持cp936的,只是没开放而已

         修改文件openwrt/trunk/package/kernel/modules/nls.mk 

         在文件尾部添加

                   define KernelPackage/nls-cp936

                     SUBMENU:=Native Language Support

                     TITLE:=Codepage 936 (china)

                     KCONFIG:=CONFIG_NLS_CODEPAGE_936

                     FILES:=$(LINUX_DIR)/fs/nls/nls_cp936.ko

                     AUTOLOAD:=$(call AutoLoad,25,nls_cp936)

                     $(call AddDepends/nls)

                   endef

 

                   define KernelPackage/nls-cp437/description

                   Kernel module for NLS Codepage 936 (china)

                   endef

 

                   $(eval $(call KernelPackage,nls-cp936))

         保存,这样在以后执行make menuconfig时,在Kernel modules ---> Native Language Support 

         下面会多一个< > kmod-nls-cp936................ Codepage 936 (china) (NEW)      

5.b. 修改openwrt/trunk/tools/firmware-utils/src/mktplinkfw.c, 使编译时可以编译8m的固件,如果编译4m的固件不需要修改.  红字是修改的地方,修改固件最大size8m

                   .id = "4Mlzma",

                   .fw_max_len = 0x7c0000,

                   .kernel_la = 0x80060000,

                   .kernel_ep = 0x80060000,

                   .rootfs_ofs = 0x100000,

注:我这里是偷懒的办法,实际上还有其他修改方法。就不一一列举了。另外这是trunk版本的修改法,如果各位编译的是老版本或者dreambox的版本,修改的方法不一样。

dreambox修改如下:

target/linux/ar71xx/files/arch/mips/ar71xx/mach-tl-wr703n.c修改如下:
static struct mtd_partition tl_wr703n_parts[] = {
        {
                .name                = "u-boot",
                .offset                = 0,
                .size                = 0x020000,
                .mask_flags        = MTD_WRITEABLE,
        }, {
                .name                = "kernel",
                .offset                = 0x020000,
                .size                = 0x100000,
        }, {
                .name                = "rootfs",
                .offset                = 0x120000,
                .size                = 0x6d0000,
        }, {
                .name                = "art",
                .offset                = 0x7f0000,
                .size                = 0x010000,
                .mask_flags        = MTD_WRITEABLE,
        }, {
                .name                = "firmware",
                .offset                = 0x020000,
                .size                = 0x7d0000,
        }
};
################################################
tools/firmware-utils/src/mktplinkfw.c
修改如下:
        }, {
                .id                = "TL-WR703Nv1",
                .hw_id                = HWID_TL_WR703N_V1,
                .hw_rev                = 1,
                .fw_max_len        = 0x7c0000,
                .kernel_la        = 0x80060000,
                .kernel_ep        = 0x80060000,
                .rootfs_ofs        = 0x100000,

 

5.c. 从这里开始是个性设置,自行斟酌

I.添加 3322 DDNS 动态域名解析

/feeds/packages/net/ddns-scripts/files/usr/lib/ddns/services
添加
"3322.org"           "http://[USERNAME]:[PASSWORD]@members.3322.org/dyndns/update?system=dyndns&hostname=[DOMAIN]&myip=[IP]&wildcard=OFF"

II.
 修改配置项
/feeds/packages/net/ddns-scripts/files/etc/config/ddns
config service "myddns"
        option enabled                  "1"

        option service_name        "3322.org"
        option domain                "xxxx.3322.org"

III.
 修改防火墙添加开放端口
/package/firewall/files/firewall.config
添加内容:
config 'rule'
        option 'target' 'ACCEPT'
        option '_name' 'tr'
        option 'src' 'wan'
        option 'proto' 'tcpudp'
        option 'dest_port' '51413'

config 'rule'
        option 'target' 'ACCEPT'
        option '_name' '9091'
        option 'src' 'wan'
        option 'proto' 'tcp'
        option 'dest_port' '9091'

IV.
 修改无线默认启动,加密及支持150M
/package/mac80211/files/lib/wifi/mac80211.sh
修改内容:注意对齐,参考修改
在文件最后修改以下内容:
config wifi-device  radio$devidx
        option type     mac80211
        option channel  ${channel}
        option macaddr        $(cat /sys/class/ieee80211/${dev}/macaddress)
        option hwmode        11${mode_11n}${mode_band}
$ht_capab
        # REMOVE THIS LINE TO ENABLE WIFI:
        option disabled 0
        option htmode HT40-
        option noscan 1
        option country CN

config wifi-iface
        option device   radio$devidx
        option network  lan
        option mode     ap
        option ssid        OpenWrt
        option encryption psk2  --------------------
加密方式
        option key         xxxxxxx   ----------------------
密码(8)
EOF
        devidx=$(($devidx + 1))
        done
}

V.
 修改路由器名字和时区
/package/base-files/files/etc/config/system
修改内容:
config system
        option hostname        OpenWrt
         option zonename       Asia/Shanghai
        option timezone        CST-8

VI. 修改Transmission配置文件
/feeds/packages/net/transmission/files/transmission.config
修改内容自己根据需要修改吧

 

VII. 修改network配置,配置成二级路由

路径:./openwrt/trunk/package/base-files/files/etc/config
文件:network
修改内容:

 

# Copyright (C) 2006 OpenWrt.org


config interface loopback

option ifname lo

option proto static

option ipaddr 127.0.0.1

option netmask 255.0.0.0


config interface lan

option type bridge

option proto static

option ipaddr 192.168.10.1

option netmask 255.255.255.0


config interface wan

option ifname eth0

option _orig_ifname eth0

option _orig_bridge false

option proto dhcp

 

VIII. 开启lanDHCP,这里是因为我的703n用来当二级路由
/package/dnsmasq/files/dhcp.conf
config dhcp lan
        option interface        lan
        option start         100
        option limit        150
        option leasetime        12h
      option ignore        0

 

IX. 添加利用reset键的一键切换路由工作模式

在如下位置新建4个文件,在保存后,请修改权限为777

/target/linux/ar71xx/base-files/etc/hotplug.d/button/00-button

. /etc/functions.sh

do_button () {

        local button

        local action

        local handler

        local min

        local max

 

        config_get button $1 button

        config_get action $1 action

        config_get handler $1 handler

        config_get min $1 min

        config_get max $1 max

 

        [ "$ACTION" = "$action" -a "$BUTTON" = "$button" -a -n "$handler" ] && {

                [ -z "$min" -o -z "$max" ] && eval $handler

                [ -n "$min" -a -n "$max" ] && {

                        [ $min -le $SEEN -a $max -ge $SEEN ] && eval $handler

                }

        }

}

 

config_load system

config_foreach do_button button

 

 

/target/linux/ar71xx/base-files/etc/hotplug.d/button/change2ap

#!/bin/sh

uci delete network.wan

uci delete network.lan

uci set network.lan=interface

uci set network.lan.ifname=eth0

uci set network.lan.type=bridge

uci set network.lan.proto=static

uci set network.lan.ipaddr=192.168.1.2

uci set network.lan.netmask=255.255.255.0

uci set network.lan.gateway=192.168.1.1

uci set network.lan.dns=192.168.1.1

uci commit network

uci set dhcp.lan.ignore=1

uci commit dhcp

reboot

 

/target/linux/ar71xx/base-files/etc/hotplug.d/button/change23dhcp

#!/bin/sh

uci delete network.wan

uci delete network.lan

uci set network.lan=interface

uci set network.lan.type=bridge

uci set network.lan.proto=static

uci set network.lan.ipaddr=192.168.10.1

uci set network.lan.netmask=255.255.255.0

uci set network.wan=interface

uci set network.wan.ifname=eth0

uci set network.wan.proto=dhcp

uci set network.wan._orig_ifname=eth0

uci set network.wan._orig_bridge=false

uci commit network

uci delete dhcp.lan.ignore

uci commit dhcp

reboot

 

 

/target/linux/ar71xx/base-files/etc/hotplug.d/button/change23g

#!/bin/sh

uci delete network.wan

uci delete network.lan

uci set network.lan=interface

uci set network.lan.ifname=eth0

uci set network.lan.type=bridge

uci set network.lan.proto=static

uci set network.lan.ipaddr=192.168.1.1

uci set network.lan.netmask=255.255.255.0

uci set network.wan=interface

uci set network.wan.ifname=ppp0

uci set network.wan.proto=3g

uci set network.wan.maxwait=0

uci set network.wan.service=evdo

uci set network.wan.device=/dev/ttyUSB0

uci set network.wan.username=ctnet@mycdma.cn

uci set network.wan.password=vnet.mobi

uci set network.wan.auto=1

uci commit network

uci delete dhcp.lan.ignore

uci commit dhcp

reboot

 

修改/package/base-files/files/etc/config/system,在尾部添加

config button

         option button 'reset'

         option action 'released'

         option handler '/etc/hotplug.d/button/change23g'

         option min '0'

         option max '2'

 

config button

         option button 'reset'

         option action 'released'

         option handler '/etc/hotplug.d/button/change2ap'

         option min '3'

         option max '8'

 

config button

         option button 'reset'

         option action 'released'

         option handler '/etc/hotplug.d/button/change2dhcp'

         option min '9'

         option max '99'

这样以后按住reset2秒内,  3-8  9秒以上,会自动切换到对应的网络配置,并自动重启路由器。 呵呵方便点而已。免得还得进web进行修改。

按住reset0-2秒放开,切换到3g配置,

按住reset3-8秒放开,切换到ap模式,

reset 9秒以上放开,切换到二级路由dhcp模式。


X. 修改挂载点

路径:./openwrt/trunk/package/block-mount/files

修改   10-swap, 20-fsck, 40-mount 的权限为777  

        

6.       设置编译选项

         make menuconfig

 

7.       最后make V=99进行编译

 

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有