И снова о моём уже
старичке.
Не прошло и трёх лет, как у меня дошли руки запустить на этом гаджете Bluetooth. В принципе, как оказалось, ничего сложного, но полдня на это убил.
Всё что нужно, чтобы Блютуз заработал в Debian 7 Wheezy, это установить пакет firmware-atheros и заставить модуль ath3k загружать это фирмварю в адаптер до загрузки модуля btusb.
Устанавливается пакет стандартно:
apt-get install firmware-atheros
Дальше загружаем модуль, для начала вручную:
modprobe ath3k
И видим, что ничего не произошло. А всё дело в том, что в ядре 3.2.0 модуль ath3k ещё не знает нашего адаптера. Для этого мы ему сообщим новый VendorID и ProductID командой:
echo "0489 0489" > /sys/bus/usb/drivers/ath3k/new_id
(VID и PID можно узнать из вывода команды lsusb.)
После ввода команды, модуль загрузит прошивку в адаптер и вывод lsusb изменится, так же изменятся VID и PID устройства.
Дальше можно попробовать загрузить модуль btusb и команда hciconfig покажет рабочий Блютуз адаптер.
Если всё заработало, то можно автоматизировать процесс.
В целом, всё решается довольно просто за исключением одной проблемы. Модуль btusb стартует при загрузке системы автоматом и занимает наш неоформившийся адаптер, чем мешает модулю ath3k загрузить в него прошивку.
Я решил эту проблему небольшим хаком через modprobe. Для этого создаём файлик bluetooth.conf в папке /etc/modprobe.d со следующим содержимым:
install btusb modprobe ath3k && modprobe --ignore-install btusb
install ath3k modprobe --ignore-install ath3k && echo "0489 e027" > /sys/bus/usb/drivers/ath3k/new_id
Всё это заставляет систему при загрузке модуля btusb выполнить сначала загрузку модуля ath3k. При этом, при загрузке модуля ath3k происходит добавление наших ID адаптера и загрузка прошивки, после чего загружается и модуль btusb.
Собственно, на этом всё :)