使用USB Ethernet Gadget連接Raspberry Pi Zero W 2
前言
之前使用樹莓派的時候,都是透過HDMI接上螢幕,再透過鍵盤滑鼠操作。
但是萬一手邊沒有螢幕跟鍵盤滑鼠,要怎麼操作呢?
準備開始
首先,我們需要準備以下材料:
- 1 x Raspberry Pi 4 or Zero / Zero W / Zero 2 W 或是更新
- 1 x MicroSD 卡
- 1 x 能夠讀取 MicroSD 卡的裝置
- 1 x 筆電或是桌機
- 1 x MicroUSB to USB 連接線
筆電或是桌機必須是
Windows
,因為Linux
設定太坑了,所以我沒成功過,然後MacOS
可能可以,但我沒試過
安裝步驟
我們要先下載 Raspberry Pi OS 的映像檔並安裝,這邊建議直接使用 Raspberry Pi Imager
這邊注意!建議選
64-bit Full
的版本,其他版本我沒有試過,不確定是否有支援
設定安裝的主機名稱(hostname)以及使用者帳密(username/password)
等待安裝完成,並重新插入 MicroSD 卡到電腦中
找到 MicroSD 卡的
bootfs
磁碟中的config.txt
檔案新增一行在特定位置
位置一定要對!網路上很多教學都只說新增一行,但沒說要新增在哪裡🥹
1
2
3
4
5
6
7...
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
dtoverlay=dwc2
# Automatically load overlays for detected cameras
...
結果如下:
接著,將
otg_mode=1
給註解掉1
2
3
4
5
6
7
8
9...
[cm4]
# Enable host mode on the 2711 built-in XHCI USB controller.
# This line should be removed if the legacy DWC2 controller is required
# (e.g. for USB device mode) or if USB support is not required.
# otg_mode=1 <---- 就是這行
[all]
...
找到 MicroSD 卡的
bootfs
磁碟中的cmdline.txt
檔案- 在
rootwait
後面加上modules-load=dwc2,g_ether
因為cmdline只有一行,要注意不要加錯位置
1
... rootwait modules-load=dwc2,g_ether quiet splash ...
會變成這樣:
- 在
將 MicroSD 卡退出,插入到 Raspberry Pi Zero W 2 中,並連接 MicroUSB to USB 連接線到電腦上。我是用Raspberry Pi USB Dongle Expansion Board Kit,所以可以直接插上去
如果你的電腦是
Windows
,會需要安裝RNDIS
驅動程式,可以參考這篇安裝完成後,可以在裝置管理員中看到
RNDIS
的裝置
網路介面卡也會多出一個裝置,這就是直接把 Raspberry Pi Zero W 2 當成網路介面卡
接著,等待一下,Raspberry Pi Zero W 2 會自動開啟並連接到你的電腦上,這時候我們可以先ping一下看看有沒有連上
Pi 有可能會重新連接你的電腦,所以馬上ping可能會失敗,可以看一下網路介面有沒有連上,等一下再試試看
如果網路介面沒有問題,我們可以ping一下看看有沒有連上:
1
ping pi.local
成功的話,你會看到類似以下的結果:
1
2
3
4
5
6
7
8
9
10Ping pi.local [fe80::f4da:bc9b:9cc1:2daf%26] (使用 32 位元組的資料):
回覆自 fe80::f4da:bc9b:9cc1:2daf%26: 時間<1ms
回覆自 fe80::f4da:bc9b:9cc1:2daf%26: 時間<1ms
回覆自 fe80::f4da:bc9b:9cc1:2daf%26: 時間<1ms
回覆自 fe80::f4da:bc9b:9cc1:2daf%26: 時間<1ms
fe80::f4da:bc9b:9cc1:2daf%26 的 Ping 統計資料:
封包: 已傳送 = 4,已收到 = 4, 已遺失 = 0 (0% 遺失),
大約的來回時間 (毫秒):
最小值 = 0ms,最大值 = 0ms,平均 = 0ms最後,我們可以透過
ssh
連接到 Raspberry Pi Zero W 2 上1
ssh pi.local
結論
我們從沒有外部螢幕和鍵盤的情況下,利用USB連線設定和訪問Raspberry Pi Zero W 2
但可惜的是,我這邊沒有測試成功Linux和MacOS,如果有人成功了,歡迎留言告訴我,我再補充上去🥲
Linux的坑滿多的,連上去還有可能會遇到找不到裝置的問題,所以我就放棄了😂
參考資料
- How to Connect a Raspberry Pi to a PC or Laptop Using USB
- Turning your Raspberry Pi Zero into a USB Gadget > Ethernet Gadget
- Windows/Install RNDIS driver
- Raspberry Pi Zero W Headless setup – Windows 10 RNDIS Driver issue resolved
這篇文章同步發表於 Medium ,歡迎留言討論!
Medium 文章連結