初步尝试

Ubuntu下无线网络总是不稳定,显示WIFI开着,密码也正确,但是连接时却一直连不上,显示一直connecting,建立WIFI连接时可以看到有如下syslog:

Aug 15 20:00:25 ubuntu wpa_supplicant[1071]: wlp3s0: Authentication with ff:ea:da:e9:5a:3d timed out.
Aug 15 20:00:25 ubuntu wpa_supplicant[1071]: wlp3s0: CTRL-EVENT-DISCONNECTED bssid=ff:ea:da:e9:5a:3d reason=3 locally_generated=1
Aug 15 20:00:25 ubuntu wpa_supplicant[1071]: wlp3s0: CTRL-EVENT-SSID-TEMP-DISABLED id=0 ssid=“WIFI” auth_failures=1 duration=10 reason=CONN_FAILED
Aug 15 20:00:25 ubuntu NetworkManager[1072]: [1629028825.1315] sup-iface[0x56030ddd5a30,wlp3s0]: connection disconnected (reason -3)

显示认证时失败,物理连接被断开,显示在界面上就是一直connecting,不能点cancle,只能换个WIFI连。
开关WIFI不起作用;重启并不一定起作用;我怀疑是Ubuntu下网卡驱动的问题,也怀疑是因为安装aircrack-ng造成驱动有问题,卸载它也没有起作用;重启NetworkManager也不行(通过systemctl),同时在systemctl下能看到这么一个设备:

sys-subsystem-net-devices-wlp3s0.device
loaded active plugged   BCM43142 802.11b/g/n

想重启下它却不行,这应该对应的是一个物理网卡了,stoprestart都不起作用,除非把它拔了。
后来记起rfkill命令,了解一番后,它是通过命令行开关无线功能,和通过设置开关没啥区别

重装驱动

WIFI使用的是哪个驱动呢?Linux驱动在哪里看呀?都不知道!
bing,modules Linux的驱动是作为一个module随机运行的:

/etc/modules - kernel modules to load at boot time

ubuntu论坛中讨论出好好几个方法:How do i remove wireless drivers?
先说总结方法,后面记录写额外的命令:sudo lshw -C network可以看出和网络相关的硬件,一部分输出如下:

*-network
description: Wireless interface
product: BCM43142 802.11b/g/n
vendor: Broadcom Inc. and subsidiaries
physical id: 0
bus info: pci@0000:03:00.0
logical name: wlp3s0
version: 01
serial: ff:bb:db:d9:10:a7
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=wl0 driverversion=6.30.223.271 (r587334) ip=192.168.43.3 latency=0 multicast=yes wireless=IEEE 802.11
resources: irq:19 memory:d1100000-d1107fff

可以看到driver是wl0, 然后lsmod | grep wl,得到输出

wl 6447104 0
cfg80211 634880 1 wl

卸载wl rmmod -f wl,此时设置里的WIFI都没有了,说明驱动卸载成功了,(为什么grep的是wl而非wl0?首先wlan想到wl,还有个原因是linux中个整eth0,wlp3s0,中末尾的0都只表示某种顺序,那去掉0呗,最重要的是grep wl0没输出啊,就,就尝试一下)
那么怎么装回来呢?
当初安装驱动是通过Software & Updates这个软件配置的(或者敲入命令software-properties-gtk),Additional Drivers里有带驱动,我的显示是Linux STA 代码源自bcmwl-kernel-source,切换一下(轮换修改两次)是否使用这个Driver就又自动装回来了,此时lsmod又能过滤出wl,WIFI设置又回来了,至此一个驱动的卸载重装过程就结束了。

NDIS

论坛中还提到一个程序:ndiswrapper

The NDISwrapper project provides a Linux kernel module that loads and runs Windows kernel API and NDIS (Network Driver Interface Specification) API drivers supplied by the vendors within the Linux kernel.

NDIS:(Network Driver Interface Specification)看了微软官网的描述,基于这个API开发的驱动就可以在支持Windows系统的所有平台使用.
进而ndiswrapper又让驱动能在Linux内核上运行,根据官网描述,只支持WindowsXP的驱动(这篇文章还描述了如何安装WindowsXP驱动):

Windows XP drivers are required to be used. NDISwrapper does not support NDIS 6.x (Windows Vista/7/8) at this time.

微软官网对其Windows版本与NDIS版本的对应关系:windows-hardware/drivers/network/overview-of-ndis-versions, Vista以后都是6.0以上了,Win10 1903 对应的是6.83

支持的PCI网卡的信息:http://ndiswrapper.sourceforge.net/wiki/index.php/Category:PCI,我的网卡是博通BCM43142,没在此列,说明此路我是走不通了。

  • Broadcom 5343
  • Broadcom BCM4310
  • Broadcom BCM4311
  • Broadcom BCM4318
  • Broadcom BCM4318 HP
  • Broadcom BCM4318 HP COMPAQ V2415LA
  • Broadcom BCM4318 HP nx6125
  • Broadcom BCM94306 Compaq Presario 3160
  • BroadcomBCM94306MP HP Pavilion ze4560us

问题没解决?

ubuntu网卡问题解决指引:https://help.ubuntu.com/stable/ubuntu-help/net-wireless-troubleshooting-hardware-check.html.en
AskUbuntu指引:https://askubuntu.com/questions/235279/my-wifi-adapter-is-not-working-at-all-how-to-troubleshoot
Ubuntu下博通无线网卡驱动的选择:https://askubuntu.com/questions/55868/installing-broadcom-wireless-drivers/60395#60395
尽量选择安装驱动 :sudo apt install firmware-b43-installer sudo apt install linux-firmware,注意安装完后从module黑名单中放出来!
上面问题里有个回答:https://askubuntu.com/questions/55868/installing-broadcom-wireless-drivers/67806#67806说得很详细,列举了可使用4个驱动,我目前就是使用的旧的、不建议的驱动

二更:
但是我安装完firmware-b43-installer并不管用,此时如果将wl加入黑名单(/etc/modprobe.d/blacklist.conf),WIFI完全就没了,一定是哪里出问题了!解释不通,有点恼火。
又处处尝试。偶然看到:键入命令lspci -nn -d 14e4: (14e4是厂商id,输出中冒号后面是产品id)我的是[14e4:4365] (rev 01)而非[14e4:4365],所以b43( firmware-b43-installer即b43 module)不支持是正常的,第三个链接回答里列举的[14e4:4365] (rev 01)应该使用:bcmwl-kernel-sourceSoftware & UpdateAdditional Drivers里那个。
这里的bcmwlwl是否就是wl module呢?当WIFI设置都没了的时候,rmmod wl而后modprobe wl就把驱动安装回来了。
bcmwl驱动禁止了的modules如下代码块,最后一个配置testfile是我测试电脑重启后,自己修改这个文件是否会被复原,测试来看是不会的。而且文中的bcmwl就是bcmwl-kernel-source呀!我还以为它是一个命令。

# Warning: This file is autogenerated by bcmwl. All changes to this file will be lost.
blacklist b43
blacklist b43legacy
blacklist ssb
blacklist bcm43xx
blacklist brcm80211
blacklist brcmfmac
blacklist brcmsmac
blacklist bcma
blacklist testfile

这下全弄明白了。我只能使用bcmwl-kernel-source而不是b43 也没有NDISwindows驱动。
而且内核没有自己带的驱动,自己安装相应驱动后,要将其写入内核image,看起来是这样子。是因为看到个命令:update-initramfs: The update-initramfs script manages your initramfs images on your local box. It keeps track of the existing initramfs archives in /boot. 将内核变动固化到磁盘,下次开机再解压出来。

今天帮助我弄清这个一个debian wiki:https://wiki.debian.org/bcm43xx 这里对各驱动的支持网卡描述更洗详细。

附录:

  1. 新命令

    • lsmod
    • rmmod
    • modprobe -f
    • sudo lspci lspic -vvnn | grep 802
    • lshw lshw -C Network
    • iwconfig
    • update-initramfs sudo update-initramfs -u
  2. 新目录

    • /etc/modprobe.d/blacklist.conf

Ubuntu下WIFI不稳定问题相关推荐

  1. Linux(Ubuntu)下WiFi网卡(intel ax201)驱动与Nvidia显卡驱动冲突的解决办法

    Linux(Ubuntu)下WiFi网卡(intel ax201)驱动与Nvidia显卡驱动冲突的解决办法 环境: 系统 Ubuntu 22.04 LTS 网卡ax201(微星b660m迫击炮wifi ...

  2. 联想 笔记本 Lenovo Y410P 在 Linux Ubuntu 下 Wifi无线网不能搜索的问题 博通Broadcom 43xx 无线网卡驱动安装 插耳机后爆破的声音 拔电源后吱吱硬盘声音

    买了联想笔记本Y410P 安装Ubuntu后发现右上角的network-manager菜单中并不能选择和搜索wifi无线网 解决方法: 参考:https://help.ubuntu.com/commu ...

  3. Ubuntu下wifi适配器、蓝牙找不到

    方法: 1)在windows系统下安装wifi驱动,蓝牙驱动等: 2)关机,不是重启!然后再次手动开机. 3)在ubuntu中查看wifi.蓝牙的开关并打开所有开关: $ rfkill list al ...

  4. thinkpad x240s ubuntu下wifi断网bug解决方案

    之前的博文已经说了怎么让系统识别wifi硬件.但是还是有个问题,wifi不定时就断了.观察了几天也没有发现规律.尝试用windows的驱动也没有成功.google一下,发现别人也有这个问题.临时有个方 ...

  5. 解决联发科mt7921网卡在ubuntu下没有wifi的问题

    2022.5.2更新 //如果环境允许升级内核的话有朋友提供了升级内核的解决方案 MT7921无线网卡驱动解决方案!!!- Community - Deepin Technology 华硕Pro16安 ...

  6. Nvidia2070显卡配置win10+ubuntu18.04双系统+解决N卡驱动+解决Ubuntu中wifi网络不稳定(intel网卡)+修改开机启动win10

    本人也是经过了无数的坑才能看到一丝曙光,是真的累,但是要有耐心,都是可以解决的 1.首先那些做系统盘,删除卷,这些操作我就不提了,直奔主题,N卡和linux驱动冲突问题. 首先刚进去ubuntu系统盘 ...

  7. 如何在Ubuntu下使用全民wifi?

    最近一直想在Ubuntu下进行开发,苦于公司给的电脑不能连接wifi,如是拿了一个全民wifi(19.9元),接在电脑上,作为无线的网卡,接入网络.因为Linux没能像window提供自动驱动,所以得 ...

  8. linux(Ubuntu)下的wifi热点安装配置------hostapd-2.0

    linux下wifi软热点---hostapd-2.0 有兴趣的朋友可以参看下面网站: http://w1.fi/hostapd/ http://www.ibm.com/developerworks/ ...

  9. ubuntu下发射wifi热点

    为了能尽早摆脱windows系统,不得不进行ubuntu下的wifi热点创建的探索.根据网上许多帖子并不断进行试验,终于得到一种较为简单的wifi热点创建方法.网上在ubuntu下发射wifi热点的方 ...

最新文章

  1. 基于HTML5 Canvas 实现矢量工控风机叶轮旋转
  2. 如何在IE右键菜单中添加菜单项(转)
  3. IDEA 调试Spring-boot 应用
  4. java自学小段 产生随机数
  5. Effective java -- 2 对于所有对象都通用到方法
  6. python print %s 号格式化输出
  7. C# Web实时消息后台服务器推送技术-GoEasy
  8. 反射 + 抽象工厂模式切换不同的实现方法
  9. python爬虫反爬机制_Python Scrapy突破反爬虫机制(项目实践)
  10. Typesetting Engine_Gecko
  11. Linux 引入自动化测试平台 KernelC
  12. G.8032 ERPS 轻松强固网络安全!
  13. omnipeek无线抓包工具 Dlink 160驱动
  14. 声音特征提取方法:综述【线性声谱图(Line Spectrum)、对数梅尔谱(Log-mel)、梅尔频率倒谱系数(MFCCs)】
  15. python自动化开发-[第九天]-异常处理、进程
  16. 面经手册 · 第1篇《认知自己的技术栈盲区》
  17. KeyShot 11.1 现已推出
  18. oracle数据库课后习题答案,oracle数据库经典练习题及答案
  19. GNU LGPL协议
  20. java ssm羽毛球场地预约交流平台

热门文章

  1. Oracle 自定义数据类型Type
  2. 三运放差分放大电路分析_★三运放差分放大电路
  3. 分布式缓存(Redis)连杀
  4. A - 可以教学姐画画嘛QAQ
  5. 【Python自动化测试】:模拟鼠标操作
  6. Go语言:go-redis客户端设置过期时间相关命令Expire,ExpireAt,TTL的用法示例
  7. 宝藏级的开源小程序(APP)商城-CRMEB-WEB版实测
  8. ps4 安卓 php,PS4遥控操作下载|PS4遥控操作 (PS4 remote play)1.0.015181官方最新版_ - 极光下载站...
  9. 【金融项目】尚融宝项目(十一)
  10. 核心业务8:提现+展示还款信息和回款信息