web-dev-qa-db-ja.com

rfkillでブロックを解除すると、Intel 7260 Bluetoothデバイスが切断される原因は何ですか?

解決策:問題は、LinuxのBluetoothモジュールがxHCIでうまく動作しないことです。 「XHCI PRE-BOOT MODE」というラベルのBIOS設定があり、「Disabled」に設定する必要があります。そうでない場合、LinuxはBluetoothモジュールを、EHCIバスではなくxHCIバスに接続されているかのように扱い、通信エラーを引き起こします。 ただし、この修正はシステムの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]

EDIT:Bluetoothデバイスは、Intel 7260ワイヤレスUSBデバイス、ID 8087:07dcとして表示されます。関連する可能性があるとわかった唯一の情報は、修正プログラムが発行されたバグであり、Launchpadで次のように言及されています。 Intel 7260 bluetooth [8087:07dc]のサポート

編集:ファームウェアをIntelのWebサイトから新しい22.1.7.0バージョンに更新しました(Saucyは22.0.7.0に同梱されています)、同じ問題が発生します。

EDIT:ログをさらに掘り下げると、ブロック解除コマンドを実行したときに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

EDIT:3.13カーネルから(新しい)バックポートにiwlwifiドライバーを更新しても役に立ちません。ドライバーの現在のバージョン:

$ 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 <[email protected]>
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)

EDIT:Bernhardが応答で示唆したように、コマンドecho "on" > /sys/class/bluetooth/hci0/device/../power/controlの使用をアダプターに強制しようとしました。 Bluetoothはrfkillを介してブロックされましたが、これは効果がないように見え、hciconfig hci0 upはデバイスがまだブロックされていると応答しました。 bluetoothがrfkillを使用してブロック解除された場合、/sys/class/bluetooth/hci0は存在しないため、手動でオンにしようとすると失敗します。これを/etc/rc.localにも追加しようとしましたが、コンソールでrootとしてコマンドを実行するだけの場合と明確な違いはありませんでした。

編集:私はIntel wifi開発者にメールを送りました。

Hello,

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

Thanks,
(name removed)

Bluetoothドライバーを自分でハッキングして、それ以上デバッグ情報を取得できるかどうかを確認します。

誰かが私を助けるための提案がありますか?これを経験した人はいますか?ヒントがあるかもしれないASUS UX301LAを持っているUbuntuユーザーはいますか?

他にどんな情報が役立つのか教えてください。投稿します。役に立たないデータでこの最初の投稿をオーバーロードしたくありませんでした。

6
PaSTE

UX301LAもあり、14.10を実行しています。私は同じ問題に苦しんでいましたが、理想的ではないが今のところは機能する回避策を発見しました。

基本的に、asus-nb-wmiモジュールはそのハードウェアと完全に互換性がないようです。実際の問題はもっと深いように見えますが、そのモジュールをブロックすると、WiFiとBluetoothに対応する新しいrfkillエントリが作成されなくなり、起動後のデフォルト状態はWiFiとBluetoothの両方が動作します(USB 3.0を使用している場合でも)。 F2スイッチをオンにすると、Bluetoothは消えますが、OFF(起動後のデフォルト)では、Bluetoothデバイスが表示されている間、WiFiは無効になりません。欠点は、モジュールがブロックされたときにFxキーが機能しなくなることです。これらのキーもこのモジュールでサポートされているためです。その効果を得るには、blacklist asus-nb-wmi/etc/modprobe.d/blacklist.confに追加するだけです

より良い解決策は、アップストリームのバグを報告するか、モジュールのソースを変更して、他のFxキーを処理しながら、wifi/bluetoothの処理を無効にすることです。

1

Lenovo T440でも同じ問題が発生します。現時点では解決策はありませんが、カーネルバグの影響を受けているようです(その説明は here )。

追加中

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

/etc/rc.localへのリンクは少し役立つようですが、私のbluetoothマウスへの接続はまだ不安定です。

0
Bernhard

/usr/share/gnome-bluetooth/pin-code-database.xmlをご覧ください

マウスがそこに存在しますか(OUIを使用して検索します。OUIは、マウスMACアドレスの最初の3オクテットである「OEM Unique Identifier」です。たとえば、マウス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. 保存して再起動します。

私はただ暗闇の中でタブを取っていますが、それは一見の価値があるでしょう(IMHO)。

0
TheUnknownHobo