挣扎了许久,总算能够正常上无线网了。现在想想,操作系统的基础是如此的重要。
比较简单的方法:ubuntu apt source的bcmwl-kernel-source
安装方法如下:
sudo apt-get update sudo apt-get install bcmwl-kernel-source
驱动加入黑名单,让系统记住
sudo vi /etc/modprobe.d/blacklist.conf
末尾加入以下语句:
blacklist b43 blacklist ssb blacklist brcmsmac
复杂方法:
PC公司驱动下载网站上都只支持Windows XX版本的驱动。安装linux操作系统的驱动必须要到相应的硬件厂商网站上才能下载、安装。
首先也必须得了解一下自己电脑的硬件配置:
lspci
找到Network controller一项。找到对应的无线网卡硬件商公司及产品型号。
(Network controller为无线网卡项,Ethernet controller为以太网网卡项)
以下内容暂时没有进行尝试,做为摘抄:
进入broadcom的官网:http://www.broadcom.com/support/802.11/linux_sta.php 下载相应的驱动包。
首先针对自己的OS是32bit还是64bit下载对应的驱动,下载好后开始解压准备编译:
mkdir bcm43xx_x86_64-v5_100_82_112 tar xzvf hybrid-portsrc_x86_64-v5_100_82_112.tar.gz -C bcm43xx_x86_64-v5_100_82_112 cd bcm43xx_x86_64-v5_100_82_112 make
出现以下错误:
Using Wireless Extension API LD /home/ego/Drivers/bcm43xx_x86_64-v5_100_82_112/built-in.o CC [M] /home/ego/Drivers/bcm43xx_x86_64-v5_100_82_112/src/shared/linux_osl.o CC [M] /home/ego/Drivers/bcm43xx_x86_64-v5_100_82_112/src/wl/sys/wl_linux.o /home/ego/Drivers/bcm43xx_x86_64-v5_100_82_112/src/wl/sys/wl_linux.c:388:2: error: unknown field ‘ndo_set_multicast_list’ specified in initializer /home/ego/Drivers/bcm43xx_x86_64-v5_100_82_112/src/wl/sys/wl_linux.c:388:2: warning: initialization from incompatible pointer type [enabled by default] /home/ego/Drivers/bcm43xx_x86_64-v5_100_82_112/src/wl/sys/wl_linux.c:388:2: warning: (near initialization for ‘wl_netdev_ops.ndo_validate_addr’) [enabled by default] make[2]: *** [/home/ego/Drivers/bcm43xx_x86_64-v5_100_82_112/src/wl/sys/wl_linux.o] Error 1 make[1]: *** [_module_/home/ego/Drivers/bcm43xx_x86_64-v5_100_82_112] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-26-generic' make: *** [all] Error 2
关键是src/wl/sys/wl_linux.c的388行
vi src/wl/sys/wl_linux.c +388
代码如下:
.ndo_set_multicast_list = wl_set_multicast_list,
查看内核源码struct net_device_ops的确没有这个接口了。
看了一下bcmwl-kernel-source的patch,它使用的是.ndo_set_rx_mode替换的,那我们也用这个替换:
vi src/wl/sys/wl_linux.c +388
将源文件改为以下:
#if 0 .ndo_set_multicast_list = wl_set_multicast_list, #else .ndo_set_rx_mode = wl_set_multicast_list, #endif
修改好后保存,继续编译:
make
这次编译顺利通过,生成了wl.ko。
sudo make install sudo rmmod brcmsmac sudo rmmod brcmutil sudo depmod sudo modprobe wl sudo ifconfig eth1 up
无线网卡正常运行,信号明显要比bcmwl-kernel-source要好一些。
禁用内核驱动:
sudo vi /etc/modprobe.d/blacklist.conf
末尾加入以下语句:
blacklist b43 blacklist ssb blacklist brcmsmac
保存文件后,重启。
问题出来了,wl加载了,但是竟然不能正常驱动无线网卡,为什么重启之前可用呢,复现重启之前的环境:
sudo rmmod wl sudo modprobe brcmsmac sudo rmmod brcmsmac sudo rmmod brcmutil sudo modprobe wl
神奇,居然又工作了,看来还要依赖brcmsmac才行,不完美,继续折腾!
方法1:
修改启动脚本:
sudo vi /etc/init.d/rc
在文本末尾炸到exit 0关键字后,按照如下修改:
rmmod wl modprobe brcmsmac rmmod brcmsmac rmmod brcmutil modprobe wl trap - EXIT # Disable emergency handler exit 0
保存,重启,ok,驱动正常,但是启动过程中,本子的无线指示灯会出现1秒的循环闪烁,还不是最优解,继续折腾!
方法2:
既然bcmwl-kernel-source可以不依赖brcmsmac直接驱动设备,那么为什么自己编译的不行呢。
继续分析他的deb,没有发现任何不一样,只是他的驱动安装路径不同,难道这也有差,继续偷懒:
sudo apt-get install bcmwl-kernel-source
然后将咱们编译的wl.ko替换掉bcmwl-kernel-source的:
sudo mv /lib/modules/`uname -r`/updates/dkms/wl.ko /lib/modules/`uname -r`/updates/dkms/wl.ko.old sudo cp ./wl.ko /lib/modules/`uname -r`/updates/dkms/wl.ko
继续禁用kernel的驱动:
sudo vi /etc/modprobe.d/blacklist.conf
末尾加入以下语句:
blacklist b43 blacklist ssb blacklist brcmsmac
保存文件后,重启。
参考资料:
http://blog.sina.com.cn/s/blog_73b6331101016haq.html
http://forums.fedoraforum.org/archive/index.php/t-280821.html
相关推荐
本篇文章将详细介绍如何在Ubuntu 14.04上安装和管理无线驱动,主要针对两个常见的无线网卡驱动:Broadcom BCM43xx系列和b43系列。 首先,我们关注的是`broadcom-wl-5.100.138.tar.bz2`文件。这是Broadcom公司提供的...
当联想笔记本电脑安装了win10+ubuntu14.04双系统后,ubuntu无法连接到wifi,那是因为ubuntu默认安装的是博通公司的wifi驱动,而我们的笔记本的硬件为高通平台,wifi型号为Qualcomm-Atheros-QCA9377,通过安装本文件...
通过上述步骤,您应该能够成功解决Dell Optiplex 7050系列台式机在Ubuntu 14.04系统下的网卡驱动安装问题,并实现正常的网络连接功能。请注意,随着硬件和软件的发展,未来可能会出现新的解决方案,建议定期关注官方...
在本例中,"x240 WIFI驱动 Ubuntu14.04"的标题指出了解决这个问题的关键点:你需要为你的ThinkPad X240寻找并安装适用于Ubuntu 14.04的Wi-Fi驱动。描述中提到的“下载此包后,重新make和make install一下”指明了...
在这里,我们选择了 TP-LINK 的 TL-WN823N 无线网卡,并安装了其 RTL8192CU 芯片组驱动。 接下来,需要安装锐捷客户端,以便连接校园网。在安装锐捷客户端时,可能会遇到安装按钮不能被按下的问题,这时可以尝试把...
在Ubuntu 14.04操作系统中安装TP-LINK TL-WN823N无线网卡驱动是一项必要的任务,特别是对于那些希望通过无线网络连接到Internet的用户。TP-LINK TL-WN823N是一款流行的USB无线网卡,它采用Realtek RTL8192EU芯片组。...
Ubuntu无线网卡驱动安装方法 Ubuntu 无线网卡驱动安装方法是指在 Ubuntu 操作系统中安装无线网卡驱动程序的方法。当我们安装了 Ubuntu 后,可能会发现没有无线网络,搜索不到 WiFi,这是因为 Ubuntu 不会自动安装...
新买的华擎H310CV主板网卡型号为15BC,安装ubuntu14.04 kernel 4.4.0的驱动较老,无法驱动, 这是Intel网卡支持页面下载的驱动源码包,版本3.4.2.1; 之前尝试了几次安装都不成功,折腾来折腾去,不知道改了哪里,...
这个“rtl8192eu-driver.zip”文件是为了解决Ubuntu 14.04中特定无线网卡型号——TL-WN823N的驱动问题。RTL8192EU是一款由Realtek公司生产的无线网络控制器芯片,它在一些Linux发行版上可能无法正常工作,因为默认...
笔记本新安装的ubuntu系统无法找到WIFI列表,原因是没有安装无线网卡的驱动文件,导致无法识别WIFI信号。 需要安装对应网卡的驱动文件,网卡型号可以在windows10系统的桌面点击”此电脑 / 属性 / 设备管理器”,打开...
标题中的“360随身WiFi2”是一款由360公司推出的便携式无线网卡设备,它允许用户将有线网络转换为无线热点,方便手机、平板等设备接入。这款产品通常适用于Windows和Mac操作系统,但在Linux系统中可能需要特定的驱动...
随身WiFi设备通常包含一个USB接口的无线网卡,该网卡通常基于MT7610芯片。 在Ubuntu 12.04和14.04上安装驱动的过程大致如下: 1. **识别硬件**:首先,你需要确认设备是否被Linux系统正确识别。打开终端,输入`...
5. 安装驱动:如果编译成功,使用`sudo make install`将驱动安装到系统中。 6. 加载驱动:有时需要通过`sudo insmod`或`sudo modprobe`命令加载驱动,或者在内核启动时自动加载。 编译失败可能的原因包括: - 内核...
如文档中提到的ubuntu14.04,这是一个稳定的长期支持版本,适合开发使用。此外,还涉及到了内核源码树的使用,它为编译和定制Linux内核提供了必须的代码。 2. 内核驱动开发 内核驱动开发是嵌入式系统开发的核心之...
11. **硬件兼容性**:针对不同的硬件设备,如无线网卡、显卡、摄像头等,提供驱动安装和配置建议。 12. **故障排查**:提供一些常见问题的解决方案,如系统启动问题、软件冲突等。 13. **社区资源**:介绍Ubuntu...
CSI用户手册是由新加坡南洋理工大学编写的,用于指导用户如何在Linux环境下配置CSI(Channel ...内容涵盖了从系统搭建、内核驱动安装、信号处理到网络配置等方方面面,对于相关领域研究者和工程师有着很大的参考价值。
总结来说,海思Hi3531D内核编译涉及硬件驱动的适配,包括USB无线网卡和USB摄像头的支持。这个过程需要正确配置内核选项,编译内核源码,并最终烧写到目标设备中。通过内核编译,我们可以确保设备能够识别和使用这些...