ubuntu10.10-2.6.35内核+BCM4353无线驱动安装笔记

来源:岁月联盟 编辑:exp 时间:2011-10-10

 

出处:LengF's Blog 作者:LengF

0x00 前言

工作需要公司给配置了一个dell studio 1458的笔记本,让人郁闷的dell装不了xp,只好装了win7-32考虑到了软件兼容性。后面又装了ubuntu10.04,郁闷是装上后有线网卡和无线网卡均不能使用,这下蒙了,linux没有网络还能干什么?于是,去官方下载了最新版的ubuntu10.10版本cd版,装完感觉界面改进了不少。进去后发现有线网卡可以使用,无线无法链接。写这篇文章主要记录自己解决问题的办法,同时也希望能够给遇到同样问题的朋友一个帮助。

0x01

接上网线,先更新看看有什么可以更新的驱动“系统”-》“系统管理”-》“附加驱动“,发现了2个驱动,一个是无线驱动(broadcom sta无法激活),另一个是ati的显卡驱动,显卡驱动更新后完美支持,可是无线还是无法更新。

无奈,看了下dell官方驱动下载只提供了win7-64的驱动,于是查看下是什么型号的:

xiaoc@xiaoc-Studio-1458:~$ lspci

 

找到了:

03:00.0 Ethernet controller: Broadcom Corporation NetLink BCM57780 Gigabit Ethernet PCIe (rev 01)

06:00.0 Network controller: Broadcom Corporation BCM43224 802.11a/b/g/n (rev 01)

 

第一行是有线网卡,第二后是无线网卡。是Broadcom公司,到broadcom官方下载了。http://www.broadcom.com/support/802.11/linux_sta.php 我下载了32位的(我cpu是64位的)详细看了这个readme.txt,按照说明执行命令如下:

xiaoc@xiaoc-Studio-1458:~$ lspci -n | grep 14e4

03:00.0 0200: 14e4:1692 (rev 01)

06:00.0 0280: 14e4:4353 (rev 01)

 

pci的id是4353对照readme.txt的列表发现也没有,网络上看了没有这个型号的安装方法。只好自己蛮试试。

首先下载broadcom官方的32位驱动,cd到下载的目录下执行命令如下:

sudo mkdir driver

cd driver/

tar -xzf ../hybrid-portsrc-x86_32-v5.60.48.36.tar.gz

 

先sudo make clean下,然后make,发现错误如下:

KBUILD_NOPEDANTIC=1 make -C /lib/modules/`uname -r`/build M=`pwd`

make[1]: 正在进入目录`/usr/src/linux-headers-2.6.35-22-generic-pae'

  CC [M]  /home/xiaoc/下载/driver/src/shared/linux_osl.o

In file included from /home/xiaoc/下载/driver/src/shared/linux_osl.c:19:

/home/xiaoc/下载/driver/src/include/linuxver.h:23: fatal error: linux/autoconf.h: 没有那个文件或目录

compilation terminated.

make[2]: *** [/home/xiaoc/下载/driver/src/shared/linux_osl.o] 错误1

make[1]: *** [_module_/home/xiaoc/下载/driver] 错误2

make[1]:正在离开目录`/usr/src/linux-headers-2.6.35-22-generic-pae'

make: *** [all] 错误2

www.2cto.com

从这个错误发现了2个问题2个地方缺少同一个文件autoconf.h 命令找下这个文件:

sudo find / -mount -name autoconf.h

 

返回如下:

/usr/src/linux-headers-2.6.35-22-generic-pae/include/generated/autoconf.h

/usr/src/linux-headers-2.6.35-22-generic/include/generated/autoconf.h

 

然后uname -r查看内核现在是哪个,所以我选择第一个,直接复制到缺少这个文件的目录

cd到driver/src下,在include文件夹下创建一个linux文件夹,并将autoconf.h拷贝到其目录下,同时也拷贝到src/shared/目录下。

ok,再sudo make 发现编译成功了,提示如下:

make[1]: 正在进入目录

/usr/src/linux-headers-2.6.35-22-generic-pae

  LD      /home/xiaoc/下载/driver/built-in.o

  CC [M]  /home/xiaoc/下载/driver/src/shared/linux_osl.o

  CC [M]  /home/xiaoc/下载/driver/src/wl/sys/wl_linux.o

  CC [M]  /home/xiaoc/下载/driver/src/wl/sys/wl_iw.o

  LD [M]  /home/xiaoc/下载/driver/wl.o

  Building modules, stage 2.  

  MODPOST 1 modules    #看到这个就知道编译完成了。

WARNING: modpost: missing MODULE_LICENSE() in /home/xiaoc/下载/driver/wl.o

see include/linux/module.h for more information

  CC      /home/xiaoc/下载/driver/wl.mod.o

  LD [M]  /home/xiaoc/下载/driver/wl.ko

make[1]:正在离开目录`/usr/src/linux-headers-2.6.35-22-generic-pae'

[c/ode]

模块生成了,不过还有一个错误。先不管,将按照官方readme说明文件要将其拷贝到/lib/modules/2.6.35-22-generic-pae/kernel/net/wireless/,执行命令:

[code]sudo cp wl.ko /lib/modules/2.6.35-22-generic-pae/kernel/net/wireless/

 

然后继续执行命令depmod

手动加载驱动试试效果modprobe wl

到这里发现已经又无线网卡,并且能够搜索到其他无线网络。可是疑问又来了。获取到的ip不对,所以上不了网。

查看下模块是否加载,执行:

[code]xiaoc@xiaoc-Studio-1458:~$ lsmod  | grep "wl"

wl                   1959533  0

lib80211                5058  2 wl,lib80211_crypt_tkip

 

发现正常加载了,但是纳闷的是,还是不能上网。出去吃饭回来,将路由的加密模式修改了一下,由原来的WEP128位改成了WAP后链接发现正常了。ok解决了~文章到此结束,我的网络ID:LengF,网络地址:www.81sec.com ,不对的还望指出。

提供编译好的模块:点击这里下载文件

 

 

 

Generated by Bo-blog 2.1.1 Release