#14438 – How to stop worrying and love the <beep>

20240210_101907

FUCK Photonicat。

两三次被包里放的表面温度高达80摄氏度的东西烫到手之后,我决定放弃这玩意了。

之前我说过我大概会settle在nighthawk m6上,然而缺乏LTE band 39的结果是中国移动的wide-area覆盖根本没法用,有次出门在高速公路上断流很久才知道。

所以又回去用了一阵E750,不过E750的AC的latency真的是用出火(AC也就算了,关键5GHz只有一根天线,7个设备真的有些力不从心),于是又买了个无电池的Photonicat(有电池的机型因为过热导致电池损坏,寿命不到1星期……没爆炸就该偷笑),然而巨大的发热量始终还是问题。

而且神奇的是,同一家公司出品的模块,em05的信号就是比ec20差,即使换了Thinkpad的4G天线也一样。kami know why and I’m not the kami in the know.

我关注了axt1800一段时间,gl-inet的固件支持了USB上的4G空口模块一段时间,EC20也在此列,问题是官方一直说SMS功能只能用于Spitz AX等内置4G/5G的机型。因为我还用这个卡接收各种验证码,没有SMS功能麻烦会非常大。

然而某天忽然一想……如果用一个其他公司的设备充当空口,以USB tether连接模式连接到openwrt路由器上的话,不就能够解决SMS接收的问题了么?之前Photonicat如果禁用em05的话,似乎发热量是真的会降一点。

于是拿了一个闲置的E5576做实验。E5576和我之前用的华为设备的区别是可以完全关闭自带WiFi,仅仅通过USB RNDIS共享网络,这样的话搭配已有WiFi空口的openwrt设备就不会造成太多干扰和其他不便。

It freaking works.

于是立即下单买了一个AXT1800,这玩意里面有风扇,而且是胶壳,我就不信它能比Photonicat更烫。

然后就有了这个abomination。

6m_299534

然而这玩意第一天就有问题:过热。

axt1800的风扇按照原厂的缺省设置在包里根本提供不到足够的风量,侧面天线也阻挡了相当部分的气流,即使有个pvc外壳限制了表面温度,axt1800和E5576的发热量很快就会导致E5576停摆掉线。

对于这么多年都习惯了无缝24×7连接的我来说,这是绝对不能接受的事情。

天哪20年前能拨通96169以33.6kbps联网的耐性哪儿去了……

于是决定放弃E5576,本来加个独立的路由器做空口已经够神经,如果不好用那就没有坚持下去的理由了。EC20的USB模块不用200块钱一个,买一个做实验似乎也并不是太大的开销。于是买了个带USB头的模块和一根超短的USB延长线,硬是将模块塞了进去。

一开始感觉还相当不错,连接速度虽然并不很快,也并不比用E750差得到哪儿去(两者使用同一个型号的模块),风扇经过调整之后发热的情况也好了一些(EC20硬塞进了外壳内,对风道的影响比预期中小很多)。

如何塞进去?axt1800的主板是反着装的(底部朝上,元件面、风扇和散热片朝下),底壳和散热片之间的空间放好可以塞一个EC20进去,加上一对天线对进风的影响也不是很大。连接线就成了问题:我买的USB 3超短延长线已经算是市面上比较小的了,但是再小也不可能从壳体的缝隙里伸出来,于是壳体就只能被牺牲掉一点……用着倒还行。

SMS的功能最后在研究gl-inet的脚本的时候给研究出来了……

gl-inet是使用smstools3这个daemon来提供SMS和Web interface的界面的,这点和E750一样。但是这个版本的smstools3的设置文件似乎是根据硬件安装情况自动生成的。

在/etc/init.d/smstools3里面是这样的:

……
start_service() {
        if [ -e “/lib/functions/modem.sh” ]; then
                . /lib/functions/modem.sh
                bus=$(get_modem_bus)
        fi

……

问题是这个modem.sh根本不会去搜寻usb总线上的EC20,它似乎默认只会去搜索一下pcie总线。这对于内置5G机型来说是正常的,他们只是费事再想还有人要用USB上的空口设备……

在网上找了一阵以及做了一些实验之后,我发现只要用USB总线的序号替代这行里原有的$bus参数就可以了:

gl_modem -B 1-1 sms-config > $CFG

接着重启脚本,一切运作正常。

WHAT。

又用了几天,看着那根连接线不顺眼,于是买了工业用PH2.0的USB连接线以及使用同样端子的EC20模块,然而发现连接极其不稳定……浪费了两根连接线和两个模块之后,我决定将这些东西全部扔进垃圾桶。

axt1800侧面有个toggle开关,原厂的固件设置是用来开关VPN的,但是因为“合规”的问题,在国内出厂的机器在flash的某个位置写了一个flag,系统启动的时候见到这个flag就会隐藏相关设置,在国内的文档里直接声称这个开关不能用。

……修改掉这个flag之后所有不该出现的东西都出来了,然而我只想要这个开关执行一个小脚本:

/etc/gl-switch.d/wifi.sh
#!/bin/sh

# 2023-07-25
# /etc/gl-switch.d/
# uci show wireless
# source: https://forum.gl-inet.com/t/feature-req-wifi-on-off-with-side-switch/2896/41

action=$1

if [ “$action” = “on” ]; then
         uci set wireless.radio0.disabled=’0′
         uci commit wireless
         wifi reload
         logger -p notice -t wifi-toggle “radios enabled”
fi

if [ “$action” = “off” ]; then
         uci set wireless.radio0.disabled=’1′
         uci commit wireless
         wifi reload
         logger -p notice -t wifi-toggle “radios disabled”
fi

exit 0

这样我只要回家就能一键关掉axt1800提供的5GHz WiFi了,和以前用E750一样,远比用其他设备都方便。

然而机器还是热。gl-inet整了一个很高级的PID control logic来管理这个风扇的转速,甚至将参数都直接暴露出来给用户使用,就是打死不肯像tpfancontrol那样给一个简单的stepping control……

于是我决定向天线下手。第一个图片里有一个做备件的axt1800和正在用的1800,仔细看就能看到正在用的机器上缺了点东西。两边的天线不过是用来放pcb天线的外壳,拆掉之后用防热胶带贴在机壳内侧,信号还能接受:反正在使用的时候正常我不会离开它超过20米是不是……