想Y7000P 2023 Ubuntu 20.04 AX211無線網(wǎng)卡驅(qū)動(dòng)安裝與內(nèi)核升級指南)
1. 為什么這塊AX211在Ubuntu 20.04上這么難搞拯救者Y7000P 2023款這臺(tái)機(jī)器配置上確實(shí)香i7-13700H加RTX 4060的組合屏幕素質(zhì)也在線。但如果你跟我一樣買回來第一件事就是裝Ubuntu 20.04做雙系統(tǒng)那大概率會(huì)在無線網(wǎng)卡這一步卡住——開機(jī)之后右上角沒有WiFi圖標(biāo)設(shè)置里也找不到無線網(wǎng)絡(luò)選項(xiàng)lspci能看到網(wǎng)卡但ifconfig里就是沒有對應(yīng)的無線接口。這不是你操作的問題是AX211這塊卡和Ubuntu 20.04之間的兼容性坑。AX211屬于Intel的Wi-Fi 6E系列走的CNVi架構(gòu)也就是說它不是一個(gè)完整的獨(dú)立網(wǎng)卡而是依賴CPU端的配套模塊。Ubuntu 20.04默認(rèn)內(nèi)核是5.4這個(gè)內(nèi)核里帶的iwlwifi驅(qū)動(dòng)版本太老根本不認(rèn)識(shí)AX211的硬件ID。你就算把固件文件塞進(jìn)去驅(qū)動(dòng)本身不認(rèn)照樣白搭。我前后在這臺(tái)機(jī)器上折騰了差不多三個(gè)晚上重裝了兩次系統(tǒng)試過各種網(wǎng)上能找到的方法最后才把WiFi和藍(lán)牙都跑通。這篇文章就把我踩過的坑、試過的方案、最終跑通的流程完整梳理一遍。不管你是剛接觸Linux的新手還是已經(jīng)用過幾年Ubuntu的老用戶只要你的機(jī)器是Y7000P 2023款配AX211照著這個(gè)思路走基本能少走很多彎路。需要提前說明的是整個(gè)過程的核心思路就兩條要么升級內(nèi)核讓新驅(qū)動(dòng)認(rèn)識(shí)硬件要么單獨(dú)編譯安裝新版的iwlwifi驅(qū)動(dòng)。前者更省事但可能影響其他驅(qū)動(dòng)后者更精準(zhǔn)但步驟多一些。我會(huì)把兩種方案都講清楚你根據(jù)自己的實(shí)際情況選。2. 先搞清楚你的網(wǎng)卡到底認(rèn)沒認(rèn)出來動(dòng)手之前先做一輪基礎(chǔ)排查。很多人一上來就急著裝驅(qū)動(dòng)結(jié)果連問題出在哪都沒搞清楚白白浪費(fèi)時(shí)間。你需要確認(rèn)三件事硬件有沒有被識(shí)別、當(dāng)前內(nèi)核版本是多少、系統(tǒng)里有沒有對應(yīng)的固件文件。2.1 確認(rèn)硬件識(shí)別狀態(tài)打開終端先跑這幾個(gè)命令lspci | grep -i network lspci -nn | grep -i intel正常的話你應(yīng)該能看到類似這樣的輸出00:14.3 Network controller [0280]: Intel Corporation Device [8086:51f0] (rev 01)注意那個(gè)8086:51f0這是AX211的PCI ID。如果你看到的是這個(gè)ID說明硬件層面已經(jīng)被PCI子系統(tǒng)識(shí)別了問題出在驅(qū)動(dòng)層。如果連這個(gè)都看不到那可能是BIOS里無線網(wǎng)卡被禁用了或者硬件本身有問題先進(jìn)BIOS檢查一下。接著看內(nèi)核模塊有沒有加載lsmod | grep iwl dmesg | grep -i iwl如果lsmod沒有任何輸出說明iwlwifi模塊根本沒加載。dmesg里可能會(huì)看到類似no suitable firmware found或者Direct firmware load for iwlwifi-ty-a0-gf-a0-XX.ucode failed的報(bào)錯(cuò)這就是固件缺失或者版本不匹配的典型癥狀。2.2 查看當(dāng)前內(nèi)核和固件版本uname -r ls /lib/firmware/ | grep iwlwifiUbuntu 20.04默認(rèn)內(nèi)核是5.4.0-XX-generic這個(gè)內(nèi)核自帶的iwlwifi驅(qū)動(dòng)版本大概在5.4左右支持的網(wǎng)卡列表里沒有AX211。固件目錄下你能看到的iwlwifi固件文件命名規(guī)則是iwlwifi-平臺(tái)-型號-版本.ucodeAX211對應(yīng)的應(yīng)該是iwlwifi-ty-a0-gf-a0-XX.ucode這種格式。如果這個(gè)文件不存在或者版本號太低驅(qū)動(dòng)就算加載了也帶不起來。注意不要隨便從網(wǎng)上找一個(gè)ucode文件丟進(jìn)去就完事。固件版本和驅(qū)動(dòng)版本必須匹配版本不對會(huì)導(dǎo)致驅(qū)動(dòng)加載失敗甚至系統(tǒng)不穩(wěn)定。后面我會(huì)講怎么找對應(yīng)版本。2.3 判斷該走哪條路排查完之后根據(jù)你的情況選方案當(dāng)前狀態(tài)推薦方案原因內(nèi)核5.4無iwlwifi模塊升級內(nèi)核到5.15最省事新內(nèi)核自帶支持內(nèi)核5.4有模塊但不認(rèn)卡升級內(nèi)核或編譯驅(qū)動(dòng)兩者都行看你對內(nèi)核升級的接受度內(nèi)核已升級但仍不認(rèn)單獨(dú)編譯iwlwifi驅(qū)動(dòng)可能是固件版本問題需要藍(lán)牙也正常工作升級內(nèi)核補(bǔ)固件藍(lán)牙走USB通道固件要單獨(dú)處理我個(gè)人的建議是如果你不介意升級內(nèi)核直接上主線內(nèi)核是最快的路子。如果你對系統(tǒng)穩(wěn)定性要求極高不想動(dòng)內(nèi)核那就走編譯驅(qū)動(dòng)這條路。下面兩套方案我都會(huì)詳細(xì)展開。3. 方案一升級主線內(nèi)核最省事的解法升級內(nèi)核是我最先嘗試的方案也是最終跑通的方案。核心邏輯很簡單Ubuntu 20.04的5.4內(nèi)核太老換成5.15或更新的主線內(nèi)核iwlwifi驅(qū)動(dòng)自然就支持AX211了。3.1 為什么選5.15而不是最新版你可能會(huì)想既然要升級為什么不直接上最新的6.x內(nèi)核我試過6.2和6.5確實(shí)也能用但遇到了兩個(gè)問題一是NVIDIA驅(qū)動(dòng)需要重新編譯二是某些電源管理相關(guān)的模塊行為有變化風(fēng)扇調(diào)度不太正常。5.15是LTS版本對Y7000P 2023這套硬件的支持已經(jīng)足夠完善而且NVIDIA驅(qū)動(dòng)兼容性更好。具體選哪個(gè)版本我的建議是5.15.0-XX系列或者5.19。這兩個(gè)版本我都實(shí)測過AX211的WiFi和藍(lán)牙都能正常工作。3.2 具體操作步驟先安裝必要的工具sudo apt update sudo apt install -y build-essential dkms linux-headers-generic然后下載主線內(nèi)核的deb包。這里推薦用Ubuntu Mainline Kernel PPA的包直接下載四個(gè)文件linux-headers-5.15.0-XX-generic_XXX_amd64.deblinux-headers-5.15.0-XX_XXX_all.deblinux-image-unsigned-5.15.0-XX-generic_XXX_amd64.deblinux-modules-5.15.0-XX-generic_XXX_amd64.deb下載完之后在下載目錄里執(zhí)行sudo dpkg -i *.deb安裝過程中如果報(bào)依賴錯(cuò)誤跑一下sudo apt install -f補(bǔ)齊依賴。安裝完成后重啟在GRUB菜單里選擇新內(nèi)核進(jìn)入系統(tǒng)。重啟后驗(yàn)證uname -r應(yīng)該顯示5.15.0-XX-generic。然后檢查WiFiip a如果看到wlp0s20f3或者類似的無線接口說明驅(qū)動(dòng)已經(jīng)工作了。右上角應(yīng)該也能看到WiFi圖標(biāo)。3.3 固件補(bǔ)充與藍(lán)牙處理有些情況下內(nèi)核升級完了WiFi能用但藍(lán)牙還是不行。這是因?yàn)樗{(lán)牙走的是USB通道需要單獨(dú)的固件文件。檢查一下dmesg | grep -i bluetooth ls /lib/firmware/intel/ | grep -i tyAX211的藍(lán)牙固件通常是ibt-0040-0041.sfi和ibt-0040-0041.ddc這兩個(gè)文件。如果缺失可以從linux-firmware倉庫里找最新的版本復(fù)制過去sudo cp ibt-0040-0041.* /lib/firmware/intel/ sudo modprobe -r btusb sudo modprobe btusb然后hciconfig或者bluetoothctl應(yīng)該就能看到設(shè)備了。實(shí)操心得升級內(nèi)核之后如果你之前裝過NVIDIA驅(qū)動(dòng)可能需要重新編譯。提前準(zhǔn)備好sudo apt install --reinstall nvidia-dkms-XXX或者直接重裝驅(qū)動(dòng)。另外GRUB默認(rèn)會(huì)選新內(nèi)核啟動(dòng)如果新內(nèi)核有問題開機(jī)時(shí)按住Shift進(jìn)GRUB菜單選舊內(nèi)核就行。4. 方案二不換內(nèi)核單獨(dú)編譯iwlwifi驅(qū)動(dòng)如果你不想動(dòng)內(nèi)核或者你的機(jī)器上有其他依賴特定內(nèi)核版本的軟件那就可以走編譯驅(qū)動(dòng)這條路。這個(gè)方案稍微復(fù)雜一點(diǎn)但更精準(zhǔn)不會(huì)影響系統(tǒng)其他部分。4.1 編譯前的準(zhǔn)備工作首先確認(rèn)你已經(jīng)裝了內(nèi)核頭文件和編譯工具sudo apt install -y build-essential linux-headers-$(uname -r) git然后找一個(gè)合適的工作目錄比如~/src把iwlwifi的源碼拉下來。iwlwifi驅(qū)動(dòng)包含在Linux內(nèi)核源碼的drivers/net/wireless/intel/iwlwifi目錄下但單獨(dú)編譯整個(gè)內(nèi)核太費(fèi)時(shí)間。更高效的做法是只下載backport版本的iwlwifi驅(qū)動(dòng)。mkdir -p ~/src cd ~/src git clone https://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-stack.git cd iwlwifi-stack這個(gè)倉庫是Intel官方維護(hù)的獨(dú)立驅(qū)動(dòng)包專門用于在不升級內(nèi)核的情況下更新iwlwifi驅(qū)動(dòng)。拉下來之后切換到適合的版本分支比如release/LinuxCore59或者更新的。4.2 編譯與安裝驅(qū)動(dòng)編譯之前先看一下Makefile里的配置選項(xiàng)確認(rèn)支持AX211grep -i ax211\|ty-a0 Makefile然后開始編譯make defconfig-iwlwifi-public make -j$(nproc) sudo make install編譯過程大概需要幾分鐘取決于你的CPU性能。安裝完成后需要更新initramfssudo update-initramfs -u然后卸載舊模塊加載新模塊sudo modprobe -r iwlwifi sudo modprobe iwlwifi檢查加載狀態(tài)dmesg | tail -30如果看到iwlwifi: loaded firmware version XX.XX.XX并且沒有報(bào)錯(cuò)說明驅(qū)動(dòng)加載成功了。4.3 固件文件的匹配問題編譯驅(qū)動(dòng)只是解決了一半問題固件文件也必須匹配。AX211需要的固件文件命名格式是iwlwifi-ty-a0-gf-a0-API版本.ucodeAPI版本號必須和驅(qū)動(dòng)要求的版本一致。你可以在dmesg里看到驅(qū)動(dòng)請求的具體版本號比如iwlwifi-ty-a0-gf-a0-72.ucode。然后去linux-firmware倉庫找對應(yīng)版本的文件cd /lib/firmware sudo wget https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/iwlwifi-ty-a0-gf-a0-72.ucode如果找不到完全匹配的版本可以嘗試相近的版本但不要差太多。版本差異過大驅(qū)動(dòng)會(huì)拒絕加載。注意事項(xiàng)編譯安裝的驅(qū)動(dòng)模塊在系統(tǒng)內(nèi)核升級后可能會(huì)失效因?yàn)槟K是針對特定內(nèi)核版本編譯的。每次內(nèi)核更新后都需要重新編譯安裝。如果你不想每次都折騰還是建議走方案一升級內(nèi)核。5. 兩種方案對比與選擇建議講完兩套方案你可能還在糾結(jié)選哪個(gè)。我把兩種方案的關(guān)鍵維度整理成表格方便你對照自己的情況做決定。對比維度升級內(nèi)核方案編譯驅(qū)動(dòng)方案操作難度低下載deb包安裝即可中需要編譯和固件匹配耗時(shí)約15-20分鐘約30-40分鐘系統(tǒng)影響較大可能影響NVIDIA等驅(qū)動(dòng)較小只更新無線驅(qū)動(dòng)持久性內(nèi)核更新后自動(dòng)生效每次內(nèi)核更新需重新編譯藍(lán)牙支持通常一并解決需單獨(dú)處理固件適合人群新手、不想折騰的用戶有經(jīng)驗(yàn)、追求精準(zhǔn)控制的用戶我個(gè)人的建議很明確除非你有特殊理由不能升級內(nèi)核否則直接走方案一。編譯驅(qū)動(dòng)那條路我走過能用但后續(xù)維護(hù)成本高。每次系統(tǒng)更新內(nèi)核你都得重新編譯一遍時(shí)間長了很煩。另外補(bǔ)充一點(diǎn)如果你用的是銀河麒麟V10或者其他基于Ubuntu 20.04的國產(chǎn)系統(tǒng)思路是一樣的。內(nèi)核版本可能略有不同但AX211的驅(qū)動(dòng)問題本質(zhì)相同。麒麟V10默認(rèn)內(nèi)核可能是4.19或5.4同樣需要升級內(nèi)核或者編譯驅(qū)動(dòng)。6. 常見問題與排查技巧實(shí)錄這一節(jié)整理我在折騰過程中遇到的各種報(bào)錯(cuò)和解決方法基本都是網(wǎng)上搜不到或者語焉不詳?shù)目印?.1 WiFi能用但速度慢、斷流這是升級內(nèi)核后比較常見的問題。AX211支持Wi-Fi 6E但Ubuntu 20.04的網(wǎng)絡(luò)管理組件可能沒有完全適配。解決方法是在/etc/modprobe.d/iwlwifi.conf里加一行options iwlwifi power_save0然后重啟。關(guān)閉電源管理可以顯著改善斷流問題代價(jià)是功耗略微增加。Y7000P本身電池就不大但插電用的話無所謂。如果還是慢檢查一下是不是連到了2.4G頻段。AX211在5G頻段下才能發(fā)揮全部性能??梢栽诼酚善骼锇?.4G和5G的SSID分開手動(dòng)連5G。6.2 藍(lán)牙能配對但沒聲音這個(gè)問題困擾了我很久。藍(lán)牙耳機(jī)能連上但音頻輸出里找不到設(shè)備。原因是PipeWire或者PulseAudio的配置問題。解決方法sudo apt install -y pulseaudio-module-bluetooth pulseaudio -k pulseaudio --start然后在/etc/bluetooth/main.conf里確認(rèn)ControllerMode bredr有些設(shè)備需要改成dual模式。6.3 升級內(nèi)核后無法進(jìn)入系統(tǒng)這是最嚇人的情況但通常不難解決。開機(jī)時(shí)按住Shift進(jìn)入GRUB菜單選擇舊內(nèi)核啟動(dòng)然后卸載新內(nèi)核sudo apt remove linux-image-5.15.0-XX-generic linux-headers-5.15.0-XX* sudo update-grub重啟后就回到原來的內(nèi)核了。出現(xiàn)這個(gè)問題的原因通常是NVIDIA驅(qū)動(dòng)沒有重新編譯或者initramfs沒有正確更新。升級內(nèi)核前先確認(rèn)NVIDIA驅(qū)動(dòng)是DKMS版本這樣內(nèi)核更新時(shí)會(huì)自動(dòng)重新編譯。6.4 固件加載失敗的各種報(bào)錯(cuò)dmesg里常見的固件相關(guān)報(bào)錯(cuò)和對應(yīng)解法報(bào)錯(cuò)信息原因解決方法no suitable firmware found固件文件缺失下載對應(yīng)版本ucode放入/lib/firmwarefirmware version mismatch固件版本與驅(qū)動(dòng)不匹配換用驅(qū)動(dòng)要求的版本號Direct firmware load failed文件路徑不對或權(quán)限問題確認(rèn)文件在/lib/firmware根目錄iwlwifi: probe failed驅(qū)動(dòng)與硬件不兼容升級內(nèi)核或編譯新版驅(qū)動(dòng)避坑技巧每次修改固件或驅(qū)動(dòng)后先sudo modprobe -r iwlwifi卸載模塊再sudo modprobe iwlwifi重新加載然后立刻看dmesg | tail -20。這樣能快速定位問題不用反復(fù)重啟。6.5 雙系統(tǒng)下WiFi時(shí)間不對導(dǎo)致連不上Windows和Ubuntu雙系統(tǒng)時(shí)Windows會(huì)把硬件時(shí)鐘設(shè)為本地時(shí)間Ubuntu默認(rèn)用UTC導(dǎo)致時(shí)間差8小時(shí)。有些路由器會(huì)因此拒絕連接。解決方法是在Ubuntu下執(zhí)行timedatectl set-local-rtc 1 --adjust-system-clock這樣Ubuntu也用本地時(shí)間和Windows保持一致。7. 我在這臺(tái)機(jī)器上踩過的其他坑除了無線網(wǎng)卡本身Y7000P 2023裝Ubuntu 20.04還有幾個(gè)連帶問題順便說一下。7.1 顯卡驅(qū)動(dòng)與WiFi的相互影響NVIDIA驅(qū)動(dòng)和iwlwifi驅(qū)動(dòng)本身沒有直接沖突但升級內(nèi)核時(shí)如果NVIDIA驅(qū)動(dòng)沒跟上會(huì)導(dǎo)致開機(jī)黑屏。我的做法是先裝好NVIDIA驅(qū)動(dòng)用ubuntu-drivers autoinstall確認(rèn)顯卡正常后再升級內(nèi)核。升級完內(nèi)核第一件事就是檢查NVIDIA驅(qū)動(dòng)是否正常nvidia-smi如果報(bào)錯(cuò)重新安裝DKMS版本的驅(qū)動(dòng)即可。7.2 聲卡和麥克風(fēng)的問題Y7000P 2023的聲卡是Realtek ALC287Ubuntu 20.04下麥克風(fēng)可能沒聲音。解決方法是在/etc/modprobe.d/alsa-base.conf里加options snd-hda-intel modelalc287-yoga9-bass-spk-pin然后重啟。這個(gè)配置對Y7000P系列都適用。7.3 屏幕亮度調(diào)節(jié)失效升級內(nèi)核后如果亮度快捷鍵失效檢查/etc/default/grub里的GRUB_CMDLINE_LINUX_DEFAULT加上acpi_backlightvendor或者acpi_backlightnative然后sudo update-grub重啟。這些連帶問題看起來和無線網(wǎng)卡無關(guān)但實(shí)際折騰的時(shí)候往往是一起出現(xiàn)的。先把WiFi搞定再逐個(gè)處理其他問題心態(tài)會(huì)好很多。8. 驅(qū)動(dòng)裝好之后的驗(yàn)證與優(yōu)化WiFi圖標(biāo)出來了不代表萬事大吉還得做幾項(xiàng)驗(yàn)證確保長期穩(wěn)定。8.1 驗(yàn)證驅(qū)動(dòng)和固件版本dmesg | grep iwlwifi | grep -i firmware version modinfo iwlwifi | grep version確認(rèn)固件版本和驅(qū)動(dòng)版本都在支持AX211的范圍內(nèi)。如果固件版本低于60建議更新到最新。8.2 測試實(shí)際吞吐量用iperf3或者簡單的curl下載測試一下實(shí)際速度curl -o /dev/null http://speedtest.tele2.net/100MB.zip如果速度明顯低于預(yù)期比如5G頻段下低于200Mbps檢查一下是不是電源管理沒關(guān)或者路由器信道干擾。8.3 長期穩(wěn)定性觀察裝好之后用幾天留意dmesg里有沒有反復(fù)出現(xiàn)的iwlwifi報(bào)錯(cuò)。如果有把報(bào)錯(cuò)信息記下來對照第6節(jié)的排查表處理。大部分問題都能通過關(guān)閉電源管理或者更新固件解決。最后分享一個(gè)小技巧如果你經(jīng)常需要重裝系統(tǒng)或者幫別人裝可以把升級內(nèi)核的deb包和固件文件提前下載好放在U盤里。這樣裝完系統(tǒng)直接離線安裝不用先解決網(wǎng)絡(luò)問題再下載驅(qū)動(dòng)省事很多。