Raspberry Pi 使用 4G 數據網路

購物清單

不想分開購買零件,可以購買 Sixfab 的 Raspberry Pi 4G/LTE套件

組裝

  1. 安裝 Mini PCIe 4G IoT Module 到 3G/4G-LTE Base HAT,感覺和以前在手提電腦上安裝記憶體差不多。

  2. 然後將 3G/4G-LTE Base HAT 裝上 Raspberry Pi。
    Installed onto Pi

    完成之後大概這樣的感覺(圖片來源:@sixfab

  3. 將天線也安裝上去,正確地完成安裝之後的樣子大概這樣
    Connect Antenna

    加上天線應該這樣個樣子吧(圖片來源:@torbox.ch

最左邊和最右邊的兩個天線似乎是可以互換的,我安裝完成之後那些線是平行的。

安裝驅動

Sixfab 提供了兩種方法驅動 LTE 模組,一個是 PPP 一個是 QMI interface。這邊我用的是 PPP。

在 Raspberry Pi 的終端模擬器裡進行操作,下載 sixfab 的安裝腳本,然後跟著指引進行安裝就可以了。簡單方便快捷,感謝sixfab。

1
2
3
4
5
$ wget https://raw.githubusercontent.com/sixfab/Sixfab_PPP_Installer/master/ppp_installer/install.sh

$ chmod +x install.sh

$ sudo ./install.sh

有些選項可能比較曖昧,給個避坑指南

  • Choose your Sixfab
    • 因為買的是 3G, 4G/LTE Base Shield 所以只填 2
    • 就算之後連不上也肯定不是這裡填錯
  • APN
    • 問問谷歌、雅虎或者百度你這家電信商的基地台用什麼存取點名稱(APN),選一個填,不對之後再改
    • 將你的 SIM 卡插入智能電話,看看設定裡行動網絡設定關於存取點名稱裡有什麼選項,選一個填,不對之後再改
    • 之後修改的方法參見出坑指南
  • PORT name
    • 因為買的是 3G, 4G/LTE Base Shield 所以只填 ttyUSB3
    • 肯定是 ttyUSB3,跟實際上你硬件上插哪個 USB 位置好像沒關係,可能是用的 GPIO?

沒能避開坑?出坑指南

我需要登入才能上網

如果你需要用戶名和密碼登入才能上網,完成前面的安裝和設定之後再編輯 /etc/ppp/peers/provider 檔案。

你要移除這一行

1
noauth

然後按照以下格式填入登錄資料

1
2
user "YOUR USERNAME"
password "YOURPASSWORD"

遇到 Routing error 的錯誤

執行以下指令

1
2
3
$ sudo route del default

$ sudo route add default ppp0

沒有網絡連接

誰也 ping 不到,網絡不通,或者無盡的連接超時

1
2
3
4
5
$ ping 8.8.8.8
connect: network is unreachable
$ ping baidu.com
connect: network is unreachable
`

檢查你的移動數據是否需要先在手機上啟用

試試手動連接移動數據

1
$ sudo pon

你可能發現 Modem hang up 並且不論你做什麼都沒有什麼效果。

我已經坑過幾次了,基本上問題就是 APN 填錯了,或者舊的 APN 已經不能用了。於是我將 SIM 插入手機,看手機自動連上網絡的時候用的哪個 APN 再修改 /etc/ppp/peers/provider 文件

1
2
$ sudo poff
$ sudo nano /etc/ppp/peers/provider

APN 在我 /etc/ppp/peers/provider 文件裡第三行的結尾。

逐一測試你所能找到的 APN,看看 sudo pon 能不能連上,應該其中一個能連上。至少我是成功了。

DONE

1
2
3
4
5
$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=52 time=20.9 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=52 time=111 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=52 time=69.7 ms