中兴4g模块ME3760模块开发中遇到的问题

1.貌似很多错误,但主要的问题是头文件缺少导致的问题。drivers/net/usb/cdc_ether.c:43:20: error: usbnet.h: No such file or directory

root@ubuntu:/opt/EmbedSky/kernel/3g/linux-2.6.30.4# make
  CHK     include/linux/version.h
make[1]: `include/asm-arm/mach-types.h' is up to date.
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-arm
  CALL    scripts/checksyscalls.sh
<stdin>:1097:2: warning: #warning syscall fadvise64 not implemented
<stdin>:1265:2: warning: #warning syscall migrate_pages not implemented
<stdin>:1321:2: warning: #warning syscall pselect6 not implemented
<stdin>:1325:2: warning: #warning syscall ppoll not implemented
<stdin>:1365:2: warning: #warning syscall epoll_pwait not implemented
  CHK     include/linux/compile.h
  CC [M]  drivers/net/usb/cdc_ether.o
drivers/net/usb/cdc_ether.c:43:20: <span style="background-color: rgb(255, 0, 0);">error: usbnet.h: No such file or directory</span>
drivers/net/usb/cdc_ether.c:115: warning: 'struct usbnet' declared inside parameter list
drivers/net/usb/cdc_ether.c:115: warning: its scope is only this definition or declaration, which is probably not what you want
drivers/net/usb/cdc_ether.c:117: warning: 'struct usbnet' declared inside parameter list
drivers/net/usb/cdc_ether.c: In function 'usbnet_get_ethernet_addr':
drivers/net/usb/cdc_ether.c:122: error: dereferencing pointer to incomplete type
drivers/net/usb/cdc_ether.c:124: error: dereferencing pointer to incomplete type
drivers/net/usb/cdc_ether.c:124: error: dereferencing pointer to incomplete type
drivers/net/usb/cdc_ether.c:131: error: dereferencing pointer to incomplete type
drivers/net/usb/cdc_ether.c: At top level:
drivers/net/usb/cdc_ether.c:136: warning: 'struct usbnet' declared inside parameter list
drivers/net/usb/cdc_ether.c:175: warning: 'struct usbnet' declared inside parameter list
drivers/net/usb/cdc_ether.c: In function 'usbnet_generic_cdc_bind':
drivers/net/usb/cdc_ether.c:180: error: dereferencing pointer to incomplete type
drivers/net/usb/cdc_ether.c:183: error: implicit declaration of function 'driver_of'
drivers/net/usb/cdc_ether.c:183: warning: initialization makes pointer from integer without a cast
drivers/net/usb/cdc_ether.c:185: error: dereferencing pointer to incomplete type
drivers/net/usb/cdc_ether.c:185: error: dereferencing pointer to incomplete type
drivers/net/usb/cdc_ether.c:191: error: dereferencing pointer to incomplete type
drivers/net/usb/cdc_ether.c:195: error: dereferencing pointer to incomplete type
drivers/net/usb/cdc_ether.c:196: error: dereferencing pointer to incomplete type
drivers/net/usb/cdc_ether.c:225: error: dereferencing pointer to incomplete type

解决:查找头文件的位置,并添加头文件

 


2.ERROR: "cdc_encap_uninit" [drivers/net/usb/cdc_ether.ko] undefined!

root@ubuntu:/opt/EmbedSky/kernel/3g/linux-2.6.30.4# make
  CHK     include/linux/version.h
make[1]: `include/asm-arm/mach-types.h' is up to date.
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-arm
  CALL    scripts/checksyscalls.sh
<stdin>:1097:2: warning: #warning syscall fadvise64 not implemented
<stdin>:1265:2: warning: #warning syscall migrate_pages not implemented
<stdin>:1321:2: warning: #warning syscall pselect6 not implemented
<stdin>:1325:2: warning: #warning syscall ppoll not implemented
<stdin>:1365:2: warning: #warning syscall epoll_pwait not implemented
  CHK     include/linux/compile.h
  CC [M]  drivers/net/usb/cdc_ether.o
drivers/net/usb/cdc_ether.c:626: warning: 'lte_tx_fixup' defined but not used
drivers/net/usb/cdc_ether.c:619: warning: 'lte_rx_fixup' defined but not used
  Kernel: arch/arm/boot/Image is ready
  Kernel: arch/arm/boot/zImage is ready
  Building modules, stage 2.
  MODPOST 20 modules
<span style="color:#ff0000;">ERROR: "cdc_encap_uninit" [drivers/net/usb/cdc_ether.ko] undefined!
ERROR: "cdc_encap_init" [drivers/net/usb/cdc_ether.ko] undefined!
ERROR: "cdc_encap_response_avail" [drivers/net/usb/cdc_ether.ko] undefined!</span>
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2

解决:

ERROR: "cdc_encap_uninit" [drivers/net/usb/cdc_ether.ko] undefined!

意思是在生成 cdc_ether.ko 文件的时候没有找到 cdc_encap_uninit 函数的定义。

cdc_ether.c => cdc_encap_uninit(encap);

cdc_encap.c => void cdc_encap_uninit(struct cdc_encap *encap) => EXPORT_SYMBOL_GPL(cdc_encap_uninit);

所以:

文件:/linux-2.6.24/drivers/net/usb/Makefile
找到如下行:
obj-$(CONFIG_USB_USBNET) += usbnet.o
在其下添加内容:
obj-m += cdc_encap.o


3.模块加载时会有模块依赖关系。

[root@mbike /]# insmod rndis_host.ko
insmod: can't insert 'rndis_host.ko': unknown symbol in module, or unknown parameter

解决:

insmod usbnet.ko

insmod cdc_encap.ko

insmod cdc_ether.ko

insmod rndis_host.ko







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值