Официальная возможность получить лицензионный софт бесплатно.
Giveaway of the Day
Это не реклама!

Щелкните для получения прогноза по Биробиджану


Показаны сообщения с ярлыком 43xxx. Показать все сообщения
Показаны сообщения с ярлыком 43xxx. Показать все сообщения

вторник, 6 мая 2014 г.

Broadcom 43xxx bluetooth (105b:e065)


Купил для супруги бюджетный ноут Lenovo b590.
Обычная средненькая по нынешним меркам машина. Поставляется с минимально установленной FreeDOS - только чтобы загрузить и убедиться, что оно грузится.
Накатил на нее Ubuntu Trusty (14.04)/64. Выяснилось две проблемы:

1. не работает wi-fi
2. не работает bluetooth

Первое решилось довольно быстро установкой проприетарного драйвера из штатного пакета bcmwl-kernel-source. Если подключать этот драйвер с liveCD, он подключается нормально. При установке на бук - тоже установился нормально. Но моя загрузочная флешка, сделанная нестандартно - как полноценный диск ради эксперимента, отказалась его ставить. Пришлось явно устанавливать этот пакет.
Ну, заработало и заработало, замечательно.

А вот блютус упорно брыкался. Причем только встроенный - взял проверенно рабочую затычку, она прекрасно определилась и заработала. Но что странно:

$ lsusb
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 105b:e065 
Bus 001 Device 004: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader
Bus 001 Device 003: ID 5986:0295 Acer, Inc
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


Нету устройства от Broadcom, однако? Погуглил по единственному анонимному устройству 105b:e065 и угадал - это оно.

Выяснилось, что firmware для этих модулей не включают в ядро, ибо проприетарщина и нет желания возиться с лицензиями. Можно выдернуть некий .hex файл из виндовых драйверов, скачанных отсюда http://support.lenovo.com/ru_RU/downloads/detail.page?DocID=DS032618. По опыту знаю, что файлы прошивок обычно крошечные, и качать 200+ мегабайт барахла ради одного файлика нет смысла. К тому же, его надо конвертировать из какого-то формата в какой-то другой, для чего нужно поставить конвертер и т.д. Не интересно.

Не буду долго и нудно расписывать, что и как искал, в конце концов поиски привели меня на эту страницу https://bugzilla.kernel.org/show_bug.cgi?id=73411. Там попалась прелестная ссылка:

This device needs firmware. I saved my firmware in hex and in hcd:
http://ubuntuone.com/6Ot6DpIq2NxVaNNX41kjxX
http://ubuntuone.com/4Hwjcc5kfG2ggIPumdCSFI


По ней и скачал уже готовый .hcd файл, который сначала скопировал в /lib/firmware/brcom и переустановил модуль btusb:

#modprobe -r btusb
#modprobe btusb


Однако, не помогло. Причем - справедливо, поскольку везде упоминалось, что класть надо просто в /lib/firmware. Переложил, снова переустановил модуль. Заработало.

update 20140614: не знаю, поможет это или нет, но файл в /lib/firmware я переименовал по рекомендации оттуда же, и забыл об этом:

$ ls -la `locate hcd|grep firmware`
-rw-r--r-- 1 root root 28681 мая    6 15:13 /lib/firmware/brcm/BCM43142A0_001.001.011.0161.0172.hcd
-rw-r--r-- 1 root root 28681 мая    6 15:17 /lib/firmware/fw-105b_e065.hcd


Поскольку U1 скоро закрывается, то я скопировал эти файлы в свой гуглодиск, вдруг пригодятся...

https://drive.google.com/folderview?id=0B96njm8lw0yTNVBUNmJueXNMdGc&usp=sharing

Там берем файл BCM43142A0_001.001.011.0161.0172.hcd и будет нам щастте.