Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Linux内核外部驱动模块编译报错ERROR: “******” [drivers/**.ko] undefined!

我往Linux内核里添加一个驱动模块,根据《Linux设备驱动》第三版,相关阅读:Linux设备驱动程序(中文第三版) 2.6内核.pdf下载 http://www.linuxidc.com/Linux/2011-09/43991.htmLinux设备驱动开发详解(第2版)源代码 下载 http://www.linuxidc.com/Linux/2013-07/86977.htmLinux设备驱动开发详解(第2版)高清PDF  http://www.linuxidc.com/Linux/2013-07/86976.htm修改Makefile如下: obj-m := GobiNet.o 
 GobiNet-objs :=  GobiUSBNet.o QMIDevice.o QMI.o 但是出现了如下错误:/home/sylvain/Projects/Android_gingerbread_realv210_ver_1_0/kernel 
 CHK   include/linux/version.h 
 CHK   include/generated/utsrelease.h 
make[1]: `include/generated/mach-types.h" is up to date. 
 CALL    scripts/checksyscalls.sh 
 CHK   include/generated/compile.h 
 LD      drivers/cell/OptionGobiNet/built-in.o 
 CC [M]  drivers/cell/OptionGobiNet/GobiUSBNet.o 
 CC [M]  drivers/cell/OptionGobiNet/QMIDevice.o 
 CC [M]  drivers/cell/OptionGobiNet/QMI.o 
 LD [M]  drivers/cell/OptionGobiNet/GobiNet.o 
 Kernel: arch/arm/boot/Image is ready 
 SHIPPED arch/arm/boot/compressed/lib1funcs.S 
 AS      arch/arm/boot/compressed/lib1funcs.o 
 LD      arch/arm/boot/compressed/vmlinux 
 OBJCOPY arch/arm/boot/zImage 
 Kernel: arch/arm/boot/zImage is ready     
 Building modules, stage 2. 
 MODPOST 5 modules 
ERROR: "usbnet_suspend" [drivers/cell/OptionGobiNet/GobiNet.ko] undefined! 
ERROR: "usbnet_resume" [drivers/cell/OptionGobiNet/GobiNet.ko] undefined! 
ERROR: "usbnet_disconnect" [drivers/cell/OptionGobiNet/GobiNet.ko] undefined! 
ERROR: "usbnet_probe" [drivers/cell/OptionGobiNet/GobiNet.ko] undefined! 
make[1]: *** [__modpost] Error 1 
make: *** [modules] Error 2  编译过程中生成了"GobiNet.mod.c"和"GobiNet.o",但是并没有生成GobiNet.ko文件。
经历一番折腾之后,我发现问题的原因了。我误解了错误信息,没有清楚ko生成过程。编译模块在链接过程中查找外部符号表,但并没有找到,因为该外部符号表并没有编译。根据以上分析,我查看了外部符号在drivers/net/usb/usbnet.c文件,这就需要配置.config文件中设置CONFIG_USBNET=y。希望对大家有所帮助。Linux Kernel 的详细介绍:请点这里
Linux Kernel 的下载地址:请点这里相关阅读:Linux内核将用nftables替代iptables http://www.linuxidc.com/Linux/2013-10/91727.htmLinux 3.12代号Suicidal Squirrel http://www.linuxidc.com/Linux/2013-09/90023.htm怎样在 Ubuntu 上安装 Linux 3.11 内核 http://www.linuxidc.com/Linux/2013-09/89674.htmUbuntu 13.10 (Saucy Salamander) 内核已升级至 Linux Kernel 3.10 RC5 http://www.linuxidc.com/Linux/2013-06/86110.htmLinux Kernel 3.4.62 LTS 现已经提供下载 http://www.linuxidc.com/Linux/2013-09/90368.htm如何在Ubuntu 13.10上安装Linux内核 3.12 http://www.linuxidc.com/Linux/2013-11/92930.htm