如何在低版本内核中驱动类似华为ec169的3G无线网卡
发表于 : 2009-09-28 16:49
现在市面上的3g无线网卡种类很多,我最近在做嵌入式3G设备的开发,目前用过了两款3G无线网卡。
一款是华为的ec169,还有一款是中兴的ac580
我的pc系统是Ubuntu8.04和fedora7
我开发的嵌入式系统是一款基于arm720t的国产自主芯片sep4020
目前的进展情况是ac580已经可以在pc上以及我的嵌入式开发板上拨号成功,如有需要了解具体情况的朋友可以联系我
但ec169却未能在Ubuntu8.04以及fedora7下实现拨号,准确的说,是系统未能探测到这款网卡,如下
执行 cat /proc/bus/usb/device
输出
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=1001 Rev= 0.00
S: Manufacturer=HUA?WEI TECHNOLOGIES
S: Product=HUAWEI Mobile
S: SerialNumber=???????????????????
C:* #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=87(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=08(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
我希望的情况是
执行 cat /proc/bus/usb/device
输出
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=1001 Rev= 0.00
S: Manufacturer=HUA?WEI TECHNOLOGIES
S: Product=HUAWEI Mobile
S: SerialNumber=???????????????????
C:* #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=pl2303
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=128ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=pl2303
E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=pl2303
E: Ad=86(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=06(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=87(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=08(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
也就是说,ec169这款网卡在我的系统中不能被正确探测(probe),对usb设备驱动稍有了解的朋友可能已经可以看出,我的这款网卡只有一个storage的接口被识别出来了,但其余的3个modern的接口未被正确探测到。
当然,我在更高内核版本的发行版上尝试过ec169,插入网卡后系统能探测到所有的usb接口,这也就是在Ubuntu9.04下能很快的识别此类无线网卡的原因。
同时,我也注意到了一个的现象,ac580有两个product id,0x0094和0x0026 。其中,0026这个id是ac580被识别为存储设备时的id,而0094是ac580被识别为modern设备时的id。
而ec169只有一个product id ,0x1001 ,无论这个网卡是被是被为存储设备还是modern设备。
请大家多多指教~~
一款是华为的ec169,还有一款是中兴的ac580
我的pc系统是Ubuntu8.04和fedora7
我开发的嵌入式系统是一款基于arm720t的国产自主芯片sep4020
目前的进展情况是ac580已经可以在pc上以及我的嵌入式开发板上拨号成功,如有需要了解具体情况的朋友可以联系我
但ec169却未能在Ubuntu8.04以及fedora7下实现拨号,准确的说,是系统未能探测到这款网卡,如下
执行 cat /proc/bus/usb/device
输出
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=1001 Rev= 0.00
S: Manufacturer=HUA?WEI TECHNOLOGIES
S: Product=HUAWEI Mobile
S: SerialNumber=???????????????????
C:* #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=87(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=08(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
我希望的情况是
执行 cat /proc/bus/usb/device
输出
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=1001 Rev= 0.00
S: Manufacturer=HUA?WEI TECHNOLOGIES
S: Product=HUAWEI Mobile
S: SerialNumber=???????????????????
C:* #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=pl2303
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=128ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=pl2303
E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=pl2303
E: Ad=86(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=06(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=87(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=08(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
也就是说,ec169这款网卡在我的系统中不能被正确探测(probe),对usb设备驱动稍有了解的朋友可能已经可以看出,我的这款网卡只有一个storage的接口被识别出来了,但其余的3个modern的接口未被正确探测到。
当然,我在更高内核版本的发行版上尝试过ec169,插入网卡后系统能探测到所有的usb接口,这也就是在Ubuntu9.04下能很快的识别此类无线网卡的原因。
同时,我也注意到了一个的现象,ac580有两个product id,0x0094和0x0026 。其中,0026这个id是ac580被识别为存储设备时的id,而0094是ac580被识别为modern设备时的id。
而ec169只有一个product id ,0x1001 ,无论这个网卡是被是被为存储设备还是modern设备。
请大家多多指教~~