我没有在 的输出中显示我的无线网络适配器 (wlan0) ifconfig
,但 的输出中显示了卡适配器名称sudo lshw -c network
。我看到其他帖子指出,这种情况的一个常见原因是卡被硬阻塞,这可以通过使用工具 rfkill 来查看。
我觉得从逻辑上来说应该有一种方法可以解除硬件阻塞而不必先安装 rfkill,因为硬件在没有安装软件包的情况下就被阻塞了。
我知道使用 rfkill 是最直接的解决方案,但我正在寻找替代的更复杂/更低级别的方法来消除无线适配器上的硬阻断。
注意:如果没有 rfkill 则无法实现此操作,请纠正我。
编辑:我后来购买了另一个 PCI 无线适配器,认为它可能“开箱即用”,但它也没有出现在 ifconfig 上。我的输出sudo lshw -c network
现在如下:
*-network:0
description: Network controller
product: BCM4318 [AirForce One 54g] 802.11g Wireless Lan Controller
vendor Broadcom Corporation
physical id: 8
bus info: pci@0000:03:08.0
version: 02
width: 32 bits
clock: 33MHz
capabilities: bus_master
configuration: driver=b43-pci-bridge latency=32
resources: irq:16 memory:fddfc000-fddfdfff
*-network: 1 UNCLAIMED
description: Ethernet controller
product: 88w8335 [Libertas] 802.11b/g Wireless
vendor: Marvell Technology Group Ltd.
physical id: 9
bus info: pci@0000:03:09.0
version: 03
width: 32 bits
clock: 66MHz
capabilities: pm bus_master cap_list
configuration: latency=32
resources: memory:ffdde0000-fddeffff memory:fddd0000-fdddffff
#0 是我打开这篇文章时最初尝试让它工作的适配器,而 #1 是“新”的适配器。
我在启动时注意到了以下有趣的消息,并使用以下方法搜索它dmesg | grep firmware
:
... b43 ssb0:0: Direct firmware load failed with error -2
... b43 ssb0:0: Direct firmware load failed with error -2
... b43 ssb0:0: Direct firmware load failed with error -2
... b43 ssb0:0: Direct firmware load failed with error -2
... b43-phy0 ERROR: You must go to http://wireless.kernel.org/en/users/Drivers/b43#devicefirmware and download the correct firmware for this driver version. Please carefully read all instructions on this website.
因此,我需要此固件可使 b43 工作...但我到底为什么需要这个?也没有关于其他适配器的提示信息...
答案1
另一个适配器很难甚至不可能工作。我建议您将其移除。
对于 Broadcom,使用临时的互联网连接,打开终端并执行:
sudo apt-get update
sudo apt-get install firmware-b43-installer
重启后你的无线网应该就可以正常工作了。我相信你的问题始终是固件问题,而不是 rfkill 问题。
您需要单独安装固件,因为它是专有的而不是开源的,所以不包含在 Ubuntu 安装介质中。
答案2
你可以从这里下载 rfkill https://ubuntu.pkgs.org/21.10/ubuntu-updates-main-amd64/rfkill_2.36.1-8ubuntu2.2_amd64.deb.html
然后通过 usp 驱动器传输
并手动安装