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)
Ответ на: комментарий от Datt_

Почему-то не удивлён. Debian: принимаем самые идиотские решения since 1993.

Загрузись в лайв федорки. Ну или куда ещё.

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

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

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

Я не предлагаю тебе пересаживаться. Сначала просто проверь на лайве.

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

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

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

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