天嵌 ARM开发社区

 找回密码
 注册
查看: 4937|回复: 1

请问:如何用2.6.30.4编译模块驱动?

[复制链接]
sujuan 发表于 2009-10-26 11:44:24 | 显示全部楼层 |阅读模式
本帖最后由 sujuan 于 2009-10-26 11:57 编辑

如何用2.6.30.4编译模块驱动?
  同样的驱动源码在2.6.25.8可以编译过去,为什么用2.6.30.4出现问题,
  请问有什么解决办法?
[root@localhost evdo]# make CC=/opt/EmbedSky/4.3.3/bin/arm-linux-gcc-4.3.3  LD=/opt/EmbedSky/4.3.3/bin/arm-linux-ld TARGET=xscale-be-elf ARCH=arm V=1
make -C /opt/EmbedSky/linux-2.6.30.4/  M=/opt/EmbedSky/evdo modules
make[1]: Entering directory `/opt/EmbedSky/linux-2.6.30.4'
test -e include/linux/autoconf.h -a -e include/config/auto.conf || (            \
        echo;                                                           \
        echo "  ERROR: Kernel configuration is invalid.";               \
        echo "         include/linux/autoconf.h or include/config/auto.conf are missing.";      \
        echo "         Run 'make oldconfig && make prepare' on kernel src to fix it.";  \
        echo;                                                           \
        /bin/false)
mkdir -p /opt/EmbedSky/evdo/.tmp_versions ; rm -f /opt/EmbedSky/evdo/.tmp_versions/*

  WARNING: Symbol version dump /opt/EmbedSky/linux-2.6.30.4/Module.symvers
           is missing; modules will have no dependencies and modversions.

make -f scripts/Makefile.build obj=/opt/EmbedSky/evdo
  /opt/EmbedSky/4.3.3/bin/arm-linux-gcc-4.3.3 -Wp,-MD,/opt/EmbedSky/evdo/.usb-serial.o.d  -nostdinc -isystem /opt/EmbedSky/4.3.3/bin/../lib/gcc/arm-none-linux-gnueabi/4.3.3/include -Iinclude  -I/opt/EmbedSky/linux-2.6.30.4/arch/arm/include -include include/linux/autoconf.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-s3c2410/include -Iarch/arm/mach-s3c2400/include -Iarch/arm/mach-s3c2412/include -Iarch/arm/mach-s3c2440/include -Iarch/arm/mach-s3c2442/include -Iarch/arm/mach-s3c2443/include -Iarch/arm/plat-s3c24xx/include -Iarch/arm/plat-s3c/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -fno-delete-null-pointer-checks -O2 -marm -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=aapcs-linux -mno-thumb-interwork -D__LINUX_ARM_ARCH__=4 -march=armv4t -mtune=arm9tdmi -msoft-float -Uarm -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow  -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(usb_serial)"  -D"KBUILD_MODNAME=KBUILD_STR(ztemt)"  -c -o /opt/EmbedSky/evdo/usb-serial.o /opt/EmbedSky/evdo/usb-serial.c
/opt/EmbedSky/evdo/usb-serial.c: In function 'destroy_serial':
/opt/EmbedSky/evdo/usb-serial.c:159: error: 'struct usb_serial_driver' has no member named 'shutdown'
/opt/EmbedSky/evdo/usb-serial.c:165: error: 'struct usb_serial_port' has no member named 'open_count'
/opt/EmbedSky/evdo/usb-serial.c: In function 'serial_open':
/opt/EmbedSky/evdo/usb-serial.c:246: error: 'struct usb_serial_port' has no member named 'open_count'
/opt/EmbedSky/evdo/usb-serial.c:251: error: 'struct usb_serial_port' has no member named 'tty'
/opt/EmbedSky/evdo/usb-serial.c:253: error: 'struct usb_serial_port' has no member named 'open_count'
/opt/EmbedSky/evdo/usb-serial.c:265: warning: passing argument 1 of 'serial->type->open' from incompatible pointer type
/opt/EmbedSky/evdo/usb-serial.c:265: warning: passing argument 2 of 'serial->type->open' from incompatible pointer type
/opt/EmbedSky/evdo/usb-serial.c:265: error: too few arguments to function 'serial->type->open'
/opt/EmbedSky/evdo/usb-serial.c:276: error: 'struct usb_serial_port' has no member named 'open_count'
/opt/EmbedSky/evdo/usb-serial.c:278: error: 'struct usb_serial_port' has no member named 'tty'
/opt/EmbedSky/evdo/usb-serial.c: In function 'serial_close':
/opt/EmbedSky/evdo/usb-serial.c:357: error: 'struct usb_serial_port' has no member named 'open_count'
/opt/EmbedSky/evdo/usb-serial.c:371: error: 'struct usb_serial_port' has no member named 'open_count'
/opt/EmbedSky/evdo/usb-serial.c:372: error: 'struct usb_serial_port' has no member named 'open_count'
/opt/EmbedSky/evdo/usb-serial.c:375: warning: passing argument 1 of 'port->serial/evdo/usb-serial.c:413: warning: passing argument 3 of 'port->serial->type->write' makes pointer from integer without a cast
/opt/EmbedSky/evdo/usb-serial.c:413: error: too few arguments to function 'port->serial->type->write'
/opt/EmbedSky/evdo/usb-serial.c: In function 'serial_write_room':
/opt/EmbedSky/evdo/usb-serial.c:429: error: 'struct usb_serial_port' has no member named 'open_count'
/opt/EmbedSky/evdo/usb-serial.c:435: warning: passing argument 1 of 'port->serial->type->write_room' from incompatible pointer type
/opt/EmbedSky/evdo/usb-serial.c: In function 'serial_chars_in_buffer':
/opt/EmbedSky/evdo/usb-serial.c:451: error: 'struct usb_serial_port' has no member named 'open_count'
/opt/EmbedSky/evdo/usb-serial.c:457: warning: passing argument 1 of 'port->serial->type->chars_in_buffer' from incompatible pointer type
/opt/EmbedSky/evdo/usb-serial.c: In function 'serial_throttle':
/opt/EmbedSky/evdo/usb-serial.c:472: error: 'struct usb_serial_port' has no member named 'open_count'
/opt/EmbedSky/evdo/usb-serial.c:479: warning: passing argument 1 of 'port->serial->type->throttle' from incompatible pointer type
/opt/EmbedSky/evdo/usb-serial.c: In function 'serial_unthrottle':
/opt/EmbedSky/evdo/usb-serial.c:491: error: 'struct usb_serial_port' has no member named 'open_count'
/opt/EmbedSky/evdo/usb-serial.c:498: warning: passing argument 1 of 'port->serial->type->unthrottle' from incompatible pointer type
/opt/EmbedSky/evdo/usb-serial.c: In function 'serial_ioctl':
/opt/EmbedSky/evdo/usb-serial.c:511: error: 'struct usb_serial_port' has no member named 'open_count'
/opt/EmbedSky/evdo/usb-serial.c:518: warning: passing argument 1 of 'port->serial->type->ioctl' from incompatible pointer type
/opt/EmbedSky/evdo/usb-serial.c: In function 'serial_set_termios':
/opt/EmbedSky/evdo/usb-serial.c:535: error: 'struct usb_serial_port' has no member named 'open_count'
/opt/EmbedSky/evdo/usb-serial.c:542: warning: passing argument 1 of 'port->serial->type->set_termios' from incompatible pointer type
/opt/EmbedSky/evdo/usb-serial.c:542: warning: passing argument 2 of 'port->serial->type->set_termios' from incompatible pointer type
/opt/EmbedSky/evdo/usb-serial.c:542: error: too few arguments to function 'port->serial->type->set_termios'
/opt/EmbedSky/evdo/usb-serial.c: In function 'serial_break':
/opt/EmbedSky/evdo/usb-serial.c:554: error: 'struct usb_serial_port' has no member named 'open_count'
/opt/EmbedSky/evdo/usb-serial.c:561: warning: passing argument 1 of 'port->serial->type->break_ctl' from incompatible pointer type
/opt/EmbedSky/evdo/usb-serial.c: In function 'serial_tiocmget':
/opt/EmbedSky/evdo/usb-serial.c:629: error: 'struct usb_serial_port' has no member named 'open_count'
/opt/EmbedSky/evdo/usb-serial.c:635: warning: passing argument 1 of 'port->serial->type->tiocmget' from incompatible pointer type
/opt/EmbedSky/evdo/usb-serial.c: In function 'serial_tiocmset':
/opt/EmbedSky/evdo/usb-serial.c:651: error: 'struct usb_serial_port' has no member named 'open_count'
/opt/EmbedSky/evdo/usb-serial.c:657: warning: passing argument 1 of 'port->serial->type->tiocmset' from incompatible pointer type
/opt/EmbedSky/evdo/usb-serial.c: In function 'usb_serial_port_work':
/opt/EmbedSky/evdo/usb-serial.c:697: error: 'struct usb_serial_port' has no member named 'tty'
/opt/EmbedSky/evdo/usb-serial.c: In function 'port_release':
/opt/EmbedSky/evdo/usb-serial.c:709: error: 'struct device' has no member named 'bus_id'
/opt/EmbedSky/evdo/usb-serial.c: In function 'usb_serial_probe':
/opt/EmbedSky/evdo/usb-serial.c:1182: error: 'struct device' has no member named 'bus_id'
/opt/EmbedSky/evdo/usb-serial.c:1182: error: 'struct device' has no member named 'bus_id'
/opt/EmbedSky/evdo/usb-serial.c:1183: error: 'struct device' has no member named 'bus_id'
/opt/EmbedSky/evdo/usb-serial.c: In function 'usb_serial_disconnect':
/opt/EmbedSky/evdo/usb-serial.c:1257: error: 'struct usb_serial_port' has no member named 'tty'
/opt/EmbedSky/evdo/usb-serial.c:1258: error: 'struct usb_serial_port' has no member named 'tty'
/opt/EmbedSky/evdo/usb-serial.c: At top level:
/opt/EmbedSky/evdo/usb-serial.c:1281: warning: initialization from incompatible pointer type
/opt/EmbedSky/evdo/usb-serial.c:1284: warning: initialization from incompatible pointer type
/opt/EmbedSky/evdo/usb-serial.c:1286: error: unknown field 'read_proc' specified in initializer
/opt/EmbedSky/evdo/usb-serial.c: In function 'usb_serial_init':
/opt/EmbedSky/evdo/usb-serial.c:1352: error: implicit declaration of function 'info'
/opt/EmbedSky/evdo/usb-serial.c: In function 'fixup_generic':
/opt/EmbedSky/evdo/usb-serial.c:1406: error: 'struct usb_serial_driver' has no member named 'shutdown'
/opt/EmbedSky/evdo/usb-serial.c:1406: error: 'struct usb_serial_driver' has no member named 'shutdown'
/opt/EmbedSky/evdo/usb-serial.c:1406: error: 'usb_serial_generic_shutdown' undeclared (first use in this function)
/opt/EmbedSky/evdo/usb-serial.c:1406: error: (Each undeclared identifier is reported only once
/opt/EmbedSky/evdo/usb-serial.c:1406: error: for each function it appears in.)
make[2]: *** [/opt/EmbedSky/evdo/usb-serial.o] 错误 1
make[1]: *** [_module_/opt/EmbedSky/evdo] 错误 2
make[1]: Leaving directory `/opt/EmbedSky/linux-2.6.30.4'
make: *** [modules] 错误 2
 楼主| sujuan 发表于 2009-10-26 17:57:21 | 显示全部楼层
本帖最后由 sujuan 于 2009-10-26 17:58 编辑

谢谢大家支持!
问题找到了,是2.6.25.8和2.6.30.4内核源码中与evdo驱动相关的头文件中usb/seial.h中的的结构体有区别。
所以要想在2.6.30.4上编译就必须得改驱动源码了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-18 05:42 , Processed in 1.046875 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表