Chinaunix

标题: fedora下compat-wireless编译后,装载ath9k.ko出现Invalid module format错误。 [打印本页]

作者: losper    时间: 2011-09-30 23:01
标题: fedora下compat-wireless编译后,装载ath9k.ko出现Invalid module format错误。
本帖最后由 losper 于 2011-09-30 23:18 编辑

http://wireless.kernel.org/download/compat-wireless-2.6/下载了0927的compat-wireless-2.6.tar.bz2包。
在改动compat3.0.h的宏定义,
#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0))
改成
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,40))
然后make,make install还算顺利。
最后我modprobe ath9k_htc时,出现如下错误:

sudo modprobe ath9k_htc
WARNING: Error inserting mac80211 (/lib/modules/2.6.40.4-5.fc15.i686/updates/net/mac80211/mac80211.ko): Invalid module format
FATAL: Error inserting ath9k_htc (/lib/modules/2.6.40.4-5.fc15.i686/updates/drivers/net/wireless/ath/ath9k/ath9k_htc.ko): Invalid module format

然后,uname -r
2.6.40.4-5.fc15.i686

查看mac80211.ko的模块信息
modinfo /lib/modules/2.6.40.4-5.fc15.i686/updates/net/mac80211/mac80211.ko
信息如下:
filename:       /lib/modules/2.6.40.4-5.fc15.i686/updates/net/mac80211/mac80211.ko
license:        GPL
description:    IEEE 802.11 subsystem
srcversion:     036E68B95E94B634E2EE291
depends:        cfg80211,compat
vermagic:       2.6.40.4-5.fc15.i686 SMP mod_unload 686
parm:           ieee80211_default_rc_algoefault rate control algorithm for mac80211 to use (charp)
parm:           max_nullfunc_tries:Maximum nullfunc tx tries before disconnecting (reason 4). (int)
parm:           max_probe_tries:Maximum probe tries before disconnecting (reason 4). (int)
parm:           probe_wait_ms:Maximum time(ms) to wait for probe response before disconnecting (reason 4). (int)

查看ath9k_htc.ko的模块信息
modinfo /lib/modules/2.6.40.4-5.fc15.i686/updates/drivers/net/wireless/ath/ath9k/ath9k_htc.ko
如下:
filename:       /lib/modules/2.6.40.4-5.fc15.i686/updates/drivers/net/wireless/ath/ath9k/ath9k_htc.ko
firmware:       htc_9271.fw
firmware:       htc_7010.fw
description:    Atheros driver 802.11n HTC based wireless devices
license:        Dual BSD/GPL
author:         Atheros Communications
srcversion:     D4790CCA9C49D47B6F7ACF5
alias:          usb:v0CF3p20FFd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0411p017Fd*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083ApA704d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0846p9018d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0CF3p7010d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v1668p1200d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0CF3p7015d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0CF3pB003d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v040Dp3801d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v04CAp4605d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3350d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3349d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3348d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3346d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3328d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v13D3p3327d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v07D1p3A10d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0846p9030d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0CF3p1006d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v0CF3p9271d*dc*dsc*dp*ic*isc*ip*
depends:        ath9k_hw,ath9k_common,mac80211,ath,cfg80211
vermagic:       2.6.40.4-5.fc15.i686 SMP mod_unload 686
parm:           debugebugging mask (uint)
parm:           nohwcryptisable hardware encryption (int)

不知到大家有没有遇见过这样的问题?
实在不行,有没有wifi驱动rpm包,可以直接驱动ar9287的?
谢谢。
作者: dooros    时间: 2011-09-30 23:09
模块编译载入的话,需要和内核使用相同版本的gcc编译器。
作者: losper    时间: 2011-09-30 23:15
模块编译载入的话,需要和内核使用相同版本的gcc编译器。
dooros 发表于 2011-09-30 23:09

刚刚查了下,

gcc --version
gcc (GCC) 4.6.0 20110603 (Red Hat 4.6.0-10)
Copyright © 2011 Free Software Foundation, Inc.
本程序是自由软件;请参看源代码的版权声明。本软件没有任何担保;
包括没有适销性和某一专用目的下的适用性担保。


cat /proc/version
Linux version 2.6.40.4-5.fc15.i686 (mockbuild@x86-14.phx2.fedoraproject.org) (gcc version 4.6.0 20110603 (Red Hat 4.6.0-10) (GCC) ) #1 SMP Tue Aug 30 14:54:41 UTC 2011

GCC的版本是一样的。
作者: dooros    时间: 2011-09-30 23:17
你用insmod载入模块看看。
作者: losper    时间: 2011-09-30 23:21
你用insmod载入模块看看。
dooros 发表于 2011-09-30 23:17


sudo insmod /lib/modules/2.6.40.4-5.fc15.i686/updates/drivers/net/wireless/ath/ath9k/ath9k_htc.ko
insmod: error inserting '/lib/modules/2.6.40.4-5.fc15.i686/updates/drivers/net/wireless/ath/ath9k/ath9k_htc.ko': -1 Unknown symbol in module

sudo insmod /lib/modules/2.6.40.4-5.fc15.i686/updates/net/mac80211/mac80211.ko
这条没有任何错误。。
作者: losper    时间: 2011-09-30 23:22
本帖最后由 losper 于 2011-09-30 23:24 编辑

后来又insmod了ath9k_htc.ko可以加载上
但modprobe ath9k_htc.ko还是前面的错误。
作者: dooros    时间: 2011-09-30 23:26
depmod
modprobe --force-vermagic /lib/modules/2.6.40.4-5.fc15.i686/updates/drivers/net/wireless/ath/ath9k/ath9k_htc
作者: losper    时间: 2011-09-30 23:32
depmod
modprobe --force-vermagic /lib/modules/2.6.40.4-5.fc15.i686/updates/drivers/net/wireless/ath ...
dooros 发表于 2011-09-30 23:26


情况如下:
[lwj@losper ~]$ sudo depmod
[lwj@losper ~]$ sudo modprobe --force-vermagic arh9k_htc
FATAL: Module arh9k_htc not found.
[lwj@losper ~]$ sudo modprobe --force-vermagic ath9k_htc
WARNING: Error inserting mac80211 (/lib/modules/2.6.40.4-5.fc15.i686/updates/net/mac80211/mac80211.ko): Invalid module format
FATAL: Error inserting ath9k_htc (/lib/modules/2.6.40.4-5.fc15.i686/updates/drivers/net/wireless/ath/ath9k/ath9k_htc.ko): Invalid module format
[lwj@losper ~]$

如果按您的写法,提示not found。。
作者: yanu    时间: 2011-09-30 23:34

  1. .config - Linux/x86_64 3.0.4-yanu Kernel Configuration
  2. ───────────────────────────────────────────────────────────────────────────────────────────────────────
  3.   ┌──────────────────────────── Atheros HTC based wireless cards support ────────────────────────────┐
  4.   │ CONFIG_ATH9K_HTC:                                                                                │  
  5.   │                                                                                                  │  
  6.   │ Support for Atheros HTC based cards.                                                             │  
  7.   │ Chipsets supported: AR9271                                                                       │  
  8.   │                                                                                                  │  
  9.   │ For more information: http://wireless.kernel.org/en/users/Drivers/ath9k_htc                      │  
  10.   │                                                                                                  │  
  11.   │ The built module will be ath9k_htc.                                                              │  
  12.   │                                                                                                  │  
  13.   │ Symbol: ATH9K_HTC [=n]                                                                           │  
  14.   │ Type  : tristate                                                                                 │  
  15.   │ Prompt: Atheros HTC based wireless cards support                                                 │  
  16.   │   Defined at drivers/net/wireless/ath/ath9k/Kconfig:61                                           │  
  17.   │   Depends on: NETDEVICES [=y] && WLAN [=y] && ATH_COMMON [=m] && USB [=y] && MAC80211 [=m]       │  
  18.   │   Location:                                                                                      │  
  19.   │     -> Device Drivers                                                                            │  
  20.   │       -> Network device support (NETDEVICES [=y])                                                │  
  21.   │         -> Wireless LAN (WLAN [=y])                                                              │  
  22.   │           -> Atheros Wireless Cards (ATH_COMMON [=m])                                            │  
  23.   │   Selects: ATH9K_HW [=n] && MAC80211_LEDS [=n] && LEDS_CLASS [=y] && NEW_LEDS [=y] && \          │  
  24.   │ ATH9K_COMMON [=n]
复制代码
kernel.org在维护中 - -  看不到更详细的信息 ,貌似这个ath9k_htc就是你要找的,内核里已经有了。
作者: losper    时间: 2011-09-30 23:39
本帖最后由 losper 于 2011-09-30 23:42 编辑
kernel.org在维护中 - -  看不到更详细的信息 ,貌似这个ath9k_htc就是你要找的,内核里已经有了。
yanu 发表于 2011-09-30 23:34


fedora15的内核已经带有ath9k_htc?不可能啊。如果自带了,我就直接插着wifi卡(TP-LINK WN821N V3)用了。。

另外,fedora15的内核应该是3.0的吧,只不过还是用2.6.40这个版本号。对吗?
唉,谢谢楼上两位,还是先休息了。明天再看看。
作者: dooros    时间: 2011-09-30 23:40
编译模块这个还是比较纠结的,很多问题我也没搞清楚。
我原来在debian下编译的模块始终在自带的内核无法载入,后来重新编译了一个内核就一点问题都没有。
作者: yanu    时间: 2011-10-01 00:50
我没用过fedora15啊。。 最新的内核里是带了的。。

这个2.6.40,我也很晕的说。。 kernel.org又在维护中,也没法上去查。。
作者: dooros    时间: 2011-10-01 01:27
用yum把内核相应的源代码下下来。
看最新源代码上github,linus把kernel托管到github了。
作者: losper    时间: 2011-10-01 12:30
顶下,不然沉了。
大家没有用ar9287的wifi卡上网的?
作者: losper    时间: 2011-10-01 12:38
顶上去,大家usb的网卡能驱动起来么?(用原生驱动)
作者: losper    时间: 2011-10-01 13:30
用yum把内核相应的源代码下下来。
看最新源代码上github,linus把kernel托管到github了。
dooros 发表于 2011-10-01 01:27


这个难道我重新编译内核啊,真心不知到该怎么来编译。
作者: 2005wind    时间: 2011-10-01 14:00
兄弟 别那么就觉了
用 ndiswrapper
作者: losper    时间: 2011-10-01 14:44
兄弟 别那么就觉了
用 ndiswrapper
2005wind 发表于 2011-10-01 14:00

啊^_^。。我终于搞好了。。
用ndiswrapper,总是有问题,会崩溃,在fedora14中让我系统假死。
换了个compat-wireless3.0-2的包来编译,可以加载了,然后htc_9287.fw和htc_7010.fw太老了,换成v13的,就可以驱动起来了。。
我估计这个内核确实是有ath9k-htc驱动的,只不过9287和7010固件版本不够新,让设备没被找到。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2