網速200M!這個烏克蘭工程師改造了eBay淘到的二手設備,接收到了Starlink信號
大數據文摘出品
作者:Caleb
俄羅斯入侵烏克蘭第6天,雙方代表團完成第一輪會談,但尚未達成任何實質協議,第二輪會談將于來日舉行。
隨著本次沖突的不斷發展,烏克蘭的不少基礎設施也遭到破壞。
根據監測組織Netblocks,自俄羅斯正式對烏克蘭發起行動后,烏克蘭的互聯網服務一直在經歷“嚴重的中斷”。
2月26日,烏克蘭副總理費多羅夫在推特上求助馬斯克,希望能通過Starlink改善烏克蘭的衛星互聯網接入服務。對此馬斯克回應表示,“Starlink已經在烏克蘭激活,更多終端正在運送途中”。
就在本周一,費多羅夫在推特上傳了一張照片,SpaceX向烏克蘭發去了一輛裝滿Starlink用戶終端的卡車,初步統計,這些終端數量為150臺。
不過,烏克蘭沒有地面站可以接收Starlink信號,最近的地面站位于波蘭沃拉克羅博斯卡村。本周二,據烏克蘭《基輔獨立報》報導,烏克蘭對Starlink系統進行了成功測試,速度達到每秒200兆比特以上。
其實烏克蘭也沒必要這么麻煩,本周一晚,就有一位烏克蘭軟件通信工程師利用自己之前在eBay上買到的東西,組建了一個設備,竟然還真的成功連接到了Starlink網絡。
“老實說,我都開始懷疑這東西到底是不是有作用了。我之前以為可能還存在一些障礙,或者我的設備有些問題,但現在這玩意兒連接得非常順暢,速度也非常快。”Oleg Kutkov說到。
從無法連接到網速200M
其實好幾個月前,Kutkov就已經有一個自己的Starlink天線了,但一直沒機會使用它。
這個天線是他從eBay上低價收購入手的,主要也是為了對該設備進行反向工程,以了解更多信息。賣家也把自己的美國賬戶轉給了Kutkov,但Kutkov能做的并不多,畢竟當時烏克蘭還不支持Starlink。
也正因為此,Kutkov和Starlink也有了一些聯系。期間他還試圖將他的賬戶地址從美國地址換成烏克蘭地址,但Starlink工作人員表示,該位置無法支持服務。不過好在當時Kutkov仍然選擇支付了這個賬戶,“為實驗保持服務,而且......以防萬一”。
隨著馬斯克對烏克蘭提供了大量終端,Kutkov也決定再試一次。
最初Kutkov嘗試將自己的設備連接到他的賬戶,但失敗了。隨后Starlink的工作人員聯系到他,表示現在他的賬戶應該可以正常連接并使用了。
Kutkov也在推特上連發數條推文,以表興奮之情。他表示,目前他能夠達到超過200 Mbps最高速度。
目前,SpaceX在軌道上擁有近2000顆活躍的Starlink衛星,并且在任何特定時間都在烏克蘭上空運行少數軌道。此外,Starlink基礎設施的非官方地圖顯示,在烏克蘭的一些鄰國也設有網關,這有助于保持衛星連接。
Kutkov表示,這個小實驗只是一個測試,他不打算一直使用Starlink天線。相較而言,他還有一個非常好用的光纖網絡,目前為止還沒有中斷過。
另外,庫特科夫對他的設備也進行了很多修補,包括拆除底座。
歸根結底,Kutkov只是想向烏克蘭人民展示,Starlink目前正在烏克蘭運行。“我可以測試這項服務,并向大家報告說,‘是的,這在烏克蘭是可行的”。
Starlink終端的逆向工程
在2021年底,Kutkov還寫了一篇關于Starlink終端的逆向工程的文章。
路由器的核心是當下流行的Qualcomm IPQ4018 SoC:四核ARM Cortex A-7、802.11ac WiFi 5GHz和2.4 GHz,2個通道。此外,該SoC集成了加密引擎和交換機引擎以及硬件NAT和流量控制。
其中最有趣的部分是STSAFE-A芯片。這個特殊的MCU能提供安全存儲、身份驗證和一些加密功能,完全受OpenSSL支持。MCU用于存儲電路板配置和證書。
重新組建的路由器框架圖如下:
SpaceX存儲庫基于相當古老的OpenWrt 15.05.1 “Chaos Calmer”版本。Kutko決定在Ubuntu 16.04 (LTS) 環境中使用Docker:
FROM ubuntu:16.04
ARG UID=1000
ARG GID=1000
# OpenWRT's dl directory.
ENV DLDIR /opt/dl
RUN apt-get update && apt-get install -y \
apt-utils \
build-essential \
curl \
ocaml \
device-tree-compiler \
iputils-ping \
file \
gawk \
git \
less \
libjansson-dev \
libncurses5-dev \
libssl-dev \
nodejs \
python-m2crypto \
python-minimal \
sharutils \
subversion \
unzip \
vim \
squashfs-tools \
wget
RUN groupadd -g $GID user && \
useradd --create-home --gid $GID --uid $UID user
WORKDIR /var/build/starlink-wifi
將Dockerfile放入Starlink存儲庫頂部目錄并運行:
docker build . -t starlink-wifi-build -f Dockerfile
運行Docker:
src_root=$(realpath "$(dirname $0)")
docker run -i $(tty -s && echo -t) \
-v ${src_root}:/var/build/starlink-wifi \
-v /opt/dl \
-v ~/.gitconfig:/etc/gitconfig \
-u $(id -u):$(id -g) \
starlink-wifi-build "$@"
然后構建固件:
update -a
install -a
cp spacex_openwrt.config .config
make oldconfig
運行make menuconfig并轉到Boot Loaders --->,同時確保uboot-ipq40xx........................ U-boot for ipq40xx based platforms已選中,并且未選中其他所有內容。
cp nand_extracted_kernel_config target/linux/ipq806x/config-4.4
make V=s -jN
STSAFE-A110采用了UFDFPN8 2×3 mm封裝,Kutko決定構建一個適配器以便于連接。
此外,還需要一組最低限度的組件:旁路電容器和復位電路。
連接樹莓派I2C總線的設備:
進行一次快速測試:
i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 abcdef
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20:20 -- --
-- -- -- -- -- -- - - -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
成功了!
除此之外,Kutko表示自己還會嘗試反轉I2C通信協議,以了解wifi_control如何與STSAFE交互,以及弄清楚這些證書是如何工作的,如何與Starlink服務器通信的。
完整過程可以參考Kutko的博客文章:
目前,烏克蘭的互聯網基礎設施仍然可能瞬息萬變的情況,對此Kutko表示,他對經常使用Starlink同樣保持謹慎的態度,因為有人猜測該設備可能使他更容易受到俄羅斯空襲的影響。
“我不知道這是否屬實,但從技術角度來看,這是可能的。所以大家一定也要更加注意和小心。”
相關報道:
本文來自微信公眾號 “大數據文摘”(ID:BigDataDigest),作者:文摘菌,36氪經授權發布。
