newifi3新路由3并编译刷入最新官方OpenWrt

文章转自恩山 原文链接:https://www.right.com.cn/forum/thread-365936-1-1.html

刷机的准备

  1. breed: 按照大神hackpascal 的这个帖子 https://www.right.com.cn/forum/thread-342918-1-1.html, 下载好包含breed的解锁包:newifi-d2-jail-break.zip
  2. ftp软件: 到这个官网下载 ftp32.exe/ftp64.exe 软件: http://tftpd32.jounin.net/
  3. ssh/telnet软件: SecureCRT/Putty等。
  4. 固件程序: 自己编译OpenWrt官方固件。(openwrt-ramips-mt7621-d-team_newifi-d2-squashfs-sysupgrade.bin), 见最后部分。
    (也可以到OpenWrt官网下载编译好的固件,不过目前看mt7621还在添加代码, 因此自己编译master分支应干不错)
    官网18.06.1的已编译好固件地址:https://downloads.openwrt.org/releases/18.06.1/targets/ramips/mt7621/
    没有看到newifi-d2版本,说明之前最新的稳定版并未加入newifi-d2的支持。期待稳定版的要等以后了~~

    解锁及刷机

  5. 开启sshd
    设置好newifi管理员密码。电脑连接路由器,浏览器输入地址: http://192.168.99.1/newifi/ifiwen_hss.html , 页面出现success字样表明开启sshd成功。
  6. 用ssh客户端软件SecureCRT/Putty等, 输入地址192.168.99.1, 用户名root, 密码是设置的管理员密码即可登录进入路由器的控制台。
    未用“newifi-d2-jail-break.ko”解锁之前的mtd,其中u-boot和fullflash部分不可见:newifi-d2-jail-break.ko解锁之之后,完整的mtd所有分区:
  7. 备份 (请运行第5步的解锁后再备份)
    可以在这里备份,也可以刷入breed后,再进行编程器固件和eeprom固件备份。
    备份到/tmp目录下面。(注意:/tmp目录是内存映射的目录,可以随便读写,速度快。其它目录因为存储器原因-只写/速度慢-不推荐)
    1
    2
    3
    4
    5
    6
    # cd /tmp
    # cat /proc/mtd
    # dd if=/dev/mtd2 of=2-Factory.bin
    # dd if=/dev/mtd3 of=3-fullflash.bin
    # dd if=/dev/mtd4 of=4-firmware.bin
    # dd if=/dev/mtd9 of=9-nvram.bin

文件说明:
Factory 就是breed里面的eeprom文件, 含无线相关参数内容。
fullflash大小为完整的32M, 为编程器固件。(这个固件和用breed备份的内容有点差别)
firmware为 原厂固件。

1
2
3
4
5
6
7
8
9
10
11
12
[root@newifi_A91F:/root]#cat /proc/mtd
dev: size erasesize name
mtd0: 00030000 00010000 "u-boot"
mtd1: 00010000 00010000"u-boot-env"
mtd2: 00010000 00010000 "Factory"
mtd3: 02000000 00010000"fullflash"
mtd4: 01fb0000 00010000"firmware"
mtd5: 00146b7e 00010000 "kernel"
mtd6: 01e49482 00010000 "rootfs"
mtd7: 00e30000 00010000"rootfs_data"
mtd8: 00020000 00010000"panic_oops"
mtd9: 00010000 00010000 "nvram"
  1. 将备份的文件上传到PC电脑上
    在电脑上打开上面下载的tftpd32.exe/tftpd64.exe, 地址选择绑定到 192.168.99.x的地址,目录选择你要备份保存的目录。记下电脑IP地址: 192.168.99.x (这里x是实际的IP地址)
    在ssh软件的控制台里面,输入如下命令:

    1
    2
    3
    4
    5
    6
    7
    8
    # cd /tmp
    # (完成上面的备份操作得到2-Factory.bin等)
    #tftp
    # tftp -p -l 2-Factory.bin 192.168.99.x
    # tftp -p -l 3-fullflash.bin 192.168.99.x
    # tftp -p -l 4-firmware.bin 192.168.99.x
    # tftp -p -l 9-nvram.bin 192.168.99.x
    (依次上传备份的几个文件到电脑上)
  2. 解锁并刷入breed
    在上述tftp32/64.exe运行的目录下,拷贝入前面下载的解锁文件:newifi-d2-jail-break.ko(注意,前面下载的是压缩包,需要解压得到), 为了方便,重命名为d2.ko
    在ssh控制台,输入如下命令解锁并刷入breed:

    1
    2
    3
    #cd /tmp
    # tftp -g -r d2.ko 192.168.99.x
    # insmod d2.ko

(这里不能断电,建议多等等个几分钟,直到刷机完成并自动重启)
( 此时 SSH 会停止响应,因为 newifi-d2-jail-break.ko 会冻结系统的其他功能,强制写入 Newifi D2 专用版 BreedFlash)
成功后路由器会自动重启。断电后按复位健/USB键开机均可进入 Breed.

  1. 进入breed
    断电,按住usb键或者reset不放,开机,等待电源灯闪烁,此时进入breed.
    电脑连接路由,浏览器输入: http://192.168.1.1
    此时也可以备份编程器固件和eeprom。
  2. 在breed界面, 刷入OpenWrt官方固件。然后重启即可。
    (一般不需要恢复eeprom,如果想尝试其它人的eeprom,可以在breed界面刷入)

    编译OpenWrt官方固件

  3. 编译环境准备,请查看网上教程。
  4. 检出代码并配置选项:
    1
    2
    3
    4
    5
    6
    7
    8
    $ git clone https://github.com/openwrt/openwrt
    $cd openwrt
    $./scripts/feeds update -a
    $./scripts/feeds install -a
    $ make menuconfig
    配置需要的选项,主要是base-system中的usb块设备,luci, kernel中的本地语言支持等。
    $ make download
    $ make -j5

编译好的固件文件在 bin/targets/ramips/mt7621/openwrt-ramips-mt7621-d-team_newifi-d2-squashfs-sysupgrade.bin

  1. 选项说明:

Base System –> block块设备支持:

Kenel models –> Usb Support, 选择usb2/usb3

Kenel models –>naive language support, 选择code 936, 简体中文支持

Luci-modules-translation , 选择简体中文支持:

MT7603驱动选择:”kernel modules —-> wireless drivers”
(这里有两种驱动,一个是MT76开源驱动,一个是自带的7603驱动)

MT76开源驱动: https://github.com/openwrt/mt76

其它选项也可以自行添加,也可以下载别人编译好的ipk文件安装。

结论

  1. 目前的OpenWrt 主分支master已经有了newifi-d2的支持,但是新的稳定版未发布,喜欢干净的,自己折腾的,可以试试。

  2. 基本上,按照这样的顺序操作,路由器上的eeprom是不需要事后再进入breed中恢复一次的。
    当然如果无线以及mac地址不正常,可以进breed中,恢复一下eeprom, 并设置路由器的mac地址。

  3. 刷入后无线功能正常,但是速率等未进行测试。 最后附上一张编译好刷入的截图:

-------------���Ľ�����л�����Ķ�-------------
0%