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

简介: <p style="margin-top: 0px; margin-bottom: 0px; padding-top: 0px; padding-bottom: 0px; color: rgb(69, 69, 69); font-family: tahoma, helvetica, arial; font-size: 14px; line-height: 21px;">重新编译内核(2.6.2

重新编译内核(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双网卡的转发功能


以下是转载的关键部分:


最后还有一个问题,就是开发板有网卡,还模拟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的测试结果:
[plain]  view plain copy
  1. [root@localhost 桌面]# ftp 192.168.2.230  
  2. Connected to 192.168.2.230 (192.168.2.230).  
  3. 220 FriendlyARM FTP server (Version 6.4/OpenBSD/Linux-ftpd-0.17) ready.  
  4. Name (192.168.2.230:root): plg  
  5. 331 Password required for plg.  
  6. Password:  
  7. 230 User plg logged in.  
  8. Remote system type is UNIX.  
  9. Using binary mode to transfer files.  
  10. ftp>   
  11. ftp>   

相关文章