解决ubuntu7.1下无线网卡无法使用的问题

Written by admin on 2008/01/16 – 08:00 -

我使用的是Accton WN4201B无线网卡,是为HP OEM的一款无线网卡。

在安装过程中(live cd)此块无线网卡能正常工作,但是当系统安装完成后,发现无线网卡无法使用了,甚至连网卡后面的灯都不亮,初步判断为驱动的问题。

#dmesg

[   29.864000] apm: BIOS version 1.2 Flags 0×07 (Driver version 1.16ac)
[   29.864000] apm: overridden by ACPI.
[   31.680000] [drm] Initialized drm 1.1.0 20060810
[   31.700000] ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [LNKA] -> GSI 10 (level, low) -> IRQ 10
[   31.704000] [drm] Initialized radeon 1.27.0 20060524 on minor 0
[   32.136000] No dock devices found.
[   32.992000] agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0.
[   32.992000] agpgart: Putting AGP V2 device at 0000:00:00.0 into 4x mode
[   32.992000] agpgart: Putting AGP V2 device at 0000:01:00.0 into 4x mode
[   33.248000] input: Power Button (FF) as /class/input/input4
[   33.248000] ACPI: Power Button (FF) [PWRF]
[   33.252000] [drm] Setting GART location based on new memory map
[   33.252000] [drm] writeback test succeeded in 1 usecs
[   33.288000] input: Power Button (CM) as /class/input/input5
[   33.288000] ACPI: Power Button (CM) [PWRB]
[   33.308000] input: Sleep Button (CM) as /class/input/input6
[   33.308000] ACPI: Sleep Button (CM) [SLPB]
[   37.988000] eth0: no IPv6 routers present
[   64.048000] eth1: resetting device…
[   64.048000] eth1: uploading firmware…
[   64.144000] eth1: firmware version: 1.0.4.3
[   64.144000] eth1: firmware upload complete
[   65.144000] eth1: no ‘reset complete’ IRQ seen - retrying
[   66.144000] eth1: no ‘reset complete’ IRQ seen - retrying
[   66.144000] eth1: interface reset failure
[   66.144000] prism54: Your card/socket may be faulty, or IRQ line too busy :(

#cat /proc/interrupts
察看设备IRQ编号
CPU0     
  0:      32808    XT-PIC-XT        timer
  1:        150    XT-PIC-XT        i8042
  2:          0    XT-PIC-XT        cascade
  5:        368    XT-PIC-XT        CMI8738
  6:          5    XT-PIC-XT        floppy
  7:          0    XT-PIC-XT        parport0
  8:          3    XT-PIC-XT        rtc
  9:          1    XT-PIC-XT        acpi
 10:          1    XT-PIC-XT        uhci_hcd:usb2, eth1
 11:      41718    XT-PIC-XT        uhci_hcd:usb1, eth0, radeon@pci:0000:01:00.0
 12:       4895    XT-PIC-XT        i8042
 14:       8205    XT-PIC-XT        libata
 15:       5326    XT-PIC-XT        libata
NMI:          0
LOC:          0
ERR:          0
MIS:          0

由于系统中除了这块无线网卡以外,还装有一块有线网卡,因此无线网卡为eth1。有线网卡eth0一直能正常使用。

从dmesg信息中可以看出eth1与usb2共用irq10,有时重新起动后会与acpi共用irq10。
从prism54: Your card/socket may be faulty, or IRQ line too busy :( 判断可能因为irq冲突造成的。在国内各大linux论坛发帖求助,但是没有任何解决方案。于是只能自己摸索,多次尝试后问题依旧,发现似乎问题不是出在IRQ冲突方面。

从prism54: Your card/socket may be faulty, or IRQ line too busy :( 中也能看出此块网卡使用的是prism54驱动。于是登录到官方网站 http://www.prism54.org
发现firmware分为SoftMac和FullMac两个版本的,ubuntu7.1中使用的是FullMac的最新版本1.0.4.3。于是在google中搜索相关信息,只在英文网站上找到一些关于信息,主要是提到用softMac替代系统自带的FullMac的方法。于是通过http://www.prism54.org/firmware/2.7.0.0.arm 下载了最新版的SoftMac 2.7.0.0。
先删除系统原先的firmware:#sudo rm /lib/firmware/2.6.22-14-generic/isl3890
然后把下载的SoftMac复制到原目录并改名为isl3890(假设下载到home/usename目录):#sudo cp /home/usename/2.7.0.0.arm /lib/firmware/2.6.22-14-generic/isl3890

部分linux发行版至此就算大功告成了,但是在ubuntu7.1的kernel module目录中还有prism54的驱动,在启动时候会载入两次,造成网卡无法正常启动,所以记得要把这个驱动删除
sudo rm /lib/modules/2.6.22-14-generic/kernel/drivers/net/wireless/prism54
sudo rmdir /lib/modules/2.6.22-14-generic/kernel/drivers/net/wireless/prism54

至此,问题全部解决。

Subscribe to my RSS feed

ubuntu7.1下无线网卡irq冲突

Written by admin on 2008/01/07 – 08:00 -

在安装界面中无线网卡能很好的使用。但是安装好系统后,无线网卡无法使用,在“硬件信息”中都能正确识别我的无线网卡。

发现网卡的irq中断号与acpi电源管理的irq中断号有冲突。

用dmesg命令查看:
[   29.864000] apm: BIOS version 1.2 Flags 0×07 (Driver version 1.16ac)
[   29.864000] apm: overridden by ACPI.
[   31.680000] [drm] Initialized drm 1.1.0 20060810
[   31.700000] ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [LNKA] -> GSI 10 (level, low) -> IRQ 10
[   31.704000] [drm] Initialized radeon 1.27.0 20060524 on minor 0
[   32.136000] No dock devices found.
[   32.992000] agpgart: Found an AGP 2.0 compliant device at 0000:00:00.0.
[   32.992000] agpgart: Putting AGP V2 device at 0000:00:00.0 into 4x mode
[   32.992000] agpgart: Putting AGP V2 device at 0000:01:00.0 into 4x mode
[   33.248000] input: Power Button (FF) as /class/input/input4
[   33.248000] ACPI: Power Button (FF) [PWRF]
[   33.252000] [drm] Setting GART location based on new memory map
[   33.252000] [drm] writeback test succeeded in 1 usecs
[   33.288000] input: Power Button (CM) as /class/input/input5
[   33.288000] ACPI: Power Button (CM) [PWRB]
[   33.308000] input: Sleep Button (CM) as /class/input/input6
[   33.308000] ACPI: Sleep Button (CM) [SLPB]
[   37.988000] eth0: no IPv6 routers present
[   64.048000] eth1: resetting device…
[   64.048000] eth1: uploading firmware…
[   64.144000] eth1: firmware version: 1.0.4.3
[   64.144000] eth1: firmware upload complete
[   65.144000] eth1: no ‘reset complete’ IRQ seen - retrying
[   66.144000] eth1: no ‘reset complete’ IRQ seen - retrying
[   66.144000] eth1: interface reset failure
[   66.144000] prism54: Your card/socket may be faulty, or IRQ line too busy :(
解决方法:
sudo gedit /boot/grub/menu.lst
在启动的核心kernel那行最后加上 acpi=off noapic

acpi=off禁止了一些电源高级管理功能
noapic改变了中断方式
顺便提到:
cat /proc/interrupts 命令察看设备IRQ编号。

在光盘启动安装过程中运行得到下面结果:
           CPU0      
  0:     108119    XT-PIC-XT        timer
  1:        808    XT-PIC-XT        i8042
  2:          0    XT-PIC-XT        cascade
  5:        444    XT-PIC-XT        CMI8738
  6:          7    XT-PIC-XT        floppy
  7:          0    XT-PIC-XT        parport0
  8:          3    XT-PIC-XT        rtc
  9:          1    XT-PIC-XT        acpi
 10:       8636    XT-PIC-XT        uhci_hcd:usb2, prism54pci
 11:      60133    XT-PIC-XT        uhci_hcd:usb1, radeon@pci:0000:01:00.0, eth0
 12:      70179    XT-PIC-XT        i8042
 14:        211    XT-PIC-XT        libata
 15:       9897    XT-PIC-XT        libata
NMI:          0
LOC:          0
ERR:          0
MIS:          0

在安装后系统中运行后得到以下结果:

           CPU0      
  0:      32808    XT-PIC-XT        timer
  1:        150    XT-PIC-XT        i8042
  2:          0    XT-PIC-XT        cascade
  5:        368    XT-PIC-XT        CMI8738
  6:          5    XT-PIC-XT        floppy
  7:          0    XT-PIC-XT        parport0
  8:          3    XT-PIC-XT        rtc
  9:          1    XT-PIC-XT        acpi
 10:          1    XT-PIC-XT        uhci_hcd:usb2, eth1
 11:      41718    XT-PIC-XT        uhci_hcd:usb1, eth0, radeon@pci:0000:01:00.0
 12:       4895    XT-PIC-XT        i8042
 14:       8205    XT-PIC-XT        libata
 15:       5326    XT-PIC-XT        libata
NMI:          0
LOC:          0
ERR:          0
MIS:          0

差别在irq10的设备,前者认出了prism54pci,后者只是eth1

 

虽然一些事例证明这个方法能解决irq冲突的问题,但是在我的机器上并没有解决。

另外,当acpi=off noapic加入后,系统关机出现问题,不能自动断电。

(未完待续)

Subscribe to my RSS feed