通过SSH Over USB管理树莓派Zero

树莓派Zero因为相对来说太小巧,没有提供初始化的网卡,所以我们除了通过串口连接以外,树莓派Zero也提供了USB直接连接的方式。即通过Ethernet Gadget模式来连接pc,并进行ssh连接。

Ethernet Gadget模式即USB网卡模式,比较常见的就是我们通过android手机的usb接口对pc进行网络共享的一种手段。一般电脑都会自动识别这种设备,并开启网卡进行共享。

修改配置文件 Link to heading

为了进行USB连接,我们需要修改BOOT文件夹下的config.txtcmdline.txt配置文件。 首先在config.txt最末行处换行添加如下代码,打开usb网卡模式:

dtoverlay=dwc2

其次在cmdline.txt文件中找到rootwait字段,并在其后面空格添加如下信息,在打开系统时开启USB网卡模式。

modules-load=dwc2,g_ether

在boot分区新建ssh文件,以打开ssh访问功能。

touch ssh

通过usb连接设备 Link to heading

树莓派zero有两个MicroUSB口,一个是电源插口,职司供电的功能,另外一个就是USB接口,它除了供电以外还提供OTG的功能,我们也是通过这个接口来连接PC。 此时我们可以通过以下代码连接树莓派zero:

ssh [email protected]

但此时ip段为DHCP模式获取,如果我们希望通过ip来连接,则我们需要给树莓派的usb网卡设置ip。

设置USB网卡的IP Link to heading

我们可以通过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: 192.168.7.1 掩码: 255.255.255.0 路由: 192.168.7.1

此时我们就可以通过ip来进行ssh连接了:

ssh [email protected]