Fedora8 下安装HP6515b笔记本驱动


这或许是一个很弱智的问题,但是确实折磨了我好多天才搞定。废话就不多说了,下面就把我遇到的问题共享出来。

HP6515b笔记本的lspci输出:

30:00.0 Network controller: Broadcom Corporation BCM94311MCG wlan mini-PCI (rev 02)

lspci -vn的输出:

30:00.0 0280: 14e4:4311 (rev 02)

        Subsystem: 103c:1375

        Flags: bus master, fast devsel, latency 0, IRQ 18

        Memory at c8000000 (64-bit, non-prefetchable) [size=16K]

        Capabilities: [40] Power Management version 3

        Capabilities: [58] Vendor Specific Information

        Capabilities: [e8] Message Signalled Interrupts: Mask- 64bit+ Queue=0/0 Enable-

        Capabilities: [d0] Express Endpoint IRQ 0

/usr/share/hwdata/pci.ids也能正确查找到。

但是问题就出现在这里了,Fedora 8默认的竟然加载的是ssb.ko,这就是十分令人费解的事情的了。

dmesg的输出:

 ssb: rev 60000000

 WARNING: at drivers/ssb/main.c:890 ssb_tmslow_reject_bitmask() (Not tainted)

Call Trace:

 [<ffffffff880e2870>] :ssb:ssb_tmslow_reject_bitmask+0x76/0x7f

  [<ffffffff880e303e>] :ssb:ssb_device_is_enabled+0xf/0x39

 [<ffffffff880e5192>] :ssb:ssb_pcicore_init+0x19/0x4a

 [<ffffffff880e25d6>] :ssb:ssb_attach_queued_buses+0x7d/0x25c

[<ffffffff880e3cb4>] :ssb:ssb_pci_get_invariants+0x0/0x2b7

[<ffffffff880e2bca>] :ssb:ssb_bus_register+0x131/0x183

 [<ffffffff880e2ccc>] :ssb:ssb_bus_pcibus_register+0x2a/0x4b

 [<ffffffff880e4575>] :ssb:ssb_pcihost_probe+0x6f/0x9e

  [<ffffffff8112da13>] pci_device_probe+0xd0/0x137

 [<ffffffff811963e2>] driver_probe_device+0xff/0x17c

 [<ffffffff811965a7>] __driver_attach+0x90/0xcc

  [<ffffffff81196517>] __driver_attach+0x0/0xcc

 [<ffffffff81196517>] __driver_attach+0x0/0xcc

 [<ffffffff81195786>] bus_for_each_dev+0x43/0x6e

 [<ffffffff81195afe>] bus_add_driver+0x7b/0x19d

Nov 26 19: [<ffffffff8112dbde>] __pci_register_driver+0x58/0x8a

  [<ffffffff880ca045>] :ssb:ssb_modinit+0x45/0x5d

  [<ffffffff81056e25>] sys_init_module+0x15d5/0x173a

  [<ffffffff8100bbce>] system_call+0x7e/0x83

ssb: Sonics Silicon Backplane found on PCI device 0000:30:00.0

ssb.ko占用了14e4:4311!而它又占着茅坑不拉屎。

我们知道遇到bcmwl5这样的驱动,在linux下用ndiswrapper是很好使的(关于ndiswrapper详见官方网站http://ndiswrapper.sourceforge.net)

先说说这个ssb是个什么东西吧。Sonics Silicon Backplane这是在内核中自带的,截图为证:

Fedora8 下安装HP6515b笔记本驱动

that can be used by ssb based device drivers auch as bcm43xx and b44.

有心人知道,bcm无线网卡在linuxwiress.sourcdforge.net上是需要用到bcm43xx或b44模块,甚至还会用到一个bcmxxbuffer的程序。但是在这款BCM94311MCG wlan mini-PCI (rev 02)就有很多bug,而且也不会驱动起来。fedora 8默认会去用此来试图驱动网卡,毕竟没人愿意接近够日的微软,不过话说回来,你hp提供了windows下的程序,或是brandcom不提供linux下的驱动,我们就只能靠ndiswrapper了。

好了,毛病找到了,怎么办了呢?重新编译内核?太费时了。重做initrd是个不错的主义。下面是我的步骤:

#rm /lib/module/`uname -r`/kernel/driver/ssb -rf

#depmod -a

#mv /boot/`uname -r`-img /boot/xx.bak

#mkinitrd /boot/xxx.img `uname -r`

#ndiswrapper -m

#reboot

在开机时执行下面的脚本:

#!/bin/sh

OK=`sudo mii-tool eth0|awk '{print $3}' -`

echo "有线网卡的状态是$OK"

if [ -z "$OK" -o "$OK" != "ok" ];then

   sudo iwconfig wlan0 essid "xxxxxxx" key s:xxxxxx

   sudo dhclient &&echo "wireless already,now you ...."

fi

exit 0;

that's all.

相关内容