(1)-编译703_8M固件
 
 1.    target/linux/ar71xx/image/Makefile
 
 
1. $(eval $(call SingleProfile,TPLINK-LZMA,$(fs_64kraw),TLWR703,tl-wr703n-v1,TL-WR703N,ttyATH0,115200,0×07030101,1,8Mlzma))
 
  
 
 2.    tools/firmware-utils/src/mktplinkfw.c
 
 
1. .id = “TL-WR703Nv1″,
2. .hw_id = HWID_TL_WR703N_V1,
3. .hw_rev = 1,
4. .layout_id = “4Mlzma”,
 
 将其中的4Mlzma替换成8Mlzma

 
 
 (2)-修改默认WIFI,添加WIFI配置,WIFI名为MAC后六位
 修改package/kernel/mac80211/files/lib/wifi/mac80211.sh
 option disabled 1改成0,默认开启wifi。
 option disabled 0下添加
 
 
1. option htmode HT40+
2. option channel 1
3. option country CN
4. option noscan 1
5. option
 
 option htmode HT40+ 使用40MHz频宽,但只支持1-7信道。HT40-,支持5-13信道。HT20 支持1-13信道,20MHz频宽 
 
option channel 1使用信道1,1-13之间。若有限定频宽,信道参考如上。 
 
option country CN 设定wifi标准为中国 CN、JP、HK均可开启13信道,默认的US只有1-12信道 
 
option noscan 1 强制使用40MHz的频宽 
 
option txpower 17 发射功率为17dBm,大约50mW。不可设定过大,否则有烧毁PA的危险。

修改默认SSD:
 
 
1. config wifi-iface
2. option device radio$devidx
3. option network lan
4. option mode ap
5. option ssid OpenWrt_$(cat /sys/class/ieee80211/${dev}/macaddress|awk -F ":" '{print $4""$5""$6 }'| tr a-z A-Z)option encryption none
6. option
 
 
 option mode ap,配置模式为AP。例如WDS之类。
 option ssid     OpenWrt_$(cat /sys/class/ieee80211/${dev}/macaddress|awk -F ":" '{print $4""$5""$6 }'| tr a-z A-Z)  默认SSID为Openwrt_MAC后六位
 option encryption none 是否开启加密,可以是psk、psk2、psk2-ccmp等
 option network  lan 位于哪个接口的管理之下,默认lan。一般无需修改 
 (3)-修改root密码
 
 默认情况下root是没有密码的,需设定密码才能开启ssh。 
 
修改shadow文件,位于package/base-files/files/etc
 
 
1. root:$1$wEehtjxj$YBu4quNfVUjzfv8p/PBo5.:0:0:99999:7:::
 
 密码经过加密,将密码修改成admin。 
 
 (4)-修改路由连接数,优化网络参数
 
 
修改路由连接数,优化网络参数
 连接数默认情况下是1.6万多吧。可以选择性修改。
 修改sysctl.conf文件,位于package/base-files/files/etc/ 
 
1. net.netfilter.nf_conntrack_max=65535
 
 65535自行替换。 
 

 (5)-默认中文,修改主机名,添加并修改默认主题,设定时区
默认中文,添加并默认主题
 修改feeds/luci/libs/web/root/etc/config
 
 
1. option
 
 
 改为
 
 
 
1. option
  并添加 
 
1. config internal languages
2. option en 'English'
3. option zh_cn 'chinese'
 
 
 添加主题
 1.首先打开trunk/feeds/luci/themes这个目录,你会发现里面有很多主题(除了base为基础包外)每一个文件夹就
 是一个主题
 2.我们得修改makefile文件,使其制定编译的时候能找到openwrtcn这个主题
 找到路径为trunk/feeds/luci/contrib/package/luci下面的makefile文件双击打开
 搜索OpenWrt.org这样很快就定位到添加主题的地方了,在下面空白处增加一句
 效果如下
 
 
1. $(eval $(call theme,base,Common base for all themes))
2. (eval $(call theme,openwrt,OpenWrt.org ))
3. (eval $(call theme,bootstrap,Bootstrap Theme))
4. (eval $(call theme,openwrtcn,openwrtcn Theme (default),,,1))
5.    
6. (eval $(call theme,freifunk-bno,Freifunk Berlin Nordost Theme,\
7. <stefan-at-freifunk-bno-dot-de>))
8.    
9. (eval $(call theme,freifunk-generic,Freifunk Generic Theme,\
10. <freifunk-at-somakoma-dot-de>))
 
 
保存退出即可。
 修改默认主题
 修改feeds/luci/libs/web/root/etc/config
 
 
1. option mediaurlbase /luci-static/openwrt.org
 
 
可根据需要将openwrt.org修改为Bootstap、openwrtcn、freifunk-bno、freifunk-generic
修改主机名,设定时区
 修改package/base-files/files/etc/config/system 
 
1. config system
2. option conloglevel 8
3. option cronloglevel 8
4. option hostname Openwrt
5. option timezone Asia/Shanghai
6. option timezone CST-8
7.  config timeserver ntp
8. .openwrt.pool.ntp.org
9. .openwrt.pool.ntp.org
10. .openwrt.pool.ntp.org
11. .openwrt.pool.ntp.org
12. option
 option hostname Openwrt 设定主机名 
 
 
 option timezone Asia/Shanghai 时区设置为亚洲/上海
 option timezone CST-8 正8区
 list server 就是ntp服务器了。 
 (6)-添加aria2,luci添加,web管理界面添加
aria2的源码来自于 
 http://sourceforge.net/projects/aria2/files/stable/
我们这里以aria2-1.17.1版本为例下载的源码格式为aria2-1.17.1.tar.bz2
 
 
aria2的依赖安装
 
 

   很多人没安装这依赖编译时会报错的 
 
 
 
1. sudo apt-get update 
2. -get install autoconf automake libcppunit-dev autopoint openssl libtool sphinx-common sphinxsearch libgcrypt11-dev libxml2-dev pkg-config
 
  
开始集成aria2c
 
  

    首先把下载下来的aria2-1.17.1.tar.bz2放进openwrt源码根目录的dl目录 
  
 
  
获取md5码
 
  

    ctrl+alt+T弹出终端输入 
  
 
  
1. md5sum /……/……/trunk/dl/aria2-1.17.1.tar.bz2 省略好代表openwrt的源码的路径补全,回车就能获取md5码,记住用用的
 
  在/feeds/packages/net/aria2/路径下创建aria2c源码的makefile文件内容如下 (make文件及其他本文需要文件见文章最下方) 
  
1. #
2. (C) 2012 OpenWrt.org
3.  #
4. This is free software, licensed under the GNU General Public License v2.
5. for more information.
6.  #
7. include $(TOPDIR)/rules.mk
8.         
9. :=aria2 名字
10. :=1.17.1
11. :=1
12.         
13. :=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 
14. :=
15. :=86229ef8d289893934cb3af25c8fddf6
16. :=1
17.         
18. include $(INCLUDE_DIR)/package.mk
19.         
20.  define Package/aria2
21. :=net
22. :=Network
23. :=File Transfer
24. :=lightweight download utility
25. :=http://aria2.sourceforge.net/
26. :=+libopenssl +zlib +libxml2 +libstdcpp \
27. (INTL_DEPENDS) $(ICONV_DEPENDS)
28.  endef
29.         
30.  define Package/aria2/description
31. -protocol & multi-source command-line download
32.   utility
33.  endef
34.         
35.  define Package/aria2/conffiles
36.  /etc/config/aria2
37.  endef
38.         
39. += \
40. --disable-nls \
41. --without-gnutls \
42. --without-libnettle \
43. --without-libgmp \
44. --without-libgcrypt \
45. --without-libexpat \
46. --without-libcares \
47. --without-sqlite3 \
48. --with-openssl \
49. --with-libxml2 \
50. --with-libz
51.         
52. += \
53. ="-I$(STAGING_DIR)/usr/include" \
54. ="-L$(STAGING_DIR)/usr/lib"
55.         
56.  define Package/aria2/install
57. (INSTALL_DIR) $(1)/usr/bin
58. (INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/aria2c $(1)/usr/bin
59.  endef
60.         
61. (eval $(call BuildPackage,aria2))
 
  在feeds目录下面找到packages.index索引文件,添加aria2源码索引记录 
  
双击打开packages.index,在任意位置添加如下代码
 
  
1. Source-Makefile: feeds/packages/net/aria2/Makefile
2. : aria2
3. : File Transfer
4. : 1.17.1-1
5. : +libc +USE_EGLIBC:librt +USE_EGLIBC:libpthread +libopenssl +zlib +libxml2 +libstdcpp
6. -Depends: 
7. : 
8. : net
9. : Network
10. : lightweight download utility
11. : OpenWrt Developers Team <openwrt-devel@openwrt.org>
12. : aria2-1.17.1.tar.bz2
13. Type: ipkg
14. : aria2 is a lightweight multi-protocol & multi-source command-line download
15.   utility
16. ://aria2.sourceforge.net/
17. <openwrt-devel@openwrt.org>
18.  @@
 
  

    到这里aria2算是添加完了,用命令还可以使用,没luci界面是有点不方便,下面完美来添加luci-aria2 
  
 
  
添加luci-aria2 
   
 文章末有我上传的luci-aria2的源码文件,下载下来后放到你的luci响应的目录,版本不宜样目录可能不宜样 
    
  

    trunk版本为例 
  
 
  

    把luci-aria2这个文件夹放进/trunk/feeds/luci/applications/这个目录里面 
  
 
  

    然后在trunk/feeds/目录下找到luci.index 这个索引文件,打开在任意位置添加如下代 
  
 
  
1. Package: luci-app-aria2 
2. : 3. Applications 
3. : 0.11+svk-1
4. : +libc +USE_EGLIBC:librt +USE_EGLIBC:libpthread +PACKAGE_luci-app-aria2:aria2 
5. -Depends: 
6. : 
7. -Depends: lua/host 
8. : luci 
9. : LuCI 
10. : aria2 configuration module 
11. : LuCI Development Team <luci@lists.subsignal.org> 
12. : 
13. Type: ipkg 
14. : aria2 configuration module http://luci.subsignal.org/ LuCI Development Team <luci@lists.subsignal.org> 
15.    
16.  @@
 
  

    保存退出即可 
  
 
  

    到这里就集成完了 
  
 
  

    最后在终端执行 
  
 
  
1. ./scripts/feeds install -a
2.  make menuconfig
 
  
 make menuconfig
 
  就可以在luci>3. Applications 找到 
  luci-app-aria2了 
  
 (7)-添加fullflash分区,uboot、art分区可写
 修改target/linux/ar71xx/files/drivers/mtd/tplinkpart.c
 
  
1. #define TPLINK_NUM_PARTS      5
 
  改为
 
  
1. #define TPLINK_NUM_PARTS 6
 
  
 (即在原有的数值上加1)
 然后在文件中找到以下内容
 
  
1. parts[0].name = "u-boot";
2. [0].offset = 0;
3. [0].size = offset;
4. [0].mask_flags = MTD_WRITEABLE;
5. [1].name = "kernel";
6. [1].offset = offset;
7. [1].size = rootfs_offset - offset;
8. [2].name = "rootfs";
9. [2].offset = rootfs_offset;
10. [2].size = art_offset - rootfs_offset;
11. [3].name = "art";
12. [3].offset = art_offset;
13. [3].size = TPLINK_ART_LEN;
14. [3].mask_flags = MTD_WRITEABLE;
15. [4].name = "firmware";
16. [4].offset = offset;
17. [4].size = art_offset -
 
  在 parts[4].size = art_offset - offset 后面换一行,添加这段 
  
1. parts[5].name = "fullflash";
2. [5].offset = 0;
3. [5].size = master->size
 
  
 uboot、art分区可写,目的是使用ttl刷新uboot、art
 注释掉  parts[0].mask_flags = MTD_WRITEABLE;
 
  
 (8)-顶部菜单添加按钮
 比如在顶部菜单添加释放内存按钮
 
 修改/modules/admin-full/luasrc/controller/admin/index.lua
 
 +        entry({"admin", "Free_Memory"}, call("Free_Memory"), _("Free Memory"), 81)
 
 +function Free_Memory()  
 +  
 + luci.util.exec("echo 3 > /proc/sys/vm/drop_caches")  
 + luci.http.redirect(luci.dispatcher.build_url("admin", "status", "overview"))  
 +end