Anycloud平台使用USB RNDIS与PC联网
1. 概要
在特定的产品形态下,没有以太网接口,某些场景下调试时就相对麻烦。
由于默认USB口功能都是打开的,所以可以采用通过USB直连PC的方式(RNDIS),与PC进行联网(RNDIS)作为调试时使用.
此方法适用于Anycloud37D/37E/330等平台.
2. 修改内核
想要使用RNDIS,需要修改默认的内核配置:
- 在确保默认sdk编译正常,以及编译完成后,打开内核的配置页面(进入内核目录):
make O=../bd ARCH=arm menuconfig
- 跳转到 Device Drivers —> USB support —> USB Gadget Support :
打开Ethernet Gadget (with CDC Ethernet support)
,并且使能RNDIS support (NEW)
. - 保存退出后,将当前配置覆盖默认内核配置:
cp ../bd/.config arch/arm/configs/anycloud_ak37d_mini_defconfig
- 重新编译内核(通过os同级目录下脚本):
./build_kernel.sh
编译成功后,可以看到有新的驱动增加:xiaozijie@xiaozijie-MS-7D22:~/project/AK37D_SDK_V1.06/os/bd$ find -name "*usb*.ko" ./drivers/usb/common/usb-common.ko ./drivers/usb/gadget/function/usb_f_mass_storage.ko ./drivers/usb/core/usbcore.ko ./drivers/usb/storage/usb-storage.ko ./drivers/usb/serial/usbserial.ko ./drivers/usb/serial/usb_wwan.ko xiaozijie@xiaozijie-MS-7D22:~/project/AK37D_SDK_V1.06/os/bd$ find -name "*usb*.ko" ./drivers/usb/common/usb-common.ko ./drivers/usb/gadget/function/usb_f_ecm.ko ./drivers/usb/gadget/function/usb_f_rndis.ko ./drivers/usb/gadget/function/usb_f_mass_storage.ko ./drivers/usb/gadget/function/usb_f_ecm_subset.ko ./drivers/usb/core/usbcore.ko ./drivers/usb/storage/usb-storage.ko ./drivers/usb/serial/usbserial.ko ./drivers/usb/serial/usb_wwan.ko
3. 将相关驱动加入文件系统中
- 使用SDK顶层,重新运行
./auto_build.sh
查看rootfs目录,相关驱动已经加入:xiaozijie@xiaozijie-MS-7D22:~/project/AK37D_SDK_V1.06/rootfs/rootfs$ find -name "*usb*" ./lib/modules/4.4.192V2.2/kernel/drivers/usb ./lib/modules/4.4.192V2.2/kernel/drivers/usb/common/usb-common.ko ./lib/modules/4.4.192V2.2/kernel/drivers/usb/gadget/function/usb_f_ecm.ko ./lib/modules/4.4.192V2.2/kernel/drivers/usb/gadget/function/usb_f_rndis.ko ./lib/modules/4.4.192V2.2/kernel/drivers/usb/gadget/function/usb_f_mass_storage.ko ./lib/modules/4.4.192V2.2/kernel/drivers/usb/gadget/function/usb_f_ecm_subset.ko ./lib/modules/4.4.192V2.2/kernel/drivers/usb/core/usbcore.ko ./lib/modules/4.4.192V2.2/kernel/drivers/usb/storage/usb-storage.ko ./lib/modules/4.4.192V2.2/kernel/drivers/usb/serial/usbserial.ko ./lib/modules/4.4.192V2.2/kernel/drivers/usb/serial/usb_wwan.ko ./usr/sbin/usb_hcd.sh ./usr/sbin/usb_udc.sh ./usr/bin/lsusb
- 为了方便使用,可以增加一个专用的脚本(rndis.sh),用于加载相关驱动:
#!/bin/shmodprobe configfs modprobe usb-common modprobe udc-core modprobe libcomposite insmod /usr/modules/ak_udc.ko insmod /lib//modules/4.4.192V2.2/kernel/drivers/usb/gadget/function/u_ether.ko insmod /lib/modules/4.4.192V2.2/kernel/drivers/usb/gadget/function/usb_f_rndis.ko insmod /lib/modules/4.4.192V2.2/kernel/drivers/usb/gadget/function/usb_f_ecm.ko insmod /lib/modules/4.4.192V2.2/kernel/drivers/usb/gadget/function/usb_f_ecm_subset.ko insmod /lib//modules/4.4.192V2.2/kernel/drivers/usb/gadget/legacy/g_ether.koifconfig usb0 192.168.8.111 netmask 255.255.255.0 #route add default gw 192.168.8.1
- 完成以上步骤后,重新烧录固件即可.
4. 加载相关驱动
重新烧录完成后,系统启动然后直接运行前面提到的rndis.sh脚本:
~ # rndis.sh
~ # ifconfig
lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0UP LOOPBACK RUNNING MTU:65536 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)usb0 Link encap:Ethernet HWaddr A6:26:84:2B:C9:07inet addr:192.168.8.111 Bcast:192.168.8.255 Mask:255.255.255.0UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:4 errors:0 dropped:2 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:1000RX bytes:204 (204.0 B) TX bytes:0 (0.0 B)
可以看到,USB网卡设备已经运行起来.
查看PC端设备,可以看到相应的网卡设备:
5. PC安装PC端驱动
如果第四节中,PC端没有看到对应的USB网卡设备,那么说明PC没有安装相对应的驱动,PC可以看到一个陌生的设备:
此时只需要重新安装设备的驱动即可,最终可以看到识别成功:
RNDIS驱动网上有很多,这里不做说明,CSDN共享资源也有,这里分享网友的地址:
https://github.com/zhangzhian/LearningNotes/blob/master/res/RNDIS.7z
6. 配置联网
当PC端识别到USB RNDIS网卡设备后,对网卡设置静态IP:
配置完成后,测试联网:
ping成功后,说明网络已经成功通信!
Anycloud平台使用USB RNDIS与PC联网相关推荐
- xilinx linux 4.14移植到zc702平台,usb rndis驱动
1.编译uboot,可以参考http://www.wiki.xilinx.com/Build%20U-Boot 2.编译linux内核 首先获取linux内核源码:git clone https:// ...
- USB RNDIS实现
RNDIS是指Remote NDIS,基于USB实现RNDIS实际上就是TCP/IP over USB,就是在USB设备上跑TCP/IP,让USB设备看上去像一块网卡. 同样,在WinCE中实现USB ...
- Android USB RNDIS
android 系统设置 网络与互联网>热点和网络共享>USB网络共享 在linux 系统上USB网络共享正常,但是在windows上无法访问网络, Window平台默认时没有打开RNDI ...
- Anycloud平台LOGO生成方法
Anycloud平台LOGO生成方法 0. 摘要 Anycloud37D/E.Sky37D/E 均适用 本方法使用ffpmeg工具 1. 转换原理 实际开发中,用到的原始logo文件可能为*.jpeg ...
- RK3188 5.1平台PCM2708 USB声卡调试
RK3188 5.1平台PCM2708 USB声卡调试 [1]底层要支持usb sound,通过make menuconfig 找到如下配置: [2]设置CONFIG_SND_RAWMIDI=y 和C ...
- Linux USB RNDIS设备在WinXP、Win7、Win10下的驱动安装
在Win10下安装rndis驱动: 说明:win10下usb rndis驱动会默认识别为com口,经本人亲测可以使用该驱动在网络适配器里面出现小电脑,并网络ping通 资源连接:在我的个人上传资源中查 ...
- win10下usb rndis驱动配置
win10下usb rndis驱动会默认识别为com口,需要手动更新驱动. 先下载kindle_rndis.inf_amd64-v1.0.0.1,然后以管理员身份运行第五个cmd文件,然后在设备管理器 ...
- linux mic阵列通道丢数据,基于XMOS平台的USB麦克风阵列多声道采集装置
技术领域 本实用新型涉及麦克风阵列多声道声音采集领域,尤其涉及基于XMOS平台的USB麦克风阵列多声道采集装置. 背景技术 麦克风阵列(Array Microphone),是由2个以上数量的声学数字或 ...
- 基于Anycloud平台移植Zbar
基于Anycloud平台移植Zbar 0. 环境准备 zbar 下载 官网ZBar bar code reader (sourceforge.net)下载代码zbar-0.10.tar.bz2 下载i ...
最新文章
- 【CVPR2022】基于鲁棒区域特征生成的零样本目标检测
- Effective C++ --7 模板与泛型编程
- cf914D. Bash and a Tough Math Puzzle(线段树)
- 使用 nuget server 的 API 来实现搜索安装 nuget 包
- c语言学习与应用 北京邮电大学出版社,《C语言程序设计与应用》低价购书_计算机与互联网_孔网...
- Windows下利用C++实现Git自动克隆项目
- tcpdf html 支持css吗,TCPDF 5.1 发布,增加对CSS的支持
- 项目交接文档_项目管理反思
- php apd,PHP debug 工具 之 APD
- java字符编码详解_Java中字符编码格式详解
- 最佳实践 —— 单元测试
- 【前端】javascript判断undefined、null、NaN;字符串包含等
- 生成VOC2012数据集
- 李雅普诺夫稳定性理论 matlab,李雅普诺夫稳定理论的定义应用解析.ppt
- 基于python的微博舆情分析与研究—以《北京冬奥会》为关键词
- 拳王虚拟项目公社:如何通过SEO优化分析建网站赚钱?
- 物联网如何改变医疗保健行业
- 什么时候?才可以千秋万代一统江湖!!!
- 三进制 四进制计算机原理,基因编码为何选择了“四进制”,而不是计算机系统的“二进制”?...
- 打地鼠java代码流程图_51单片机 普中51 打地鼠游戏 仿真 程序 流程图
热门文章
- 微型计算机飞傲m9,千元级全功能覆盖的水桶机 飞傲M9评测
- cad渐开线齿轮轮廓绘制_CAD画齿轮的渐开线程序
- 机械臂实时控制仿真演示
- Unity做360°全景图
- 光纤传导多大功率的激光束 学习
- java实验指导书 王立新,模拟电路实验指导书.doc
- 微信小程序开发之wepy框架
- 大学计算机基础实验报表五北理,北京理工大学实验报告表.docx
- OfficeWord2007图片编辑功能使用教程(转)
- 【安装工具】【ARM-DS-5】成功破解ARM DS-5 v5.26.0 + 配置高通MDM9026芯片的demo==》成功编译得到demo.bin文件