linux设备如何通过USB网络共享与手机通信(包含安卓手机以及iphone)

公司做的无人机(开发板用的是高通的9342 wifi平台,linux 内核为2.6.31)需要跟手机通讯,要求通信稳定延时低,是通过USB网络共享实现的。

与安卓手机共享USB网络

    直接在板子linux内核开启rndis和usb相关选项即可。

     bug记录

     插拔usb线,因为mac地址变化手机连接上遥控器但连不上飞机的bug,改了9342驱动 extap部分。


与iphone手机共享USB网络

 除了修改内核配置(内核添加netlink socket等),还需要移植苹果的一套开源程序和驱动,包含usbmuxd/pair两个应用程序及依赖的十多个库,底层USB驱动模块ipheth.ko。

  ipheth.ko为虚拟的USB网卡驱动。

  usbmuxd用于对usb配置,配置完后生成正确的usb厂商ID,设备ID等。

  pair是握手程序

 设备端iphone USB共享流程: iphone手机通过USB线连接到设备->usbmuxd运行,生成USB厂商ID、设备ID->内核扫描调用ipheth驱动模块,生成eth0网口->pair运行,握手通信->dhcp客户端运行,设备端可通过DHCP拿到172.20.10.x网段的IP。共享完成,在设备端可ping通iphone手机(172.20.10.1)

 bug记录

1.USB线连接好iphone和9342板子后,需要在iphone的usb网络共享功能,先关闭再打开,才能ping通

          修改pair程序解决

 2.   USB网络共享+wifi,用chariot做性能测试,运行几秒后提示队列超时(de

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值