1. 程式人生 > >raspberry pi zero通過usb進行ssh連線

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.txtcmdline.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