PanGu开发板上提供了一个Micro USB OTG接口,默认为Host模式。

Host模式

直接使用Micro USB转USB Type A转换线缆,连接U盘至开发板即可,开发板会自动识别USB设备。U盘的分区格式支持FAT32, EXT4。以下例子中,插入了一个USB读卡器,读卡器上的SD有5个分区。

root@stm32mp1:~# [  249.888684] usb 2-1: new high-speed USB device number 2 using dwc2
[  250.145373] usb-storage 2-1:1.0: USB Mass Storage device detected
[  250.151823] scsi host0: usb-storage 2-1:1.0
[  250.339823] usbcore: registered new interface driver uas
[  251.490554] scsi 0:0:0:0: Direct-Access              SD Card Reader   1.00 PQ: 0 ANSI: 6
[  251.503690] sd 0:0:0:0: [sda] 15122432 512-byte logical blocks: (7.74 GB/7.21 GiB)
[  251.512018] sd 0:0:0:0: [sda] Write Protect is off
[  251.516889] sd 0:0:0:0: Attached scsi generic sg0 type 0
[  251.528144] sd 0:0:0:0: [sda] No Caching mode page found
[  251.538272] sd 0:0:0:0: [sda] Assuming drive cache: write through
[  251.565430]  sda: sda1 sda2 sda3 sda4 sda5
[  251.573607] sd 0:0:0:0: [sda] Attached SCSI removable disk

root@stm32mp1:~# ls /dev/sda
sda   sda1  sda2  sda3  sda4  sda5
root@stm32mp1:~# ls /dev/sda*
/dev/sda  /dev/sda1  /dev/sda2	/dev/sda3  /dev/sda4  /dev/sda5

Device模式

PanGu开发板的Micro USB接口也可以作为从设备,连接至其它USB主设备的端口。默认是作为USB 以太网设备,主要实现的是将开发板的 USB OTG 接口作为从设备模式,模拟成一个网络接口,然后主机通过 USB 连接开发板。
使用Micro USB线连接开发板J5和PC USB Host接口。PanGu开发板上usb0为网络设备,默认IP地址为192.168.7.2。
Micro USB线插入PC USB接口后,PC也会出现一个usb网络设备,一般名称为NDIS,然后为网卡配置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/mmcblk1p5 removable=1
作者:SteveChen  创建时间:2024-09-18 11:38
最后编辑:SteveChen  更新时间:2024-09-18 11:38
上一篇:
下一篇: