/*******************************************************

原文地址: http://hi.baidu.com/deep_pro/item/ec40c00ad48b8ef7a010340f
说明:下边有补充!
*********************************************************/

折腾了好几天,终于把Linux Gadget设备驱动搞得有点入门了。
       以前看的那个把mini2440当做鼠标的那个驱动程序http://www.arm9home.com/bbs/read.php?tid-2538.html
       真的有点误导。他说一个晚上就搞定了,这是让我汗颜的水平。
       里真正的一线开发工程师的差距还很大啊

终于有点明白 /driver/usb/Gadget 下的源码作用了,妈的,
       以前还总是在内核已经有一个驱动占用了usb slave的时候还强行加载那个模拟鼠标的驱动,
       看着insmod: cannot insert 'zebra_mouse.ko': Device or resource busy 很抓狂
       其实只要把usb slave口的线拔下再插上,这才能触发USB设备识别

华清远见大牛老师刘洪涛写的
       http://blog.csdn.net/hongtao_liu/archive/2009/09/15/4555645.aspx

不知道能不能轮到他给我们上课,看了第三期驱动课表,只有10多天,唉

那个fs2410开发板暂时拿不到手,那就在mini2440上玩玩吧
       重新编译内核(2.6.29)
       2.6.29内核 
       Device Drivers ---> USB support --->   USB Gadget Support ---> 
       其中 USB Peripheral Controller 选 S3C2410 USB Device Controller
       然后再选一个内核自带的Gadget驱动程序来做演示,这里就选 Ethernet Gadget (with CDC Ethernet support)   
              因为这个驱动不需要传入参数,所以给个Y而不是M,省事

make之后烧写zImage到mini1440
       等到Linux完全启动之后,拔下usb slave口的接头再插上,就会弹出发现(RNDIS /Ethernet Gadget)设备的信息

只是这个RNDIS 驱动实在难搞,据说在 activesync 里有,但是我装了没有反应
       只有自己下载了微软的RNDIS USB kit 2005,抽取出驱动并自己改了模板里的inf文件才算安装成功

我改好的RNDIS网卡驱动下载
       http://download.csdn.net/source/1742242

inf文件里只改了vid和pid,这个可以从设备管理器里查到(即使还没有驱动程序)
       

这里vid是0525 pid a4a2
       后来想想完全可以吧制造商什么的也改了,那应该很好玩

然后就多了一个网络连接,设置为ip 192.168.1.2 网关192.168.1.1 子网掩码255.255.255.0
       此时这个网络连接还是断开状态

dnw连接开发板,ifconfig usb0 192.168.1.1 ,就会发现网络联通了  (kangear注:测试OK)
       互ping可以,还可以http://192.168.1.1访问开发板里内置的web服务器 (kangear注:测试OK)

至于使用开发板让PC上网,这个应该是很多wm手机具备的功能,RNDIS我想就是为了这个目的设计的。
       可以mini2440里没有iptable什么复杂的包转发程序,将usb0通过eth0实现转发,我还不能自己添加,只能到此为止了。

kangear补充
对于: http://www.arm9home.net/simple/index.php?t3326.html 里的测试方法:
alex@alex-desktop:~$ 
alex@alex-desktop:~$ ftp 192.168.0.202
Connected to 192.168.0.202.
220 FriendlyARM FTP server (Version 6.4/OpenBSD/Linux-ftpd-0.17) ready.
Name (192.168.0.202:alex): 
331 Password required for alex.
Password:
530 Login incorrect.
Login failed.
ftp> 
我的测试结果:
[root@localhost linux-2.6.32.2]# ftp 192.168.1.230
Connected to 192.168.1.230 (192.168.1.230).
220 FriendlyARM FTP server (Version 6.4/OpenBSD/Linux-ftpd-0.17) ready.
Name (192.168.1.230:root): 
331 Password required for root.
Password:
530 Login incorrect.
Login failed.
ftp> 
( 注释:我不知道账号密码就直接敲回车了,不过看可以看出已经能连接了)
就差原博主没有实现的当成真网卡用的功能了,不过我找到一些相关知识,搞懂后应该就可以了《 如何开启Linux双网卡的转发功能》

以上的ping能最后实验是自己骗自己,去总结的时候发现的,实质并不是用的usb线来ping,看了这篇文章《开发板作为USB设备模拟网卡(linux usb 网卡)--gadget&&rndis|cdc》才真正意义上的ping通了。以下是转载的关键部分:


最后还有一个问题,就是开发板有网卡,还模拟USB为网卡的情况,一定要保证usb虚拟的网卡和WINDOWS上USB网卡在同一个IP段,并且不能和开发板原先的网卡的IP段一样,要不累死你都PING不到~

着是我网卡设置的情况

windows

usb网卡

IP:192.168.2.50 掩码:255.255.255.0 网关:(这个随意,看个人喜好,如果设置网关最好开发板也设置)192.168.2.1

正常网卡

IP:192.168.1.235 掩码:255.255.255.0 网关:192.168.1.1

开发板

usb网卡

IP:192.168.2.70 掩码:255.255.255.0 网关:192.168.2.1

正常网卡

IP:192.168.1.70 掩码:255.255.255.0 网关:192.168.1.1

查看开发板网关

route -n

设置开发板网关

route add default gw 192.168.2.1

这样之后应该就能和WINDOWS PING通了~

kangear的测试结果:

[root@localhost 桌面]# ftp 192.168.2.230
Connected to 192.168.2.230 (192.168.2.230).
220 FriendlyARM FTP server (Version 6.4/OpenBSD/Linux-ftpd-0.17) ready.
Name (192.168.2.230:root): plg
331 Password required for plg.
Password:
230 User plg logged in.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
ftp> 

(ftp的帐户和密码是参考 这里,帐户:plg,密码:plg)

把arm开发板做成USB网卡(RNDIS /Ethernet Gadget)相关推荐

  1. linux usb视频开发板,ARM开发板上USB 摄像头图像采集实现

    开发板上的arm是AT91RM9200,摄像头选用的是网眼的pc350,主控芯片是ov511+.系统内核是2.4,宿主机是fedora core 6,交叉编译器是2.95.3.就是这些家底了,:-). ...

  2. imx6ull开发板 通过usb网卡uboot ping通虚拟机和windows主机

    1遇到的问题:直接烧录 uboot+kernel 启动后,手动配置开发板IP地址可以和windows主机linux虚拟机ping通,但是只烧录uboot后无法ping通linux虚拟机和windows ...

  3. ARM开发板使用USB WIFI模块实现上网

    一.搭建环境 1)软件环境:VMware15 + Ubuntu16.04 2)硬件模块:GEC6818开发板 + 雷凌RT3070USBWIFI模块 3)所有资料下载链接:资料下载:提取码:ixl3 ...

  4. windows、虚拟机和ARM开发板3者互ping

    嵌入式开发中常用的开发方式:windows上做实际开发,虚拟机上装Linux当服务器交叉编译程序, ARM开发板运行程序.通常三者连接时,会遇到各种问题,此文档就是从分析到实例解决该问题. 更多详情, ...

  5. 全志H616香橙派OrangePi Zero2开发板连接USB以太网卡测试

    1) 目前测试过能用的 USB 以太网卡如下所示,其中 RTL8153 USB 千兆网卡插入开 发板的 USB 2.0 Host 接口中测试可以正常使用,但是速率是达不到千兆的,这点请注意 2) 首先 ...

  6. 在ARM开发板上实现LCD+USB键盘

    一.LCD驱动 这个地方先留着 二.USB键盘驱动 在linux内核里边提供了usbkbd.c可以直接借助这个模块,编译生成驱动模块加载进内核,其实对于驱动程序,这里还不是重点,最后想要实现的是直接在 ...

  7. 中国嵌入式高端ARM开发板的江湖故事——详细分析国内各家ARM11 S3C6410 开发板的选型以及竞争格局

    // Topic:中国嵌入式高端ARM开发板的江湖故事--详细分析国内各家ARM11 S3C6410 开发板的选型以及竞争格局 //作者:gooogleman //版权:gooogleman  邮箱 ...

  8. 中国嵌入式高端ARM开发板的江湖故事 详细分析国内各家ARM11 S3C6410 开发板的选型以及竞争格局

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! // T ...

  9. AM335X的USB otg网卡(RNDIS /Ethernet Gadget)调试

    又一次编译内核(2.6.29)        2.6.29内核         Device Drivers ---> USB support --->   USB Gadget Supp ...

最新文章

  1. 专业研究HP procurve网络、阿姆瑞特和系统集成的论坛
  2. 双指针算法之快慢指针(一):力扣【判断链表是否有环】leetcode-141、142
  3. python代码执行过程记录_[原创]IDAPython+OdbgScript动态获取程序执行流程
  4. 启动python内核时发生错误_启动内核时出错
  5. strlwr,strupr函数
  6. 冒泡和快速排序的时间复杂度_三分钟快速记住冒泡排序算法
  7. ejb 属于哪一层,作用是什么,什么时候用
  8. 第64节:Java中的Spring Boot 2.0简介笔记
  9. 技术人生系列——vCenter重启大法不香了?
  10. java解析字符串方法_java字符串的截取方法substring()代码解析
  11. 基于Protues的Arduino学习笔记01-Arduino UNO实验板设计
  12. 从陪练到赢家:人机博弈的六十年
  13. jupyter notebook 快捷键
  14. Windows NT 架构
  15. web开发中移动端适配
  16. 关于网易2018实习生招聘的“道路布灯”问题
  17. 【NAACL 2021】RCI:在基于 Transformer 的表格问答中行和列语义捕获
  18. 英特尔的指令集体系结构_新指令集将上线:Intel 新版指令集手册确认 Alder Lake 架构的存在...
  19. 第九天 杭电OJ 1087、1203、1003
  20. MATLAB代码实现三次样条插值

热门文章

  1. Qt4.8.6与Qt5.4.0的安装详解
  2. 乐视开机向导显示服务器,乐视电视开机停在主界面,一直进不了系统是什么原因?-乐视电视开不了机...
  3. r语言实现sem_R-SEM-paper(R语言分析结构方程模型).pdf
  4. android多国语言翻译工具,一键生成28国家翻译6666翻车了
  5. HQChart使用教程63-uniapp使用renderjs+hqchart(h5)
  6. 通过有线共享无线的方法
  7. django 模型 choices 详解
  8. 喜报!冲量在线成功加入信创工委会,获得国家级信创组织认证!
  9. 遇见未来 | 对话Lester:超融合如何兼顾企业的“敏态”和“稳态”的业务需求...
  10. android 苹果健康,模仿安卓?苹果或为iOS加入“数字健康”功能,帮用户戒掉手机瘾...