Как заставить драйвер ath10k выбрать прошивку API 6, чтобы я мог включить raw_mode на Wi-Fi-карте QCA6174?
Я работаю на компьютере с Ubuntu 16.04, RT с ядром 4.16 и последней прошивкой linux 1.175.3. Моя цель - включить необработанный режим в Wi-Fi на основе чипсета QCA6174, чтобы я мог создать точку сетки. После некоторых исследований я обнаружил, что только эти прошивки поддерживают raw_mode.
https://github.com/kvalo/ath10k-firmware/tree/master/QCA6174/hw3.0/4.4.1.c3 https://github.com/kvalo/ath10k-firmware/tree/master/QCA6174/hw3.0/4.4.1.c2
Но я не понимаю драйверов достаточно глубоко, чтобы автоматически выбрать правильную прошивку.
Заранее спасибо.
3 ответа
Сначала вам нужно найти точную модель и версию вашей карты, я предлагаю проверить вывод dmesg:
ath10k_pci 0000: 3b: 00.0: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 1a56: 1535
После этого вы можете найти правильную карту прошивки на странице linux wireless для ath10k, она уже скомпилирована, просто выберите нужную карту в зависимости от модели карты (включая версию hw) и вашего ядра.
Инструкции по установке также находятся на той же странице:
Сначала загрузите образ прошивки по ссылкам выше. В этом примере мы используем firmware-2.bin_10.1.467.2-1 из каталога QCA988X 10.1. Затем просто скопируйте этот файл как firmware-2.bin в каталог прошивок ath10k:
cp firmware-2.bin_10.1.467.2-1 /lib/firmware/ath10k/QCA988X/hw2.0/firmware-2.bin
Затем перезагрузите ath10k (или перезапустите систему), и вы сможете проверить, используется ли новая прошивка.
Примечание: в некоторых дистрибутивах расположение прошивки может отличаться от /lib/firmware.
Надеюсь это поможет!
Есть еще одна загвоздка. NetworkManager показывает, что Wi-Fi отключен, когда вы проверяете его состояние с помощью /n
sudo rfkill list all
и он показывает, что он заблокирован - значит, он отключен кнопкой, но при попытке включить показывает, что ноутбук переходит в "режим полета"
sudo rfkill list all /n
покажет, что он мягко заблокирован, но больше не жестко заблокирован, поэтому можно удалить программную блокировку.
sudo rfkill unblock all
вуаля! Все работает сейчас. Они перепутали состояние физической кнопки с состоянием программного обеспечения... обычно, если она жестко заблокирована, я бы ожидал, что ноутбук находится в режиме полета... противоположная синхронизация в NetworkManager..
Вам необходимо скопировать обновленные board-2.bin и firmware-6.bin в /lib/firmware/ath10k/QCA6174/hw3.0 (переименовав их) из
https://github.com/kvalo/ath10k-firmware/blob/master/QCA6174/hw3.0/board-2.binhttps://github.com/kvalo/ath10k-firmware/blob/master/QCA6174/hw3.0/4.4.1.c3/firmware-6.bin_WLAN.RM.4.4.1.c3-00059
cp ath10k-firmware/QCA6174/hw3.0/4.4.1.c3/firmware-6.bin_WLAN.RM.4.4.1.c3-00059 /lib/firmware/ath10k/QCA6174/hw3.0/firmware-6.bin
А затем проверьте, использовалась ли правильная прошивка при загрузке - вот мой результат после обновления прошивки
[ 32.529665] ath10k_pci 0000:01:00.0: qca6174 hw3.2 target 0x05030000 chip_id 0x00340aff sub 1028:0410
[ 32.529668] ath10k_pci 0000:01:00.0: kconfig debug 0 debugfs 1 tracing 1 dfs 0 testmode 0
[ 32.530093] ath10k_pci 0000:01:00.0: firmware ver WLAN.RM.4.4.1.c3-00059 api 6 features wowlan,ignore-otp,no-4addr-pad,raw-mode,mfp crc32 3c85e1f9
[ 32.776709] ath10k_pci 0000:01:00.0: board_file api 2 bmi_id N/A crc32 c15a244d
[ 32.844046] ath10k_pci 0000:01:00.0: unsupported HTC service id: 1536
[ 32.862171] ath10k_pci 0000:01:00.0: htt-ver 3.62 wmi-op 4 htt-op 3 cal otp max-sta 32 raw 0 hwcrypto 1