LINUX.ORG.RU

Wi-Fi + Bluetooth = ни туда, ни сюда

 , ,


0

1

Установил на ноут Lenovo Ideapad 120s-14IAP Type 81A5 линукс и заметил, что при работе подключенных Bluetooth-наушников интернет проседает чуть ли не до 56 кбит/с.

Сейчас стоит Arch Linux. Но проблема также была в Ubuntu 16.04.3 и Fedora 26 (дистрибутивы, которые были под рукой). Под виндой, стоящей «из коробки» такой проблемы не было.

lspci выдал Wi-Fi-адаптер ноута (помимо этого остальное железо, подписанное как Intel Celeron <...>):

00:00.0 Host bridge: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Host Bridge (rev 0b)
00:00.1 Signal processing controller: Intel Corporation Device 5a8c (rev 0b)
00:02.0 VGA compatible controller: Intel Corporation Device 5a85 (rev 0b)
00:0e.0 Audio device: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Audio Cluster (rev 0b)
00:0f.0 Communication controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Trusted Execution Engine (rev 0b)
00:12.0 SATA controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series SATA AHCI Controller (rev 0b)
00:14.0 PCI bridge: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port B #1 (rev fb)
00:14.1 PCI bridge: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series PCI Express Port B #2 (rev fb)
00:15.0 USB controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series USB xHCI (rev 0b)
00:16.0 Signal processing controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series I2C Controller #1 (rev 0b)
00:16.2 Signal processing controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series I2C Controller #3 (rev 0b)
00:1c.0 SD Host controller: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series eMMC Controller (rev 0b)
00:1f.0 ISA bridge: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series Low Pin Count Interface (rev 0b)
00:1f.1 SMBus: Intel Corporation Celeron N3350/Pentium N4200/Atom E3900 Series SMBus Controller (rev 0b)
01:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS5229 PCI Express Card Reader (rev 01)
02:00.0 Network controller: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter (rev 31)

lsusb выдал:

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0bda:5627 Realtek Semiconductor Corp. 
Bus 001 Device 003: ID 0cf3:e500 Qualcomm Atheros Communications 
Bus 001 Device 002: ID 046d:c52f Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Можно ли как-то исправить этот косяк? Гугл молчит, либо предлагает что-то менять (наушники, ноутбук, wifi-адаптер, bluetooth-адаптер)

Из описания не понял какая конкретно карта, но предполагаю, это Atheros. Не знаю почему так не делается по умолчанию, но всем картам, что я видел, всех производителей, для нормального сосуществования WIFI и Bluetooth нужно выставить определённый параметр в опциях загрузки модуля. Для этого, естественно, нужно узнать, какие модули загружены. lsmod поможет. Скорее всего ath9k какойнить.

Предположим у тебя ath9k, тогда создай файл /etc/modprobe.d/ath9k.conf и в нём строку

options ath9k btcoex_enable=1

Для интелов /etc/modprobe.d/iwlwifi.conf и строка

options iwlwifi bt_coex_active=0

Волосы станут шелковистее

Deleted ()
Ответ на: комментарий от Deleted

Проблема в том, что QCA9377 - не ath9k (который приятный, безглючный и работает на 100% опенсорсных драйверах даже в столлмановских дистрибутивах), а мерзкий ath10k на проприетарщине

SakuraKun ★★ ()
Ответ на: комментарий от devaldor

Действительно: ath9k и ath10k это две разные архитектуры, причём если не брать в расчёт «ac» то старая лучше новой, особенно для линукса. Как вариант: может быть можно заменить miniPCI-E модуль внутри твоего ноута на что-нибудь из семейства ath9k (например: Atheros AR9462 - и 2.4GHz и 5GHz и Bluetooth есть, ath9k при этом, и всего 500 р. у китайцев). Но даже если есть физическая возможность подключения, то возможно придётся повозиться чтобы выпилить wifi whitelist из биоса, это ведь не коребут опенсорсный биос где таких ограничений на wifi модули нету. Или переходить на свисток ath9k в USB порт, только вроде как они очень редки с 5GHz (если вообще есть, точно не помню) и один USB-порт будет постоянно занимать

SakuraKun ★★ ()
Ответ на: комментарий от SakuraKun

Собственно, проблема в том, что usb-шников у меня только два и оба нужны, да и ковырять ноут без уверенности, что этот модуль вообще съёмный (вдруг подлые китайцы его встроили в плату) и что его схавает биос, не хочется. Да и способ «просто поменяй устройство/систему, если не работает» тут не очень хочется использовать

devaldor ()
Ответ на: комментарий от devaldor

Можно даже не разбирать свой ноут: скорее всего достаточно посмотреть в инете, наверняка кто-то разбирал подобный - и посмотреть вынимается ли WiFi модуль и какого формата. А вот кстати официальный Hardware Maintenance Manual - https://usermanual.wiki/Lenovo/Ideapad120S11Iap120S14IapHmm201707.1286795546.pdf - к сожалению у тебя M.2 слот, в который MiniPCI-e модуль если и войдёт то только через переходник. Так что скорее всего придётся брать USB. А глюки с ath10k будут продолжаться скорее всего до тех пор, пока под него не появится опенсорсный драйвер. Стоит ли этого ждать и мучится с блобом - дело твоё

SakuraKun ★★ ()
Ответ на: комментарий от anonymous

Это опции для тех, кто использует и блютус и вайфай одновременно. У кого на одном чипе всё. Без этой опции или вообще невозможно подключить блюпупов или вайфаей, или при подключении блюпупа у вайфая скорость проседает до нуля.

Или тебе про профит от шелковистых волос?

Deleted ()
Ответ на: комментарий от Deleted
# modinfo ath10k_core

filename:       /lib/modules/4.16.9-1-ARCH/kernel/drivers/net/wireless/ath/ath10k/ath10k_core.ko.xz
license:        Dual BSD/GPL
description:    Core module for Qualcomm Atheros 802.11ac wireless LAN cards.
author:         Qualcomm Atheros
srcversion:     CC082A2E2C2D3E1AF7B1E63
depends:        mac80211,cfg80211,ath
retpoline:      Y
intree:         Y
name:           ath10k_core
vermagic:       4.16.9-1-ARCH SMP preempt mod_unload modversions 
parm:           debug_mask:Debugging mask (uint)
parm:           uart_print:Uart target debugging (bool)
parm:           skip_otp:Skip otp failure for calibration in testmode (bool)
parm:           cryptmode:Crypto mode: 0-hardware, 1-software (uint)
parm:           rawmode:Use raw 802.11 frame datapath (bool)
parm:           coredump_mask:Bitfield of what to include in firmware crash file (ulong)
# modinfo ath10k_pci 

filename:       /lib/modules/4.16.9-1-ARCH/kernel/drivers/net/wireless/ath/ath10k/ath10k_pci.ko.xz
firmware:       ath10k/QCA9377/hw1.0/board.bin
firmware:       ath10k/QCA9377/hw1.0/firmware-5.bin
firmware:       ath10k/QCA6174/hw3.0/board-2.bin
firmware:       ath10k/QCA6174/hw3.0/board.bin
firmware:       ath10k/QCA6174/hw3.0/firmware-6.bin
firmware:       ath10k/QCA6174/hw3.0/firmware-5.bin
firmware:       ath10k/QCA6174/hw3.0/firmware-4.bin
firmware:       ath10k/QCA6174/hw2.1/board-2.bin
firmware:       ath10k/QCA6174/hw2.1/board.bin
firmware:       ath10k/QCA6174/hw2.1/firmware-5.bin
firmware:       ath10k/QCA6174/hw2.1/firmware-4.bin
firmware:       ath10k/QCA9887/hw1.0/board-2.bin
firmware:       ath10k/QCA9887/hw1.0/board.bin
firmware:       ath10k/QCA9887/hw1.0/firmware-5.bin
firmware:       ath10k/QCA988X/hw2.0/board-2.bin
firmware:       ath10k/QCA988X/hw2.0/board.bin
firmware:       ath10k/QCA988X/hw2.0/firmware-5.bin
firmware:       ath10k/QCA988X/hw2.0/firmware-4.bin
firmware:       ath10k/QCA988X/hw2.0/firmware-3.bin
firmware:       ath10k/QCA988X/hw2.0/firmware-2.bin
license:        Dual BSD/GPL
description:    Driver support for Qualcomm Atheros 802.11ac WLAN PCIe/AHB devices
author:         Qualcomm Atheros
srcversion:     14894CD790329B908BF2D01
alias:          pci:v0000168Cd00000050sv*sd*bc*sc*i*
alias:          pci:v0000168Cd00000042sv*sd*bc*sc*i*
alias:          pci:v0000168Cd00000046sv*sd*bc*sc*i*
alias:          pci:v0000168Cd00000056sv*sd*bc*sc*i*
alias:          pci:v0000168Cd00000040sv*sd*bc*sc*i*
alias:          pci:v0000168Cd0000003Esv*sd*bc*sc*i*
alias:          pci:v0000168Cd00000041sv*sd*bc*sc*i*
alias:          pci:v0000168Cd0000003Csv*sd*bc*sc*i*
alias:          pci:v00000777d000011ACsv*sd*bc*sc*i*
alias:          of:N*T*Cqcom,ipq4019-wifiC*
alias:          of:N*T*Cqcom,ipq4019-wifi
depends:        ath10k_core
retpoline:      Y
intree:         Y
name:           ath10k_pci
vermagic:       4.16.9-1-ARCH SMP preempt mod_unload modversions 
parm:           irq_mode:0: auto, 1: legacy, 2: msi (default: 0) (uint)
parm:           reset_mode:0: auto, 1: warm only (default: 0) (uint)
devaldor ()
Ответ на: комментарий от devaldor

Ну, да, даже и близко нет. Странно. Сочувствую.

Покопай тут: https://patchwork.kernel.org/patch/7530631/ https://lkml.org/lkml/2016/11/17/346 https://groups.google.com/a/chromium.org/forum/#!topic/chromium-os-reviews/hd...

Ещё попадаются ссылки, способы включить btcoex через «соседние» модули. Не знаю, приняли ли это, или надо самому патчить и канпелять? А может оно и так есть, может сработает?

Deleted ()