LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 942|回复: 7

内核升级到25之后, 无线网卡不能用了

[复制链接]
发表于 2008-5-25 21:35:22 | 显示全部楼层 |阅读模式
今天从2.6.24升级到2.6.25之后, 无线网卡不能用了
原来的无线网卡是通过ndiswrapper使用windows下面的驱动来工作的。升级了之后, ndiswrapper就罢工了。
dmesg | grep ndiswraper的出错信息是:
ndiswrapper (ntoskernel_exit:2708): object f7f0ec20(2) was not freed, freeing it now
ndiswrapper version 1.52 loaded (smp=yes, preempt=yes)
ndiswrapper: driver oem8 (,04/05/2007,5.3.0.35) loaded
ndiswrapper (ZwClose:2227): closing handle 0xf64e9728 not implemented
ndiswrapper (NdisWriteErrorLogEntry:191): log: C0001389, count: 4, return_address: f8e0b054
ndiswrapper (NdisWriteErrorLogEntry:194): code: 0xf708aa00
ndiswrapper (NdisWriteErrorLogEntry:194): code: 0x28
ndiswrapper (NdisWriteErrorLogEntry:194): code: 0xf8d6c000
ndiswrapper (NdisWriteErrorLogEntry:194): code: 0xf8d6c000
ndiswrapper (mp_init:216): couldn't initialize device: C000009A
ndiswrapper (pnp_start_device:439): Windows driver couldn't initialize the device (C0000001)
ndiswrapper (mp_halt:259): device f7d35500 is not initialized - not halting
ndiswrapper: device eth%d removed
ndiswrapper: probe of 0000:03:00.0 failed with error -22
usbcore: registered new interface driver ndiswrapper


而ndiswrapper -l的信息是
# ndiswrapper -l
oem8 : driver installed
        device (168C:001C) present (alternate driver: ath5k)

从ndiswrapper的wiki上看到, 多了(alternate driver:ath5k)这个信息是有问题的。
http://ndiswrapper.sourceforge.n ... id,troubleshooting/
好像是需要rmmod ath5k, 但是执行了之后, 还是没有将无线驱动起来的。

我看了一下, 的确存在
/lib/modules/2.6.25-ARCH/kernel/drivers/net/wireless/ath5k/ath5k.ko
但是不存在
/lib/modules/2.6.24-ARCH/kernel/drivers/net/wireless/ath5k/ath5k.ko
这个东西。

因此我怀疑是不是25的内核优先采用了ath5k这个驱动, 导致ndiswrapper无效了呢?

如果是的话, 应该在哪里配置呢, 让内核不去加载那个驱动模块?

谢谢。
发表于 2008-5-25 21:43:13 | 显示全部楼层
把内核代码kernel/module.c里头下面两行注释掉
  1.         /*
  2.          * ndiswrapper is under GPL by itself, but loads proprietary modules.
  3.          * Don't use add_taint_module(), as it would prevent ndiswrapper from
  4.          * using GPL-only symbols it needs.
  5.          */
  6.         if (strcmp(mod->name, "ndiswrapper") == 0)
  7.                 add_taint(TAINT_PROPRIETARY_MODULE);
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-25 21:52:44 | 显示全部楼层
Post by gradetwo;1854944
把内核代码kernel/module.c里头下面两行注释掉
  1.         /*
  2.          * ndiswrapper is under GPL by itself, but loads proprietary modules.
  3.          * Don't use add_taint_module(), as it would prevent ndiswrapper from
  4.          * using GPL-only symbols it needs.
  5.          */
  6.         if (strcmp(mod->name, "ndiswrapper") == 0)
  7.                 add_taint(TAINT_PROPRIETARY_MODULE);
复制代码


我是直接pacman -Syu更新的, 不是自己编译的。难道还得自己编译一遍?
有没有办法rollback回去?
回复 支持 反对

使用道具 举报

发表于 2008-5-25 22:23:05 | 显示全部楼层
去cache里面找到 2.6.24 的 kernel 包,降级一下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-25 22:26:43 | 显示全部楼层
郁闷的就是cache里面被清掉了。 有没有地方可以下到或者有其它的解决办法呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-25 23:36:29 | 显示全部楼层
rollback了,至少现在能认出无线网卡了。
wlan0     IEEE 802.11g  ESSIDff/any  
          Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated   
          Bit Rate:54 Mb/s   
          Encryption keyff
          Power Managementff
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-26 00:32:34 | 显示全部楼层
Post by leeight;1855016
rollback了,至少现在能认出无线网卡了。
wlan0     IEEE 802.11g  ESSIDff/any  
          Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated   
          Bit Rate:54 Mb/s   
          Encryption keyff
          Power Managementff
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0


我又升回去了,而且问题也解决了。
果真是2.6.25里面新增的ath5k.ko和mac80211.ko的问题。
内核默认用那两个模块来驱动无线网卡, 但是那两个模块对我来说是无用的。
所以在/etc/modprob.conf里面添加了
blacklist ath5k
blacklist mac80211
把那两个给禁掉了, 这样子做之后, 就能正常使用ndiswrapper来驱动无线了。
和没有升级之前工作的效果一样的。

真够折腾的。 怪自己看文章太粗心。
ndiswrapper的troubleshooting那篇wiki里面的最后一段,就是告诉我们应该如何处理这个问题的。 可惜当时没有看到, 折腾了半天才弄好。
http://ndiswrapper.sourceforge.n ... id,troubleshooting/
回复 支持 反对

使用道具 举报

发表于 2008-5-26 08:35:39 | 显示全部楼层
我是intel 的网卡。。一切正常。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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