i2C-MP15X-B底板板上提供了一个Micro USB OTG接口(J5),已经固定为Device模式。

Device模式的USB网口

Device模式下,i2C-MP15X-B开发板可作为从设备,连接至其它USB主设备的端口。开发板上Linux系统中,默认已经配置为USB ethernet网络模式。该功能实现了将开发板的 USB OTG 接口作为从设备模式,模拟成一个网络接口,然后主机通过 USB 连接开发板。
使用Micro USB线连接开发板Micro USB接口(J5)和PC USB Host接口。i2C-MP15X-B开发板上usb0为网络设备,默认IP地址为192.168.7.2。
Micro USB线插入PC USB接口后,PC也会出现一个usb网络设备,一般名称为NDIS,然后为PC上的网卡配置IP地址为192.168.7.10,就可以双向Ping来测试。

先检查PC usb是否有识别到新设备,是用lsusb命令可以看到有个新设备已经检测到了,dmesg命令可以看到这个新设备已经被识别为RNDIS设备。

$ lsusb
...
Bus 001 Device 014: ID 1d6b:0104 Linux Foundation Multifunction Composite Gadget
...
$ sudo dmesg | tail
[2940815.737462] usb 1-2: new high-speed USB device number 15 using xhci_hcd
[2940815.878227] usb 1-2: New USB device found, idVendor=1d6b, idProduct=0104
[2940815.878229] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[2940815.878230] usb 1-2: Product: STM32MP1
[2940815.878230] usb 1-2: Manufacturer: STMicroelectronics
[2940815.878231] usb 1-2: SerialNumber: 0
[2940815.884117] rndis_host 1-2:1.0 usb0: register 'rndis_host' at usb-0000:00:14.0-2, RNDIS device, 26:b1:26:7b:cf:a9

这里可以使用ip命令就可以看到有个usb0的设备了。注意,在较新版本的Linux系统上会把usb0设备重命名为"enp"开头的设备,可以在dmesg中看到,实际操作时也以这个设备名称为准。

[4843414.437098] rndis_host 1-7:1.0 enp0s29f7u7: renamed from usb0

PC配置IP地址,这里的usb0可以替换为"enp0s29f7u7"设备名称

$ sudo ifconfig usb0 192.168.7.10

PC上ping开发板

# ifconfig 
# ping 192.168.7.2

Device模式的可移动磁盘

先禁用usbotg-config.service服务,重启后再加载g_mass_storage驱动。

# systemctl disable usbotg-config.service
# modprobe g_mass_storage file=/dev/mmcblk2p5 removable=1
作者:SteveChen  创建时间:2024-09-18 16:36
最后编辑:SteveChen  更新时间:2024-09-18 16:37
上一篇:
下一篇: