Запустил Bluetooth на своём ноуте

May 22, 2014 12:18

И снова о моём уже старичке.
Не прошло и трёх лет, как у меня дошли руки запустить на этом гаджете 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.

Собственно, на этом всё :)

компьютер, sony vaio, ноутбук, линукс, linux, debian

Previous post Next post
Up