USB
您可以将设备树配置为 USB HOST 模式,以便通过 USB HUB 扩展多个接口。 温馨提示:
将将设备树配置为 USB HOST 模式后,USB 虚拟网口无法使用了,Luckfox Pico/Luckfox Pico A/B 只能选择串口登录,Luckfox Pico Plus/Pro/Max 可以使用SSH 登录或串口登录
占用了 USB 口,供电可以使用微雪Pico To HAT 上的Micro usb 供电或者是通过 GPIO 供电,供电需谨慎以免损坏开发板
HOST 模式
使用 luckfox-config 打开相关配置:
- 键盘上的↑、↓键进行菜单项目的选择,enter键进入,←、→键或者Tab进行 OK和 cancel 按钮的选择,Esc 键取消返回,空格键为选择定选项,任何更改都将在重新启动后生效。注意:ADB登录无法使用 方向键和 Tab,只能使用数字选择选项,enter确认。
在终端打开 luckfox-config 工具:
luckfox-config
选择
Advanced Options
:选择
USB
:选择
host
模式:当选择回车确认后,按
esc
退出:重启开发板
reboot
挂载 U 盘
设备上电,查看当前USB模式,正常应该返回host。
cat /sys/devices/platform/ff3e0000.usb2-phy/otg_mode
插入U盘或者读卡器,显示如下:
[ 143.364405] usb 1-1.4: new high-speed USB device number 3 using xhci-hcd
[ 143.513956] usb-storage 1-1.4:1.0: USB Mass Storage device detected
[ 143.517513] usb-storage 1-1.4:1.0: Quirks match for vid 05e3 pid 0749: 520
[ 143.519454] scsi host1: usb-storage 1-1.4:1.0
[ 144.536147] scsi 1:0:0:0: Direct-Access Generic MassStorageClass 1536 PQ: 0 ANSI: 6
[ 144.770829] sd 1:0:0:0: [sdb] 30949376 512-byte logical blocks: (15.8 GB/14.8 GiB)
[ 144.771907] sd 1:0:0:0: [sdb] Write Protect is off
[ 144.772903] sd 1:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[ 144.780888] sdb: sdb1
[ 144.785345] sd 1:0:0:0: [sdb] Attached SCSI removable diskk根据提示新设备为sdb,查看dev下sda文件。
# ls /dev/sd*
/dev/sdb1 /dev/sdb /dev/sda将sdb1挂载到/mnt/sdcard文件夹下。
mount -t vfat /dev/sdb1 /mnt/sdcard/
查看sdcard文件夹文件。
ls /mnt/sdcard/
USB 摄像头
USB 摄像头的种类繁多,我们无法对所有型号进行全面测试。在本部分,我们选择使用微雪电子的 OV5640 5MP USB Camera (B) 和 IMX179 8MP USB Camera (A) 这两款摄像头作为示例。
在开始测试之前,请确保USB已经设置成了 host 模式。为了防止供电不足,建议选择带有供电功能的USB HUB。
内核
- 在内核中启用UVC驱动,可通过搜索关键字"Webcam"。
- 在搜索结果中找到并勾选"USB Video Class (UVC)",最后保存并退出。
- 编译内核,测试 UVC驱动是否加载成功。
Buildroot
在 buildroot 目录添加 fswebcam,使用关键字"fswebcam"进行搜索。
在 buildroot 目录添加 V4L2,使用关键字"libv4l2"进行搜索。
在 buildroot 目录添加 ffmpeg,使用关键字"ffmpeg"进行搜索。
拍照
- 插入USB摄像头后,检查是否已识别到设备,可以使用以下指令进行查看:
使用USB摄像头拍摄照片,并保存到指定的文件名:
# fswebcam -d /dev/video0 -r 1920x1080 /root/image01.jpg
--- Opening /dev/video0...
Trying source module v4l2...
/dev/video0 opened.
No input was specified, using the first.
--- Capturing frame...
Captured frame in 0.00 seconds.
--- Processing captured image...
Unable to load font 'sans': Could not find/open font
Disabling the the banner.
Writing JPEG image to '/root/image01.jpg'.-d /dev/video0
:指定了要使用的设备-r 1920x1080
:指定了拍摄照片的分辨率/root/image01.jpg
:指定的输出文件的路径和名称。
录制视频
当前录制视频是基于Luckfox-Pico-Max开发板测试。由于Luckfox-Pico系列开发板内存有限,不支持大分辨率录制。
ffmpeg -f v4l2 -video_size 320x240 -framerate 30 -i /dev/video21 output.mp4
如果想要调整视频分辨率,可以使用
scale
滤镜,将输入的视频帧大小调整为宽度为 640 像素,高度为 480 像素。ffmpeg -f v4l2 -i /dev/video21 -vf "scale=640:480" output1.mp4
效果: