目录

树莓派zero的USB ethernet gadget配置

树莓派 zero w 是一个非常小巧的树莓派型号,既没有以太网口,也没有 USB-A 口,只有 micro USB 接口 和 Mini HDMI。若没有各种转接线,想要连接树莓派只能靠 配置无线网络。但是,假如需要使用 zero w 的无线网卡做一些嗅探抓包之类的功能,就不太方便了。

Ethernet Gadget 可以使树莓派的 USB 接口成为一个以太网设备,只需要一根 micro USB 的数据线就可以连接电脑,从而 SSH 登录、通过电脑的网络上网。

注意:以下的方法只在 Raspberrypi OS(Raspbian) 下完全有效,其他的基于 Debian 的系统或多或少都有些问题。

开启 USB ethernet gadget

开启该功能需要修改启动参数。将刻录好系统的 SD 卡连接电脑,有两个分区,找到 boot 分区。

编辑 config.txt 在末尾添加

1
dtoverlay=dwc2

编辑 cmdline.txt,在 rootwait 后添加一个空格,然后添加

1
modules-load=dwc2,g_ether

创建一个名为 ssh 的空文件,开启树莓派的 sshd 服务

1
touch ssh

设置固定的 MAC 地址

默认情况下,每次启动树莓派都会生成一个随机的 MAC 地址,而 Ubuntu 的 Network Manager 根据 Mac 地址生成配置文件。这就造成了每次启动时 Ubuntu 都会生成新的配置文件并要修改配置。设置固定的 MAC 地址可以避免这种情况。

将刻录好系统的 SD 卡连接电脑,找到 rootfs 分区,修改文件 etc/modprobe.d/g_ether.conf,写入以下内容

1
options g_ether host_addr=00:22:44:66:88:f0 dev_addr=00:22:44:66:88:f1

MAC 地址可以随意定义,只要不和已有设备的 MAC 地址冲突。

设置静态 IP

设置静态 IP 可以在网络连接后,方便地从电脑上 SSH 登录到树莓派。由于我们要通过电脑共享网络给树莓派,而 Ubuntu 16.04 中共享网络时,电脑的 IP 固定为 10.42.0.1,因此我们给树莓派设置 IP 为 10.42.0.2

同样找到 rootfs 分区,修改文件 etc/network/interfaces,添加以下内容

1
2
3
4
5
6
allow-hotplug usb0
iface usb0 inet static
 address 10.42.0.2
 netmask 255.255.255.0
 gateway 10.42.0.1
 dns-nameservers 10.42.0.1

电脑端配置

以 Ubuntu 16.04 为例,将树莓派通过 micro USB 接入电脑,树莓派启动后,Ubuntu 会自动生成一个网络配置文件,在网络设置中打开该配置文件,将 IPV4 设置中的方法改为 “与其他计算机共享” 即可。

稍等片刻网络设置好后,就可以通过 10.42.0.2 登录树莓派了。

参考链接