MaixII 通过 USB OTG 口连接U盘
2022-06-14
MaixII的USB口是用来做device连接电脑跑adb的。
但是有没有方法可以在不跑adb的时候(总不能天天跑adb吧,再说adb也可以网络跑啊)连接一些USB设备玩玩呢。
2023年02月以后的 0.5.4 镜像支持 UVC 摄像头 TTY 串口 等设备了。
原文链接:https://bbs.sipeed.com/thread/844 有改动
摸索过程
MaixII dock 有两个接口,我们要更改 otg 口因此我们使用 UART口 连接电脑来更改板子设置
看看在那里定义了
在 /etc/init.d/ 文件夹里面可以看到有如下的文件
root@sipeed:# ls /etc/init.d
S00mpp S10udev S40network S52ntpd log rc.preboot
S01audio S11dev S41netparam adbd network rcK
S01logging S12usb S50telnet cron rc.final rcS
S02app S20urandom S51dropbear fontconfig rc.modules sysntpd
注意到里面有一个 S12usb
使用 cat /etc/init.d/S12usb
查看里面内容后发现有一句
otg_role=`cat /sys/devices/platform/soc/usbc0/otg_role`
抱着好奇的心态在设备上跑了这句脚本,结果如下所示:
root@sipeed:~# cat /sys/devices/platform/soc/usbc0/otg_role
usb_device
切换为 USB host
再好奇下看这个 /sys/devices/platform/soc/usbc0 目录中都有啥,结果如下:
root@sipeed:~# ls /sys/devices/platform/soc/usbc0
driver hw_scan_debug of_node subsystem usb_device usb_null
driver_override modalias otg_role uevent usb_host
重点是里面的:usb_device
usb_host
usb_null
那直接把 usb_host
echo 到 /sys/devices/platform/soc/usbc0/otg_role
中看看啥效果:
echo "usb_host" > /sys/devices/platform/soc/usbc0/otg_role
然后我们使用 lsusb
看看都有啥
root@sipeed:~# lsusb
Bus 001 Device 001: ID 1d6b:0002
Bus 002 Device 001: ID 1d6b:0001
哈,USB控制器出来了。
连接USB设备
想着设备内识别SD卡,那U盘应该也差不多。插个U盘试下。
root@sipeed:~# lsusb
Bus 001 Device 001: ID 1d6b:0002
Bus 001 Device 002: ID aaaa:8816
Bus 002 Device 001: ID 1d6b:0001
多出来一个设备,在 /dev 目录下看了下果然多出来一个sda:
root@sipeed:/# ls /dev/sda
sda sda1 sda2
挂载 U盘 试试:
出现 Read-only file system
的话,重烧是最快的解决方法。
root@sipeed:~# mkdir -p /home/usbdisk
root@sipeed:~# mount /dev/sda2 /home/usbdisk/
root@sipeed:~# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/root 256512 88352 162920 35% /
tmpfs 29864 12 29852 0% /tmp
none 29796 0 29796 0% /dev
/dev/mmcblk0p3 2013 1 2013 0% /mnt/cfg
/dev/mmcblk0p6 2939292 59664 2863244 2% /mnt/UDISK
/dev/sda4 7926272 405644 7520628 5% /home/usbdisk
挂载成功。
然后,试了下无线网卡、USB串口啥的,基本都没识别出来,估计是驱动没有编译进去吧。