跳到主要内容

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确认。
  1. 在终端打开 luckfox-config 工具:

    luckfox-config
  2. 选择Advanced Options:

    img

  3. 选择USB:

    img

  4. 选择host模式:

    img

  5. 当选择回车确认后,按esc退出:

    img

  6. 重启开发板

reboot

挂载 U 盘​

  1. 设备上电,查看当前USB模式,正常应该返回host。

    cat /sys/devices/platform/ff3e0000.usb2-phy/otg_mode
  2. 插入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
  3. 根据提示新设备为sdb,查看dev下sda文件。

    # ls /dev/sd*
    /dev/sdb1 /dev/sdb /dev/sda
  4. 将sdb1挂载到/mnt/sdcard文件夹下。

    mount -t vfat /dev/sdb1 /mnt/sdcard/
  5. 查看sdcard文件夹文件。

    ls /mnt/sdcard/

USB 摄像头​

USB 摄像头的种类繁多,我们无法对所有型号进行全面测试。在本部分,我们选择使用微雪电子的 OV5640 5MP USB Camera (B) 和 IMX179 8MP USB Camera (A) 这两款摄像头作为示例。

在开始测试之前,请确保USB已经设置成了 host 模式。为了防止供电不足,建议选择带有供电功能的USB HUB。

内核​

  1. 在内核中启用UVC驱动,可通过搜索关键字"Webcam"。

  2. 在搜索结果中找到并勾选"USB Video Class (UVC)",最后保存并退出。

  3. 编译内核,测试 UVC驱动是否加载成功。

Buildroot​

  1. 在 buildroot 目录添加 fswebcam,使用关键字"fswebcam"进行搜索。

  2. 在 buildroot 目录添加 V4L2,使用关键字"libv4l2"进行搜索。

  3. 在 buildroot 目录添加 ffmpeg,使用关键字"ffmpeg"进行搜索。

拍照​

  1. 插入USB摄像头后,检查是否已识别到设备,可以使用以下指令进行查看:

  2. 使用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:指定的输出文件的路径和名称。

录制视频​

  1. 当前录制视频是基于Luckfox-Pico-Max开发板测试。由于Luckfox-Pico系列开发板内存有限,不支持大分辨率录制。

    ffmpeg -f v4l2 -video_size 320x240 -framerate 30 -i /dev/video21 output.mp4
  2. 如果想要调整视频分辨率,可以使用 scale 滤镜,将输入的视频帧大小调整为宽度为 640 像素,高度为 480 像素。

    ffmpeg -f v4l2 -i /dev/video21 -vf "scale=640:480" output1.mp4
  3. 效果: