Hualu WifiDock AR9331 无线中继魔改笔记(?

已编译完成的 bin 文件可从此处下载

懒得修改型号了 切记不要刷给 wr703n 这是 8m flash 版本

关于设备:


AR9331 的 CPU 8M flash 64M DDR 自带 LS 4100mah 电池 20 块捡回来的库存垃圾 可插 TF 卡和 U 盘 天线采用 IPX 接口连接(可以更换)

拆机图

刷入系统:


很明显官方的残废系统并不能满足我们的需求

刷入 breed

这款无线中继硬件和 TP-Link TL-WR703N 非常相似 不同之处在于 复位键是在 GPIO 12 上 flash 有 8M

breed
具体步骤:

  • 开机,连接 Hualu 开头的 WiFi。(WiFi 密码 12345678)
  • ping 10.10.1.1 能通后,浏览器打开 http://10.10.1.1/
  • 开免密 Telnet 无线存储 — 目录名称框内输入: %24 (killall telnetd;telnetd -l /bin/ash) 然后点击创建按钮(很明显这里有个注入漏洞)
  • telnet 登录 10.10.1.1(无需密码)。
  • 电脑开 hfs web 服务,共享 breed 文件,刷入 breed
    • 下载 breed(网页上载也可以,网页上载之后,是在 /tmp/usb/sda 目录下)
      1
      2
      cd /tmp/
      wget [http://10.10.1.2/breed-ar9331-pisen-r1163.bin](http://10.10.1.2/breed-ar9331-pisen-r1163.bin)
    • 烧写
      1
      2
      cd /tmp/
      mtd erase u-boot; mtd write breed-ar9331-pisen–GPIO12.bin u-boot 2>ubootwrite.txt
  • 重启使用 BreedEnter 进 breed

刷入 Openwrt

breed
由于硬件与 WR703N 基本一致 首先尝试刷入 Openwrt 官方提供的 703N 固件,经测试基本功能正常 但是白白浪费 4M 空间实在可惜,最终还是决定自己编译一份

编译 Openwrt


已知信息:WiFi 指示灯 GPIO 是 0,高电平有效 网口状态灯是 17,低电平有效 复位键是 12,高电平有效

使用 docker-openwrt-buildroot 进行编译

1
2
3
docker run -it noonien/openwrt-buildroot bash  
sudo apt-get update
sudo apt-get install git-core build-essential libssl-dev libncurses5-dev unzip gawk zlib1g-dev subversion mercurial gettext autoconf libtool libpcre3-dev asciidoc xmlto libev-dev libudns-dev libc-ares-dev automake libmbedtls-dev libsodium-dev
1
2
3
4
5
cd openwrt  

./scripts/feeds update -a

scripts/feeds install -a
  • 修改 ~/openwrt/target/linux/ar71xx/files/arch/mips/ath79/mach-tl-wr703n.c
1
2
#define TL\_WR703N\_GPIO\_LED\_SYSTEM   0  
#define TL\_WR703N\_GPIO\_BTN\_RESET 12
 以及同文件 `gpio_led tl_wr703n_leds_gpio[]` 部分中
1
.active_low = 0,  
  • 打开 ~/openwrt/target/linux/ar71xx/image/tiny-tp-link.mk ,找到 define Device/tl-wr703n-v1

  • $(Device/tplink-4mlzma) 中的 4mlzma 改成 8mlzma 就可以支持 8MB 固件编译(16MB 同理)

  • 在源代码目录下 make menuconfig

  • Target SystemSubtarget 应该分别是 Atheros AR7xxx/AR9xxxDevices with small flashTarget Profile 选择 TP-LINK TLWR703N v1

  • 启用 Web 管理界面 LuCI (记得选择为 [*] 而不是 [M],我们不需要编译 ipk 文件,直接整合进 bin 就行)

    LuCI → Collections → 选中 luci

  • 添加 LuCI 中文支持

    LuCI → Modules → Translations → 选中 Chinese (zh-cn)

  • 生成构建的配置文件,检查依赖

    make defconfig

  • 编译,可加上 V=99 参数输出所有调试信息

    make

  • openwrt/bin/target/ar71xx/tiny 中取出 openwrt-ar71xx-tiny-tl-wr703n-v1-squashfs-factory.bin 刷入即可

附加内容:编译某不可描述软件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#自行去除空格  
git clone https://github.com/aa65535/openwrt-dist-luci.git package/openwrt-dist-luci
git clone https://github.com/aa65535/openwrt-dns-forwarder.git package/dns-forwarder
git clone https://github.com/Hill-98/luci-app-shad owsocks.git package/luci-app-shad owsocks
git clone https://github.com/Hill-98/openwrt-shad owsocksr package/shad owsocksr-libev
git clone https://github.com/Hill-98/openwrt-ckipver.git package/ckipver

# 编译 po2lmo (如果有po2lmo可跳过)
pushd package/luci-app-shad owsocksr/tools/po2lmo
make && sudo make install
# 选择要编译的包 dnsmasq-full curl wget coreutils-base64 bash bind-dig ckipver shad owsocksr-libev luci-app-sha dowsocks chinadns luci-app-chinadns dns-forwarder luci-app-dns-forwarde ca-certificates openssl-util ca-bundle
# 务必选择Using shared library from system
# 提示 在menuconfig中按/可使用搜索
make menuconfig