Ubuntu下WIFI不稳定问题

2023-05-16

初步尝试

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,不能点cancel,只能换个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-source Software & 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 这里对各驱动的支持网卡描述更详细。
三更:
装了Ubuntu22.04后再没遇到这个问题,建议大家都更新
但是最近用着用着WiFi没了,蓝牙功能还在,通过 lsmod lshw均无法发现WiFi相关信息,搜索一番原来是内核引入了bug-Cannot find wifi adapter after kernel update to 5.19.0-40-generic 而我的新旧内核分别是5.15.0-43 5.19.0-38 所以要等到42才能修复,第一次赶上时新的bug。
那么,在官方修复内核前,1. 我怎么修改默认启动内核 2.我怎么通过一些内核hook自行修复
附录:

  1. 新命令

    • lsmod
    • rmmod
    • modprobe -f
    • sudo lspci lspci -vvnn | grep 802
    • lshw lshw -C Network
    • iwconfig
    • update-initramfs sudo update-initramfs -u
    • sudo apt-cache search linux-image-5.19.0-
  2. 新目录

    • /etc/modprobe.d/blacklist.conf
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu下WIFI不稳定问题 的相关文章

  • 无法安装 psycopg2 Ubuntu

    试图为 django 项目准备好服务器 但我在设置 postgres 时遇到了一些问题 我正在遵循本指南 https jee appy blogspot com 2017 01 deply django with nginx html ht
  • EDITLogBack Syslog 不工作 java

    我写了一个简单的项目来在 Ubuntu 中运行日志 方法如下example https examples javacodegeeks com enterprise java logback logback syslog example 应用
  • 将 Docker 与具有 Node-gyp 依赖项的 Nodejs 一起使用

    我计划使用 Docker 部署 node js 应用程序 该应用程序有几个需要node gyp的依赖项 Node gyp 根据交付平台上的编译库构建这些模块 例如 canvas lwip qrcode 根据我的经验 这些构建可能高度依赖于操
  • saber sd 如何在没有 SPL 的情况下直接从 uboot 启动

    sabre sd 基于 imx 6 最大内部 RAM 约为 150Kb 然而 uboot 足够大 可以容纳在这个空间中 在这个场景中事情是如何进行的 https community freescale com docs DOC 95015
  • 如何安装和管理多个版本的 R 包

    我正在开发一个使用 R 进行可重现计算的框架 我正在努力解决的一个问题是 某些 R 代码可能在包的 X Y Z 版本中完美运行 但是为什么你在 3 年后尝试重现它 这些包已经更新了 一些功能发生了变化 代码不再运行 此问题还会影响使用包的
  • 为 Qt 应用程序创建 Linux 安装

    我刚刚用 Qt Creator 制作了一个很棒的程序 我对自己很满意 如何将其从台式机移至笔记本电脑 那么 最好的方法是安装程序 对吗 对于 Ubuntu 这是一个 Debian 软件包 对吗 我怎么做 有人这样做过吗 他们可以分享 QT
  • 伪分布式模式下的 Hadoop。连接被拒绝

    P S 请不要将此标记为重复 Hi 我一直在尝试以伪分布式模式设置和运行 Hadoop 当我运行 start all sh 脚本时 我得到以下输出 starting namenode logging to home raveesh Hado
  • 操作错误:尝试在 ubuntu 服务器中写入只读数据库

    我正在使用 FlaskApp 运行mod wsgi and apache2在 Ubuntu 服务器上 我尝试运行烧瓶应用程序localhost成功 然后部署到ubuntu服务器上 但是当我尝试更新数据库时 出现错误 Failed to up
  • 如何从 iOS 应用程序检测不安全的 wifi 网络

    我想检测我的应用程序中是否存在不安全的 wifi 网络 是否有任何公共 iOS API 可以实现相同的目的 没有记录的 API 可以获取该信息 如果您的应用程序需要通过网络发送和接收敏感数据 您通常应该假设没有安全连接
  • Ubuntu 12.04 上的 DeepDive 安装指南

    在拥有以后很多问题 https stackoverflow com questions 22469188 deepdive installation postgresql error安装深潜项目 http deepdive stanford
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • 如何在ubuntu的conda环境中更改Rstudio中的R版本

    我在基本系统中安装了 R 4 3 和 Rstudio 在 conda 环境中安装了旧版本的 R 4 2 3 命令which R返回环境中安装的 R 的目录 home 用户 miniconda3 envs anndata2ri pip bin
  • PostgreSQL - 致命:用户“myuser”身份验证失败[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我刚刚在我的 Ubuntu Box 中安装了 PostGreSQL 我想做的第一件事就是创建一个数据库 我读了文档 http www postgres
  • 卷曲选项 -:未知

    我运行此命令在 ubuntu 18 04 上安装更新版本的 nodejs curl sL https deb nodesource com setup 12 x sudo E bash 我收到错误 curl 选项 未知 我在多个系统上尝试过
  • Ubuntu 上的 Vim:文本渲染错误,奇怪地重复和消失

    不久前我在 ubuntu 12 04 上安装了 vim 有时 当我在代码上运行光标 使用键盘 而不是鼠标 时 文本会消失 就好像渲染字符时出现问题一样 当我再次运行光标时 它通常会重新出现 这似乎是随机发生的 但通常足以让人恼火 为了更清楚
  • 在初始化脚本中切换用户?

    这是我的 Ubuntu 工作站上的初始化脚本 我需要以除 root 之外的其他用户身份运行命令 但我就是不知道应该如何完成它 两者都不sudo u or su newuser似乎有效 剧本 respawn console none star
  • Pycharm 中的 Traitlets.traitlets.TraitError

    我是Python的初学者 我面临以下问题 每当我启动 pycharm 社区版 版本 5 0 3 时 Python 控制台无法启动并显示以下错误 usr bin python2 7 usr lib pycharm community help
  • git 错误:无法处理 https

    当我尝试使用 git clone 时https xxx https xxx我收到以下错误我不处理协议 https 有人可以帮我吗 完整消息 dementrock dementrock A8Se git 克隆https git innosta
  • 有人可以解释一下 Postgresql 角色、Postgresql 用户和 Linux 用户之间的关系吗?

    我正在尝试在 Ubuntu 14 服务器上设置 Postgres 9 3 此时我感到非常沮丧 我以前使用过 MySQL 所以我对一般数据库概念以及客户端 服务器模型等很满意 我从两个用户开始 root 和 sam 我 作为 sam 我使用
  • 无论我如何尝试,“netsh wlan startHostednetwork”命令都不起作用

    C Windows system32 gt netsh wlan 显示驱动程序 接口名称 无线网络连接 Driver DW1501 Wireless N WLAN Half Mini Card Vendor Broadcom Provide

随机推荐