所以我最近从工作单位得到了一台新的笔记本电脑,但我无法让无线驱动程序在 CentOS 7 中运行。
########## wireless info START ##########
Report from: 13 Mar 2015 13:47 EDT -0400
Booted last: 13 Mar 2015 13:43 EDT -0400
Script from: 20 Sep 2014 23:04 UTC +0000
##### release ###########################
Distributor ID: CentOS
Description: CentOS Linux release 7.0.1406 (Core)
Release: 7.0.1406
Codename: Core
##### kernel ############################
Linux 3.19.1-1.el7.elrepo.x86_64 #1 SMP Sat Mar 7 13:55:36 EST 2015 x86_64 x86_64 x86_64 GNU/Linux
Parameters: ro, rd.lvm.lv=centos/swap, vconsole.font=latarcyrheb-sun16, rd.lvm.lv=centos/root, crashkernel=auto, vconsole.keymap=us, rhgb, quiet, LANG=en_US.UTF-8
##### desktop ###########################
GNOME Classic
##### lspci #############################
06:00.0 Network controller [0280]: Intel Corporation Wireless 7265 [8086:095a] (rev 59)
Subsystem: Intel Corporation Dual Band Wireless-AC 7265 [8086:5410]
07:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Device [10ec:5287] (rev 01)
07:00.1 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 12)
Subsystem: Dell Device [1028:0692]
Kernel driver in use: r8169
##### lsmod #############################
dell_wmi 13132 0
sparse_keymap 13948 1 dell_wmi
dell_laptop 14000 0
dcdbas 14928 1 dell_laptop
iwlwifi 116602 0
cfg80211 531303 1 iwlwifi
rfkill 26772 5 cfg80211,bluetooth,dell_laptop
mxm_wmi 13021 1 nouveau
wmi 19193 4 dell_led,dell_wmi,mxm_wmi,nouveau
##### NetworkManager.state ##############
[main]
NetworkingEnabled=true
WirelessEnabled=true
WWANEnabled=true
WimaxEnabled=true
##### NetworkManager.conf ###############
[main]
plugins=ifcfg-rh
##### module infos ######################
[iwlwifi]
filename: /lib/modules/3.19.1-1.el7.elrepo.x86_64/kernel/drivers/net/wireless/iwlwifi/iwlwifi.ko
license: GPL
author: Copyright(c) 2003- 2014 Intel Corporation <[email protected]>
version: in-tree:
description: Intel(R) Wireless WiFi driver for Linux
firmware: iwlwifi-100-5.ucode
firmware: iwlwifi-1000-5.ucode
firmware: iwlwifi-135-6.ucode
firmware: iwlwifi-105-6.ucode
firmware: iwlwifi-2030-6.ucode
firmware: iwlwifi-2000-6.ucode
firmware: iwlwifi-5150-2.ucode
firmware: iwlwifi-5000-5.ucode
firmware: iwlwifi-6000g2b-6.ucode
firmware: iwlwifi-6000g2a-5.ucode
firmware: iwlwifi-6050-5.ucode
firmware: iwlwifi-6000-4.ucode
firmware: iwlwifi-7265D-10.ucode
firmware: iwlwifi-7265-10.ucode
firmware: iwlwifi-3165-10.ucode
firmware: iwlwifi-3160-10.ucode
firmware: iwlwifi-7260-10.ucode
firmware: iwlwifi-8000-10.ucode
srcversion: 29203CA7DDFAAD012962408
depends: cfg80211
intree: Y
vermagic: 3.19.1-1.el7.elrepo.x86_64 SMP mod_unload modversions
parm: swcrypto:using crypto in software (default 0 [hardware]) (int)
parm: 11n_disable:disable 11n functionality, bitmap: 1: full, 2: disable agg TX, 4: disable agg RX, 8 enable agg TX (uint)
parm: amsdu_size_8K:enable 8K amsdu size (default 0) (int)
parm: fw_restart:restart firmware in case of error (default true) (bool)
parm: antenna_coupling:specify antenna coupling in dB (default: 0 dB) (int)
parm: wd_disable:Disable stuck queue watchdog timer 0=system default, 1=disable (default: 1) (int)
parm: nvm_file:NVM file name (charp)
parm: uapsd_disable:disable U-APSD functionality (default: Y) (bool)
parm: bt_coex_active:enable wifi/bt co-exist (default: enable) (bool)
parm: led_mode:0=system default, 1=On(RF On)/Off(RF Off), 2=blinking, 3=Off (default: 0) (int)
parm: power_save:enable WiFi power management (default: disable) (bool)
parm: power_level:default power save level (range from 1 - 5, default: 1) (int)
parm: fw_monitor:firmware monitor - to debug FW (default: false - needs lots of memory) (bool)
[cfg80211]
filename: /lib/modules/3.19.1-1.el7.elrepo.x86_64/kernel/net/wireless/cfg80211.ko
description: wireless configuration support
license: GPL
author: Johannes Berg
srcversion: 6AAC635BDE451B0558DF56A
depends: rfkill
intree: Y
vermagic: 3.19.1-1.el7.elrepo.x86_64 SMP mod_unload modversions
parm: ieee80211_regdom:IEEE 802.11 regulatory domain code (charp)
parm: cfg80211_disable_40mhz_24ghz:Disable 40MHz support in the 2.4GHz band (bool)
##### module parameters #################
[iwlwifi]
11n_disable: 0
amsdu_size_8K: 0
antenna_coupling: 0
bt_coex_active: Y
fw_monitor: N
fw_restart: Y
led_mode: 0
nvm_file: (null)
power_level: 0
power_save: N
swcrypto: 0
uapsd_disable: Y
wd_disable: 1
[cfg80211]
cfg80211_disable_40mhz_24ghz: N
ieee80211_regdom: 00
##### dmesg #############################
[ 2.823095] iwlwifi 0000:06:00.0: enabling device (0000 -> 0002)
[ 2.823961] iwlwifi 0000:06:00.0: Unsupported splx structure
[ 2.830609] iwlwifi 0000:06:00.0: Direct firmware load for iwlwifi-7265D-12.ucode failed with error -2
[ 2.830628] iwlwifi 0000:06:00.0: Direct firmware load for iwlwifi-7265D-11.ucode failed with error -2
[ 2.830641] iwlwifi 0000:06:00.0: Direct firmware load for iwlwifi-7265D-10.ucode failed with error -2
[ 2.830644] iwlwifi 0000:06:00.0: request for firmware file 'iwlwifi-7265D-10.ucode' failed.
[ 2.830702] iwlwifi 0000:06:00.0: Direct firmware load for iwlwifi-7265D-9.ucode failed with error -2
[ 2.830704] iwlwifi 0000:06:00.0: request for firmware file 'iwlwifi-7265D-9.ucode' failed.
[ 2.830748] iwlwifi 0000:06:00.0: no suitable firmware found!
[ 2.851026] bluetooth hci0: Direct firmware load for intel/ibt-hw-37.8.10-fw-1.10.3.11.e.bseq failed with error -2
[ 2.851032] Bluetooth: hci0 failed to open Intel firmware file: intel/ibt-hw-37.8.10-fw-1.10.3.11.e.bseq(-2)
[ 2.851333] Bluetooth: hci0: Intel Bluetooth firmware file: intel/ibt-hw-37.8.bseq
[ 2.855263] Bluetooth: hci0: Intel Bluetooth firmware patch completed
########## wireless info END ############
答案1
编辑:我不建议将 CentOS 7 更新到 kernel-ml,因为它会导致很多稳定性问题(具体来说,虚拟化无法正常运行)。我发现更好的解决方案是研究 Linux 内核的“Backport”。
访问:https://backports.wiki.kernel.org/index.php/Main_Page 他们有一个临时下载页面,所以我不想在这个问题中直接链接到该页面,因为我想它最终会消失。下载该版本:
tar xf backports-3.19-rc1-1.tar.xz
cd backports-3.19-rc1-1
make defconfig-iwlwifi
sudo make install
我重新启动了,一切似乎都正常。无需更新到 kernel-ml。
旧答案如下(这也有效,但你将不再在 CentOS 主线上):
因此,我尝试了一些试图保持“官方”的方法,例如将我的内核更新到来自 ELREPO 的 ML 版本,并使用 linux-firmware 包安装了附加固件。
我最终要做的是访问: https://wireless.wiki.kernel.org/en/users/drivers/iwlwifi#firmware 发布了最新的固件更新。
事实证明,这些固件头实际上位于最新的 kernel-ml 头中,只是它们不存在于我的 /lib/firmware 文件夹中。
因此,我从https://wireless.wiki.kernel.org/_media/en/users/drivers/iwlwifi-7265-ucode-23.15.10.0.tgz(此页面上有一个表格,其中还包含其他最新驱动程序)然后按照步骤将它们复制到 /lib/firmware 中
# cp iwlwifi-*.ucode /lib/firmware
重新启动笔记本电脑,一切正常!