只用一个typeC线连接树莓派4B(同时完成供电、信号传输、网络共享三合一)
以上步骤的目标是创建一个模拟的 USB 设备,该设备可以通过 USB 与其他设备进行通信并提供网络功能。以上步骤的目标是创建一个模拟的 USB 设备,该设备可以通过 USB 与其他设备进行通信并提供网络功能。,先找到自己的Mac的IP,然后在根据这个IP的前3位找树莓派的IP。文件,并写入以下内容:这个脚本用于设置 USB 设备,包括定义设备的各种属性和功能。文件,并写入以下内容:这个脚本用于设置
方法一:使用静态IP(供电、信号传输二合一)
一、优缺点
- 优点:在每次连接树莓派时,无需重新查找树莓派的地址。
- 缺点:无法使用网络共享的功能(网络共享就是可以将你电脑上的网络通过typeC共享给树莓派,这样树莓派就无需连接网络)
二、树莓派上的配置
-
在
/boot/config.txt
文件末尾写入dtoverlay=dwc2
:这会加载 USB 设备的核心驱动。 -
在
/boot/cmdline.txt
文件末尾写入modules-load=dwc2
: 这将加载相应的模块。 -
在
/etc/modules
文件末尾写入libcomposite
:这将加载 USB 设备的功能模块。 -
在
/etc/dhcpcd.conf
文件末尾写入denyinterfaces usb0
:这会禁用 USB0 接口的 DHCP 自动配置。 -
安装 dnsmasq,命令为
sudo apt-get install dnsmasq
:dnsmasq 是一个轻量级的 DHCP 和 DNS 服务器,用于向USB设备分配IP地址。 -
创建
/etc/dnsmasq.d/usb
文件,并写入以下内容:这些设置指定了供 USB 设备使用的网络接口,以及定义了 DHCP 配置以分配 IP 地址。interface=usb0 dhcp-range=10.55.0.2,10.55.0.6,255.255.255.248,1h dhcp-option=3 leasefile-ro
-
创建
/etc/network/interfaces.d/usb0
文件,并写入以下内容:这些配置文件指定了 USB0 接口的静态 IP 地址。auto usb0 allow-hotplug usb0 iface usb0 inet static address 10.55.0.1 netmask 255.255.255.248
-
创建
/root/usb.sh
文件,并写入以下内容:这个脚本用于设置 USB 设备,包括定义设备的各种属性和功能。
#!/bin/bash
cd /sys/kernel/config/usb_gadget/
mkdir -p pi4
cd pi4
echo 0x1d6b > idVendor # Linux Foundation
echo 0x0104 > idProduct # Multifunction Composite Gadget
echo 0x0100 > bcdDevice # v1.0.0
echo 0x0200 > bcdUSB # USB2
echo 0xEF > bDeviceClass
echo 0x02 > bDeviceSubClass
echo 0x01 > bDeviceProtocol
mkdir -p strings/0x409
echo "fedcba9876543211" > strings/0x409/serialnumber
echo "Ben Hardill" > strings/0x409/manufacturer
echo "PI4 USB Device" > strings/0x409/product
mkdir -p configs/c.1/strings/0x409
echo "Config 1: ECM network" > configs/c.1/strings/0x409/configuration
echo 250 > configs/c.1/MaxPower
# Add functions here
# see gadget configurations below
# End functions
mkdir -p functions/ecm.usb0
HOST="00:dc:c8:f7:75:14" # "HostPC"
SELF="00:dd:dc:eb:6d:a1" # "BadUSB"
echo $HOST > functions/ecm.usb0/host_addr
echo $SELF > functions/ecm.usb0/dev_addr
ln -s functions/ecm.usb0 configs/c.1/
udevadm settle -t 5 || :
ls /sys/class/udc > UDC
ifup usb0
service dnsmasq restart
-
使用
chmod +x /root/usb.sh
命令将/root/usb.sh
设置为可执行文件. -
在
/etc/rc.local
文件的exit 0
之前添加/root/usb.sh
:这将在启动时自动运行/root/usb.sh
脚本,配置 USB 设备模拟器。 -
重启树莓派即可
以上步骤的目标是创建一个模拟的 USB 设备,该设备可以通过 USB 与其他设备进行通信并提供网络功能。
三、Mac上的配置
- Mac无需而外配置。
- 当使用typeC连接树莓派之后,在 “系统偏好设置” - - “网络” 中出现了一个新设备连接,说明树莓派连接成功
- 打开Mac的终端,输入
ssh 用户名@10.55.0.1
,然后输入密码即可连接成功。树莓派初始的用户名为pi
,初始密码为raspberry
方法二:使用动态IP(供电、信号传输、网络共享三合一)
一、优缺点
- 优点:可以使用网络共享的功能。(网络共享就是可以将你电脑上的网络通过typeC共享给树莓派,这样树莓派就无需连接网络)
- 缺点:在每次连接树莓派时,需重新查找树莓派的地址。
二、树莓派上的配置
-
在
/boot/config.txt
文件末尾写入dtoverlay=dwc2
:这会加载 USB 设备的核心驱动。 -
在
/boot/cmdline.txt
文件末尾写入modules-load=dwc2
: 这将加载相应的模块。 -
在
/etc/modules
文件末尾写入libcomposite
:这将加载 USB 设备的功能模块。 -
安装 dnsmasq,命令为
sudo apt-get install dnsmasq
:dnsmasq 是一个轻量级的 DHCP 和 DNS 服务器,用于向USB设备分配IP地址。 -
创建
/etc/dnsmasq.d/usb
文件,并写入以下内容:这些设置指定了供 USB 设备使用的网络接口。interface=usb0 leasefile-ro
-
创建
/etc/network/interfaces.d/usb0
文件,并写入以下内容:这些配置文件指定了 USB0 接口的使用DHCP动态分配的地址。auto usb0 allow-hotplug usb0 iface usb0 inet dhcp
-
创建
/root/usb.sh
文件,并写入以下内容:这个脚本用于设置 USB 设备,包括定义设备的各种属性和功能。(可以使用sudo -i
命令转换成root用户,这样才能打开/root文件夹)
#!/bin/bash
cd /sys/kernel/config/usb_gadget/
mkdir -p pi4
cd pi4
echo 0x1d6b > idVendor # Linux Foundation
echo 0x0104 > idProduct # Multifunction Composite Gadget
echo 0x0100 > bcdDevice # v1.0.0
echo 0x0200 > bcdUSB # USB2
echo 0xEF > bDeviceClass
echo 0x02 > bDeviceSubClass
echo 0x01 > bDeviceProtocol
mkdir -p strings/0x409
echo "fedcba9876543211" > strings/0x409/serialnumber
echo "Ben Hardill" > strings/0x409/manufacturer
echo "PI4 USB Device" > strings/0x409/product
mkdir -p configs/c.1/strings/0x409
echo "Config 1: ECM network" > configs/c.1/strings/0x409/configuration
echo 250 > configs/c.1/MaxPower
# Add functions here
# see gadget configurations below
# End functions
mkdir -p functions/ecm.usb0
HOST="00:dc:c8:f7:75:14" # "HostPC"
SELF="00:dd:dc:eb:6d:a1" # "BadUSB"
echo $HOST > functions/ecm.usb0/host_addr
echo $SELF > functions/ecm.usb0/dev_addr
ln -s functions/ecm.usb0 configs/c.1/
udevadm settle -t 5 || :
ls /sys/class/udc > UDC
ifup usb0
service dnsmasq restart
-
使用
chmod +x /root/usb.sh
命令将/root/usb.sh
设置为可执行文件. -
在
/etc/rc.local
文件的exit 0
之前添加/root/usb.sh
:这将在启动时自动运行/root/usb.sh
脚本,配置 USB 设备模拟器。 -
重启树莓派即可
以上步骤的目标是创建一个模拟的 USB 设备,该设备可以通过 USB 与其他设备进行通信并提供网络功能。
三、Mac上的配置
-
当使用typeC连接树莓派之后,在 “系统偏好设置” - - “网络” 中出现了一个新设备连接,说明树莓派连接成功
-
在 “系统偏好设置” - - “共享” 中选中“互联网共享”,并且勾选上刚刚出现的设备,最后开启“互联网共享”功能
-
打开Mac的终端,输入
arp -a
,先找到自己的Mac的IP,然后在根据这个IP的前3位找树莓派的IP。Mac与树莓派连接的IP结尾一般是on bridge100 ifscope permanent [bridge]
-
打开Mac的终端,输入
ssh 用户名@树莓派IP
,然后输入密码即可连接成功。树莓派初始的用户名为pi
,初始密码为raspberry
,根据上图,树莓派IP为192.168.2.13
引用
方法一来源:
方法来源
方法二是我自己根据方法一修改得到的。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)