华为E392-u92在 linux 2.6.34 内核环境下支持
还是先说说思路吧。网关需要支持4G LTE网卡。如之前的操作,插上网卡后,usb-modeswitch 后没有产生对应的/dev/ttyUSB0-2. 所以ppp拨号脚本等无法工作。这里在ubuntu 14下使用该网卡,可以自动驱动并识别,生成/dev/ttyUSB* . 在ubuntu 14中dmesg 查看有个新颖的东西叫qmi_wwan, 而且qmi_wwan.c 代码中还写出了 增加huawei e392 driver。让我误以为它就是我要找的救星啊。然后就走上了一周漆黑的路程。MD。忙活了一个礼拜,期间从不会弄各种驱动移植、内核深层配置、打补丁等吧。终于把相关的两个驱动qmi_wwan 和 cdc-wdm驱动成功移植到网关上了。加载驱动,插入网卡 。。。没有反应; 再使用usb-modeswitch转换。。。还是没有反应。当时就疯掉了 - -。白忙活了! 怎么办。最后没办法了,给qmi_wwan 的作者写email吧!抱着试试看的态度,就真的写了。没抱非常大的期望,自己继续摆弄(已经在无意识的摆弄了)。到了下午,嘿,还真给回了。这里真的要感谢下Bjørn Mork 。国外的大牛们还是挺谦虚的嘛,不是一副高高在上的样子(开玩笑哈!)。经过交流,他说了一句最关键的话。
You will need the option driver for the /dev/ttyUSB* devices. qmi_wwan only creates the /dev/cdc-wdmX and wwanY devices
好吧,看来是路走错了!又回头重新捣鼓option驱动。 这里借鉴了http://www.ck365.cn/lunwen/9/41984.html 的做法。也是这个文章给了灵感。其实做起来到最后,真的不是特别的难。只是当初的路走错了吧!内核配置可以按照 上诉连接的配置。下面是我的/drivers/usb/serial/option.c 中的修改。
#define HUAWEI_PRODUCT_E1505 0x1505 #define HUAWEI_PRODUCT_E1506 0x1506 .
.
. { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1505, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1506, 0xff, 0xff, 0xff) },
加完这些内容后,重新编译option驱动。 然后有序的加载usbserial驱动和option驱动。
成功加载驱动后,使用usb-modeswitch 将网卡从存储设备转换为modem设备。 这里使用的12d1:1505 文件的内容如下:(使用usb-modeswitch官方提供的data文件转换失败)
#DisableSwitching=0 #EnableLogging=1 #DefaultVendor= 0x12d1 #DefaultProduct= 0x1505 TargetVendor= 0x12d1 TargetProduct= 0x1506 #TargetClass= 01 #DetachStorageOnly=0 CheckSuccess=3 HuaweiMode=0 #MessageEndpoint= not set MessageContent="55534243000000000000000000000011060000000000000000000000000000" #NeedResponse=0 #ResponseEndpoint= not set
#号后面的是注释,可略过。 转换后在/dev 下,就出现了 ttyUSB* 接口啦!然后就可以使用pppd愉快的进行拨号上网了!
这里是给大家提供个思路吧。因为我在做这个的时候,也是百度,google搜了好长时间都没有搜到明确的结果。后来看到http://www.ck365.cn/lunwen/9/41984.html 后,才有了明确的思路。这里也提倡大家把做过的东西分享出来,就算是思路也好,这样大家伙才能共同进步嘛。专利等除外哈!
还有一种就是要弄清你做的东西的明确思路。我可能就是没太弄懂3G网卡等驱动的具体流程和过程。所以下起手来没有直接到达那个针对点。所以在圈外找了半天路,费了半天劲,最后还是回到了原点上。