跳到主要内容

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摄像头后,检查是否已识别到设备,可以使用以下指令进行查看:
  1. 使用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. 效果: