首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Ubuntu 16.04 關閉藍牙後 WiFi 軟阻塞無法聯網的修復方法

     編輯:程式設計疑難解答

問題現象

Ubuntu 16.04 安裝驅動後 WiFi 正常。關閉右上角藍牙圖標後,WiFi 與藍牙雙雙顯示「軟阻塞」。執行 `rfkill unblock all` 解除阻塞後,WiFi 圖標恢復但仍無法聯網(無 IP、無法 Ping 通網關)。

rfkill列表截圖 網絡設置截圖

根本原因

藍牙與 WiFi 共用同一射頻芯片(如 Intel 7260/8260),內核驅動 `iwlwifi` 與 `btusb` 存在協同邏輯。關閉藍牙時,內核可能將共用設備置為射頻關閉狀態,導致 WiFi 硬件層面被禁用。`rfkill unblock` 僅解除軟件層面阻塞,硬件狀態未恢復。

解決方案(按推薦順序)

1. 重啟 NetworkManager 服務(最快嘗試)

sudo systemctl restart NetworkManager
# 或
sudo service network-manager restart

2. 重新加載 WiFi 驅動模塊

sudo modprobe -r iwlwifi && sudo modprobe iwlwifi
# 若使用其他驅動,替換模塊名(如 rtl8723be, ath9k 等)

3. 關閉再開啟網卡接口

sudo ip link set wlp3s0 down  # 替換為實際接口名,可用 ip link 查看
sudo ip link set wlp3s0 up
# 或使用 ifconfig
sudo ifconfig wlp3s0 down && sudo ifconfig wlp3s0 up

4. 檢查並關閉防火牆(排除誤判)

sudo ufw status
sudo ufw disable  # 臨時關閉測試

5. 永久修復:修改藍牙服務策略

編輯 `/etc/bluetooth/main.conf`,設置 `AutoEnable=false` 防止開機自動啟動藍牙搶佔射頻。

[Policy]
AutoEnable=false

重啟藍牙服務:`sudo systemctl restart bluetooth`

6. 內核參數調整(針對特定芯片)

編輯 `/etc/modprobe.d/iwlwifi.conf` 添加:

options iwlwifi bt_coex_active=0  # 關閉藍牙共存協商,由軟件控制
# 或
options iwlwifi bt_coex_active=1  # 強制開啟協商

更新 initramfs 並重啟:`sudo update-initramfs -u && reboot`

驗證步驟

  1. `rfkill list` 確認 Soft/Hard blocked 均為 no。
  2. `iwconfig` 顯示 ESSID 已連接。
  3. `ip addr show wlp3s0` 獲取到 IP 地址。
  4. `ping 8.8.8.8` 及 `ping www.baidu.com` 雙通。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved