raspberry pi zero通過usb進行ssh連線
2018年5月9日更新
通過usb ssh連線最新映象會報如下錯誤:
ssh: connect to host raspberrypi.local port 22: Connection refused
解決方式如下:
開啟boot分割槽,在該分割槽下建立一個名為”ssh”的空檔案,再次上電連線即可
樹莓派zero因為相對來說太小巧,沒有提供初始化的網絡卡,所以我們除了通過串列埠連線以外,樹莓派zero也提供了usb直接連線的方式。即通過Ethernet Gadget模式來連線pc,並進行ssh連線。
Ethernet Gadget模式即USB網絡卡模式,比較常見的就是我們通過android手機的usb介面對pc進行網路共享的一種手段。一般電腦都會自動識別這種裝置,並開啟網絡卡進行共享。
1、修改配置檔案
為了進行usb連線,我們需要修改BOOT資料夾下的config.txt
與cmdline.txt
配置檔案。
首先在config.txt
最末行處換行新增如下程式碼,開啟usb網絡卡模式:
dtoverlay=dwc2
其次在cmdline.txt
檔案中找到rootwait
欄位,並在其後面空格新增如下資訊,在開啟系統時開啟usb網絡卡模式。
modules-load=dwc2,g_ether
2、通過usb連線裝置
樹莓派zero有兩個MicroUSB口,一個是電源插口,職司供電的功能,另外一個就是usb介面,它除了供電以外還提供OTG的功能,我們也是通過這個介面來連線pc。
連線成功後網絡卡會出現以下裝置:
則證明已經連線好樹莓派zero。此時我們可以通過以下程式碼連線樹莓派zero:
ssh pi@raspberrypi.local
但此時ip段為DHCP模式獲取,如果我們希望通過ip來連線,則我們需要給樹莓派的usb網絡卡設定ip。
3、設定USB網絡卡的IP
我們可以通過ifconfig -a
來檢視我們現在的網絡卡裝置,此時我們可以看到,USB0網絡卡裝置,我們就是通過該裝置連線的pc,所以我們需要設定該網絡卡的ip:
sudo nano /etc/network/interfaces
開啟網絡卡配置介面,在最末行新增如下程式碼來設定固定IP:
allow-hotplug usb0
iface usb0 inet static
address 192.168.7.2
netmask 255.255.255.0
network 192.168.7.0
broadcast 192.168.7.255
gateway 192.168.7.1
然後重啟usb0網絡卡:
sudo ifdown usb0
sudo ifup usb0
ifconfig usb0
但樹莓派此時實際上是從機,我們需要通過設定pc主機的ip來讓樹莓派0的usb網絡卡真正運作起來,那麼我們對剛才的usb裝置設定如下IP:
此時我們就可以通過ip來進行ssh連線了:
ssh pi@192.168.7.2