- 更新:2020-05-11 00:12:45
- 首发:2020-05-11 00:11:48
- 教程
- 13986
本文介绍如何开启Raspberry Pi 4 USB OTG模式,让树莓派变身有线网卡
。
树莓派4相比之前的版本具备三倍的计算性能提升和高达4G的LPDDR4内存,自带双屏无线+蓝牙,千兆网扣,支持双屏4k,新增俩USB3.0,可玩性非常强。无风扇禁音,非常适合作为一个边缘计算节点
、旁路由
来使用。如果再开启NAT转发,即可实现的变身有线网卡
的同时作为无线网络接收器
、路由器
来使用。
Raspberry 4 和 Raspberry Zero 一样,具备一个带OTG功能的USB接口(很遗憾Raspberry pi model B、Raspberry pi model B+、Raspberry pi 2 model B、Raspberry pi 3 model B、Raspberry pi 3 model B+均无USB OTG功能)。
启用USB OTG模式,让树莓派变身有线网卡
刷入官方Raspbian系统。经过测试,树莓派爱好者基地发行的Debian-Pi-Aarch64系统、
Ubuntu Server
系统,暂时都不支持USB OTG模式。刷入后,先不急移除TF卡。进入已挂载的boot分区,
touch SSH
文件(新建一个名称为SSH
的空白文件,开启SSH连接功能)。插入TF卡、有线网络并启动设备,使用电脑在同一个网络下连接SSH。
ssh pi@raspberrypi
执行
passwd
设置当前用户pi
的密码。执行sudo su
切换为root
用户,执行passwd
设置root
用户的密码。修改
/etc/ssh/sshd_config
文件,在第33行添加
PermitRootLogin yes
允许root
用户以SSH
方式登录系统。执行systemctl restart sshd
重启sshd
。*此步骤是可选的。
执行
rpi-update
进行系统升级。将内核切换为64位内核,打开树莓派USB OTG模式。修改
/boot/config.txt
文件,在最后一行加入:
# enbale 64 bit kernel
arm_64bit=1
# enable USB OTG
dtoverlay=dwc2
- 载入内核模块,启动USB网卡功能。修改
/boot/cmdline.txt
文件,在rootwait
后,添加空格并加入:
modules-load=dwc2,g_ether
修改后Raspberry 4的/boot/cmdline.txt
文件内容可能像这样:
console=serial0,115200 console=tty1 root=PARTUUID=738a4d67-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether
- 执行
telinit 6
,重启设备。将USB-C接口与电脑相连,从现在起可以拔除有线网卡了。
请注意,由于电脑主板供电的原因,您有可能需要一根类似这样的USB3.0 TypeC 带辅助供电
的数据线。您需要15w
(5V 3A)的电源以确保树莓派获得足够的动力。
MacOS
系统下是不需要安装驱动的,设备会检测到RNDIS/Ethernet Gadget
的网卡,并且自动分配类似169.254.192.68
的IP地址。Windows
系统需要安装驱动程序。如果没有执行第五步,则需要将用户改为pi
,即ssh pi@raspberrypi.local
。
ssh root@raspberrypi.local
以Root
身份进入系统。这时ifconfig -a
下出现usb0
网卡。
usb0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 169.254.147.254 netmask 255.255.0.0 broadcast 169.254.255.255
inet6 fe80::25c3:8e3b:1f05:eb2f prefixlen 64 scopeid 0x20<link>
ether 82:9a:4c:72:4a:60 txqueuelen 1000 (Ethernet)
RX packets 985 bytes 180096 (175.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 2481 bytes 168355 (164.4 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
小提示,如果没有出现wlan0
网卡,可能是因为还没有设置Wifi使用的国家标准,执行raspi-config
根据提示设置无线网络即可。
关于网速
使用USB OTG网卡,网速上限为300M。开启TypeC接口USB OTG
功能不会影响其它USB
接口的正常使用。
树莓派4中的无线网卡大约能达到114M的网速。如果使用外置USB3.0网卡
,则可以跑满千兆。
小技巧
安装Remote - SSH插件后,树莓派也可以作为Visual Studio Code
的远程计算节点来使用,降低电脑的计算压力。
您的代码直接保存在树莓派、程序也直接在树莓派中运行,使用树莓派作为USB网卡几乎零延迟,开发体验与本机无异。
(受疫情影响,我们仍在一个临时办公地点办公。我所使用的Mac设备配置很低,但是使用树莓派作为计算节点之后,我调试代码的效率提高了很多。)
如何使树莓派变身无线网卡
及路由器
?请关注我后续的文章😄。
请问:「Raspberry 4 和 Raspberry Zero 一样,具备一个带OTG功能的USB接口」这个是说 4 个USB 接口都有 OTG,还是某一个 USB3 的接口有 OTG 的功能?
只是供电的TypeC口有OTG功能哈。
「请注意,由于电脑主板供电的原因,您有可能需要一根类似这样的USB3.0 TypeC 带辅助供电
的数据线。」如果我是连接手机,是不是就不需要辅助供电线了?
是的,相当于传输数据的同时供电了。但是手机的电流是否能支撑树莓派4还不好说。
大佬您好,树莓派4是否支持使用OTG化身U盘(usb mass storage)呀?
这个需求很特殊。是可以的,但是比较困难,需要修改驱动配置。
我在这个过程中遇到了各种问题- -,现在在UDC core: g_serial: couldn't find an available UDC卡住了,请问大佬有什么解决方案吗,还是说我前置的设置就错了呢,> 这个需求很特殊。是可以的,但是比较困难,需要修改驱动配置。
抱歉,这块我也不太清楚,尝试寻求AI的帮助吧。
感谢回复! Clang 在生成时沿用了 GCC 的版本号标识,我是不是可以理解为Clang 18.1.4生成时使用的就是GCC4.8,所以我后续使用gcc 9.4
gcov
就会有不兼容的问题抱歉,这块我也不太清楚,尝试寻求AI的帮助吧。
我在这个过程中遇到了各种问题- -,现在在UDC core: g_serial: couldn't find an available UDC卡住了,请问大佬有什么解决方案吗,还是说我前置的设置就错了呢,> 这个需求很特殊。是可以的,但是比较困难,需要修改驱动配置。
好思路呀!!
关于hex编辑器,网上没找到特别好用的(小白没办法),最后在vscode上扩展一搜hex,第一个安装一下就可以用vscode进行hex编译了