问题

问题

问题

在我的电脑中,我有这个内部 WiFi PCIExpress:“Intel Corporation Wireless-AC 9260”

因此,它显示为lspci

06:00.0 Network controller: Intel Corporation Wireless-AC 9260 (rev 29)

当我这样做时,sudo lshw -c network我得到了这个

$ sudo lshw -c network
  *-network
       description: Network controller
       product: Wireless-AC 9260
       vendor: Intel Corporation
       physical id: 0
       bus info: pci@0000:06:00.0
       version: 29
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress msix bus_master cap_list
       configuration: driver=iwlwifi latency=0
       resources: irq:38 memory:fc600000-fc603fff

但是当我运行时ip link show它不显示:

$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
2: enp5s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
3: wlx7cc2c6146876: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000

我缩短了一点ip link show 接口 n'3 的输出,它是我现在用作备份解决方案的 USB wifi 加密狗,以便访问互联网,它不是英特尔 Wifi 卡。

系统日志

dmesg显示某种重试初始化某些东西 - 我不知道其含义(好?坏?正常?异常?)

$ dmesg | grep iwlwifi
[    8.346821] iwlwifi 0000:06:00.0: WRT: Overriding region id 0
[    8.346825] iwlwifi 0000:06:00.0: WRT: Overriding region id 1
[    8.346828] iwlwifi 0000:06:00.0: WRT: Overriding region id 2
[    8.346829] iwlwifi 0000:06:00.0: WRT: Overriding region id 3
[    8.346831] iwlwifi 0000:06:00.0: WRT: Overriding region id 4
[    8.346832] iwlwifi 0000:06:00.0: WRT: Overriding region id 6
[    8.346833] iwlwifi 0000:06:00.0: WRT: Overriding region id 8
[    8.346834] iwlwifi 0000:06:00.0: WRT: Overriding region id 9
[    8.346835] iwlwifi 0000:06:00.0: WRT: Overriding region id 10
[    8.346837] iwlwifi 0000:06:00.0: WRT: Overriding region id 11
[    8.346838] iwlwifi 0000:06:00.0: WRT: Overriding region id 15
[    8.346840] iwlwifi 0000:06:00.0: WRT: Overriding region id 16
[    8.346841] iwlwifi 0000:06:00.0: WRT: Overriding region id 18
[    8.346842] iwlwifi 0000:06:00.0: WRT: Overriding region id 19
[    8.346844] iwlwifi 0000:06:00.0: WRT: Overriding region id 20
[    8.346845] iwlwifi 0000:06:00.0: WRT: Overriding region id 21
[    8.346846] iwlwifi 0000:06:00.0: WRT: Overriding region id 28
[    8.347346] iwlwifi 0000:06:00.0: loaded firmware version 46.fae53a8b.0 9260-th-b0-jf-b0-46.ucode op_mode iwlmvm
[    8.360070] iwlwifi 0000:06:00.0: Detected Intel(R) Wireless-AC 9260 160MHz, REV=0x324
[    8.440248] iwlwifi 0000:06:00.0: retry init count 0
[    8.440283] iwlwifi 0000:06:00.0: Detected Intel(R) Wireless-AC 9260 160MHz, REV=0x324
[    8.520234] iwlwifi 0000:06:00.0: retry init count 1
[    8.520262] iwlwifi 0000:06:00.0: Detected Intel(R) Wireless-AC 9260 160MHz, REV=0x324
[    8.600235] iwlwifi 0000:06:00.0: retry init count 2

在 /sys/bus 中找到设备

我想我设法在这条路径的 /sys/bus 中找到设备的位置

# pwd
/sys/bus/pci/drivers/iwlwifi/0000:06:00.0
# pwd -P
/sys/devices/pci0000:00/0000:00:01.2/0000:02:00.0/0000:03:05.0/0000:06:00.0

设置

  • 发行:Linux Mint 21
  • 内核:5.15.0-82-generic #91-Ubuntu SMP 8 月 14 日星期一 14:14:14 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

可能的内核更新导致了该问题?

到目前为止,这张卡在这个发行版上运行良好。我猜最近有一个内核更新可能导致该卡无法工作?但这只是一个猜测。我所说的“最近”是指:昨天发生了内核更新,然后我重新启动到 Windows(双启动),以玩一些游戏来结束我的一天。今天早上,我启动计算机,进入 Linux -> Wifi 不工作。

使用脚本重置设备

在这个地址: https://unix.stackexchange.com/a/474378/322580

我找到了那个脚本

#!/bin/bash

dev=$1

if [ -z "$dev" ]; then
    echo "Error: no device specified"
    exit 1
fi

if [ ! -e "/sys/bus/pci/devices/$dev" ]; then
    dev="0000:$dev"
fi

if [ ! -e "/sys/bus/pci/devices/$dev" ]; then
    echo "Error: device $dev not found"
    exit 1
fi

port=$(basename $(dirname $(readlink "/sys/bus/pci/devices/$dev")))

if [ ! -e "/sys/bus/pci/devices/$port" ]; then
    echo "Error: device $port not found"
    exit 1
fi

echo "Removing $dev..."

echo 1 > "/sys/bus/pci/devices/$dev/remove"

echo "Performing hot reset of port $port..."

bc=$(setpci -s $port BRIDGE_CONTROL)

echo "Bridge control:" $bc

setpci -s $port BRIDGE_CONTROL=$(printf "%04x" $(("0x$bc" | 0x40)))
sleep 0.01
setpci -s $port BRIDGE_CONTROL=$bc
sleep 0.5

echo "Rescanning bus..."

echo 1 > "/sys/bus/pci/devices/$port/rescan"

我在我的电脑上这样运行:

$ sudo ./pciRescan 06:00.0

身份证号码06:00.0来自

$ lspci | grep Intel
06:00.0 Network controller: Intel Corporation Wireless-AC 9260 (rev 29)

脚本 pciRescan 的执行没有执行任何操作...Wifi 卡仍然处于关闭状态并且由于某些不明原因不可见:')

我尝试过的其他东西

  • 重新启动->什么也没做
  • 检查 Wifi 卡是否在 Windows 上工作(在我的机器上双启动)-> 该卡在 Windows 上工作
  • 我尝试重置 /sys/bus/ 中的“重置”位(请参阅本文上面的完整路径)->什么也没做,我可能做错了

如果我错过了任何内容,如果您有建议、帮助等 -> 请不要犹豫。预先感谢您的帮助<3

编辑

在网上阅读了很多内容后,问题似乎出在机器上将 Windows 作为双启动取决于 Windows 关闭计算机 -> 你会从 WiFi 中得到这种不需要的行为所以解决方案似乎很简单:重新启动到 Windows 重新启动到 Linux

相关内容