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

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


вторник, 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 и будет нам щастте.
 

21 комментарий:

  1. Привет! Спасибо за инфу! Сам купил такой... скопировал *.hcd в /lib/firmware, сказал modprobe -r btusb ; modprobe btusb - ... и нифига. Можно чуть больше подробностей? Плиз

    ОтветитьУдалить
    Ответы
    1. Ну, даже и не знаю - я делал всё именно так, как написал и блютус у меня работает. У тебя там точно броадком стоит? Они идут с двумя разными адаптерами, как я помню.

      Удалить
  2. Присоединяюсь. Нельзя ли поподробнее про переустановку btusb, для совсем уж непросвещённых?

    ОтветитьУдалить
    Ответы
    1. В чем конкретно проблема?

      Удалить
    2. Тот же самый стек, что и у Вас, такой же ноут. ВТ не работает. Скачиваю предложенный файл, кладу, куда указано. В терминале даю описанные команды. Эффекта ноль: ВТ якобы включается (индикатор активен), при поиске устройств ничего не выдает, сам ноут не виден.

      Удалить
    3. Подождите, какой индикатор? На ноуте нет аппаратного индикатора блютуса.
      Что у вас выдают lsusb и lsmod|grep usb ?

      $ 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 007: 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

      $ lsmod|grep usb
      >>> btusb 32412 0
      usbhid 52570 0
      hid 106148 2 hid_a4tech,usbhid
      >>> bluetooth 395423 22 bnep,btusb,rfcomm
      usb_storage 62209 0

      Удалить
  3. Программный индикатор на верхней панели.
    lsusb
    Bus 002 Device 003: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader
    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 004: ID 04f2:b2fa Chicony Electronics Co., Ltd
    Bus 001 Device 003: ID 105b:e065
    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 002: ID 15d9:0a4d Trust International B.V. Optical Mouse
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    lsmod|grep usb
    btusb 32412 0
    usb_storage 62209 1
    bluetooth 395423 22 bnep,btusb,rfcomm
    usbhid 52570 0
    hid 106148 2 hid_generic,usbhid

    ОтветитьУдалить
  4. 0: tpacpi_bluetooth_sw: Bluetooth
    Soft blocked: yes
    Hard blocked: no
    1: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
    2: brcmwl-0: Wireless LAN
    Soft blocked: no
    Hard blocked: no

    ОтветитьУдалить
  5. Михаил, посмотрите в тексте поста обновление. Возможно, дело еще и в переименовании файла. Странно, что я не упомянул об этом, вероятно, не счел существенным.

    Ваш вывод rfkill говорит о том, что bluetooth просто выключен. Вот как выглядит у меня:

    bt выключен: $ rfkill list all
    0: tpacpi_bluetooth_sw: Bluetooth
    Soft blocked: yes
    Hard blocked: no
    1: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
    2: brcmwl-0: Wireless LAN
    Soft blocked: no
    Hard blocked: no

    bt включён: $ rfkill list all
    0: tpacpi_bluetooth_sw: Bluetooth
    Soft blocked: no
    Hard blocked: no
    1: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
    2: brcmwl-0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
    4: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no

    ОтветитьУдалить
  6. Блютус на момент rfkill был мною просто выключен. А вот переименование файла - то, что нужно. Блютусина завелась! Благодарю за помощь!!!

    ОтветитьУдалить
  7. Lenovo G40-30, делал все по вашей инструкции.

    lsusb
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 006: ID 105b:e065
    Bus 001 Device 005: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
    Bus 001 Device 004: ID 5986:055d Acer, Inc
    Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
    Bus 001 Device 002: ID 0000:0538
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    lsmod|grep usb
    btusb 40960 0
    bluetooth 491520 11 bnep,btusb,rfcomm
    rtsx_usb_ms 20480 0
    memstick 20480 1 rtsx_usb_ms
    rtsx_usb_sdmmc 28672 0
    rtsx_usb 24576 2 rtsx_usb_sdmmc,rtsx_usb_ms
    usbhid 53248 0
    hid 110592 3 i2c_hid,hid_generic,usbhid

    rfkill list all
    0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
    1: brcmwl-0: Wireless LAN
    Soft blocked: no
    Hard blocked: no

    Помогите пожалуйстаю

    ОтветитьУдалить
    Ответы
    1. А файл с прошивкой вы переименовали? Он точно на месте лежит?

      Удалить
  8. Куда уже только можно положил:

    ls -la `locate hcd|grep firmware`
    -rw-r--r-- 1 root root 28681 Сен 21 20:08 /lib/firmware/BCM43142A0_001.001.011.0161.0172.hcd
    -rw-r--r-- 1 root root 28681 Сен 21 19:56 /lib/firmware/brcm/fw-105b_e065.hcd
    -rw-r--r-- 1 root root 28681 Сен 22 02:37 /lib/firmware/fw-105b_e065.hcd

    ОтветитьУдалить
    Ответы
    1. Даже и не знаю, что подсказать... у меня и остальных комментаторов получилось...

      Удалить
    2. Это будет очень здорово.
      Кстати, неплохо бы указать версию ядра и окружение (DE).

      Для проверки могу порекомендовать загрузиться с liveDVD вашего дистрибутива и после загрузки, когда он не сможет обнаружить bluetooth, подсунуть ему всё необходимое.

      Удалить
    3. Николай, я тут столкнулся с похожей проблемой с другим адаптером. Решил.
      Возможно, поможет и вам

      http://tm-experimental.blogspot.ru/2015/10/ubuntu-1510-bluetooth-ar3012.html

      Удалить
    4. А вот еще обновление по ситуации.
      https://tm-experimental.blogspot.ru/2017/08/bluetooth-lenovo-b590.html

      После апгрейда убунты с 14.04 на 16.04 тот же блютус снова отвалился. Если коротко, то помогло переименование /lib/firmware/brcm/BCM43142A0_001.001.011.0161.0172.hcd в BCM.hcd (именно в таком регистре).

      Удалить
  9. А мне эта команда dmesg | egrep -i 'blue|firm' (отсюда https://forums.linuxmint.com/viewtopic.php?p=1210376&sid=2e00cb73666cc31c18bb40dcd530e5c6#p1210376 ) помогла понять какое название файла BCM43142A0_001.001.011.0161.0172.hcd в /lib/firmware/brcm/ должно быть, я его переименовал, перезагрузил и всё ок

    ОтветитьУдалить
    Ответы
    1. Не готов вразумительно ответить: сейчас попробовал на g710 под 20.04, dmesg говорит только про блютус "в общем" без упоминания конкретных драйверов

      Удалить

Пожалуйста, воздержитесь от грубостей и персональных нападок.
Я не против матерщины, но она должна быть уместной и использоваться для выражения эмоций, а не в качестве основного средства выражения мыслей.