Gole 1. Wi-Fi, работай!
Для изучения устройства на Windiws 10 была установлена Aida64.
Vendor ID: 02D0, Device ID: A94D, чип BCM43341 . Модуль работает через SDIO и является многофункциональным, поскольку реализовывает сразу несколько функций: Wi-Fi, Bluetooth и даже NFC.
Забегая вперед скажу, что понадобится файл из этой системы, находится он по следующему пути: С:\Windows\System32\drivers\bcm943341wlagb.txt. Сохраняем его. Скачать можно тут.
В Ubuntu 16.04.1 работает тачскрин, но не работает Wi-Fi. Была попытка обновить ядро, поскольку в версии 4.4.0 до 4.4.4 присутствует этот баг. Проверив 4.4.56 и 4.9 стало ясно, что это бесполезно. Система переставала загружаться. Завести Wi-Fi модуль удалось в Ubuntu 17.04.
Качаем последний билд Ubuntu 17. Запись на флешку можно производить любой тулзой. Я использую Universal-USB-Installer. Выставляем галку для форматирования, а также выбираем размер персистентного хранилища.
Для загрузки со сторонних устройств погружаемся в BIOS. Делается это как и везде при помощи кнопки ESC или Delete на этапе старта компьютера.
Нам необходим раздел Save & Exit. В секции Boot Override список девайсов, с которых можно выполнить загрузку. Выбираем нашу флешку и погружаемся в UEFI.
Если не видны sdio устройства, необходимо заставить чип работать в режиме PCI, а не AHCI. Делается это в биосе -> Chipset -> South Bridge -> LPSS & SCC Configuration. Переводим SCC eMMC Support, SCC SDIO Support и SD Card в режим “PCI Mode”
После этого в /sys/bus/sdion/devices проверьте список девайсов.
Смотрим, что проихсодит во время загрузки модуля brcmfmac (modprobe -r brcmfmac && modprobe mrcmfmac)
tail -f /var/log/syslog
Nov 3 17:32:27 ubuntu kernel: [ 990.792115] usbcore: deregistering interface driver brcmfmac Nov 3 17:32:27 ubuntu kernel: [ 990.914700] usbcore: registered new interface driver brcmfmac Nov 3 17:32:27 ubuntu kernel: [ 990.915551] brcmfmac mmc1:0001:1: Direct firmware load for brcm/brcmfmac43340-sdio.txt failed with error -2 Nov 3 17:32:28 ubuntu kernel: [ 991.944608] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50 Nov 3 17:32:30 ubuntu kernel: [ 992.955788] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
“Direct firmware load for brcm/brcmfmac43340-sdio.txt” и ошибка. Для её исправления подсунем на место этого файла текстовый файл и Windows, который мы сохраняли.
cp Desktop/bcm943341wlagb.txt /lib/firmware/brcm/brcmfmac43340-sdio.txt
После чего снова перезагрузим модуль
modprobe -r brcmfmac && modprobe brcmfmac
Wi-Fi готов к работе!