Итак у нас есть задача: завести WiFi от модуля AzureWave AW-AH691A. Поиск по названию модуля не дает ровным счетом ничего (: есть только один сайт что-либо просняющий:
http://www.embeddedworks.net/wlan523.html
на страничке нет абсолютно ничего, кроме упоминания чипсета на котором это все построено, а именно Broadcom BCM43241.
Итак что нам надо? В первую очередь накатываем Debian, да не простой а с non-free. ( нам нужны драйвера броадкома )
После установки мы увидим что модуль у нас не определился, но это не беда (:
Необходимо проверить что установлен пакет
firmware-brcm80211
в консоль пишем:
# dmesg | grep brcm
и ищем что-то похожее наbrcmfmac_sdio mmc1:0001:1: firmware: failed to load brcm/brcmfmac43340-sdio.bin
как видим не загружается файл связанный с brcmfmac43340-sdio.bin
К слову у меня это был brcmfmac43241b4-sdio.
недостающий файл мы можем взять из nvram файла. для этого сделаем следующие шаги:
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars
и в зависимости от того чего не хватает выполним
# cp /sys/firmware/efi/efivars/nvram-74b00bd9-805a-4d61-b51f-43268123d113 /lib/firmware/brcm/brcmfmac43241b4-sdio.txt
или
# cp /sys/firmware/efi/efivars/nvram-74b00bd9-805a-4d61-b51f-43268123d113 /lib/firmware/brcm/brcm/brcmfmac43340-sdio.txt
есть еще вариант взять файлик тут: https://github.com/jfwells/linux-asus-t100ta/blob/master/nvram/lib/firmware/brcm/brcmfmac43241b4-sdio.txt
после перегружаем модуль драйвера:
# modprobe -r brcmfmac
# sudo modprobe brcmfmac
ИИИИ ничего не работает....
Точнее работает, но не так как нам бы хотелось (:
Если в течении 6-8 секунд перегрузить модуль, поднять интерфейс и просканировать сеть - то мы получим результаты сканирования и даже сможем подключиться. А если не успеть - модуль уснет. Нам это не подходит (:
поэтому колхозим небольшой костыль:
добавим сервис
# nano /etc/systemd/system/wifi_fix.service
[Unit]
Description=SCRIPT TO FIX WIFI
After=syslog.target
[Service]
ExecStart=/usr/script/wifi_fix.sh
Type=oneshot
[Install]
WantedBy=multi-user.target
и сделаем сам скрипт для изменения управления питанием с auto на on:# mkdir /usr/script
# nano /usr/script/wifi_fix.sh
#!/bin/sh
modprobe -r brcmfmac brcmutil
echo on > /sys/bus/platform/drivers/sdhci-acpi/INT33BB\:00/power/control
modprobe brcmfmac
добавим разрешение на исполнение файла:
chmod +x /usr/script/wifi_fix.sh
теперь добавим скрипт в sysctl:
# systemctl daemon-reload
# systemctl enable wifi_fix.service
После перезагружаемся и все должно работать (: