Что вызывает отключение моего устройства Intel 7260 bluetooth, когда я разблокирую его с помощью rfkill?

РЕШЕНИЕ : Похоже, проблема в том, что модуль Bluetooth плохо работает с xHCI в Linux. Существует настройка BIOS с надписью «XHCI PRE-BOOT MODE», которая должна быть установлена ​​на «Disabled». Если это не так, то Linux будет обрабатывать модуль Bluetooth так, как если бы он был подключен к шине xHCI вместо шины EHCI, вызывая ошибки связи. ОДНАКО ЭТО ИСПРАВЛЕНИЕ ОТКЛЮЧИТ USB 3.0 НА ВАШЕЙ СИСТЕМЕ . У меня нет лучшего решения на данный момент, но по крайней мере это работает.

У меня новый ноутбук ASUS UX301LA, и я использую Ubuntu Gnome 13.10 (Saucy). Ядро, кажется, знает об устройстве Bluetooth ноутбука при загрузке, но оно исчезает всякий раз, когда я использую rfkill для разблокировки Bluetooth. Например:

$ sudo rfkill block bluetooth
$ dmesg | tail -5
[ 2024.876537] usb 2-4: new full-speed USB device number 8 using xhci_hcd
[ 2024.894043] usb 2-4: New USB device found, idVendor=8087, idProduct=07dc
[ 2024.894053] usb 2-4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 2024.908190] Bluetooth: hci0: read Intel version: 370710018002030d00
[ 2024.908271] Bluetooth: hci0: Intel Bluetooth firmware file: intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq
[ 2025.057051] Bluetooth: hci0: Intel Bluetooth firmware patch completed and activated

$ sudo rfkill list
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: asus-wlan: Wireless LAN
    Soft blocked: no
    Hard blocked: no
2: asus-bluetooth: Bluetooth
    Soft blocked: yes
    Hard blocked: no
3: hci0: Bluetooth
    Soft blocked: yes
    Hard blocked: no

$ sudo hciconfig -a
hci0:   Type: BR/EDR  Bus: USB
    BD Address: XX:XX:XX:XX:XX:XX  ACL MTU: 1021:5  SCO MTU: 96:5
    DOWN 
    RX bytes:568 acl:0 sco:0 events:29 errors:0
    TX bytes:390 acl:0 sco:0 commands:29 errors:0
    Features: 0xff 0xfe 0x0f 0xfe 0xdb 0xff 0x7b 0x87
    Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
    Link policy: RSWITCH HOLD SNIFF 
    Link mode: SLAVE ACCEPT 

$ sudo rfkill unblock bluetooth
$ dmesg | tail -1
[ 2391.749122] usb 2-4: USB disconnect, device number 8

$ sudo rfkill list
0: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: asus-wlan: Wireless LAN
    Soft blocked: no
    Hard blocked: no
2: asus-bluetooth: Bluetooth
    Soft blocked: no
    Hard blocked: no

$ sudo hciconfig -a
[no output]

РЕДАКТИРОВАТЬ : устройство Bluetooth отображается как беспроводное USB-устройство Intel 7260, ID 8087: 07dc. Единственная найденная мною информация - это ошибка, для которой было выпущено исправление, упомянутое здесь на Launchpad: Поддержка Intel 7260 bluetooth [8087: 07dc]

EDIT : я обновил прошивку до новой версии 22.1.7.0 с веб-сайта Intel (Saucy поставляется с 22.0.7.0), и возникает та же проблема.

РЕДАКТИРОВАТЬ : Дальнейшее копание в журналах показывает, что Bluetooth-устройство USB полностью отключено при запуске команды разблокировки:

$ lsusb -d 8087:07dc
Bus 001 Device 007: ID 8087:07dc Intel Corp. 
$ rfkill unblock bluetooth
$ lsusb -d 8087:07dc
[no output]
$ dmesg | tail -1
[  438.284647] usb 1-4: USB disconnect, device number 7

РЕДАКТИРОВАТЬ : Обновление драйвера iwlwifi до (более нового) бэкпорта из ядра 3.13 не помогает. Текущая версия драйвера:

$ modinfo iwlwifi
filename:       /lib/modules/3.11.0-15-generic/updates/drivers/net/wireless/iwlwifi/iwlwifi.ko
version:        backported from Linux (v3.13-rc8-0-g7e22e91) using backports v3.13-rc8-1-0-gae71bd3
license:        GPL
author:         Copyright(c) 2003-2013 Intel Corporation <ilw@linux.intel.com>
version:        in-tree:d
description:    Intel(R) Wireless WiFi driver for Linux
firmware:       iwlwifi-100-5.ucode
firmware:       iwlwifi-1000-5.ucode
firmware:       iwlwifi-135-6.ucode
firmware:       iwlwifi-105-6.ucode
firmware:       iwlwifi-2030-6.ucode
firmware:       iwlwifi-2000-6.ucode
firmware:       iwlwifi-5150-2.ucode
firmware:       iwlwifi-5000-5.ucode
firmware:       iwlwifi-6000g2b-6.ucode
firmware:       iwlwifi-6000g2a-5.ucode
firmware:       iwlwifi-6050-5.ucode
firmware:       iwlwifi-6000-4.ucode
firmware:       iwlwifi-3160-7.ucode
firmware:       iwlwifi-7260-7.ucode
srcversion:     F6C7F0E202757B474065F3B
alias:          pci:v00008086d0000095Asv*sd00005490bc*sc*i*
[... trimmed several "alias" lines ...]
alias:          pci:v00008086d00004232sv*sd00001201bc*sc*i*
depends:        compat,cfg80211
vermagic:       3.11.0-15-generic SMP mod_unload modversions 
parm:           debug:debug output mask (uint)
parm:           swcrypto:using crypto in software (default 0 [hardware]) (int)
parm:           11n_disable:disable 11n functionality, bitmap: 1: full, 2: agg TX, 4: agg RX (uint)
parm:           amsdu_size_8K:enable 8K amsdu size (default 0) (int)
parm:           fw_restart:restart firmware in case of error (default true) (bool)
parm:           antenna_coupling:specify antenna coupling in dB (defualt: 0 dB) (int)
parm:           wd_disable:Disable stuck queue watchdog timer 0=system default, 1=disable, 2=enable (default: 0) (int)
parm:           nvm_file:NVM file name (charp)
parm:           bt_coex_active:enable wifi/bt co-exist (default: enable) (bool)
parm:           led_mode:0=system default, 1=On(RF On)/Off(RF Off), 2=blinking, 3=Off (default: 0) (int)
parm:           power_save:enable WiFi power management (default: disable) (bool)
parm:           power_level:default power save level (range from 1 - 5, default: 1) (int)

РЕДАКТИРОВАТЬ : как предложил Бернхард в ответах, я попытался принудительно включить адаптер с помощью команды echo "on" > /sys/class/bluetooth/hci0/device/../power/control. Хотя Bluetooth был заблокирован с помощью rfkill, это, похоже, не дало эффекта, и hciconfig hci0 up ответил, что устройство все еще заблокировано. Когда Bluetooth был разблокирован с помощью rfkill, /sys/class/bluetooth/hci0 не существует, поэтому попытка включить его вручную не удалась. Я также попытался добавить это в /etc/rc.local, и не было никакой очевидной разницы по сравнению с простым запуском команд с правами root на консоли.

РЕДАКТИРОВАТЬ : я написал разработчикам Wi-Fi Intel по электронной почте, и они выпустили этот невероятно полезный ответ:

Hello,

I am afraid you are asking the wrong people. We are WiFi people and not Bluetooth.

Thanks,
(name removed)

Я попытаюсь самостоятельно взломать драйверы Bluetooth, чтобы посмотреть, могу ли я уговорить больше отладочной информации из них.

Есть ли у кого-нибудь предложения, чтобы помочь мне? Кто-нибудь испытывал это раньше? Есть ли пользователи Ubuntu, у которых есть ASUS UX301LA, у которых могут быть какие-либо советы?

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

6
задан 29 January 2014 в 10:28

4 ответа

У меня также есть UX301LA, и я сейчас работаю 14.10. Я страдал от той же проблемы, но обнаружил обходной путь, который не идеален, но работает на данный момент.

По сути, кажется, что модуль asus-nb-wmi не полностью совместим с этим оборудованием. Хотя реальная проблема, по-видимому, существует гораздо глубже, блокировка этого модуля предотвращает создание новых записей rfkill, соответствующих WiFi и Bluetooth, а затем состояние по умолчанию после загрузки - при работе как WiFi, так и Bluetooth (даже с использованием USB 3.0). Переключатель F2 остается включенным, когда Bluetooth исчезает, но при выключении (по умолчанию после загрузки) он не отключает Wi-Fi, пока отображается устройство Bluetooth. Недостатком является то, что клавиши Fx перестают работать, когда модуль заблокирован, поскольку они также поддерживаются этим модулем. Чтобы добиться этого эффекта, просто добавьте blacklist asus-nb-wmi к /etc/modprobe.d/blacklist.conf

. Лучшим решением было бы сообщить об ошибке в восходящем потоке или на данный момент изменить источник модуля, чтобы отключить обработку Wi-Fi / Bluetooth, в то же время обрабатывая другие Fx ключи.

0
ответ дан 29 January 2014 в 10:28

Та же проблема возникает с моим Lenovo T440s. У меня нет решения на данный момент, но похоже, что на нас повлияла ошибка в ядре (обсуждение этого можно найти здесь ).

Добавление

echo "on" > /sys/class/bluetooth/hci0/device/../power/control

в /etc/rc.local, кажется, немного помогает, но соединение с моей Bluetooth-мышью все еще неустойчиво.

0
ответ дан 29 January 2014 в 10:28

Взгляните на: /usr/share/gnome-bluetooth/pin-code-database.xml

Существует ли ваша мышь там (поиск с использованием OUI, который является «Уникальным идентификатором OEM», какие первые 3 октета MAC-адреса мыши. Например, если MAC-адрес вашей мыши - AA: BB: CC: DD: EE: FF, то OUI - "AA: BB: CC")?

Если он уже существует, убедитесь, что он выглядит примерно так:

(обратите внимание на двоеточие: «AA: BB: CC * : *» - не оставляйте это).

Если его еще нет, добавьте его.

Кроме того, не уверен, что это связано, но есть хорошо известная проблема с Intel 7260 WiFi (частые спорадические разъединения). Чтобы обойти проблему WiFi, я обнаружил, что единственное, что работает, это отключение 802.11n:

  1. Открытый терминал.
  2. sudo vi /etc/modprobe.d/wifi-disable11n.conf
  3. Добавить эту строку: options iwlwifi 11n_disable = 1
  4. Сохранить и перезапустить.

Я просто беру вкладку в темноте, но это будет стоить выстрел (ИМХО).

0
ответ дан 29 January 2014 в 10:28

Я решил свои проблемы, установив новую прошивку из http://ftp.de.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-iwlwifi_0.40_all.deb

Использование acer s7 392, intel wireless 7260 rev6b, kubuntu 13.10, ядра 3.11.0-15-generic

0
ответ дан 29 January 2014 в 10:28

Другие вопросы по тегам:

Похожие вопросы: