硬體開發板 · Linux misc

如何讓 embedded device 透過手機上網 – USB Tethering

上篇文章是講如何打造具備 cellular 功能的embedded device.

這篇是分享如何讓 embedded device 透過手機上網. 主要是透過 USB tethering 的技術來達到此目的

USB tethering 的意思是 “一台機器 A 透過 USB cable 分享網路給對接的機器B,  機器 B 就能透過機器 A 來對外上網 ”

原理基本上是 – 手機啟動 DHCP server,embedded device 透過dhcp 得到一組private IP. 拿到 IP後, embedded device 的封包可以透過 USB cable 傳輸並透過手機 routing 出去.

USB tethering 整體架構圖如下

2016-08-25_230504.png

  1. 手機從基地台拿到 10.10.10.10 的對外 IP
  2. 手機透過 USB 傳輸線和 Embedded device 連線
    • 兩邊的 IP 分別是 192.168.31.120 以及 192.168.31.1
  3. Embedded device 可透過手機上網

首先要準備下列硬體設備

  1. 能上網的手機 (此篇以 Android 手機為例)
  2. USB 傳輸線
  3. Embedded device (需具有 USB type A connector)

 

接著準備軟體

  1. 在 embedded device 的 kernel source 啟動下列 configuration
    • USB_NET_RNDIS_HOST
    • USB_NET_CDCETHER

2016-08-25_2310312016-08-25_231012

2. 編譯完放到 embedded device 裡並載入 module

 

軟硬體準備好後, 就開始進行設定

  1. 將手機和 embedded device 以 USB cable 對接
  2. 開啟手機 USB tethering 功能
    • 開啟後,embedded device 就能偵測到裝置,如下圖

2016-08-26_231023.png

3. 此時embedded device 會出現一個 usb0 的網路介面

4. Embedded device 透過指令 “dhclient usb0” 來跟手機要到 private IP

5. Embedded device 即可上網!

4~5 步驟如下圖

2016-08-26_232448.png

之後只要帶一條 USB 傳輸線就能讓 embedded device 上網囉!

note: 若使用 iphone, Kernel configuration 要選別的選項. 但 iOS 版本疑似有相容性議題. 我不是 APPLE 使用者, 所以就沒有特別去追嚕

發表迴響