聽聞有新的礦渣路由器,單台 CNY 90 不含郵費,有 ipq40xx + 512MB RAM 的、雙頻 1200Mbps 無線和全 1000Mbps 接口可以玩。想了想乾脆就上車看看風景。
硬體和做工
競鬥雲 2.0 是全鐵皮外殼,拿起來沉甸甸的,兩臺競鬥雲帶上箱說用順豐速運郵寄更是花掉了 32 元的運費。雖然原價 CNY 1899,但是包裝內容非常簡單,除去說明書就只有路由器、電源適配器和 4 根天線。值得一提的是天線上標有對應的頻段,雖然有報導說天線縮水了,但是起碼是可拆裝的 SMA,留給 WWAN 模塊用也好嘛。
别换天线了,还是翻车了,虽然缩水的5db软膜确实很垃圾
原廠家產品爲 P&W R619 AC1300M 企业级全千兆无线路由器,廠家韌體可以從官方網站下載。路由器整體方方正正的,頗有一股可以上架子的感覺(畢竟 P&W 方面表示是企業級產品),不過前燈號、後接口的設計否定了淺羽的這個想法,更別說還有兩根 5GHz 的天線設計在兩側。
鐵殼分上下兩部分,把底下的 4 枚螺絲全部卸除,再從 SMA 口和散熱口撬開就可以了。內裏的硬體配置不能算豪華,但以 CNY 90 來說可以算超值。
- IPQ4019 SoC / Wave-2 802.11ac SoC for Routers, Gateways and Access Points
- 25Q128JVS / 16MB Flash
- QCA8075 / 1000Mbps Switch
- S34ML01G100TF100 / 128MB Flash
- MT41K256M16HA-125:E(FBGA Code: D9PXV) / 512MB, DRAM Chip DDR3L SDRAM 4Gbit 256Mx16 1.35V 96-Pin FBGA
- SKY85309-11 / 2.4GHz FEM (PA+LNA)
- SKY85728-11 / 5GHz FEM (PA+LNA)
內部有散熱金屬罩,不過個別機器可能沒有導熱膠。TTL 口很明顯,有絲印備註,並且跳針已經焊好。雖然原裝魔改 OpenWRT 過於陽春,但是 TTL 就擺明了是留下的後路。
TTL 灌入 OpenWRT
OpenWRT 對競鬥雲支援的 patch 已經在 LGA1150/openwrt 項目中有實現,可以直接拿到其他 OpenWRT 中使用。打包好 OpenWRT 後,可以透過 TTL 灌入。
- 連接串口(RX-TX / 115200bps);
- 開機過程中在 console 不斷地
f
+Enter
直到進入 failsafe root;
....
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
....
================= FAILSAFE MODE active ================
special commands:
* firstboot reset settings to factory defaults
* mount_root mount root-partition with config files
after mount_root:
* passwd change root's password
* /etc/config directory with config files
for more help see:
http://wiki.openwrt.org/doc/howto/generic.failsafe
root@(none):/#
- 掛載檔案系統
root@(none):/# mount_root
- 打開串口輸出並重啓
root@(none):/# sed -i 's/^#ttyM/ttyM/' /etc/inittab
root@(none):/# reboot
- 重啓完成後可以關閉無線減少 log 輸出量
BusyBox v1.25.1 (2018-02-17 15:42:05 CST) built-in shell (ash)
MM NM MMMMMMM M M
$MMMMM MMMMM MMMMMMMMMMM MMM MMM
MMMMMMMM MM MMMMM. MMMMM:MMMMMM: MMMM MMMMM
MMMM= MMMMMM MMM MMMM MMMMM MMMM MMMMMM MMMM MMMMM'
MMMM= MMMMM MMMM MM MMMMM MMMM MMMM MMMMNMMMMM
MMMM= MMMM MMMMM MMMMM MMMM MMMM MMMMMMMM
MMMM= MMMM MMMMMM MMMMM MMMM MMMM MMMMMMMMM
MMMM= MMMM MMMMM, NMMMMMMMM MMMM MMMM MMMMMMMMMMM
MMMM= MMMM MMMMMM MMMMMMMM MMMM MMMM MMMM MMMMMM
MMMM= MMMM MM MMMM MMMM MMMM MMMM MMMM MMMM
MMMM$ ,MMMMM MMMMM MMMM MMM MMMM MMMMM MMMM MMMM
MMMMMMM: MMMMMMM M MMMMMMMMMMMM MMMMMMM MMMMMMM
MMMMMM MMMMN M MMMMMMMMM MMMM MMMM
MMMM M MMMMMMM M M
M
---------------------------------------------------------------
For those about to rock... (Chaos Calmer, unknown)
---------------------------------------------------------------
root@(none):/# ifconfig wifi1 down
root@(none):/# ifconfig wifi0 down
- 將 OpenWRT 或者其他地方韌體放到 HTTP 伺服器上並下載到路由器中灌入
root@(none):/# wget -O /tmp/factory.bin http://example.com/${wrt-fatory}.bin
root@(none):/# sysupgrade -n /tmp/factory.bin
Sending TERM to remaining processes ... netifd ubusd nmbd gservices Sending KILL to remaining processes ... rngd
[ 1104.796098] UBI error: ubi_detach_mtd_dev: ubi0 reference count 1, destroy anyway
[ 1104.804239] UBI: detaching mtd0 from ubi0
[ 1104.809033] UBI: mtd0 is detached from ubi0
ubiformat: mtd0 (nand), size 67108864 bytes (64.0 MiB), 512 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes
libscan: scanning eraseblock 511 -- 100 % complete e 7 -- 95 % complete 7 -- 32 % complete
ubiformat: 512 eraseblocks have valid erase counter, mean value is 2
ubiformat: flashing eraseblock 106 -- 100 % complete
ubiformat: formatting eraseblock 504 grep: /sys/block/mmcblk0/mmcblk*p*/uevent: No such file or directory
Upgrade completed
Rebooting system...
[ 1115.226983] mdss_fb_release_all: try to close unopened fb 0! from reboot
[ 1115.236007] reboot: Restarting
灌入時需要用 nand-factory.bin
檔案;後續更新則使用 sysupgrade.bin
檔案。
韌體下載地址:
灌入不死 uboot & OpBoot
- 灌入 X-WRT 後,進入 Web 升級介面,選擇「升級不要保留數據」並灌入
openwrt-ipq40xx-p2w_r619ac-squashfs-nand-sysupgrade-bootloader.bin
;
- 等待重啓後 SSH 連接競鬥雲,查看一下分割狀態;
# cat /proc/mtd
dev: size erasesize namemtd0: 04000000 00020000 "rootfs"
mtd1: 04000000 00020000 "unused1"
mtd2: 00170000 00010000 "BootLoader"
mtd3: 00010000 00010000 "ART"
mtd4: 008e0000 00010000 "unused"
- 解鎖 Bootloader 分割並灌入不死 uboot;
# mtd unlock /dev/mtd2
# mtd write /tmp/opboot-p2w-r619ac-flash-v1.0.7.bin BootLoader
# reboot
灌入後,如果需要進入 uboot 操作,需要在競鬥雲斷電後按住復位開機,並等待燈號全部亮起再熄滅即可。此時競鬥雲的 IP 地址應爲 192.168.1.1/24
。
更多參考資料:
- 竞斗云OpBoot已经发布,提取码:ltrp
復活 mini PCIe
競鬥雲的 mini PCIe 供電有大問題,並且在 OpenWRT 中也缺少 device tree,同時還沒有 REFCLK
。缺失的電阻如下。
- R489 PCIE_VCC3.3_PIN2_PIN52
- R443 PCIE_VCC5_PIN45_PIN47
- R447 PCIE_VCC5_PIN49_PIN51
- R436 PCIE_REFCLK+_PIN13
- R444 PCIE_REFCLK-_PIN11
關於供電問題,恩山上給出的解決方案是短路以上 5 處電阻。
其中5V供电(VCC5)不是所有网卡都需要
(那四个针脚mpcie里定义里是NC 但一般有PA的网卡会定义为5V 也不确定是否所有网卡都是NC 如果网卡定义是GND的话可能烧卡或烧路由 不确定的情况下最好不要接)
所有位置接0欧电阻即可(找不到电阻可以短接)
不過 imi415 給出了更簡單的 3.3V AUX 供電問題解決方案。
根据依次尝试,GPIO2 即为我们要找的GPIO。
之后我们需要在设备树里让kernel在配置PCIe的时候初始化好这个GPIO,如下所示
+&pcie0 {
+ status = "okay";
+
+ perst-gpio = <&tlmm 4 GPIO_ACTIVE_LOW>;
+ wake-gpio = <&tlmm 40 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&pcie_pins>;
+ pinctrl-names = "default";
+
+ bridge@0,0 {
+ reg = <0x00000000 0 0 0 0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+
+ wifi2: wifi@1,0 {
+ compatible = "qcom,ath10k";
+ reg = <0x00010000 0 0 0 0>;
+ };
+ };
+};
我在miniPCIe插槽里插入的是QCA9880 3×3模块,如果是其他模块可以修改或者干脆删除
wifi2
节点。其中要注意的是pinctrl字段,我们并不需要使用pinctrl初始化已经有了的perst和wake,但是由于这个电源控制并不在我们的pcie能配置的GPIO里,我们需要单独配置他。
在
&tlmm
设备节点中添加我们的GPIO2配置,配置为输出低电平,2mA(默认)和下拉。之所以在配置下拉的同时还要设置输出是为了防止下拉强度不够导致MOS工作在线性区无法正常供电。
+ pcie_pins: pcie_pinmux {
+ mux {
+ pins = "gpio2";
+ function = "gpio";
+ bias-pull-down;
+ output-low;
+ };
+ };
按照这种方式修改编译得到的OpenWrt就可以在加载驱动时自动配置给卡供电了。
接下來還需要修復 REFCLK
。
REFCLK的焊盘出厂时默认留空,补焊上即可,如下图:
手头没有0402
的 0 欧电阻了,用跳线短上
一般大多数的 miniPCIe 卡只需要 3.3V 供电,不过板子还预留了
RESERVED
pin 的 5V 供电电路,据恩山说法是为内置 PA 的大功率无线网卡准备的。有需求可以短掉 R443 和 R447。如果不清楚所用模块型号则不需要,这里不做赘述。
更多參考資料:
值不值得買?
以淺羽的實際使用情況來看,無線覆蓋可以滿足需求,比起另一臺靈車斐訊 K3 來說也不遑多讓,而且更加安全可靠。當然具體的穩定性上淺羽沒有太過於留意,也有反應有斷流現象的。
竞斗云 无线速度很好,但是覆盖差,最关键是会丢信号然后重连,普通用问题不大,打游戏就别想了
其實競鬥雲 2.0 本身效能不弱,如果玩玩透明代理、去廣告等之類的家庭網關的玩法的話也算得上是 C/P 值出衆了。加上好拆、好擴展的特點,可以說附加值不低。不過雖然內建 mini PCIe 但卻別有用心地限制了功能,因此完全發揮靈車的漂移能力還是需要一些動手能力的。淺羽已經下單了一塊洋垃圾 EC20 CEFAG,等收到貨後嘗試改造成 CPE 使用。
發佈留言