AM5728(AM5708)开发实战之USB网络共享

本文详细介绍了如何在Linux环境下编译USB/IP协议栈和驱动模块,包括进入相应目录,使用autogen.sh和configure脚本,以及make和makeinstall命令。接着,文章阐述了如何编译USB/IP驱动模块,并列举了加载和卸载驱动的步骤。在测试部分,展示了服务器如何开启USB网络共享,以及客户端如何绑定和解除远程USB设备的步骤。

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

一 编译USB/IP组件

USB/IP组件包含两部分:USB/IP协议栈和USB/IP驱动模块
USB/IP协议栈源码位于linux_kernel/tools/usb/usbip
USB/IP驱动模块位于linux_kernel/drivers/usb/usbip

1.1 编译USB/IP协议栈

1 进入USB/IP协议栈目录
cd linux_kernel/tools/usb/usbip
2 执行如下命令,生成configure
./autogen.sh
打印信息如下图1所示:
在这里插入图片描述
图1
3 执行如下命令,生成Makefile
./configure --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf --prefix=/home/ linux/Desktop/usbip
4 编译并且安装USB/IP协议栈
make; make install
USB/IP协议栈如下图2所示:
在这里插入图片描述
图2

1.2 编译USB/IP驱动模块

1 执行如下命令,选择USB/IP驱动模块
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
依次选择Device Drivers -> USB support -> USB/IP support
在这里插入图片描述
2 执行如下命令,编译USB/IP驱动模块
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules
编译成功后生成3个驱动模块,如下所示:
drivers/usb/usbip/usbip-core.ko
drivers/usb/usbip/usbip-host.ko
drivers/usb/usbip/vhci-hcd.ko

二 测试USB/IP组件

服务器执行如下步骤,开启USB网络共享
1 加载服务器驱动
insmod usbip-core.ko
insmod usbip-host.ko
2 启动usbipd后台程序
usbipd -D
3 扫描连接的USB设备
usbip list -l
在这里插入图片描述
注意:
I 确保服务器端已连接USB设备
II 请忽略错误信息:failed to open /usr/share/hwdata//usb.ids
4 共享USB设备给客户端
usbip bind --busid 3-1
在这里插入图片描述
为了防止数据冲突,共享USB设备后,服务器会卸载该USB设备
5 关闭USB网络共享
usbip unbind --busid 3-1
客户端执行如下步骤,绑定USB设备
1 加载客户端驱动
insmod usbip-core.ko
insmod vhci-hcd.ko
2 扫描服务器USB设备
usbip list --remote 192.168.0.227
在这里插入图片描述
注意:
请忽略错误信息failed to open /usr/share/hwdata//usb.ids
3 绑定服务器USB设备
usbip attach --remote 192.168.0.227 --busid 3-1.1
4 列出当前绑定的USB设备,然后解除绑定
usbip port
在这里插入图片描述
usbip detach --port 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值