Petalinux系列——5. Petalinux添加USB支持

本文详细介绍了如何在内核中配置USB相关选项,包括添加USB设备支持、UVC摄像头和USB存储设备等。通过在kernelconfig文件中设置特定参数,如CONFIG_USB_VIDEO_CLASS和CONFIG_USB_STORAGE,实现对USB设备的全面兼容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要内核支持USB设备,首先要在内核中使能USB相关选项,然后要在设备树中添加USB设备,然后就可以使用板卡上的USB接口读取优盘或者是UVC摄像头了。

  • 配置内核

由于USB相关内核配置较多,因此不使用menuconfig在图形界面中逐个配置,直接在kernel config文件中改动
在project-spec/meta-user/recipes-kernel/linux/linux-xlnx/*.cfg中添加

CONFIG_MEDIA_USB_SUPPORT=y
CONFIG_USB_VIDEO_CLASS=y
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
CONFIG_USB_GSPCA=m
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_VIDEO_ADV7604=y
CONFIG_USB_HID=y
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_SUPPORT=y
CONFIG_USB_COMMON=y
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
CONFIG_USB_DEFAULT_PERSIST=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_PCI=y
CONFIG_USB_EHCI_HCD_PLATFORM=y
CONFIG_USB_ACM=m
CONFIG_USB_PRINTER=m
CONFIG_USB_WDM=m
CONFIG_USB_TMC=m
CONFIG_USB_STORAGE=y
CONFIG_USB_CHIPIDEA=y
CONFIG_USB_CHIPIDEA_OF=y
CONFIG_USB_CHIPIDEA_PCI=y
CONFIG_USB_CHIPIDEA_HOST=y
CONFIG_USB_PHY=y
CONFIG_NOP_USB_XCEIV=y
CONFIG_AM335X_CONTROL_USB=y
CONFIG_AM335X_PHY_USB=y
CONFIG_USB_GPIO_VBUS=y
CONFIG_USB_ULPI=y
CONFIG_USB_ULPI_VIEWPORT=y

如果没有project-spec/meta-user/recipes-kernel/linux/linux-xlnx/*.cfg文件,可以使用

$ petalinux-config -c kernel

随便修改一个选项就可以生成kernel config文件。

  • 配置设备树

project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi中添加

/{
 usb_phy0: usb_phy@0 {
  compatible = "ulpi-phy";
  #phy-cells = <0>;
  reg = <0xe0002000 0x1000>;
  view-port = <0x0170>;
  drv-vbus;
 };
};
&usb0 {
 dr_mode = "host";
 usb-phy = <&usb_phy0>;
};
  • 编译工程
$ petalinux-build
要配置Linux内核以支持cp210x驱动,可以使用Petalinux工具来进行配置。首先,需要使用以下命令新建一个Petalinux工程: ``` petalinux-create --type project --template zynq --name PYNQ ``` 然后,进入PYNQ目录并导入HDF文件: ``` cd PYNQ/ petalinux-config --get-hw-description <path to hdf> ``` 接下来,配置内核,可以使用以下命令进入图形界面进行配置: ``` petalinux-config -c kernel ``` 在配置界面中,可以使用搜索功能来查找cp210x的位置。进入"Device Drivers->USB support->USB Serial Converter support"选项,并将其配置为module模式。然后,进入"USB CP210x family of UART Bridge Controllers"选项,并同样将其配置为module模式。 完成配置后,可以编译内核和cp210x驱动的ko文件。如果想要编译整个内核,可以使用命令: ``` make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules ``` 如果只想编译cp210x驱动,可以使用命令: ``` make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules SUBDIRS=$(CURRENT_PATH) ``` 其中,`$(LINUX_KERNEL_PATH)`是Linux内核源码的路径,`$(CURRENT_PATH)`是当前驱动代码的路径。 通过以上步骤,就可以配置和编译cp210x驱动并生成相应的ko文件了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Petalinux系列——3.使用Petalinux编译串口驱动CP210x](https://blog.csdn.net/lulugay/article/details/83277218)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值