我在联想 Thinkpad Carbon X1 Gen 7 上运行 Ubuntu 19.10(并使用 Cinnamon)。
我安装了 Virtualbox,它在检测到我的 BIOS 中启用了安全启动后设置了 MOK 密码。重新启动后,我看到了蓝色的 MokManager 屏幕,要么按 Enter 键,要么让它继续启动,而没有在其中设置任何内容。然后我看到我的 WiFi 适配器没有出现在可用网络连接方法(以太网、Wifi 等)列表中。然后我卸载了 Virtualbox。
看来我也无法让 Ubuntu 使用 WiFi 驱动程序。在“软件和更新”中“其他驱动程序”的屏幕截图中,我的 WiFi 硬件默认选择了“不使用该设备”,而选择“继续使用手动安装的驱动程序”不允许我“应用更改”(见截图)并且我无法选择 iwlwifi 驱动程序反向移植选项(我不熟悉)。
在 BIOS 中并通过 mokutil 禁用安全启动后,我仍然看到同样的问题。有趣的是,WiFi 在 Live USB 会话中可以正常工作,但在全新安装后仍然无法正常工作。
通过使用 mokutil 检查,SecureBoot 似乎也已被正确禁用:
$ mokutil --sb-state
SecureBoot disabled
以下是我的 wifi 相关 dmesg 输出。据我了解,Ubuntu 可以正确检测到我的无线设备存在并且具有最新的固件版本,但不允许使用该驱动程序。
$ dmesg | grep Wireless
[ 28.668913] Intel(R) Wireless WiFi driver for Linux
[ 28.784499] iwlwifi 0000:00:14.3: Detected Intel(R) Wireless-AC 9560 160MHz, REV=0x354
$ dmesg | grep wifi
[ 28.668974] iwlwifi 0000:00:14.3: enabling device (0000 -> 0002)
[ 28.697240] iwlwifi 0000:00:14.3: TLV_FW_FSEQ_VERSION: FSEQ Version: 43.2.23.17
[ 28.697439] iwlwifi 0000:00:14.3: loaded firmware version 48.4fa0041f.0 op_mode iwlmvm
[ 28.784499] iwlwifi 0000:00:14.3: Detected Intel(R) Wireless-AC 9560 160MHz, REV=0x354
[ 29.814184] iwlwifi 0000:00:14.3: Collecting data: trigger 15 fired.
[ 29.814284] iwlwifi 0000:00:14.3: Start IWL Error Log Dump:
[ 29.814286] iwlwifi 0000:00:14.3: Status: 0x00000000, count: 1183474477
[ 29.814287] iwlwifi 0000:00:14.3: Loaded firmware version: 48.4fa0041f.0
[ 29.814288] iwlwifi 0000:00:14.3: 0xCFDE3E6D | ADVANCED_SYSASSERT
[ 29.814289] iwlwifi 0000:00:14.3: 0x09356465 | trm_hw_status0
[ 29.814290] iwlwifi 0000:00:14.3: 0xD87336A3 | trm_hw_status1
[ 29.814291] iwlwifi 0000:00:14.3: 0x52C7209C | branchlink2
[ 29.814291] iwlwifi 0000:00:14.3: 0xDA363D67 | interruptlink1
[ 29.814292] iwlwifi 0000:00:14.3: 0x463C00BE | interruptlink2
[ 29.814293] iwlwifi 0000:00:14.3: 0x9EE49B18 | data1
[ 29.814293] iwlwifi 0000:00:14.3: 0x8176B3F5 | data2
[ 29.814294] iwlwifi 0000:00:14.3: 0xE829BB5B | data3
[ 29.814295] iwlwifi 0000:00:14.3: 0xD6105593 | beacon time
[ 29.814295] iwlwifi 0000:00:14.3: 0x088F38A8 | tsf low
[ 29.814296] iwlwifi 0000:00:14.3: 0x6AF26652 | tsf hi
[ 29.814313] iwlwifi 0000:00:14.3: 0x714397E6 | time gp1
[ 29.814314] iwlwifi 0000:00:14.3: 0x7A48966B | time gp2
[ 29.814314] iwlwifi 0000:00:14.3: 0x041ACA82 | uCode revision type
[ 29.814315] iwlwifi 0000:00:14.3: 0x369DEEEE | uCode version major
[ 29.814316] iwlwifi 0000:00:14.3: 0xF3E66719 | uCode version minor
[ 29.814316] iwlwifi 0000:00:14.3: 0xD75BF26E | hw version
[ 29.814317] iwlwifi 0000:00:14.3: 0x8C1329CD | board version
[ 29.814317] iwlwifi 0000:00:14.3: 0x213F1CE5 | hcmd
[ 29.814318] iwlwifi 0000:00:14.3: 0xFD12EF3F | isr0
[ 29.814319] iwlwifi 0000:00:14.3: 0x1FB2E032 | isr1
[ 29.814319] iwlwifi 0000:00:14.3: 0xB66D8ACA | isr2
[ 29.814320] iwlwifi 0000:00:14.3: 0xA5651036 | isr3
[ 29.814321] iwlwifi 0000:00:14.3: 0xCDF2FAF9 | isr4
[ 29.814321] iwlwifi 0000:00:14.3: 0xEDEAD35D | last cmd Id
[ 29.814322] iwlwifi 0000:00:14.3: 0x1E9BD343 | wait_event
[ 29.814323] iwlwifi 0000:00:14.3: 0x0C2B1419 | l2p_control
[ 29.814323] iwlwifi 0000:00:14.3: 0x8DF0D3CB | l2p_duration
[ 29.814324] iwlwifi 0000:00:14.3: 0x8E154EE4 | l2p_mhvalid
[ 29.814325] iwlwifi 0000:00:14.3: 0x8C238316 | l2p_addr_match
[ 29.814325] iwlwifi 0000:00:14.3: 0x5846F940 | lmpm_pmg_sel
[ 29.814326] iwlwifi 0000:00:14.3: 0xEFED950C | timestamp
[ 29.814326] iwlwifi 0000:00:14.3: 0xE2F3DFAE | flow_handler
[ 29.814359] iwlwifi 0000:00:14.3: Start IWL Error Log Dump:
[ 29.814360] iwlwifi 0000:00:14.3: Status: 0x00000000, count: 7
[ 29.814360] iwlwifi 0000:00:14.3: 0x201013F1 | ADVANCED_SYSASSERT
[ 29.814361] iwlwifi 0000:00:14.3: 0x00000000 | umac branchlink1
[ 29.814362] iwlwifi 0000:00:14.3: 0xC008CF5C | umac branchlink2
[ 29.814362] iwlwifi 0000:00:14.3: 0x00000000 | umac interruptlink1
[ 29.814363] iwlwifi 0000:00:14.3: 0x00000000 | umac interruptlink2
[ 29.814364] iwlwifi 0000:00:14.3: 0x00000003 | umac data1
[ 29.814364] iwlwifi 0000:00:14.3: 0x20000302 | umac data2
[ 29.814365] iwlwifi 0000:00:14.3: 0x01300202 | umac data3
[ 29.814366] iwlwifi 0000:00:14.3: 0x00000030 | umac major
[ 29.814366] iwlwifi 0000:00:14.3: 0x4FA0041F | umac minor
[ 29.814367] iwlwifi 0000:00:14.3: 0x00005C9A | frame pointer
[ 29.814368] iwlwifi 0000:00:14.3: 0xC0887F58 | stack pointer
[ 29.814368] iwlwifi 0000:00:14.3: 0x00000000 | last host cmd
[ 29.814369] iwlwifi 0000:00:14.3: 0x00000000 | isr status reg
[ 29.814387] iwlwifi 0000:00:14.3: Fseq Registers:
[ 29.814389] iwlwifi 0000:00:14.3: 0x00000003 | FSEQ_ERROR_CODE
[ 29.814391] iwlwifi 0000:00:14.3: 0x00000000 | FSEQ_TOP_INIT_VERSION
[ 29.814394] iwlwifi 0000:00:14.3: 0x4719240E | FSEQ_CNVIO_INIT_VERSION
[ 29.814396] iwlwifi 0000:00:14.3: 0x0000A384 | FSEQ_OTP_VERSION
[ 29.814398] iwlwifi 0000:00:14.3: 0x76D1878C | FSEQ_TOP_CONTENT_VERSION
[ 29.814400] iwlwifi 0000:00:14.3: 0xA2820C6F | FSEQ_ALIVE_TOKEN
[ 29.814402] iwlwifi 0000:00:14.3: 0x57E3FFAE | FSEQ_CNVI_ID
[ 29.814405] iwlwifi 0000:00:14.3: 0x8EFFAAFF | FSEQ_CNVR_ID
[ 29.814407] iwlwifi 0000:00:14.3: 0x20000302 | CNVI_AUX_MISC_CHIP
[ 29.814411] iwlwifi 0000:00:14.3: 0x01300202 | CNVR_AUX_MISC_CHIP
[ 29.814416] iwlwifi 0000:00:14.3: 0x0000485B | CNVR_SCU_SD_REGS_SD_REG_DIG_DCDC_VTRIM
[ 29.814450] iwlwifi 0000:00:14.3: 0xA5A5A5A2 | CNVR_SCU_SD_REGS_SD_REG_ACTIVE_VDIG_MIRROR
[ 29.814478] iwlwifi 0000:00:14.3: SecBoot CPU1 Status: 0x5c0b, CPU2 Status: 0x3
[ 29.814479] iwlwifi 0000:00:14.3: Failed to start RT ucode: -110
[ 29.814480] iwlwifi 0000:00:14.3: Firmware not running - cannot dump error
[ 29.826208] iwlwifi 0000:00:14.3: Failed to run INIT ucode: -110
我曾在其他地方的另一个类似(但不重复)的论坛帖子中看到过此命令,它也可能提供有用的信息:
$ lspci -knn | grep Net -A3; rfkill list
00:14.3 Network controller [0280]: Intel Corporation Device [8086:02f0]
Subsystem: Intel Corporation Device [8086:0030]
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
0: tpacpi_bluetooth_sw: Bluetooth
Soft blocked: no
Hard blocked: no
1: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
我不确定如何使用的其他调试信息:
$ sudo lsusb
Bus 004 Device 003: ID 0bda:8153 Realtek Semiconductor Corp. RTL8153 Gigabit Ethernet Adapter
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 005: ID 2109:0812 VIA Labs, Inc. VL812 Hub
Bus 002 Device 004: ID 2109:0812 VIA Labs, Inc. VL812 Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 06cb:00bd Synaptics, Inc.
Bus 001 Device 003: ID 04f2:b67c Chicony Electronics Co., Ltd Integrated Camera
Bus 001 Device 023: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 001 Device 024: ID 2516:003b Cooler Master Co., Ltd.
Bus 001 Device 018: ID 046d:c084 Logitech, Inc. G203 Gaming Mouse
Bus 001 Device 017: ID 2109:2812 VIA Labs, Inc. VL812 Hub
Bus 001 Device 016: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 001 Device 015: ID 2109:2812 VIA Labs, Inc. VL812 Hub
Bus 001 Device 007: ID 8087:0aaa Intel Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
看起来我的 WiFi 硬件在这里被列为“网络控制器:英特尔公司设备 02f0”:
$ sudo lspci
00:00.0 Host bridge: Intel Corporation Device 9b51
00:02.0 VGA compatible controller: Intel Corporation Device 9bca (rev 04)
00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem
00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model
00:12.0 Signal processing controller: Intel Corporation Device 02f9
00:14.0 USB controller: Intel Corporation Device 02ed
00:14.2 RAM memory: Intel Corporation Device 02ef
00:14.3 Network controller: Intel Corporation Device 02f0
00:15.0 Serial bus controller [0c80]: Intel Corporation Device 02e8
00:15.1 Serial bus controller [0c80]: Intel Corporation Device 02e9
00:16.0 Communication controller: Intel Corporation Device 02e0
00:1d.0 PCI bridge: Intel Corporation Device 02b0 (rev f0)
00:1d.4 PCI bridge: Intel Corporation Device 02b4 (rev f0)
00:1f.0 ISA bridge: Intel Corporation Device 0284
00:1f.3 Audio device: Intel Corporation Device 02c8
00:1f.4 SMBus: Intel Corporation Device 02a3
00:1f.5 Serial bus controller [0c80]: Intel Corporation Device 02a4
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (10) I219-V
03:00.0 Non-Volatile memory controller: Intel Corporation SSD Pro 7600p/760p/E 6100p Series (rev 03)
05:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:01.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:02.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
06:04.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
07:00.0 System peripheral: Intel Corporation JHL6540 Thunderbolt 3 NHI (C step) [Alpine Ridge 4C 2016] (rev 02)
2d:00.0 USB controller: Intel Corporation JHL6540 Thunderbolt 3 USB Controller (C step) [Alpine Ridge 4C 2016] (rev 02)
以下命令中的非以太网信息如下:
$ sudo lshw -C network
*-network:0
description: Network controller
product: Intel Corporation
vendor: Intel Corporation
physical id: 14.3
bus info: pci@0000:00:14.3
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix bus_master cap_list
configuration: driver=iwlwifi latency=0
resources: irq:16 memory:ea238000-ea23bfff
看起来好像正在使用 wifi 模块,但我无法验证下面的内容到底是什么:
$ sudo lsmod | grep wi
iwlwifi 348160 1 iwlmvm
cfg80211 712704 3 iwlmvm,iwlwifi,mac80211
iwconfig 没有列出我的无线设备:
$ iwconfig
docker0 no wireless extensions.
enx24f5a28aeeb6 no wireless extensions.
lo no wireless extensions.
enp0s31f6 no wireless extensions.
nmcli 说我的 WiFi 硬件已启用(除非这仅代表无线堆栈中其他东西的状态):
$ nmcli g
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN
connected full enabled enabled enabled enabled
答案1
我使用了评论中的步骤https://askubuntu.com/a/1195735来自线程联想 X1 Carbon 第 7 代中未找到 WiFi 适配器我的 Wi-Fi 适配器又能正常工作了。
sudo apt install git build-essential
git clone https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/backport-iwlwifi.git
cd backport-iwlwifi
make defconfig-iwlwifi-public
sed -i 's/CPTCFG_IWLMVM_VENDOR_CMDS=y/# CPTCFG_IWLMVM_VENDOR_CMDS is not set/' .config
make -j4
sudo make install
cd /lib/firmware
sudo wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/iwlwifi-9000-pu-b0-jf-b0-38.ucode
sudo wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/iwlwifi-9260-th-b0-jf-b0-38.ucode