最近,入手华为3G上网卡EC122, 电信的. 安装华为的Mobile Partener 21.005 的时候,NDSI驱动安装出错。 NSDI是用来通过3G上网卡发短信用。
出错信息如下:
CC [M] /usr/local/Mobile_Partner/driver/ndis_driver/ndis_src/src/hw_cdc_driver.o
/usr/local/Mobile_Partner/driver/ndis_driver/ndis_src/src/hw_cdc_driver.c:155:27: fatal error: linux/usb/ncm.h: No such file or directory
compilation terminated.
make[3]: *** [/usr/local/Mobile_Partner/driver/ndis_driver/ndis_src/src/hw_cdc_driver.o] Error 1
make[2]: *** [_module_/usr/local/Mobile_Partner/driver/ndis_driver/ndis_src/src] Error 2
make[2]: Leaving directory `/usr/src/linux-headers-3.0.0-15-generic'
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/local/Mobile_Partner/driver/ndis_driver/ndis_src/src'
make: *** [modules] Error 2
make -C src/ install
make[1]: Entering directory `/usr/local/Mobile_Partner/driver/ndis_driver/ndis_src/src'
#install -m 744 -c hw_cdc_driver.o /lib/modules/3.0.0-15-generic/kernel/drivers/usb/net
#depmod -a
#modprobe hw_cdc_driver
/usr/local/Mobile_Partner/driver/ndis_driver/ndis_src/src/add_header.sh "install"
modprobe hw_cdc_driver
FATAL: Module hw_cdc_driver not found.
make[1]: *** [install] Error 1
make[1]: Leaving directory `/usr/local/Mobile_Partner/driver/ndis_driver/ndis_src/src'
make: *** [install] Error 2
Install NDIS driver failed.
The compiling environment is not all ready.
Please check gcc, make and kernel buid(/lib/modules/3.0.0-15-generic/build) to be all installed?
Now please enter any key to finish other installations.
NDIS is disabled, and only Modem can be used.
居然是个编译出错的问题。搞了那么久工具链,一看到这种bug,就hold不住了。hack之!
一番Google和尝试。发现NSDI的driver,华为是通过源码编译的,需要上面提到的那个头文件 linux/usb/ncm.h。这个头文件在2.6.35版本以下的内核中有,但到了2.6.37,就没有了。所以2.6.37之后的内核都应该有这个问题。对源码中内核判定的方式做了修改,之后又改了几个redefine的问题,现在可以正常使用NDSI发短信了。
点击下载修改后的data.bin, 替换原data.bin文件即刻。
近期评论