04 H5使用usb_otg接口作虚拟设备
来源:互联网 发布:阿里云第三方接口 编辑:程序博客网 时间:2024/06/13 05:21
此功能是使用linux内核usb子系统里gadget实现的.
配置内核,使用gadget里所需的功能模块:
//在内核源码目录下打开终端:make menuconfig ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-Device Drivers ---> [*] USB support ---> <*> USB Gadget Support ---> <M> USB Gadget Drivers <M> Audio Gadget //让板通过usb线连接pc时, 板作声卡的角色 <M> Ethernet Gadget (with CDC Ethernet support) //作网卡的角色 <M> Mass Storage Gadget //作u盘的角色 <M> Serial Gadget (with CDC ACM and CDC OBEX support) //作uart的角色 <M> Printer Gadget //作打印机的角色 <M> HID Gadget //作如鼠标,键盘的人机交互设备角色//内核里原已选上,可不作修改.
//编译内核里的驱动模块(选'M'项)make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- modules//如果配置内核时修改了选项,则还需要编译内核镜像并更新sd卡里的内核镜像编译完成后,还需要把编译出来的.ko驱动模块安装到sd卡文件系统里.如sd接上pc后, ext4分区挂载到/run/media/jk/ROOTFS目录里, 则:make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- modules_install INSTALL_MOD_PATH=/run/media/jk/ROOTFS//为了备份,也可以在安装一份到前面的_install目录里, 只需通过INSTALL_MOD_PATH指定路径即可.把卡接回板上启动并进入系统后,所需驱动模块在:ls /lib/modules/4.11.2/kernel/drivers/usb/gadget/legacy/g_acm_ms.ko g_ffs.ko g_multi.ko g_zero.kog_audio.ko g_hid.ko g_ncm.ko gadgetfs.kog_cdc.ko g_mass_storage.ko g_printer.kog_ether.ko g_midi.ko g_serial.ko
使用相应功能的驱动模块:
//注意:通过otg作的虚拟设备角色一时刻只能作一种角色,只有把原角色的驱动模块卸载后才可以加载另一种功能的驱动模块把板上的sd卡的mmcblk0p2分区作u盘:modprobe g_mass_storage file=/dev/mmcblk0p2 removable=1 //命令执行后, 在pc上会像u盘一样弹出界面,然后就可以在pc上访问板上的sd卡分区里.//当需要再作另一种功能时,需要"rmmod g_mass_storage"卸载此功能的驱动模块把板作一个uart设备接入pc:modprobe g_serial //命令执行后,板上的系统会多"/dev/ttyGS0"设备文件, pc系统上会多一个"/dev/ttyACM0"设备文件//两个设备一个读和另一个作写操作就可以接收到数据把板作一个网卡接入pc:modprobe g_ether命令执行后, 板上的网络设备会多"usb0"设备, pc系统上会多一个网络设备"enp0s29f7u5"(名字不是固定的)然后把两个设备设置同一个网段后,测试ping通后,在板上就可以挂载pc上的nfs共享目录了.// 注意设置的ip地址不能与同一系统里的其它网卡的ip地址同一网段// 在板上挂载pc的nfs目录时,记得加上参数"-o nolock,tcp"
阅读全文
2 0
- 04 H5使用usb_otg接口作虚拟设备
- 利用/proc虚拟文件作虚拟设备
- KVM 设备虚拟文件接口
- 如何使用ram作虚拟硬盘
- dwr 使用接口作方法的参数
- dwr 使用接口作方法的参数
- [BIT0429]-Java 使用接口作方法形參來精簡代碼
- STM32F407使用USB作虚拟串口出现黄感叹号
- RK平台下USB_OTG提供的接口和返回的状态
- 使用Windows 95虚拟设备驱动程序(VxD)
- 虚拟网卡TUN/TAP设备使用实例
- Linux 使用uinput创建虚拟input设备
- 虚拟网卡TUN/TAP设备使用实例
- 虚拟币制作
- 虚拟币制作流程
- 虚拟币制作教程
- H5+的使用-----设备的加速度管理Accelerometer模块
- 使用Fitnesse对C++工程作自动化接口测试(1
- 重拾软件工程—(2)软件过程
- 编写IDEA插件之初体验
- Swift4.0中setValuesForKeys()不起作用的问题
- cookies工具类
- MVP入门,接口回调两种实现,new接口和implement实现,okhttpclient
- 04 H5使用usb_otg接口作虚拟设备
- 奥威Power-BI For 电力行业方案-三相不平衡分析
- Odds and Ends
- linux下gdb调试QT程序时,报错,错误如下:
- JSP学习笔记—EL表达式和JSTL标签详解
- 【树形dp】贪吃的九头龙
- jeecg 在tomact8+jdk8下 运行报 URL must not be null
- Intelij IDEA中修改maven为阿里云
- JUnit4之BlockJUnit4ClassRunner