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联网相关推荐

  1. xilinx linux 4.14移植到zc702平台,usb rndis驱动

    1.编译uboot,可以参考http://www.wiki.xilinx.com/Build%20U-Boot 2.编译linux内核 首先获取linux内核源码:git clone https:// ...

  2. USB RNDIS实现

    RNDIS是指Remote NDIS,基于USB实现RNDIS实际上就是TCP/IP over USB,就是在USB设备上跑TCP/IP,让USB设备看上去像一块网卡. 同样,在WinCE中实现USB ...

  3. Android USB RNDIS

    android 系统设置 网络与互联网>热点和网络共享>USB网络共享 在linux 系统上USB网络共享正常,但是在windows上无法访问网络, Window平台默认时没有打开RNDI ...

  4. Anycloud平台LOGO生成方法

    Anycloud平台LOGO生成方法 0. 摘要 Anycloud37D/E.Sky37D/E 均适用 本方法使用ffpmeg工具 1. 转换原理 实际开发中,用到的原始logo文件可能为*.jpeg ...

  5. RK3188 5.1平台PCM2708 USB声卡调试

    RK3188 5.1平台PCM2708 USB声卡调试 [1]底层要支持usb sound,通过make menuconfig 找到如下配置: [2]设置CONFIG_SND_RAWMIDI=y 和C ...

  6. Linux USB RNDIS设备在WinXP、Win7、Win10下的驱动安装

    在Win10下安装rndis驱动: 说明:win10下usb rndis驱动会默认识别为com口,经本人亲测可以使用该驱动在网络适配器里面出现小电脑,并网络ping通 资源连接:在我的个人上传资源中查 ...

  7. win10下usb rndis驱动配置

    win10下usb rndis驱动会默认识别为com口,需要手动更新驱动. 先下载kindle_rndis.inf_amd64-v1.0.0.1,然后以管理员身份运行第五个cmd文件,然后在设备管理器 ...

  8. linux mic阵列通道丢数据,基于XMOS平台的USB麦克风阵列多声道采集装置

    技术领域 本实用新型涉及麦克风阵列多声道声音采集领域,尤其涉及基于XMOS平台的USB麦克风阵列多声道采集装置. 背景技术 麦克风阵列(Array Microphone),是由2个以上数量的声学数字或 ...

  9. 基于Anycloud平台移植Zbar

    基于Anycloud平台移植Zbar 0. 环境准备 zbar 下载 官网ZBar bar code reader (sourceforge.net)下载代码zbar-0.10.tar.bz2 下载i ...

最新文章

  1. 【CVPR2022】基于鲁棒区域特征生成的零样本目标检测
  2. Effective C++ --7 模板与泛型编程
  3. cf914D. Bash and a Tough Math Puzzle(线段树)
  4. 使用 nuget server 的 API 来实现搜索安装 nuget 包
  5. c语言学习与应用 北京邮电大学出版社,《C语言程序设计与应用》低价购书_计算机与互联网_孔网...
  6. Windows下利用C++实现Git自动克隆项目
  7. tcpdf html 支持css吗,TCPDF 5.1 发布,增加对CSS的支持
  8. 项目交接文档_项目管理反思
  9. php apd,PHP debug 工具 之 APD
  10. java字符编码详解_Java中字符编码格式详解
  11. 最佳实践 —— 单元测试
  12. 【前端】javascript判断undefined、null、NaN;字符串包含等
  13. 生成VOC2012数据集
  14. 李雅普诺夫稳定性理论 matlab,李雅普诺夫稳定理论的定义应用解析.ppt
  15. 基于python的微博舆情分析与研究—以《北京冬奥会》为关键词
  16. 拳王虚拟项目公社:如何通过SEO优化分析建网站赚钱?
  17. 物联网如何改变医疗保健行业
  18. 什么时候?才可以千秋万代一统江湖!!!
  19. 三进制 四进制计算机原理,基因编码为何选择了“四进制”,而不是计算机系统的“二进制”?...
  20. 打地鼠java代码流程图_51单片机 普中51 打地鼠游戏 仿真 程序 流程图

热门文章

  1. 微型计算机飞傲m9,千元级全功能覆盖的水桶机 飞傲M9评测
  2. cad渐开线齿轮轮廓绘制_CAD画齿轮的渐开线程序
  3. 机械臂实时控制仿真演示
  4. Unity做360°全景图
  5. 光纤传导多大功率的激光束 学习
  6. java实验指导书 王立新,模拟电路实验指导书.doc
  7. 微信小程序开发之wepy框架
  8. 大学计算机基础实验报表五北理,北京理工大学实验报告表.docx
  9. OfficeWord2007图片编辑功能使用教程(转)
  10. 【安装工具】【ARM-DS-5】成功破解ARM DS-5 v5.26.0 + 配置高通MDM9026芯片的demo==》成功编译得到demo.bin文件