最近收了一台DIY属性拉满的迷你4G无线路由,出自大R杂货的MagicBox双频路由。大佬定制的主板,小巧的体积加上支持双频WiFi、LTE/4G网络、OpenWrt等属性,可以说极客感满满。

不过大佬默认只提供原版纯净的固件,什么功能都没有,甚至主题都没有。虽然也没法集成太多的功能,但是后续想要更新版本就不方便了,还需要自己重新安装各种功能和配置各种参数。所以还是研究了下GitHub action和Openwrt,把自己需要功能和配置编辑好。后续openwrt只要更新了,GitHub便会自动帮我编译新固件。所以这篇文章就是记录各种配置的过程,方便日后的查询。

硬件配置:

  • 高通 QCA9531 550Mhz CPU + 9887 5G Wi-Fi 芯片

  • 16M闪存 / 128M内存

  • 433Mbps + 300Mbps 双频 Wi-Fi

  • USB 扩展口( LTE 版两个 / Wi-Fi 版一个)

  • 两个百兆网口(默认 1WAN 1LAN)

  • TF 卡槽(Wi-Fi 版无)

  • LTE 版为 Type-C 供电 / Wi-Fi 版为 Micro USB 供电。

  • 4G LTE 版为下图3D打印的黑色尼龙外壳 / Wi-Fi 版为上图亚克力外壳

Openwrt相关

选择openwrt版本

首先openwrt分为稳定版和开发版,目前稳定版的版本定在19.07,而开发版为20.XX。目前openwrt对9531的支持直到19.07稳定版,目前开发版是不支持的。

然后openwrt也会有不同的分支,除了官方原版openwrt,还有coolsnowwolf大佬的LEDELienol大佬的openwrt

我很浅略的对比了三个版本的代码,LEDE和Lienol的openwrt会针对我们的使用习惯进行优化,比如默认生成Wi-Fi的ssid名称,会区分2.4G和5G。同时会集成更多的功能,让我们的编译更加方便,不用一个个的去寻找添加,而且自带的源也能保证与系统稳定运行。当然估计还有一些性能上的优化,这方面我就看不出来了。

因为AR9531目前只能支持19.07,所以在编译的时候需要留意选择正确的版本,官方原版的openwrt和Lienol大的不同版本是在GitHub上的不同分支,而coolsnowwolf大佬的不同版本是不同的库,这里是要留意的。

coolsnowwolf大佬的lede不同版本的库:

生成编译配置

这一步目前没有其他方法,还是需要自行搭建一个ubuntu平台,拉取整个openwrt的库再进行make menuconfig 操作生成编译配置。不过好在这个配置确定后,后续不需要修改了。所以也就麻烦这一次。

集成LTE所需驱动

依照老板大R的要求,驱动LTE所需的3个驱动,分别是:

kmod-usb-net

kmod-usb-net -> kmod-usb-net-rndis

usb-modeswitch

添加所需的功能

这里可以按需添加,功能主要都集成在Luci下。Lede和Lienol的版本集成的功能会明显更多更方便。

需要注意的是,添加功能后要注意固件的大小,不要让最终的固件大于16M导致编译失败。同时如果出现功能太多需要调整配置,我强烈建议先删除默认的.config文件重新配置。因为你选择一个功能时,可能会自动选择所需的各种以来,而你只是单纯的取消这个功能,相关的依赖并不会联同取消,这样很有可能会出现你明明取消了这个功能,但是固件并没有减少,因为相关的大量依赖还是被编译进去了。

下面记录一些相关的命令:

  1. 添加luci-theme-argon主题

    cd openwrt/package
    git clone https://github.com/jerrykuku/luci-theme-argon.git #拉取主题
    sed -i 's/luci-theme-bootstrap/luci-theme-argon/g' feeds/luci/collections/luci/Makefile #修改默认的主题
    make menuconfig #选择 LUCI->Theme->Luci-theme-argon
  2. 中文支持

    make menuconfig #选择LuCI->Modules->Translations->Chinese

修改默认的设定

  1. 默认开启wifi

    sed -i 's/disabled=1/disabled=0/g' package/kernel/mac80211/files/lib/wifi/mac80211.sh
    sed -i 's/OpenWrt/Road-MagicBox/g' package/kernel/mac80211/files/lib/wifi/mac80211.sh
  2. 修改路由默认ip

    sed -i 's/192.168.1.1/192.168.8.1/g' package/base-files/files/bin/config_generate
    #把lan口默认ip由192.168.1.1改成192.168.8.1
  3. 添加wwan接口

    sed -i '$d' package/base-files/files/bin/config_generate
    sed -i '$a uci set network.wwan=interface' package/base-files/files/bin/config_generate
    sed -i '$a uci set network.wwan.ifname=eth2' package/base-files/files/bin/config_generate
    sed -i '$a uci set network.wwan.proto=dhcp' package/base-files/files/bin/config_generate
    sed -i '$a uci set network.wwan.up=1' package/base-files/files/bin/config_generate
    sed -i '$a uci commit' package/base-files/files/bin/config_generate
  4. wwan接口添加防火墙

    sed -i "19a \ \ \ \ \ \ \ \ list   network          'wwan' " package/network/config/firewall/files/firewall.config
  5. 修改主机名

    sed -i 's/OpenWrt/MagicBox/g' package/base-files/files/bin/config_generate
  6. 设定root密码为password

    sed -i '1d' package/base-files/files/etc/shadow
    sed -i '1i root:$1$H\/ab6bvd$yWkIzUrKuLPTNHY9akBDC0:18988:0:99999:7:::' package/base-files/files/etc/shadow

Github action相关

自动编译脚本源自P3TERX/Actions-OpenWrt,脚本使用说明:English | 中文