[OpenWrt] Flash 由4M改8M(或者16M), openwrt源码的修改

http://www.right.com.cn/forum/thread-75309-1-1.html

trunk/tools/firmware-utils/src/mktplinkfw.c
只修改fw_max_len为0xfc0000,16M flash

                .id                = "4M",
                .fw_max_len        = 0xfc0000,
                .kernel_la        = 0x80060000,
                .kernel_ep        = 0x80060000,
                .rootfs_ofs        = 0x140000,
新版只用改fw的大小,分区表会自动认,不用像老版自己定义每个分区大小了。

==========================================================
trunk/tools/firmware-utils/src/mktplinkfw.c


点击(此处)折叠或打开

  1. static struct flash_layout layouts[] = {
  2.     {
  3.         .id        = "4M",
  4.         .fw_max_len    = 0x3c0000,
  5.         .kernel_la    = 0x80060000,
  6.         .kernel_ep    = 0x80060000,
  7.         .rootfs_ofs    = 0x140000,
  8.     }, {
  9.         .id        = "4Mlzma",
  10.         .fw_max_len    = 0x3c0000,
  11.         .kernel_la    = 0x80060000,
  12.         .kernel_ep    = 0x80060000,
  13.         .rootfs_ofs    = 0x100000,
  14.     }, {
  15.         .id        = "8M",
  16.         .fw_max_len    = 0x7c0000,
  17.         .kernel_la    = 0x80060000,
  18.         .kernel_ep    = 0x80060000,
  19.         .rootfs_ofs    = 0x140000,
  20.     }, {
  21.         .id        = "8Mlzma",
  22.         .fw_max_len    = 0x7c0000,
  23.         .kernel_la    = 0x80060000,
  24.         .kernel_ep    = 0x80060000,
  25.         .rootfs_ofs    = 0x100000,
  26.     }, {
  27.         /* terminating entry */
  28.     }
  29. };

  30. static struct board_info boards[] = {
  31.     {
  32.         .id        = "TL-MR3020v1",
  33.         .hw_id        = HWID_TL_MR3020_V1,
  34.         .hw_rev        = 1,
  35.         .layout_id    = "4Mlzma",
  36.     }, {
  37.         .id        = "TL-MR3220v1",
  38.         .hw_id        = HWID_TL_MR3220_V1,
  39.         .hw_rev        = 1,
  40.         .layout_id    = "4M",
  41.     }, {
  42.         .id        = "TL-MR3420v1",
  43.         .hw_id        = HWID_TL_MR3420_V1,
  44.         .hw_rev        = 1,
  45.         .layout_id    = "4M",
  46.     }, {
  47.         .id        = "TL-WA701Nv1",
  48.         .hw_id        = HWID_TL_WA701N_V1,
  49.         .hw_rev        = 1,
  50.         .layout_id    = "4M",
  51.     }, {
  52.         .id        = "TL-WA901NDv1",
  53.         .hw_id        = HWID_TL_WA901ND_V1,
  54.         .hw_rev        = 1,
  55.         .layout_id    = "4M",
  56.     }, {
  57.         .id = "TL-WA901NDv2",
  58.         .hw_id = HWID_TL_WA901ND_V2,
  59.         .hw_rev = 1,
  60.         .layout_id    = "4M",
  61.     }, {
  62.         .id        = "TL-WR741NDv1",
  63.         .hw_id        = HWID_TL_WR741ND_V1,
  64.         .hw_rev        = 1,
  65.         .layout_id    = "4M",
  66.     }, {
  67.         .id        = "TL-WR741NDv4",
  68.         .hw_id        = HWID_TL_WR741ND_V4,
  69.         .hw_rev        = 1,
  70.         .layout_id    = "4Mlzma",
  71.     }, {
  72.         .id        = "TL-WR740Nv1",
  73.         .hw_id        = HWID_TL_WR740N_V1,
  74.         .hw_rev        = 1,
  75.         .layout_id    = "4M",
  76.     }, {
  77.         .id        = "TL-WR740Nv3",
  78.         .hw_id        = HWID_TL_WR740N_V3,
  79.         .hw_rev        = 1,
  80.         .layout_id    = "4M",
  81.     }, {
  82.         .id        = "TL-WR743NDv1",
  83.         .hw_id        = HWID_TL_WR743ND_V1,
  84.         .hw_rev        = 1,
  85.         .layout_id    = "4M",
  86.     }, {
  87.         .id        = "TL-WR841Nv1.5",
  88.         .hw_id        = HWID_TL_WR841N_V1_5,
  89.         .hw_rev        = 2,
  90.         .layout_id    = "4M",
  91.     }, {
  92.         .id        = "TL-WR841NDv3",
  93.         .hw_id        = HWID_TL_WR841ND_V3,
  94.         .hw_rev        = 3,
  95.         .layout_id    = "4M",
  96.     }, {
  97.         .id        = "TL-WR841NDv5",
  98.         .hw_id        = HWID_TL_WR841ND_V5,
  99.         .hw_rev        = 1,
  100.         .layout_id    = "4M",
  101.     }, {
  102.         .id        = "TL-WR841NDv7",
  103.         .hw_id        = HWID_TL_WR841ND_V7,
  104.         .hw_rev        = 1,
  105.         .layout_id    = "4M",
  106.     }, {
  107.         .id        = "TL-WR941NDv2",
  108.         .hw_id        = HWID_TL_WR941ND_V2,
  109.         .hw_rev        = 2,
  110.         .layout_id    = "4M",
  111.     }, {
  112.         .id        = "TL-WR941NDv4",
  113.         .hw_id        = HWID_TL_WR941ND_V4,
  114.         .hw_rev        = 1,
  115.         .layout_id    = "4M",
  116.     }, {
  117.         .id        = "TL-WR1043NDv1",
  118.         .hw_id        = HWID_TL_WR1043ND_V1,
  119.         .hw_rev        = 1,
  120.         .layout_id    = "8M",
  121.     }, {
  122.         .id        = "TL-WR2543Nv1",
  123.         .hw_id        = HWID_TL_WR2543N_V1,
  124.         .hw_rev        = 1,
  125.         .layout_id    = "8Mlzma",
  126.     }, {
  127.         .id        = "TL-WR703Nv1",
  128.         .hw_id        = HWID_TL_WR703N_V1,
  129.         .hw_rev        = 1,
  130.         .layout_id    = "4Mlzma",//-->8Mlzma
  131.     }, {
  132.         /* terminating entry */
  133.     }
  134. };



Part Three: Compile your openwrt firmware:

1. Checkout trunk and update feeds as other common tutorials
2. Modify Openwrt code to support and partition your flash:

/trunk/tools/firmware-utils/src/mktplinkfw.c

fw_max_len = 0x7c0000 /* for 8M Flash, use 0xfc0000 for 16M flash*/







3. menuconfig and make your image as common tutorials. save the image openwrt-ar71xx-generic-tl-mr3420-v1-squashfs-factory.bin for future usage.
4. back up your 64k art (wirelss driver data, without it your wireless does not work.) this is important! you can also use the backup one from other tp-link ar7241 chipset routers.



http://www.right.com.cn/forum/thread-75309-1-1.html
已标记关键词 清除标记
20120905版4M固件: 1. 720N固件,基于703N修改。TP-Link原厂固件请刷factory,已经是OpenWrt了就刷sysupgrade。 且刷此固件后可直刷OpenWrt 703N、OpenWrt 720N、TP-Link 703N、TP-Link 720N固件,不用固件头。 2. 4M固件,当然8M的flash也可以刷。 3. 支持MentoHUST(锐捷认证)、3G、NAS(仅支持ext4,不支持ntfs)、共享手机网络、MWAN2负载均衡、打印服务器、 远程唤醒、8187 3070、瑞银网卡,剩余200多K空间,具体见截图。 因试过4M空间集成脱机、NAS等有难度,故不再出4M的脱机固件,请用extroot扩展后自行安装。 4. MentoHUST没有条件测试,如不能自动获取IP,请把Web界面的DHCP script的值由“udhcpc -i”成“udhcpc -renew”试试。 5. 关于extroot(既用U盘引导系统),没想到现在这么简单了。 简单说下:先把U盘在电脑里格式化成ext3或ext4。插上U盘,命令行运行blkid得到U盘的UUID值,复制到管理界面的相应UUID, 挂载选项“rw,sync”删掉后面的umask=000。然后勾上extroot和启用,文件系统选对应的ext3或ext4,保存应用OK。 重启下,看看剩余空间大了没,呵呵。 (umask=000只是为了让samba可写而加的参数。挂载USB存储设备时,如果不用samba请删之。) 6. 按住reset键30秒后led闪烁,60秒之前松开reset键则恢复出厂设置。 7. LAN/WAN两个网口正常。 8. 默认开启WiFi,无密码。 9. 支持模式切换开关,定义如下: AP: 开启共享手机网络、开启无线 3G: 关闭共享手机网络、开启无线 Router:关闭共享手机网络、关闭无线 10.解释下共享手机网络,OpenWrt官方称为USB Tethering,指openwrt路由器通过USB连接智能手机, 而智能手机的网络共享给openwrt使用。 目前固件只支持Android系统共享网络功能,而支持iPhone需要集成的软件太多,空间有限,如果出8M固件 再考虑吧。 Android本来就支持WiFi热点,可能有点画蛇添足吧,呵呵。我是偶然发现openwrt还支持这个功能, 所以就研究了下,也许在某些情况下这个功能还是有用的吧。 使用方法: a. 路由器模式开关切换至AP位置。 b. 用USB线连接路由器与手机。 c. 手机USB连接管理里面,选择 除了“内存卡读取”的其他模式,比如:选择“仅充电”; 然后在“设置”--“系统”里面找到“共享手机网络”,开启“USB绑定”就好了。 回到openwrt界面,会发现有个usb0的接口,已经自动获取了IP,这样openwrt就能使用手机 的网络了。 11.关于MWAN2负载均衡,效率还不错,还支持基于session的负载均衡,使用方法见/etc/config/mwan2里面的注释。 mwan2的作者新出了mwan3,有兴趣可以去看看:https://forum.openwrt.org/viewtopic.php?id=39052 12.703n可刷本固件,但是刷完后lan口不能用。需先用无线连接,然后编辑/etc/config/network , 删除其中wan口配置,把lan的eth0成eth1后,lan就可以用了。 如703n原厂固件web界面请刷factory,且需要先把固件标识成07030101才能刷。 13.再说下打印服务器,没有测试,不知道这个版本能不能用,但20120803版有人试过可用,有需求请自行下载。trunk就是不稳定啊, 没办法~~ 14.刷机有风险,变砖本人概不负责。 吐糟一下,如3G有掉线问题,请看日志中是否出现“No response to 5 echo-requests”。 而解决这个问题,除了降低无线功率或者干脆关闭无线外,我是没找到其他更好的办法(可能和3G网卡有关)。 曾经尝试过换电源增强供电、用带外接电源的usb-hub,包括尝试TP-LINK原厂固件也一样掉线。还有修改/etc/ppp/options里 的lcp-echo-interval,把值大点后是不掉线了,但是3G其实已经断流了,没什么意义。我用MU350网卡试过FW300R、FWR171-3G 还有720N这几个路由都是这样。不知道
相关推荐
原贴 http://www.right.com.cn/forum/thread-91571-1-1.html 20120905版4M固件: 1. 720N固件,基于703N修改。TP-Link原厂固件请刷factory,已经是OpenWrt了就刷sysupgrade。 且刷此固件后可直刷OpenWrt 703N、OpenWrt 720N、TP-Link 703N、TP-Link 720N固件,不用固件头。 2. 4M固件,当然8M的flash也可以刷。 3. 支持MentoHUST(锐捷认证)、3G、NAS(仅支持ext4,不支持ntfs)、共享手机网络、MWAN2负载均衡、打印服务器、 远程唤醒、8187 3070、瑞银网卡,剩余200多K空间,具体见截图。 因试过4M空间集成脱机、NAS等有难度,故不再出4M的脱机固件,请用extroot扩展后自行安装。 4. MentoHUST没有条件测试,如不能自动获取IP,请把Web界面的DHCP script的值由“udhcpc -i”成“udhcpc -renew”试试。 5. 关于extroot(既用U盘引导系统),没想到现在这么简单了。 简单说下:先把U盘在电脑里格式化成ext3或ext4。插上U盘,命令行运行blkid得到U盘的UUID值,复制到管理界面的相应UUID, 挂载选项“rw,sync”删掉后面的umask=000。然后勾上extroot和启用,文件系统选对应的ext3或ext4,保存应用OK。 重启下,看看剩余空间大了没,呵呵。 (umask=000只是为了让samba可写而加的参数。挂载USB存储设备时,如果不用samba请删之。) 6. 按住reset键30秒后led闪烁,60秒之前松开reset键则恢复出厂设置。 7. LAN/WAN两个网口正常。 8. 默认开启WiFi,无密码。 9. 支持模式切换开关,定义如下: AP: 开启共享手机网络、开启无线 3G: 关闭共享手机网络、开启无线 Router:关闭共享手机网络、关闭无线 10.解释下共享手机网络,OpenWrt官方称为USB Tethering,指openwrt路由器通过USB连接智能手机, 而智能手机的网络共享给openwrt使用。 目前固件只支持Android系统共享网络功能,而支持iPhone需要集成的软件太多,空间有限,如果出8M固件 再考虑吧。 Android本来就支持WiFi热点,可能有点画蛇添足吧,呵呵。我是偶然发现openwrt还支持这个功能, 所以就研究了下,也许在某些情况下这个功能还是有用的吧。 使用方法: a. 路由器模式开关切换至AP位置。 b. 用USB线连接路由器与手机。 c. 手机USB连接管理里面,选择 除了“内存卡读取”的其他模式,比如:选择“仅充电”; 然后在“设置”--“系统”里面找到“共享手机网络”,开启“USB绑定”就好了。 回到openwrt界面,会发现有个usb0的接口,已经自动获取了IP,这样openwrt就能使用手机 的网络了。 11.关于MWAN2负载均衡,效率还不错,还支持基于session的负载均衡,使用方法见/etc/config/mwan2里面的注释。 mwan2的作者新出了mwan3,有兴趣可以去看看:https://forum.openwrt.org/viewtopic.php?id=39052 12.703n可刷本固件,但是刷完后lan口不能用。需先用无线连接,然后编辑/etc/config/network , 删除其中wan口配置,把lan的eth0成eth1后,lan就可以用了。 如703n原厂固件web界面请刷factory,且需要先把固件标识成07030101才能刷。 13.再说下打印服务器,没有测试,不知道这个版本能不能用,但20120803版有人试过可用,有需求请自行下载。 trunk就是不稳定啊,没办法~~
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页