LINUX.ORG.RU

ath10k btcoex_enable

 


1

1

Добрый день.

Гуглил проблему, о ней есть информация, но не нашел решения. В кратце: есть ноутбук Lenovo V330-14ikb с сетевым адаптером Qualcomm Atheros QCA9377 802.11ac. Стоит драйвер ath10k. Приобрёл я значит блютуз-наушники. Подключаются нормально, есть проблема с работой микрофона на линуксе, но эт отдельная тема.

О проблеме: при подключении наушников по блютуз и проигрывании чего-то онлайн, случается вот такое:

doctor@tardis:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=120 time=214 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=120 time=4010 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=120 time=3537 ms
64 bytes from 8.8.8.8: icmp_seq=5 ttl=120 time=2541 ms
64 bytes from 8.8.8.8: icmp_seq=6 ttl=120 time=1517 ms

Гугл говорит, что такое случается, так как блютуз и вай-фай используют 2,4Ghz и на линуксах проблема решается ключом parm: btcoex_enable. НО, этот параметр доступен только на ath9k, а ath10k идёт без данного параметра, из-за проприетарщины, как я понял. Я попробовал использовать ath9k в качестве драйвера - добавил ath10k в блэклисты, добавил ath9k в modules, при включении загружается именно ath9k, блютуз работает. Только теперь не грузится wifi. Почему-то сетевой адаптер всё равно хочет видеть ath10k_pci, хотя он и не загружен:

lspci -knn | grep Net -A3 
02:00.0 Network controller [0280]: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter [168c:0042] (rev 31)
	Subsystem: Lenovo QCA9377 802.11ac Wireless Network Adapter [17aa:0901]
	Kernel modules: ath10k_pci

И вот я хз. Можно ли как-то поменять настройки адаптера, чтоб он обращался к ath9k? Либо, если ath9k не работает с моим адаптером, то возможно ли использовать ath10k для вай-фая и ath9k для блютуза одновременно? Или есть ли другие способы решения проблемы?



Последнее исправление: Datt_ (всего исправлений: 1)

Так блютуз вообще к USB подключен (вероятно, т.к. работает без загрузки драйвера сетевухи).

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

$ lsusb -d 0cf3:311e Bus 005 Device 002: ID 0cf3:311e Atheros Communications, Inc.

это bluetooth (работает c ath3k) - на Qualcomm Atheros AR9462 (который сам в mini-pcie)

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

Да это такие «двойные» WiFi/Bluetooth платы PCIe: wifi работает по шине pci, а bluetooth по «шине USB». И как бы разные проблемы у них — это «нормально». Часть решается, часть нет (как повезет или ...).

Что именно записал в блеклист? «Выхлоп» команд в студию

lspci -knn|grep Net -A6
lsmod|grep ath

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

Теперь понятно… В блэклист добавил ath10k_pci

doctor@tardis:~$ lspci -knn|grep Net -A6
02:00.0 Network controller [0280]: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter [168c:0042] (rev 31)
	Subsystem: Lenovo QCA9377 802.11ac Wireless Network Adapter [17aa:0901]
	Kernel modules: ath10k_pci
doctor@tardis:~$ lsmod | grep ath
ath9k                 139264  0
ath9k_common           20480  1 ath9k
ath9k_hw              487424  2 ath9k_common,ath9k
ath                    36864  3 ath9k_common,ath9k,ath9k_hw
mac80211              823296  1 ath9k
cfg80211              765952  4 ath9k_common,ath9k,ath,mac80211
Datt_
() автор топика
Ответ на: комментарий от symon2014

эээх, неужели выхода нет? может под свой QCA9377 можно другой драйвер использовать?

Datt_
() автор топика

Так ath9k это только к WiFi чипу относится! Пример: MiniPCI-e карточка ar5b22 / Wb222 с чипом AR9462 - WiFi 2.4GHz/5GHz в нём из семейства ath9k и не требует проприетарщины, а вот Bluetooth - из семейства ath3k и ему нужна несвободная прошивка. (к сожалению Bluetooth без проприетарщины это редкая вещь)

SakuraKun ★★★★★
()

В-общем, тебе нужно поподробнее посмотреть насчёт Bluetooth в твоём ath10k - какого семейства он и насколько хорошо поддерживается, нужны ли «костыли»...

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

Kernel modules: ath10k_pci

эта строка говорит, что для адаптера требуется модуль ath10k_pci. WiFi не работает поскольку адаптером не управляет ни один модуль, команда не возратила строку Kernel driver in use: . Подружить адаптер Qualcomm Atheros QCA9377 и драйвера ath9k не получиться.

anymouze ★★
()
Последнее исправление: anymouze (всего исправлений: 1)
Ответ на: комментарий от anymouze

Хм. потестил на работе с 5G - ситуация чуточку лучше, но та же фигня. Если с 2,4G скорость умирает полностью, то с 5G хоть как-то можно хоть что-то, но ТОЖЕ пинги дикие просто.

Datt_
() автор топика

Народ уже несколько лет патчит модуль, но видимо, общего рецепта пока нет. На лоре тоже всплывала тема, но не помню чем всё заканчивалось. Поищи по лоровским темам.

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

Как вариант отключить встроенный Bluetooth. Попробовать «внешний» USB Bluetooth-адаптер. Если я правильно помню, эти WiFi/Bluetooth-адаптеры «одновременно/совместно» работают плохо. Но возможно я и ошибаюсь. Да и найти хороший USB Bluetooth адаптер тоже своего рода лоторея.

anymouze ★★
()

Intel 8265 под w10 после простоя в 12-13 часов выдает такую же ересь. Перезагрузка помогает, но судя по диагностике проблема где-то в блобах, да.

Anoxemian ★★★★★
()

Начнём с того, что ath10k и ath9k — это PCI-драйвера для Wi-Fi-части твоего адаптера. Bluetooth-часть подключена по USB и за неё отвечает третий драйвер.

Можно ли как-то поменять настройки адаптера, чтоб он обращался к ath9k?

Нет. ath9k и ath10k — разные драйвера для разных чипсетов. Они не взаимозаменяемы (совсем, то есть никак).

Либо, если ath9k не работает с моим адаптером, то возможно ли использовать ath10k для вай-фая и ath9k для блютуза одновременно?

Это предложение не имеет смысла, т. к. ни ath10k, ни ath9k не имеют никакого отношения к Bluetooth.

Или есть ли другие способы решения проблемы?

Возможно. Я бы гуглил вокруг «ath10k bluetooth coexistence», но у меня этих модулей нет, предметный совет дать не могу.

P. S.: хотя нет, могу, выкидывай QCA и покупай Intel 8265 или новее :) Самые беспроблемные Wi-Fi/Bluetooth-модули на сегодняшний день.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 3)
Ответ на: комментарий от Datt_

Не приняли пока патч

Nov. 4, 2015

Applied, thanks.

https://www.highlandernews.org/wp-content/uploads/2016/02/ops.meme_.nba_-1024x768.jpg

Но тебе не поможет, потому что «dual band or 5G boards don’t support this. The feature’s name is WMI_SERVICE_COEX_GPIO and the btcoex file is not created if firmware doesn’t support it.»

А можно как-то вручную? Просто без понятия как..

Что вручную? Отключать и подключать антенну от Wi-Fi-чипсета 2 миллиона раз в секунду, пока активен Bluetooth-трансмиттер? Попробуй, может получится.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)
Ответ на: комментарий от intelfx

Спасибо за детальный ответ! Теперь всё встало на свои места. Правда не совсем понимаю эту хрень, одна плашка подключена, а почему-то часть (wifi) работает как pci, а часть(bluetooth) как usb. Ну да ладно.

А почему на винде всё работает без проблем, если железом не поддерживается?

Ну я скорее всего ноут в скором времени поменяю.

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

Правда не совсем понимаю эту хрень, одна плашка подключена, а почему-то часть (wifi) работает как pci, а часть(bluetooth) как usb

Вопрос уровня «а почему я купил всего один телефон, а он умеет и передавать звук, и принимать». Потому что может. Карточка одна, а чипа на ней два разных.

А почему на винде всё работает без проблем, если железом не поддерживается?

А ты проверял, точно нет там этого файла?

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx
root@tardis:/sys/kernel/debug/ieee80211/phy0# ls -la
total 0
drwxr-xr-x 2 root root 0 Apr 12 09:37 .
drwxr-xr-x 3 root root 0 Apr 12 09:37 ..
root@tardis:/sys/kernel/debug/ieee80211/phy0# for i in ath10k_core ath10k_pci ath10k_usb; do modinfo $i | grep parm; done
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)
parm:           irq_mode:0: auto, 1: legacy, 2: msi (default: 0) (uint)
parm:           reset_mode:0: auto, 1: warm only (default: 0) (uint)
root@tardis:/sys/kernel/debug/ieee80211/phy0# 
Datt_
() автор топика
Ответ на: комментарий от Datt_

root@tardis:/sys/kernel/debug/ieee80211/phy0# ls -la total 0

Там не должно быть 0 файлов. Ищи, что где неправильно настроено, или может у тебя номер phy сменился, или драйвер не полностью подгружен.

zgrep CONFIG_ATH10K_DEBUGFS /proc/config.gz что говорит? Логи ядра (journalctl -b -t kernel)?

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 3)
Ответ на: комментарий от Datt_

Лавров.жпг

Ядро самосборное или дистрибутивное? Если самосборное — ставь дистрибутивное. Если дистрибутивное — меняй дистрибутив нахер.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Хмм.. сложное решение. Пересаживаться на федорку из дебиана? Не знаю, не знаю. Перекомпилировать ядро? Тож как-то не ахти. Правда у меня с другим софтом тоже проблема есть, но на последней федорке тоже вроде та же. Может на Debian 9 вернуться…

Datt_
() автор топика
Ответ на: комментарий от intelfx

Может и не актуально, но присоединяюсь. Последняя Федора или даже Манджара, где ядра и сопутствующий софт новее и ванильнее. Если же положение не изменилось, то плотное погружение в опции ядра и компиляцию всяких нестандартных.

А вообще такое положение вещей на линуксе убивает. Даже взять ath9k, или iwlwifi, или любой другой, сто лет модулям, везде эта проблема наблюдается, а опцию «сосуществования с блютусом» всё ещё надо вручную включать... И ипатия. Ипатия, ипатия, ипатия.

ChekPuk ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.