转载请注明作者及出处(http://bluedrum.cublog.cn)
在LINUX下使用网络的网络有两种,一种是使用DM9601的USB转RJ45网卡.另外一种是用普通USB线在主从设备之间建立网络.
DM9601的使用参见
<>
USB网络使用参见.
<>
但是仍有点美中不足,比如我在教室,主机只有一个网口,联在教室内局域网给学生共享源码之类文件.但每次服务器与自己笔记本联线,需要断网后才能使用.两边都是USB HOST因此,无法用USB的主从网络,因为我的笔记本的网口往往跟开发板相连.即便服务器断网,笔记本也要同时断网.所以用DM9601也不算太好方案.
这里需要找一种比较完美的方案.直接可以直接联接两台主机的USB HOST接口的连线.在淘宝上一找,果然发现在这样的联网线.(注意要与联机线,即模拟成两个USB串口那种线区别开).
联网线适应而更加广泛,与嵌入式开发板作互联也方便.同时也能作为嵌入式的教具.因此最好选择这一种.
它的外形如下,因为外壳透明,可以看到做工实在一般,不过价格也不贵.
一.Windows测试
买的光盘里有安装驱动,比较简单首先用两个Windows笔记本测试.简单的Setup驱动后,在WINDOWS显示出来一个Supereal的网卡.这样其余的配置跟一般普通网卡通讯没有什么区别
用bus Hound分析其EP结构如下
二.Linux的测试
在开发板插入USB联网线,首先测试其产商号和设备是
ididVendor=0fe6, idProduct=0301
在网上搜索是Linux supereal.大多关于SR9600.的文章,但是SR9600的产商/设备号是0x0fe6, 0x8101. 后面突然想起来,SR9600实际上那一款仿DM9601的USB转RJ45的芯片.所以网卡的文章很多也是用DM9601的驱动来修改变成SR9600驱动.事后的测试用dm9601强行改成我这一款的设备号的驱动,一运行就抱错.
根据产品号来搜索可以发现
可以知道.
VID=05E3, PID=0501/0502 is the Supereal SR620 network adapter;
VID=0FE6, PID=0301 is the Supereal SR620A network adapter;
其这一款USB转换线的采用的IC是SR620a的,这里有WINDOWS的驱动的下载
在查看linux 2.6.28内核中drivers/net/usb的驱动中,意外看到gl620a.c这个源码.因此打开一看,显示是
USB_DEVICE(0x05e3, 0x0502), // GL620USB-A ,正好是SR620的驱动.
因此加入在211行中加入如下一句
USB_DEVICE(0x0fe6, 0x0301), // SR620a
重编译驱动后安装.插入联网线,识别出驱动
- gl620a 1-1:1.0: usb_probe_interface
- gl620a 1-1:1.0: usb_probe_interface - got id
- usb0: register 'gl620a' at usb-s3c24xx-1, Genesys GeneLink, 92:d8:76:b6:0c:4a
- drivers/usb/core/inode.c: creating file '002'
- usb 1-1: New USB device found, idVendor=0fe6, idProduct=0301
- usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
- usb 1-1: Product: USB Host To Host Bridge
运行如下命令配置网络
ifconfig usb0 up
ifconfig usb0 192.168.4.100
显示结果,从mac地址看就是刚才那个网卡.
- [root@FriendlyARM sr602a]# ifconfig usb0 up
-
[root@FriendlyARM sr602a]# ifconfig usb0 192.168.4.100
-
[root@FriendlyARM sr602a]# ifconfig usb0
-
usb0 Link encap:Ethernet HWaddr 92:D8:76:B6:0C:4A
-
inet addr:192.168.4.100 Bcast:192.168.4.255 Mask:255.255.255.0
-
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
-
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
-
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
-
collisions:0 txqueuelen:1000
-
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
与WINDOWS主机互联,但是WINDOWS一侧总是显示未连接,配置IP地址也无法PING通.因为时间比较急,没有测试两个开发板之间,以及与LINUX主机之间的互联测试.这可能留在下一步工作中测试