Bluetooth
é¢é£èšäº
Bluetooth ã¯æºåž¯é»è©±ãã³ã³ãã¥ãŒã¿ãªã©ã®é»åããã€ã¹çšã®è¿è·é¢ç¡ç·éä¿¡èŠæ Œã§ããLinux ã«ãããŠã¯ãBluetooth ãããã³ã«ã¹ã¿ãã¯ã®å®è£ ãšã㊠BlueZ ãæšæºçã«äœ¿ãããŠããŸãã
ã€ã³ã¹ããŒã«
- Bluetooth ãããã³ãã¹ã¿ãã¯ãæäŸãããbluez ããã±ãŒãžãã€ã³ã¹ããŒã«ããŸãã
bluetoothctlãŠãŒãã£ãªãã£ãæäŸãããbluez-utils ãã€ã³ã¹ããŒã«ããŸããbluez-deprecated-tools ãã€ã³ã¹ããŒã«ããŠãéæšå¥šã® BlueZ ããŒã« ã远å ããŸãã- äžè¬ç㪠Bluetooth ãã©ã€ãã¯ã
btusbã«ãŒãã«ã¢ãžã¥ãŒã«ã§ãããã®ã¢ãžã¥ãŒã«ãããŒããããŠãããã©ããã確èªããŠãã ãããããããŒããããŠããªããã°ãã¢ãžã¥ãŒã«ãããŒãããŠãã ããã bluetooth.serviceãèµ·å/æå¹åããŸãã
- ããã©ã«ãã§ã¯ bluetooth ããŒã¢ã³ã¯
lpã°ã«ãŒãã®ã¡ã³ããŒã®ãŠãŒã¶ãŒã ãã« bnep0 ããã€ã¹ãæäŸããŸããbluetooth ãã¶ãªã³ã°ã«æ¥ç¶ãããšãã¯ãŠãŒã¶ãŒãã°ã«ãŒãã«è¿œå ããŠãããŠãã ãããå¿ èŠãªã°ã«ãŒãã¯/etc/dbus-1/system.d/bluetooth.confãã¡ã€ã«ã§å€æŽããããšãã§ããŸãã - Bluetooth ã¢ããã¿ãŒã«ã¯ Wi-Fi ã«ãŒãããã³ãã«ãããŠãããã®ããããŸã (äŸ: Intel Centrino[ãªã³ã¯åã 2023-09-16])ããããã® Bluetooth ã¢ããã¿ãŒãã«ãŒãã«ããèŠããããã«ããã«ã¯ããŸã Wi-Fi ã«ãŒããæå¹ã«ããå¿ èŠããããŸã (倧äœã¯ã©ãããããäžã®ããŒããŒãã·ã§ãŒãã«ããã䜿ã)ã
- Bluetooth ã«ãŒãã«ãã£ãŠã¯ãããã¯ãŒã¯ã¢ããã¿ãšè¡çªããããšããããŸã (äŸ: Broadcom)ããããã£ãŠããããã¯ãŒã¯ãµãŒãã¹ãèµ·åããåã« Bluetooth ããã€ã¹ãæ¥ç¶ããããã«ããŠãã ããã
- hcitool ã hciconfig ãªã©ã®ããŒã«ã¯äžæµã§ã¯éæšå¥šãšãªã£ãŠãããbluez-utils ã«ã¯ãã¯ãå«ãŸããŠããŸãããã¢ããããŒããããªãããšã決ãŸã£ãŠãããããã¹ã¯ãªããã®äžã§äœ¿çšããŠããå Žåã¯äœ¿ããªãããã«æžãæããããšãæšå¥šããŸããããã§ã䜿ãããå Žå㯠bluez-deprecated-tools ãã€ã³ã¹ããŒã«ããŠãã ããã詳ããæ å ±ã¯ FS#53110 ã Bluez ã¡ãŒãªã³ã°ãªã¹ã ãåç §ã
- 2024幎ãããbluez-obexãšbluez-meshã¯bluezããåé¢ãããŸããããã£ãŠãBluetoothè¶ãã«ãã¡ã€ã«ã転éãããå Žåã¯ãbluez-obexãã€ã³ã¹ããŒã«ãããŠãŒã¶ãŒãµãŒãã¹
obex.serviceãæå¹åããå¿ èŠããããŸãã
ããã³ããšã³ã
ã³ã³ãœãŒã«
- bluetoothctl — ã·ã§ã«ããããã€ã¹ããã¢ãªã³ã°ããããšã¯ãæãåçŽã§ä¿¡é Œæ§ã®é«ããªãã·ã§ã³ã®äžã€ã§ãã
- bluetuith — ã¿ãŒããã«ãŠãŒã¶ã€ã³ã¿ãŒãã§ã€ã¹ã«ãã Bluetooth ãããŒãžã£ãæäŸããŸããOBEX ãã¡ã€ã«è»¢éãšããŠã¹ã®ãµããŒãä»ãã§ãããã€ã¹/ã¢ããã¿ãç°¡åã«ç®¡çã§ããŸãã
echo -e "command1\ncommand2\n" | bluetoothctl ãŸã㯠bluetoothctl -- command ã䜿çšããŸããã°ã©ãã£ã«ã«
以äžã®ããã±ãŒãžã§ã¯ãBluetooth ãã«ã¹ã¿ãã€ãºããããã®ã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ãå©çšå¯èœã§ãã
- GNOME Bluetooth — GNOME ã® Bluetooth ããŒã«ã
- gnome-bluetooth-3.0 ããã¯ãšã³ããæäŸ (gnome-bluetooth ã¯ã¬ã¬ã·ãŒã§ã)
- gnome-shell ã¹ããŒã¿ã¹ã¢ãã¿ãŒã¢ãã¬ãããæäŸ
- gnome-control-center ã¯èšå®çšã®ããã³ããšã³ã GUI ãæäŸããŠãããã¢ã¯ãã£ããã£æŠèŠã§ Bluetooth ãšå
¥åãããã
gnome-control-center bluetoothã³ãã³ãã§ã¢ã¯ã»ã¹ããããšãã§ããŸãã - ãŸãã
bluetooth-sendtoã³ãã³ããçŽæ¥èµ·åããŠããªã¢ãŒãããã€ã¹ã«ãã¡ã€ã«ãéä¿¡ããããšãå¯èœã§ãã - nautilus-bluetoothAUR 㯠Nautilus ã®å³ã¯ãªãã¯ã¡ãã¥ãŒã« "Bluetoothã§éä¿¡" ãšã³ããªã远å ããŸãã
- ãã¡ã€ã«ãåä¿¡ããã«ã¯ãBluetooth èšå®ããã«ãéããŸããBluetooth ããã«ãéããŠããéã®ã¿åä¿¡ã§ããŸãã
- Thunar ã®ãã¡ã€ã«ããããã£ã¡ãã¥ãŒã® éä¿¡å
ã¡ãã¥ãŒã« Bluetooth ãšã³ããªã远å ããã«ã¯ã説æ ãã ãåç
§ããŠãã ããã(èšå®ãå¿
èŠãªã³ãã³ãã¯
bluetooth-sendto %Fã§ã)
- Bluedevil — KDE ã® Bluetooth ããŒã«ã Dolphin ãã·ã¹ãã ãã¬ã€ã« Bluetooth ã®ã¢ã€ã³ã³ã衚瀺ãããŠããªãå Žåã¯ãã·ã¹ãã ãã¬ã€ãªãã·ã§ã³ã§æå¹ã«ãããããŠã£ãžã§ããã远å ããŠãã ãããã¢ã€ã³ã³ãã¯ãªãã¯ããããšã§ãBluedevil ã®èšå®ã Bluetooth ããã€ã¹ã®æ€åºãå¯èœã§ããKDE ã·ã¹ãã èšå®ãããã€ã³ã¿ãŒãã§ãŒã¹ãå©çšã§ããŸãã
- Blueberry — GNOME Bluetooth ãã Linux Mint ã§ã¹ãã³ãªããã Blueberry ã¯å šãŠã®ãã¹ã¯ãããç°å¢ã§åäœããŸããObex Object Push ã«ãããã¡ã€ã«åä¿¡ããµããŒãããŠããŸããã
- Blueman — ãã«æ©èœã® Bluetooth ãããŒãžã£ãŒ
- Bluetooth Manager Sidebar — GTK4/libadwaita ã䜿çšãã Wayland ã»ãã·ã§ã³åãã® Bluetooth ãããŒãžã£ãŒããµã€ãããŒãšããŠéããããã€ã¹ã®ãã¢ãªã³ã°ãOBEX ãã¡ã€ã«è»¢éããªãŒãã£ãªãããã¡ã€ã«ã®åãæ¿ãã«å¯Ÿå¿ããŠããŸãã
- ObexFTP — OBEX 察å¿ã®ããã€ã¹ãšã®éã§ãã¡ã€ã«ã転éããããŒã«ã
ãã¢ãªã³ã°
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãbluetoothctl CLI ã䜿ã£ãŠ bluez5 ãçŽæ¥èšå®ããæ¹æ³ã説æããŠããŸããããã¯ã代æ¿ã®ããã³ããšã³ãããŒã«(äŸãã° GNOME Bluetooth)ã䜿çšããŠããå Žåã¯å¿ èŠãªããããããŸããã
æ£ç¢ºãªæé ã¯ãå©çšããããã€ã¹ãšãã®å
¥åæ©èœã«ãããŸãã以äžã¯ bluetoothctl ã䜿ã£ãŠããã€ã¹ããã¢ãªã³ã°ããäžè¬çãªèª¬æã§ãã
bluetoothctl 察話ã³ãã³ããå®è¡ããŠãã ãããhelp ãšå
¥åããããšã§å©çšã§ããã³ãã³ãã®ãªã¹ãã衚瀺ã§ããŸãã
- (ä»»æ)
select MAC Addressãšå ¥åããŠããã©ã«ãã®ã³ã³ãããŒã©ãéžæããŠãã ããã - (ä»»æ) ããã€ã¹ããªãã«ãªã£ãŠããå Žåã
power onãšå ¥åããŠã³ã³ãããŒã©ãžã®é»æºäŸçµŠããªã³ã«ããŠãã ãããããã€ã¹ã¯ããã©ã«ãã§ãªã³ã«ãªã£ãŠããŸã (#ã¢ããã¿ã®ããã©ã«ã黿ºç¶æ )ã devicesãšå ¥åããŠããã¢ãªã³ã°ãããããã€ã¹ã® MAC ã¢ãã¬ã¹ãååŸããŠãã ããã- ããã€ã¹ã衚瀺ãããªããšãã¯
scan onã³ãã³ãã§ããã€ã¹æ€åºã¢ãŒãã«ããŠãã ããã agent onã§ãšãŒãžã§ã³ãããªã³ã«ããããç¹å®ã®ãšãŒãžã§ã³ããéžæããŠãã ãã:agentã®åŸã«ã¿ãããŒã2åæŒããšãå©çšå¯èœãªãšãŒãžã§ã³ãã®ãªã¹ãã衚瀺ãããã¯ãã§ããBluetooth ãšãŒãžã§ã³ããšã¯ãBluetooth ã® 'ãã¢ãªã³ã°ã³ãŒã' ã管çãããã®ã®ããšã§ãããšãŒãžã§ã³ãã¯ã'ãã¢ãªã³ã°ã³ãŒã'ã®åä¿¡ã«å¿çãããã'ãã¢ãªã³ã°ã³ãŒã'ãéä¿¡ãããã§ããŸããã»ãšãã©ã®å Žåãdefault-agentã䜿ãã®ãé©åãªã¯ãã§ãã[1]pair MAC Addressãšå ¥åããããšã§ãã¢ãªã³ã°ãå®è¡ããŸã (ã¿ãè£å®ã䜿ããŸã)ã- PIN ããªãããã€ã¹ã䜿ãå Žåã¯ãæåã§ããã€ã¹ãä¿¡é Œããå¿
èŠããããããããŸããã
trust MAC Addressãšå ¥åããŠãããè¡ãªã£ãŠäžãããããã€ã¹ãä¿¡é Œããã«ã¯trust MAC_addressãšå ¥åããŠãã ããã connect MAC_addressã䜿ã£ãŠæ¥ç¶ã確ç«ããŠãã ããã
ã»ãã·ã§ã³ã®äŸã¯ä»¥äžã®ããã«ãªããŸã:
$ bluetoothctl
[NEW] Controller 00:10:20:30:40:50 hostname [default] [bluetooth]# agent KeyboardOnly Agent registered [bluetooth]# default-agent Default agent request successful [bluetooth]# power on Changing power on succeeded [CHG] Controller 00:10:20:30:40:50 Powered: yes [bluetooth]# scan on Discovery started [CHG] Controller 00:10:20:30:40:50 Discovering: yes [NEW] Device 00:12:34:56:78:90 device name [CHG] Device 00:12:34:56:78:90 LegacyPairing: yes [bluetooth]# pair 00:12:34:56:78:90 Attempting to pair with 00:12:34:56:78:90 [CHG] Device 00:12:34:56:78:90 Connected: yes [CHG] Device 00:12:34:56:78:90 Connected: no [CHG] Device 00:12:34:56:78:90 Connected: yes Request PIN code [agent] Enter PIN code: 1234 [CHG] Device 00:12:34:56:78:90 Paired: yes Pairing successful [CHG] Device 00:12:34:56:78:90 Connected: no [bluetooth]# connect 00:12:34:56:78:90 Attempting to connect to 00:12:34:56:78:90 [CHG] Device 00:12:34:56:78:90 Connected: yes Connection successful
ãã¥ã¢ã«ããŒããã¢ãªã³ã°
ãã¥ã¢ã«ããŒãç°å¢ã§ããã€ã¹ããã¢ãªã³ã°ããã«ã¯ãLinux ã®æ¹ã§ãã¢ãªã³ã°ããŒã倿Žã㊠Windows ãŸã㯠macOS ã§äœ¿çšãããŠãããã¢ãªã³ã°ããŒãšåãã«ããå¿ èŠããããŸãã
ãã®ããŒãžã§ã¯ããããæåã§è¡ãæ¹æ³ã®ã¿ã説æããŠããŸãããã®æé ãèªååããã«ã¯ãbt-dualboot ãããžã§ã¯ããé¢é£ãããªããžããªãåç §ããŠãã ããã
èšå®æ¹æ³
ãããè¡ãã«ã¯ããŸã Arch Linux äžã§ããã€ã¹ã®ãã¢ãªã³ã°ãè¡ããŸãããã®åŸãããäžæ¹ã® OS ãåèµ·åããããã€ã¹ããã¢ãªã³ã°ããŸããããã§ãã¢ãªã³ã°ã»ããŒãåãåºãå¿ èŠããããŸããããŸã Bluetooth ããã€ã¹ã®é»æºãåããæ¥ç¶ã詊ã¿ãªãããã«ããŸãã
Windows ã®å Žå
Windows ã§ã®å±é
ãŸããWindows ãèµ·åããŠãã ããã
ãªã³ã¯ããŒãå«ãã¬ãžã¹ããªããŒã¯ããã°ã€ã³äžå¯èœãªSYSTEM ã¢ã«ãŠã³ãã§ããã¢ã¯ã»ã¹ã§ããŸããããã®ãããregedit.exe ã SYSTEM ãšããŠå®è¡ããã«ã¯ãWindows Sysinternals å
¬åŒãµã€ãã«ãã Microsoft ã® PsExec ããŒã«ãå¿
èŠã«ãªããŸãã
PsTools ãããŠã³ããŒãããPsExec64.exe ãè§£åããŸãã
ã³ãã³ãã·ã§ã« ã®ç®¡çè ã€ã³ã¹ã¿ã³ã¹ã§ãè§£åãã EXE ã®å Žæããã¬ãžã¹ããªãšãã£ã¿ãèµ·åããŠãã ãã:
.\PsExec64.exe -s -i regedit.exe
ã¬ãžã¹ããªãšãã£ã¿ã§ã以äžã®ã¬ãžã¹ããªããŒã«ç§»åããŸã:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHPORT\Parameters\Keys
ãã®ããŒã®äžã«å Bluetooth ã¢ããã¿ãŒã® MAC ã¢ãã¬ã¹å¥ã®ããŒããããŸããè€æ°ã®ããŒããããã©ãã䜿ãã°ãããããããªãå Žåã¯ããã®ã¬ã€ãã«åŸã£ãŠãç®çã® Bluetooth ã¢ããã¿ã® MAC ã¢ãã¬ã¹ãæ€çŽ¢ããŠãã ããã
ç®çã®ããã€ã¹ã¢ããã¿ããŒã®äžã«ããã¢ãªã³ã°ãããããã€ã¹ã®ããããã«å¯ŸããŠããŒããMAC ã¢ãã¬ã¹ãšé¢é£ä»ããããŠååšããŠããŸãã
ã€ã³ã¹ããŒã«éã§å ±æãããåãã¢ããã€ã¹ã«ã€ããŠãããŒå šäœãå³ã¯ãªãã¯ãã.reg ãã¡ã€ã«ãšããŠãšã¯ã¹ããŒãããŠãã ãããããã¯ããã¹ããã¡ã€ã«ã§ããã®ãã¡ã€ã«ããããŒãã³ããŒã§ããŸãã
ãã®ãã¡ã€ã«ã«ãã€ããªããŒã1ã€ã ãååšããå ŽåãBluetooth 5.1 ããã€ã¹ã§ã¯ãªãããã®ãã¢ãªã³ã°ããŒãå¿ èŠãªãã®å šãŠã§ãããšããããšã«ãªããŸãã
ãã¢ãªã³ã°ããããã€ã¹ã«è€æ°ã®ã㌠(LTK ã IRK ãªã©) ãååšããå Žåããã㯠Bluetooth 5.1 ããã€ã¹ã§ãããšããããšã«ãªããŸãããããã®ããŒãäœ¿ãæ¹æ³ã¯ #Bluetooth 5.1 ããŒã®æºå ãèŠãŠãã ããã
æåŸã«ãããŒã Linux ç°å¢ã«ã€ã³ããŒãããããã«ãLinux ãèµ·åã㊠#çµããã« ãžé²ãã§ãã ããã
Linux ã§ã®å±é
Arch ããªããŒãããŠãã ãããchntpw ãã€ã³ã¹ããŒã«ããŠãWindows ã·ã¹ãã ãã©ã€ããããŠã³ãããŸãã
$ cd /path/to/windows/system/Windows/System32/config $ chntpw -e SYSTEM
chntpw ç°å¢ã®äžã§ä»¥äžãå®è¡ããŸãã
> cd CurrentControlSet\Services\BTHPORT\Parameters\Keys
ãããã¯
> cd ControlSet00X\Services\BTHPORT\Parameters\Keys
次ã«ãBluetooth ã¢ããã¿ã® MAC ã¢ãã¬ã¹ãååŸãããã®ãã©ã«ããå ¥åããŸãã
> ls > cd your-device's-mac-address
ãã¢ãªã³ã°ããŠããããã€ã¹ã«ãåãããšãããŸããBluetooth 5.1 ããã€ã¹ã§ãªãå Žåããã¢ãªã³ã°ããŒãã衚瀺ãããŸãã:
> ls
Node has 0 subkeys and 1 values size type value name [value if type DWORD] 16 REG_BINARY <123456789876>
Bluetooth 5.1 ããã€ã¹ã§ããå Žåãhex ãéããŠãããã€ã¹ã®ããŒãååŸããŸãã
> hex 123456789876
:00000 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX (ããã€ãã®ä»ã®æå)
âXX" ã¯ãã¢ãªã³ã°ã»ããŒã§ããã©ã®ããŒãã©ã® MAC ã¢ãã¬ã¹ã«ãããã³ã°ãããŠããããã¡ã¢ããŠãããŠãã ããã
Bluetooth 5.1 ããã€ã¹ã§ããå Žåã1ã€ã®ããã€ã¹ã«å¯Ÿå¿ããããŒãè€æ°è¡šç€ºãããŸãã
Node has 0 subkeys and 8 values
size type value name [value if type DWORD]
16 3 REG_BINARY <LTK>
4 4 REG_DWORD <KeyLength> 16 [0x10]
8 b REG_QWORD <ERand>
4 4 REG_DWORD <EDIV> 37520 [0x9290]
16 3 REG_BINARY <IRK>
8 b REG_QWORD <Address>
4 4 REG_DWORD <AddressType> 1 [0x1]
4 4 REG_DWORD <AuthReq> 45 [0x2d]
ãããã®ããŒãäœ¿ãæ¹æ³ã¯ #Bluetooth 5.1 ããŒã®æºå ãèŠãŠãã ãããå¿
èŠãªå€ãåŸãã«ã¯ hex value_name ã䜿ããŸãã
æåŸã«ãããŒã Linux ç°å¢ã«ã€ã³ããŒãããããã« #çµããã« ãžé²ãã§ãã ããã
macOS ã®å Žå
macOS ãèµ·åã:
- macOS Monterey åã³ãã以éã®å Žå:
- Keychain Access ãéããBluetooth ãšæ€çŽ¢ããŠãã ããã
- æ¥ä»é ã§ãœãŒãããŠãã ããã
- 察象ã®ããã€ã¹ãæè¿åãé€ããŠåæ¥ç¶ããå ŽåãããŒã倿޿¥æé ã§ãœãŒãããŠãææ°ã®ãã®ãéžã¹ã°ããã§ããããŒã¯ãããã MobileBluetooth (å€ã Bluetooth ããã€ã¹ã®å Žå) ãšããååããUUID (Bluetooth 5.1 以é) ã ãã§ãã
- 察象ã®ãšã³ããªãããã«ã¯ãªãã¯ããŠãã ãããAccount ãã£ãŒã«ãã® MAC ã¢ãã¬ã¹ã察象ããã€ã¹ã® MAC ã¢ãã¬ã¹ãšäžèŽããããšã確èªããŠãã ããã
- "Show password" ãã§ãã¯ããã¯ã¹ãã¯ãªãã¯ããŠãã ãããããã§ããã¹ã¯ãŒãã2åå ¥åããå¿ èŠããããŸãã
- ãã¹ã¯ãŒããã£ãŒã«ãå
ã®ããã¹ããã³ããŒããŠãã ãã (
â+aâ+c)ãããã¯å®éã«ã¯ XML ãã¡ã€ã«ã§ãã
- ããã¹ããããŒã ãã£ã¬ã¯ããªå
ã®
bt_keys.txtãã¡ã€ã«ã«ããŒã¹ãããŠãã ããã
- ããã¹ããããŒã ãã£ã¬ã¯ããªå
ã®
- High Sierra åã³ãã以éã®å Žåãæ¬¡ã®ã³ãã³ããã¿ãŒããã«ã§å®è¡ããŠãã ãã:
# defaults read /private/var/root/Library/Preferences/com.apple.bluetoothd.plist LinkKeys > ~/bt_keys.txt
- Sierra åã³ãã以åã®å Žåãæ¬¡ã®ã³ãã³ããã¿ãŒããã«ã§å®è¡ããŠãã ãã:
# defaults read /private/var/root/Library/Preferences/blued.plist LinkKeys > ~/bt_keys.txt
ãããšã~/.bt_keys.txt ãã¡ã€ã«ã«ã¯ã確ç«ããã Bluetooth ããŒãå«ãŸããŠããŸããå€ãããŒãžã§ã³ã® macOS (High Sierra åã³ãã以å) ã§ã¯ãå
ã«é²ãåã«ããŒã®äžŠã³ãéã«ããå¿
èŠããããŸããäŸãã°ã98 54 2f aa bb cc dd ee ff gg hh ii jj kk ll mm 㯠MM LL KK JJ GG FF EE DD CC BB AA 2F 54 98 ã«ãªããŸãã
>>> key = "98 54 2f aa bb cc dd ee ff gg hh ii jj kk ll mm" >>> " ".join(reversed(key.strip().split()))
Bluetooth 5.1 ããã€ã¹ã®å Žåã1ã€ã®ããã€ã¹ã«å¯ŸããŠè€æ°ã®ããŒãé¢é£ä»ããããŠããŸãããããã®ããŒã䜿çšããæ¹æ³ã«ã€ããŠã¯ #Bluetooth 5.1 ããŒã®æºå ãèŠãŠãã ããã
æåŸã«ãããŒã Linux ç°å¢ã«ã€ã³ããŒãããããã«ãLinux ãèµ·åãã#çµããã« ãžé²ãã§ãã ããã
Bluetooth 5.1 ããŒã®æºå
#Windows ã®å Žå ã #macOS ã®å Žå ã®ç« ã«åŸã£ãŠã㊠Bluetooth 5.1 ããŒãååšããŠããå Žåããããã®ããŒã Linux ã«ã€ã³ããŒãããåã«ç¹å®ã®å€æããããå¿ èŠããããŸãã#çµããã« ã®ç« ã§äœ¿ãããã«ãèŠæ±ããããã¡ã€ã«ãé©åã«äœæããŠãã ããããã®æé ã¯å¯Ÿè±¡ããã€ã¹ã«ãã£ãŠç°ãªããããŒã®äžéšãæäœããå¿ èŠããããŸãããããè¡ãããã®ãŠãŒãã£ãªãã£ã¯ä»¥äžã§æããããŠããŸãã
| ããã€ã¹ | å ã®ããŒåã³å€æ (Windows) | å ã®ããŒåã³å€æ (macOS) | ããŒã®ä¿åå ãã¡ã€ã« |
|---|---|---|---|
|
|
? | IdentityResolvingKey.Key
|
|
? | SlaveLongTermKey.Key ãš PeripheralLongTermKey.Key
| |
ERand ãš EDIV 㯠0 ã«ããå¿
èŠããã
|
Random Number ãš Encrypted Diversifier 㯠0 ã«ããå¿
èŠããã
|
â | |
|
|
|
IdentityResolvingKey.Key
|
|
|
LongTermKey.Key
| |
|
|
LongTermKey.Rand
| |
|
|
LongTermKey.EDiv
| |
| ä»ã®ããã€ã¹ |
|
|
LongTermKey.Key
|
|
|
LongTermKey.Rand
| |
|
|
LongTermKey.EDiv
| |
| Xbox ã¯ã€ã€ã¬ã¹ã³ã³ãããŒã© |
|
? | SlaveLongTermKey.Key
|
- å€ããã¹ããŒã¹ãåãé€ãã«ã¯ããã®ãªã³ã©ã€ã³ããŒã«ã以äžã® Python ã³ãŒãã䜿çšã§ããŸã:
>>> "key_value".replace(" ", "")
- 以äžã® Python ã³ãŒãã¯ãã€ãã®é çªãéã«ããã ãã§ã:
>>> ERand=" 63 02 84 B8 5D 40 44 DF " >>> ERand=list(reversed(ERand.strip().split()))
- 以äžã® Python ã³ãŒãã¯ãäžéšã§å¿ èŠãšãªã远å ã®10鲿°å€æãè¡ããŸã:
>>> int("".join(ERand), 16)
16088054540146049635
- 以äžã® Python ã³ãŒã㯠base64 ãã16鲿°ãžã®å€æãè¡ããŸã:
binascii.hexlify(base64.decodebytes(b'...')).upper()
- 以äžã® Python ã³ãŒãã¯å®å šãª macOS Encrypted Diversifier ã®å€æãè¡ããŸã:
struct.unpack('<H', base64.decodebytes(b'...'))
- 以äžã® Python ã³ãŒãã¯å®å šãª macOS Random Number ã®å€æãè¡ããŸã:
struct.unpack('<Q', base64.decodebytes(b'...'))
äžè¬çãªã±ãŒã¹ã®äŸãšããŠã¯:
LTKã®å€48 4D AF CD 0F 92 22 88 0A 52 9A F4 76 DA 8B 94ã¯ãLongTermKey.Keyã®å€484DAFCD0F9222880A529AF476DA8B94ãšãªããŸããERandã®å€63 02 84 B8 5D 40 44 DFã¯ãRandã®å€16088054540146049635ãšãªããŸããEDIVã®å€37520ã¯ãEDivã®å€37520ãšãªããŸãã
èšå®ã®ä¿å
ããŒãæã«å ¥ãããããŠãŒã¶ãŒã root ã«å€æŽãã以äžãå®è¡ããŠãã ãã:
# cd /var/lib/bluetooth/BT-Adapter-MAC-address
ããã«ã¯ããã¢ãªã³ã°ãã Bluetooth æ©åšããšã®ãã©ã«ãããããŸããArch ãšãã¥ã¢ã«ããŒãã§ãã¢ãªã³ã°ãããåããã€ã¹ã«ã€ããŠã以äžãå®è¡ããŸã:
# cd device-MAC-address
ãã¢ãªã³ã°ããŒãæã£ãŠããå Žå (ã€ãŸãããã㯠Bluetooth 5.1 ããã€ã¹ã§ãªã)ãinfo ãã¡ã€ã«ãç·šéãã[LinkKey] 以äžã®ããŒã倿ŽããŸããäŸãã°:
info
[LinkKey] Key=XXXXXXXXXXXXXXX
è€æ°ã®ããŒãååšããå Žå (Bluetooth 5.1 ã®å Žå)ã以äžã® info ãã¡ã€ã«ãç·šéããŠãå
šãŠã®ããŒãããããã®å€ã§çœ®ãæããŠãã ãããäŸãã°ãXbox One S Wireless Controller ã®å Žå:
info
[IdentityResolvingKey] Key=<IdentityResolvingKey.Key> [PeripheralLongTermKey] Key=<PeripheralLongTermKey.Key> [SlaveLongTermKey] Key=<SlaveLongTermKey.Key>
次ã«ãbluetooth.service ãš pulseaudio ãåèµ·åããŠãã ããã(pulseaudio -k && pulseaudio --start ã䜿ã£ãŠãã ããã)
ããã§ãããã€ã¹ã«æ¥ç¶ã§ããã¯ãã§ãã
èšå®
ã¢ããã¿ã®ããã©ã«ã黿ºç¶æ
bluez 5.65 以éãBlueZ ã¯ããã©ã«ãã§ããµãŒãã¹ã®èµ·åæããµã¹ãã³ãããã®åŸ©åž°æã«ãã¹ãŠã® Bluetooth ã¢ããã¿ããªã³ã«ããŸãã[2]
ã¢ããã¿ãèªåã§æå¹åãããããªãå Žå(äŸãã°ãããŒã¿ãã«ããã€ã¹ãªã©ã§ããããªãç¯çŽãããå Žå)ã/etc/bluetooth/main.conf ã® [Policy] ã»ã¯ã·ã§ã³ã§ AutoEnable=false ãèšå®ããŠãã ãã:
/etc/bluetooth/main.conf
[Policy] AutoEnable=false
ãã®èšå®ãè¡ã£ãŠãã#ãã¢ãªã³ã° ã§èª¬æãããŠããããã« power on ãå®è¡ããã°ãã¢ããã¿ãæåã§ãªã³ã«ã§ããŸãã
èµ·åæã«çºèŠå¯èœã«ãã
ããã€ã¹ãåžžã«èŠããŠããŠããã€çŽæ¥æ¥ç¶ã§ããå¿ èŠãããå Žå:
/etc/bluetooth/main.conf
[General] DiscoverableTimeout = 0
ãµã¹ãã³ãããã®åŸ©åž°
Bluetooth ããŒããŒããããŠã¹ãªã©ããµã¹ãã³ãããèµ·åã§ããããã«ããããŸããbios ã®èšå®ã確èªãããµã¹ãã³ãããã®åŸ©åž° ãç¡å¹ã«ãªã£ãŠããªãããšã確èªããŸããå€ãã®å Žåããã¶ãŒããŒãããã® Bluetooth 㯠USB ããã€ã¹ã§ãã
bluetooth ã¢ããã¿ãŒã®ãã³ããŒã³ãŒããšããã€ã¹ ID ã確èªããŠãã ãã:
$ lsusb | grep bluetooth -i
Bus 001 Device 002: ID 8087:0039 Intel Corp. AX200 Bluetooth
ãµã¹ãã³ãããã®åŸ©åž°ãæå¹ã«ããããã«ããã³ãã³ãŒããšããã€ã¹ ID ã®æ°ãã udev ã«ãŒã«ã远å ããŠãã ãã:
/etc/udev/rules.d/91-keyboard-mouse-wakeup.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="8087", ATTRS{idProduct}=="0039" RUN+="/bin/sh -c 'echo enabled > /sys$env{DEVPATH}/../power/wakeup;'"
埩垰åŸã« Bluetooth ããŒããŒããèªåçã«åèšå®ããŠãäŸãã°ç°ãªãããŒããããããŒã®ãªããŒãé床ãããããããã(詳现㯠Xorg ã§ã®ããŒããŒãèšå®#typematic delay ãš rate ã®èª¿æŽ ãš xmodmap)ã«ã¯ãå®è¡å¯èœãªã¹ã¯ãªãããäœæããŠãã ããã
configure_keyboard.sh
#!/bin/sh export DISPLAY=:0 xset r rate 220 30 xmodmap /your/path/to/.Xmodmap
ãããŠãäžèšã®ãããªè¿œå ã® udev ã«ãŒã«ãäœæããŠãã ããã
/etc/udev/rules.d/92-keyboard-reconfiguration-wakeup.rules
SUBSYSTEM=="usb", ATTRS{idVendor}=="8087", ATTRS{idProduct}=="0039" RUN+="/your/path/to/configure_keyboard.sh"
å®éšçãªæ©èœãæå¹åãã
Bluez ã¹ã¿ãã¯ã¯ããã°ããããããããªãæ°ããæ©èœã D-Bus å®éšçãªãã·ã§ã³ããã³ã«ãŒãã«å®éšçãªãã·ã§ã³ã«çããŸããå®éšçãªæ©èœã¯æçµçã«ãå®å®ããŠãããšå€æããããã¯ããªãã·ã§ã³ãå¿ èŠãšããªããªãã®ã§ãã©ã®ãããªå®éšçãªæ©èœãååšãããã¯ããŒãžã§ã³ã«ãã£ãŠç°ãªããŸã (äŸãã°ãçŸåš D-Bus ã®å®éšçãªã€ã³ã¿ãŒãã§ã€ã¹ãæå¹åãããšãå€ããããã»ããã®ããããªãŒã¬ãã«ãå ±åã§ããããã«ãªããŸã)ãå®éšçãªæ©èœãæå¹åããã«ã¯ãèšå®ã®å¯Ÿå¿ããè¡ãã¢ã³ã³ã¡ã³ãããŠãã ãã:
/etc/bluetooth/main.conf
... # Enables D-Bus experimental interfaces # Possible values: true or false #Experimental = true # Enables kernel experimental features, alternatively a list of UUIDs # can be given. # Possible values: true,false,<UUID List> # Possible UUIDS: ... # Defaults to false. #KernelExperimental = true
ãããã¯ãbluetooth.service ãç·šéããŠã--experimental ãã©ã°ããã㯠--kernel ãã©ã°ã远å ããŠãã ãããäŸãã°ã以äžã®ããããã€ã³ãã¡ã€ã«ã®ããã«:
/etc/systemd/system/bluetooth.service.d/override.conf
[Service] ExecStart= ExecStart=/usr/lib/bluetooth/bluetoothd --experimental
ãããã®å Žåã§ããbluetooth.service ãåèµ·åããå¿
èŠããããŸãã
ãªãŒãã£ãª
éåžžã¯ããªãŒãã£ãªãµãŒããŒãš Bluetooth ãçµ±åããããã«è¿œå ã®æé ãå®è¡ããå¿ èŠããããŸããããã«ã€ããŠã¯ã以äžã®ã»ã¯ã·ã§ã³ã§èª¬æããŸãã
Bluetooth ãªãŒãã£ãªã Bluetooth ãããã»ãããªã©ã®æ å ±ã«ã€ããŠã¯ Bluetooth ãããã»ãã ã®ããŒãžãèŠãŠãã ããã
PulseAudio
Bluetooth ããããã©ã³ãã¹ããŒã«ãŒã®ãããªãªãŒãã£ãªæ©åšã䜿ãã«ã¯ pulseaudio-bluetooth ããã±ãŒãžã®ã€ã³ã¹ããŒã«ãå¿
èŠã§ããã€ã³ã¹ããŒã«ãåæ ãããããã«ãpulseaudio ãåèµ·åããŠãã ãã: pulseaudio -kãããã©ã«ãã® Pulseaudio ã€ã³ã¹ããŒã«ã§ã¯ (å
·äœçã«ã¯ãããã±ãŒãžã³ã°ãããŠããããã©ã«ãã® default.pa ã§ãŠãŒã¶ã€ã³ã¹ã¿ã³ã¹ã䜿çšããŠããå Žå)ãå³åº§ã« Bluetooth ããã€ã¹ããã¹ããŒã«ãŒã«ãªãŒãã£ãªãã¹ããªãŒãã³ã°ã§ããã¯ãã§ãã[3]
ã·ã¹ãã å
šäœã® PulseAudio èšå®ãããå Žåã¯ãããŒã¢ã³ãå®è¡ããŠãããŠãŒã¶ãŒïŒé垞㯠pulse) ã lp ã°ã«ãŒãã«å±ããŠãããPulseAudio èšå®ã« Bluetooth ã¢ãžã¥ãŒã«ãããŒãããŠããããšã確èªããŸã:
/etc/pulse/system.pa
... load-module module-bluetooth-policy load-module module-bluetooth-discover ...
ããã¯ä»»æã§ãããBluetooth ããã€ã¹ã®æ¥ç¶æã«ãã¹ãŠã®ãªãŒãã£ãªããã®ããã€ã¹ã«èªåã§åãæ¿ãããå Žåãload-module module-switch-on-connect ã远å ããŠãã ããã
PipeWire
v0.3.19 以éã® PipeWire ã¯ããã©ã«ãã§ Bluetooth ããµããŒãããŠããŸãã
ALSA
ãŸãã Bluetooth ãªãŒãã£ãªããã€ã¹ãæ£ãããã¢ãªã³ã°ãããã·ã¹ãã ã«æ¥ç¶ãããŠããããšã確èªããŸãã
次ã«ã bluez-alsa-gitAUR ãã€ã³ã¹ããŒã«ãã bluealsa ãµãŒãã¹ãéå§(ãããŠãæå¹ã«) ãããŠãŒã¶ãŒã audio ã°ã«ãŒãã«è¿œå ããŸãã
次ã®ã³ãã³ããå®è¡ããŠããã¹ãŠãæå³ãããšããã«åäœããŠãããã©ããã確èªããŸã(XX:XX:XX:XX:XX:XX ãš FILE.wav ã®éšåã¯çœ®ãæããŠãã ãã):
$ aplay -D bluealsa:SRV=org.bluealsa,DEV=XX:XX:XX:XX:XX:XX,PROFILE=a2dp FILE.wav
æåŸã«ã ~/.asoundrc ã«æ¬¡ã®è¡ã远å ããŸãã
~/.asoundrc
defaults.bluealsa {
service "org.bluealsa"
device "XX:XX:XX:XX:XX:XX"
profile "a2dp"
}
ããã§ã bluealsa ããã€ã¹ã䜿ã£ãŠ Bluetooth ãªãŒãã£ãªããã€ã¹ã«æ¥ç¶ã§ããããã«ãªããŸããããªã¥ãŒã 管ç㯠alsamixer ãšãªãã·ã§ã³ -D bluealsa ã䜿ã£ãŠéåžžè¡ãããŸãã
Bluetooth ã·ãªã¢ã«
Bluetooth-to-Serial modules (HC-05ãHC-06) ã§ Bluetooth ã·ãªã¢ã«éä¿¡ãæ©èœããããã«ããã«ã¯ãæ¬¡ã®æé ã«åŸããŸã:
äžèšã§èª¬æããããã«ã bluetoothctl ã䜿ã£ãŠ Bluetooth ããã€ã¹ããã¢ãªã³ã°ããŸãã
bluez-deprecated-tools ãã€ã³ã¹ããŒã«ããŸããæ°ããããŒã«ã«ã¯ãªãæ©èœããããŸãã
ãã¢ã«ãªã£ãŠããããã€ã¹ã® MAC ã¢ãã¬ã¹ã tty 端æ«ã«ãã€ã³ãããŸã:
# rfcomm bind rfcomm0 MAC_address_of_Bluetooth_device
ããã§ãã·ãªã¢ã«éä¿¡çšã« /dev/rfcomm0 ãéãããšãã§ããŸã:
$ picocom /dev/rfcomm0 -b 115200
ãã©ãã«ã·ã¥ãŒãã£ã³ã°
äžè¬çãªãã©ãã«ã·ã¥ãŒãã£ã³ã°
ãããã°
ãããã°ããã«ã¯ãæåã« bluetooth.service ã忢ããŸãã
ãã㊠-d ãã©ã¡ãŒã¿ãŒãä»ããŠéå§ããŸãã
# /usr/lib/bluetooth/bluetoothd -n -d
å¥ã®ãªãã·ã§ã³ãšããŠã btmon ããŒã«ãæããŸãã
éæšå¥šã® BlueZ ããŒã«
8ã€ã® BlueZ ããŒã«ã¯éæšå¥šãšãªããbluez-utils ããåé€ãããŸãããããããã®ãã¹ãŠãæ°ããããŒã«ã«åã£ãŠä»£ããããããã§ã¯ãããŸãããbluez-deprecated-tools ããã±ãŒãžãéæšå¥šãšãªã£ãããŒã«ãæäŸããŸãã
| éæšå¥šã®ããŒã« | ããåŸãä»£æ¿ |
|---|---|
| gatttool | btgatt-client, D-Bus Gatt API[ãªã³ã¯åã 2023-10-29] |
| hciattach | btattach |
| hciconfig | btmgmt (ãã㊠bluetoothctl?) |
| hcidump | btmon (ãã㊠btsnoop) |
| hcitool | ãªããD-Bus Device API[ãªã³ã¯åã 2023-10-29] ãå©çšå¯èœ |
| rfcomm | ãªããD-Bus Profile1 API[ãªã³ã¯åã 2023-10-29] ã®å®è£ ? |
| ciptool | |
| sdptool | ãªããæ©èœããç°ãªã D-Bus ãªããžã§ã¯ãã«æ£ãã°ã£ãŠããæš¡æ§: Profile[ãªã³ã¯åã 2023-10-29]ãAdvertising[ãªã³ã¯åã 2023-10-29]ããã㊠device[ãªã³ã¯åã 2023-10-29] ãš adapter[ãªã³ã¯åã 2023-10-29] ã® UUID ã®é åã |
ãµãŒãã¹ã®åé¡
systemd: Condition check resulted in Bluetooth service being skipped
bluetooth.service 㯠/sys/class/bluetooth ãã£ã¬ã¯ããªãååšããããšã®ã¿ãèŠæ±ããŸãããã®ãã£ã¬ã¯ããªã¯ bluetooth ã«ãŒãã«ã¢ãžã¥ãŒã«ã«ãã£ãŠäœæãããã¯ãã§ãããã®ã«ãŒãã«ã¢ãžã¥ãŒã«ã¯ãsystemd-udev ãåäœããŠãã Bluetooth ããŒããŠã§ã¢ããã€ã¹ãçºèŠããå Žåã«ã®ã¿ãsystemd-udev ã«ããèªåçã«ããŒããããŸãã
/sys/class/bluetooth ãååšããªãå Žåãlsmod ã³ãã³ãã䜿ã£ãŠãBluetooth ã«ãŒãã«ã¢ãžã¥ãŒã«ãããŒããããŠãããã©ããã確èªããŠãã ãããBluetooth ããã€ã¹ãããã«ãé¢ãããããŒããããŠããªãå ŽåãBluetooth ã¢ãžã¥ãŒã«ãããŒãããbluetooth.service ãåèµ·åããããšã§ãæåã§èµ·åã§ããŸãã
ãŸããbluetooth ã¢ãžã¥ãŒã«ãããŒãããéã«ã察å¿ããã«ãŒãã« Bluetooth ãã©ã€ããããŒãããå¿
èŠããããŸããbtusb ãæãå¯èœæ§ããããŸãããbtrtl,btintel,btbcm,bnep,btusb ãªã©ã®å¯èœæ§ããããŸãã
bluetooth.service ã®ãŠãããã¹ããŒã¿ã¹ã確èªããŠããã®ãµãŒãã¹ãèµ·åããŠãããã©ããã確èªããŠãã ããã
Debian Bug report logs - #853207 ãåç §ããŠãã ããã
bluetooth.service ã®èµ·åã«æåãããããŸã Bluetooth ã䜿ããªãããšããããŸã (äŸ: scan on ã®æã« bluetoothctl ã org.Bluez.Error.NotReady ã®ãããªã¡ãã»ãŒãžãçºãã)ããã®å Žåãã³ã³ãã¥ãŒã¿ãåèµ·åããæ¬¡ã®ããšãããã«ãã§ãã¯ããŠãã ãã: /sys/class/bluetooth ãã£ã¬ã¯ããªãååšããã; lsmod ã®åºåã«æ£ãã Bluetooth ã¢ãžã¥ãŒã«ãå«ãŸããŠããã; journal ã®ãã°ã確èªãããªã©ãsystemd-udev ã¯ããŸãæåã®å€æŽããããšã Bluetooth ããŒããŠã§ã¢ãèªåçã«èªèããã¯ãã§ãã
Bluetooth ã suspend-to-idle äžã®ããã€ã¹ãå³åº§ã«ç«ã¡äžããŠããŸã
suspend-to-idle/S2idle/S0ix/Modern Standby ããèœåã®ããã·ã¹ãã ã«ãããŠã¯ãBluetooth ã³ã³ãããŒã©ãã¹ãªãŒãäžãæå¹åããããŸãŸã«ãªããŸããéåžžãããã«ãããBluetooth ããã€ã¹ãæ¥ç¶ãããŠãããšãã·ã¹ãã ãã¹ãªãŒãã«ç§»è¡ããçŽåŸã«ã¹ãªãŒããè§£é€ãããŠããŸããŸãã
ãããé²ãã«ã¯ãã¹ãªãŒãã«ç§»è¡ããåã« Bluetooth ãå®å šã«ç¡å¹åã§ããŸããbluez-utils ãã€ã³ã¹ããŒã«ãã以äžã®ãã¡ã€ã«ãäœæããŠãã ãã:
/etc/systemd/system/bluetooth-disable-before-sleep.service
[Unit] Description=Disable Bluetooth before going to sleep Before=sleep.target Before=suspend.target Before=hybrid-sleep.target Before=suspend-then-hibernate.target StopWhenUnneeded=yes [Service] Type=oneshot RemainAfterExit=yes ExecStart=/usr/bin/bluetoothctl power off ExecStop=/usr/bin/bluetoothctl power on [Install] WantedBy=sleep.target WantedBy=suspend.target WantedBy=hybrid-sleep.target WantedBy=suspend-then-hibernate.target
ãã®ãµãŒãã¹ãæå¹åããã¹ãªãŒãã«ç§»è¡ããæã« Bluetooth ããã€ã¹ãåæãããããšããã¹ãªãŒãããã®åŸ©åž°æã« Bluetooth ãåã³æ¥ç¶ãããããšã確èªããŠãã ããã
ãã®åé¿çã䜿çšãããšãBluetooth ããŠã¹/ããŒããŒãã䜿ã£ãŠã·ã¹ãã ãã¹ãªãŒããã埩垰ãããããšãã§ããªããªããŸãã
ãããã¬ã¹/ãµãŒãã®ã·ã¹ãã ã§ãã°ã¢ãŠãåŸã« Bluetooth ããªãã«ãªã
æ§ã ãªåå ãèããããŸã:
- PulseAudio ãš PipeWire ã¯äž¡æ¹ãšãããã©ã«ãã§ãŠãŒã¶ãµãŒãã¹ãšããŠåäœããŸãããã£ãŠãæåŸã®ã»ãã·ã§ã³ãçµäºãããšãããã®ãµãŒãã¹ã¯çµäºãããŸãããã®åé¡ã解決ããã«ã¯ã察象ã®ãŠãŒã¶ã«å¯Ÿã㊠Lingering (æ®ç) ãæå¹åããŠãã ããã
- ããã«ãWirePlumber ã PipeWire ãšå ±ã«å®è¡ããŠããå Žå (ããã¯ããããç°å¢ã§ã)ãWirePlumber 㯠"logind-monitor" ãå®è¡ããŸããããã¯ãBluetooth ããã°ã€ã³æã«æå¹åãããã°ã¢ãŠãæã«ç¡å¹åããŸããåé¡ã®è§£æ±ºæ¹æ³ã¯ WirePlumber#ãã°ã¢ãŠãåŸã Bluetooth ãå®è¡ãç¶ãã/ãããã¬ã¹ Bluetooth ãèŠãŠãã ããã
ã¢ããã¿ã®åé¡
hcitool scan: Device not found
- äžéšã®ã©ããããã (äŸ: Dell Studio 15ãLenovo Thinkpad X1) ã§ã¯ãBluetooth ã¢ãŒãã HID ãã HCI ã«åãæ¿ããå¿ èŠããããŸããbluez-hid2hci ããã±ãŒãžãã€ã³ã¹ããŒã«ããã°ãudev ãèªåçã«åãæ¿ããè¡ãã¯ãã§ãããŸããæ¬¡ã®ã³ãã³ããå®è¡ããŠæåã§ HCI ã«åãæ¿ããããšãã§ããŸã:
# /usr/lib/udev/hid2hci
- ããã€ã¹ã衚瀺ãããããã€ãã·ã³ã« Windows ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ãããå ŽåãWindows ãã bluetooth ã¢ããã¿ãŒãæå¹ã«ããŠèŠãŠãã ããã
- å Žåã«ãã£ãŠã¯æ¬¡ã®ã³ãã³ãã§åé¡ã解決ãããããããŸãã:
# bluetoothctl power on
bluetoothctl: No default controller available
äžéšã®ãã¶ãŒããŒã Bluetooth ã³ã³ãããŒã©ã«ã¯ãã°ããããŸãããã°ããã®åé¡ã®åå ã§ããã調ã¹ãã«ã¯ãjournalctl | grep hci ãå®è¡ããŠãã ããããã®ã³ãã³ãã®åºåã« "command tx timeout" ã "Reading Intel version command failed" ã®ãããªãšã³ããªãååšããå ŽåãPC ã®é»æºãåãã黿ºã±ãŒãã«ãç©ççã«å€ããŠæ°ç§éæŸçœ®ããŠãã ãããããã«ãããã³ã³ãããŒã©ã«ãã¡ãŒã ãŠã§ã¢ãåããŒããããŸã (éåžžã®åèµ·åã§ã¯åããŒãããŸãã)ããã¡ãã®ãã°ã¬ããŒããåç
§ããŠãã ããã
ããã€ã¹ã rfkill ã«ãã£ãŠãããã¯ãããŠããªãããšã確èªããŠãã ããã
ãŸããäžéšã® Intel ã«ãŒã (8260 ãªã©) 㯠Bluetooth ãµãŒãã¹ã«ãã£ãŠæ£ããèªèãããªããããããŸãããbluez-utils ã®ä»£ããã«éæšå¥šã® bluez-deprecated-tools ã䜿ãããšã§ãã®åé¡ã解決ãããšããã±ãŒã¹ãå ±åãããŠããŸãã
ãŸããããã¯çé»åæ©èœãåå ãããããŸããããã®å Žåãbtusb.enable_autosuspend=n ã«ãŒãã«ãã©ã¡ãŒã¿ã«ãã解決ã§ããå¯èœæ§ããããŸããRed Hat Bugzilla â Bug 1573562 ãåç
§ããŠãã ããã
æã
ãbtusb ããªãã·ã§ã³ç¡ãã§ã¢ã³ããŒãã»ããŒãããã°ã³ã³ãããŒã©ãå
ã«æ»ããããšããããŸã:
# modprobe -r btusb # modprobe btusb
ãŸãããã³ã°ã«ã CSR ã¯ããŒã³ã§ããå Žåã«ããã®åé¡ãçºçããããšããããŸãã
rfkill unblock: Do not unblock
ããã€ã¹ããœãããããã¯ãããŠã㊠ConnMan ãåäœãããŠããå Žåãæ¬¡ã詊ããŠã¿ãŠäžãã:
$ connmanctl enable bluetooth
Bluetooth USB ãã³ã°ã«
USB ãã³ã°ã«ã䜿ãå Žåã¯ãBluetooth ãã³ã°ã«ãèªèãããŠããã確èªããŠãã ãããUSB ãã³ã°ã«ãæ¿å
¥ããæã« journalctl -f ã root ãšããŠå®è¡ãã(ããã㯠/var/log/messages.log ã調æ»ãã)ããšã§ããã®ããšã確èªã§ããŸãã以äžã®ãããªèŠãç®ã§ããã¯ãã§ã(hci ãèŠãŠãã ãã)ã
Feb 20 15:00:24 hostname kernel: [ 2661.349823] usb 4-1: new full-speed USB device number 3 using uhci_hcd Feb 20 15:00:24 hostname bluetoothd[4568]: HCI dev 0 registered Feb 20 15:00:24 hostname bluetoothd[4568]: Listening for HCI events on hci0 Feb 20 15:00:25 hostname bluetoothd[4568]: HCI dev 0 up Feb 20 15:00:25 hostname bluetoothd[4568]: Adapter /org/bluez/4568/hci0 has been enabled
æåã®2è¡ãã衚瀺ãããŠããªãã£ãå Žåãããã€ã¹ã¯èŠã€ãã£ãŠããŸããããã®ããã€ã¹ãç«ã¡äžããå¿ èŠããããŸãã äŸ:
# btmgmt
[mgmt]# info Index list with 1 item hci0: Primary controller addr 00:1A:7D:DA:71:10 version 6 manufacturer 10 class 0x000000 supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr hs le advertising secure-conn debug-keys privacy static-addr current settings: connectable discoverable bondable ssp br/edr le secure-conn name Mozart short name [mgmt]# select hci0 Selected index 0 [hci0]# power up hci0 Set Powered complete, settings: powered connectable discoverable bondable ssp br/edr le secure-conn [hci0]# info hci0: Primary controller addr 00:1A:7D:DA:71:10 version 6 manufacturer 10 class 0x1c0104 supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr hs le advertising secure-conn debug-keys privacy static-addr current settings: powered connectable discoverable bondable ssp br/edr le secure-conn
ãŸãã¯
# bluetoothctl
[bluetooth]# show Controller 00:1A:7D:DA:71:10 (public) Name: Mozart Alias: Mozart Class: 0x0000095c Powered: no Discoverable: yes Pairable: yes [bluetooth]# power on [CHG] Controller 00:1A:7D:DA:71:10 Class: 0x001c0104 Changing power on succeeded [CHG] Controller 00:1A:7D:DA:71:10 Powered: yes [bluetooth]# show Controller 00:1A:7D:DA:71:10 (public) Name: Mozart Alias: Mozart Class: 0x001c0104 Powered: yes Discoverable: yes Pairable: yes
å ¬åŒã®ä»æ§è¡šã«åŸã£ãŠãBluetooth ã®ããŒãžã§ã³ã HCI ã®ããŒãžã§ã³ã«ããããããŠããããšã確èªã§ããŸããäŸãã°ãå ã®åºåã§ã¯ãHCI version 6 ã Bluetooth version 4.0 ã§ãã
ããã€ã¹ãæ€åºãããŠããã確èªããããã« bluez-utils ã«å«ãŸããŠãã hcitool ã䜿ãããšãã§ããŸããæ¬¡ã®ã³ãã³ãã§å©çšå¯èœãªããã€ã¹ãšãã®èå¥åã»MAC ã¢ãã¬ã¹ã®ãªã¹ãã衚瀺ããããšãå¯èœã§ã:
$ btmgmt info
Index list with 1 item hci0: Primary controller addr 00:1A:7D:DA:71:10 version 6 manufacturer 10 class 0x1c0104 supported settings: powered connectable fast-connectable discoverable bondable link-security ssp br/edr hs le advertising secure-conn debug-keys privacy static-addr current settings: powered connectable discoverable bondable ssp br/edr le secure-conn
ããã€ã¹ã«é¢ãããã£ãšè©³çŽ°ãªæ
å ±ã¯ãéæšå¥šã® hciconfig ã䜿ãããšã§ååŸã§ããŸãã(bluez-utils-compatAUR)
$ hciconfig -a hci0
hci0: Type: USB
BD Address: 00:1B:DC:0F:DB:40 ACL MTU: 310:10 SCO MTU: 64:8
UP RUNNING PSCAN ISCAN
RX bytes:1226 acl:0 sco:0 events:27 errors:0
TX bytes:351 acl:0 sco:0 commands:26 errors:0
Features: 0xff 0xff 0x8f 0xfe 0x9b 0xf9 0x00 0x80
Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3
Link policy: RSWITCH HOLD SNIFF PARK
Link mode: SLAVE ACCEPT
Name: 'BlueZ (0)'
Class: 0x000100
Service Classes: Unspecified
Device Class: Computer, Uncategorized
HCI Ver: 2.0 (0x3) HCI Rev: 0xc5c LMP Ver: 2.0 (0x3) LMP Subver: 0xc5c
Manufacturer: Cambridge Silicon Radio (10)
ãã³ã°ã«ããçè·é¢ã«ãããšãã«ãªãŒãã£ãªããã€ã¹ããããããªã
ä»ã®ããã€ã¹ãšåäžã® USB ãã¹ããå ±æããŠããå ŽåããªãŒãã£ãªããã€ã¹ãšã®éä¿¡ã«å¹²æž ããå¯èœæ§ããããŸãããªãŒãã£ãªããã€ã¹ããã¹ã«æ¥ç¶ãããŠããå¯äžã®ããã€ã¹ã§ããããšã確èªããŠãã ãããäŸ:
$ lsusb
Bus 002 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 004: ID 048d:1345 Integrated Technology Express, Inc. Multi Cardreader Bus 001 Device 003: ID 0424:a700 Standard Microsystems Corp. 2 Port Hub 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
CSR ãã³ã°ã« 0a12:0001
ããã€ã¹ ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode) ã«ã¯ãªã°ã¬ãã·ã§ã³ã®ãã°ããããçŸåšãã«ãŒãã«ããŒãžã§ã³ 5.17 åã³ < 6.0 ã§ããåäœããŸããã詳现ã¯ãKernel Bug 60824 ãåç
§ããŠãã ããã
Logitech Bluetooth USB ãã³ã°ã«
Logitech ã®ãã³ã°ã«ã«ã¯ Embedded ãš HCI ãšããäºã€ã®ã¢ãŒãã§åäœãããã®ããããŸã (äŸ: Logitech MX5000)ãembedded ã¢ãŒãã§ã¯ãã³ã°ã«ã¯ USB ããã€ã¹ããšãã¥ã¬ãŒãããã®ã§ PC ã¯æ®éã® USB ããŠã¹ã»ããŒããŒãã䜿ã£ãŠãããšèªèããŸãã
USB BT ããã¬ã·ãŒãã®å°ããªèµ€ããã¿ã³ãæŒããšä»ã®ã¢ãŒããæå¹ã«ãªããŸããBT ãã³ã°ã«ã®èµ€ããã¿ã³ãæŒããªããã³ã³ãã¥ãŒã¿ã«æ¥ç¶ããŠãã ããããã¿ã³ãæŒããŠ3-5ç§ã§ãBluetooth ã¢ã€ã³ã³ãã·ã¹ãã ãã¬ã€ã«è¡šç€ºãããŸã (è°è«)ã
ãŸããbluez-hid2hci ããã±ãŒãžãã€ã³ã¹ããŒã«ããããšãã§ããŸããLogitech ã®ãã³ã°ã«ãæ¥ç¶ãããšèªåçã«åãæ¿ããŸãã
Foxconn / Hon Hai / Lite-On ã® Broadcom ããã€ã¹
äžéšã®ããã€ã¹ã§ã¯ãèµ·åæã«ãã¡ãŒã ãŠã§ã¢ãæžã蟌ãå¿ èŠããããŸãã
äžéšã®ãã¡ãŒã ãŠã§ã¢ã¯ãAUR ã§ broadcom ãšæ€çŽ¢ãããšå ¥æã§ããŸããç¹åºãã¹ãããã±ãŒãžã¯ broadcom-bt-firmwareAUR ã§ããããã¯ãæ§ã ãªã«ãŒãçšã®ãã¡ã€ã«ãæäŸããŸãã
ãŸãã¯ãhex2hcd (bluez-utils ã§ã€ã³ã¹ããŒã«ãããŸã) ã䜿ã£ãŠãã¡ãŒã ãŠã§ã¢ã Microsoft Windows ã® .hex ãã¡ã€ã«ãã .hcd ãã¡ã€ã«ã«å€æããããšãã§ããŸãã
æ£ãã .hex ãã¡ã€ã«ãååŸããããã«ãlsusb ã§ããã€ã¹ã® vendor:product ã³ãŒããæ€çŽ¢ããŠãã ãããäŸ:
Bus 002 Device 004: ID 04ca:2006 Lite-On Technology Corp. Broadcom BCM43142A0 Bluetooth Device
ãŸãã¯:
Bus 004 Device 004: Id 0489:e031 Foxconn / Hon Hai
ãããã¯ãWindows (ä»®æ³ãã·ã³ã§ãããŸããŸãã) ãèµ·åã㊠Device Manager ãŠãŒãã£ãªãã£ãããã¡ãŒã ãŠã§ã¢ã®ååãååŸããŠãã ãããããã€ã¹ã®ã¢ãã«ãç¥ãããã®ã« lsusb ã§è¡šç€ºãããªãå Žåãlsusb -v ã® iProduct ã§ãããããšããããŸãã
.hex ãã¡ã€ã«ã¯ããŠã³ããŒããã Windows ãã©ã€ããŒããæœåºããããšãã§ããŸããWindows ãå®è¡ããå¿
èŠã¯ãããŸãããé©åãªãã©ã€ããŒãããŠã³ããŒãããŠãã ãã (äŸãã°ãBluetooth Widcomm[ãªã³ã¯åã 2023-09-16])ããã©ãŒãããã«ãäŸããŸããããã¡ã€ã«ã®å±éã«ã¯unrar ã cabextract ãå¿
èŠã§ããå ŽåããããŸãã倿°ã® .hex ãã¡ã€ã«ã®äžããå¿
èŠãªãã¡ã€ã«ãèŠã€ããã«ã¯ãWin32/bcbtums-win7x86-brcm.inf ãã¡ã€ã«ã®äžèº«ã確èªã㊠[RAMUSBE031.CopyList] ãæ€çŽ¢ããŠãã ãããE031 ã¯ããªãã®äœ¿ã£ãŠããããã€ã¹ã® product ã³ãŒã (倧æå) ã«çœ®ãæããŠäžãã (lsusb ã§ç¢ºèªã§ãã2çªç®ã®16鲿°)ããã®äžã«ãå¿
èŠãª .hex ãã¡ã€ã«ã®ååãæžãããŠããã¯ãã§ãã
.hcd ãã¡ã€ã«ãæã«å
¥ãããã/lib/firmware/brcm/BCM.hcd ã«ã³ããŒããŠãã ãã - ãã®ãã¡ã€ã«å㯠dmesg ããããããŸããããªãã®ãã·ã³ã§ã¯ç°ãªã£ãŠããå¯èœæ§ããããã dmesg ã®åºåã§ç¢ºèªããŠãã ããããã㊠btusb ã¢ãžã¥ãŒã«ããªããŒãããŠãã ãã:
# rmmod btusb # modprobe btusb
ããã§ããã€ã¹ã䜿ããããã«ãªãã¯ãã§ãã以äžã®èšå®ãæ°žç¶åãããæ¹æ³ã¯ BBS#162688 ãåç §ã
Intel ã®è€å WiFi ãš Bluetooth ã«ãŒã
ãããã¯ãŒã¯èšå®/ã¯ã€ã€ã¬ã¹#Bluetooth ã®å ±å ãèŠãŠãã ããã
Windows ãšã®ãã¥ã¢ã«ããŒãç°å¢ã«ããã Mediatek MT7921 ã MT7961
ãã¥ã¢ã«ããŒãã·ã¹ãã ã§ã¯ãBluetooth ã®ãã¡ãŒã ãŠã§ã¢ããŒãžã§ã³ã Windows ãš Linux ãšã§ç°ãªãå ŽåãWindows ãèµ·åããåŸã« Bluetooth ã¢ããã¿ãåäœããªããªããŸãã
ãããé²ãæãè¯ãæ¹æ³ã¯ãå OS çšã® Bluetooth ãã©ã€ã (ç¹ã«ãã¡ãŒã ãŠã§ã¢) ãææ°ã«ããããšã§ãã
Windows çšã®ææ°ããŒãžã§ã³ã®ãã©ã€ã (ãŸãã¯ãã¡ãŒã ãŠã§ã¢) ãèŠã€ããããªãå Žåãææ°ã®ãã¡ãŒã ãŠã§ã¢ãã¡ã€ã« /usr/lib/firmware/mediatek/BT_RAM_CODE_MT7961_1_2_hdr.bin.xz ã Arch Linux ããã³ããŒããWindows ãžå±éããããšãã§ããŸã (äŸãã°ãC:\WINDOWS\system32\DRIVERS\ãWindows ã§ã®ãã¡ãŒã ãŠã§ã¢ãã¡ã€ã«ãžã®ãã¹ã¯ããã€ã¹ãããŒãžã£ãã確èªã§ããŸã)ã
ãµã¹ãã³ã/埩垰åŸã«ã¢ããã¿ãæ¶ãã
ãŸããã¢ããã¿ã®ãã³ããŒãšè£œå ID ãèŠã€ããŠãã ãããäŸ:
First, find vendor and product ID of the adapter. For example:
$ lsusb -tv
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M
ID 1d6b:0002 Linux Foundation 2.0 root hub
...
|__ Port 3: Dev 3, If 0, Class=Wireless, Driver=btusb, 12M
ID 8087:0025 Intel Corp.
|__ Port 3: Dev 3, If 1, Class=Wireless, Driver=btusb, 12M
ID 8087:0025 Intel Corp.
...
ãã®å Žåããã³ã㌠ID 㯠8087 ã§ã補å ID 㯠0025 ã§ãã
次ã«ã usb_modeswitch ã䜿çšããŠã¢ããã¿ããªã»ããããŸã:
# usb_modeswitch -R -v vendor_ID -p product_ID
ãã¢ãªã³ã°ãšæ¥ç¶ã®åé¡
ã³ã³ãã¥ãŒã¿ã衚瀺ãããªã
æºåž¯ããã³ã³ãã¥ãŒã¿ã衚瀺ãããªããšãã¯ãdiscoverable ã¢ãŒããæå¹ã«ããŠãã ãã:
# bluetoothctl discoverable on
discoverable ã¢ãŒãããªã³ã«ãªã£ãŠããããšã確èªããŠãã ãã:
# bluetoothctl show
Powered: yes Discoverable: yes Pairable: yes
/etc/bluetooth/main.conf ã® PairableTimeout ãš DiscoverableTimeout ã確èªããŠãã ããããŸã ã³ã³ãã¥ãŒã¿ã衚瀺ãããªãå Žåã以äžã®ããã« /etc/bluetooth/main.conf å
ã®ããã€ã¹ã¯ã©ã¹ã倿ŽããŠã¿ãŠäžãã:
# Default device class. Only the major and minor device class bits are # considered. #Class = 0x000100 # Computer Type (from default config) Class = 0x100100 # (Object-Transfer Service & Computer Type)
main.conf å
ã® Class ã¯ããã€ã¹ã®åæååŸã«äžæžããããŸãããªã®ã§ãhciconfig hci0 class 100100 ã®ããã«ã¯ã©ã¹ãçŽæ¥èšå®ããŠãã ããããããŠãŒã¶ã¯ãæºåž¯ããã³ã³ãã¥ãŒã¿ãèŠãããããã«ããããã«ã¯ããããããç¡ããšå ±åããŠããŸããLG TV(ãããŠãäžéšã®ä»ã®æ©åš)ã¯ãªãŒãã£ãªããã€ã¹ããçºèŠå¯èœã§ãããªã®ã§ã000414 (soundbar ã¯ã©ã¹)ã䜿çšããããšã§ãã®ãããªããã€ã¹ãçºèŠã§ããããã«ã§ããŸãã
Bluetooth ããã€ã¹/ãµãŒãã¹ã®ã¯ã©ã¹ãçæããã«ã¯ https://bluetooth-pentest.narod.ru/software/bluetooth_class_of_device-service_generator.html ãèŠãŠãã ããã
ããã€ã¹ãæ¥ç¶ããæ°ç§åŸã«åæããŠããŸã
ããã€ã¹ãæ¥ç¶ããããåŸã«åæãçºçãããžã£ãŒãã«ã®åºåã«ä»¥äžã®ãããªã¡ãã»ãŒãžã確èªã§ããå Žå:
bluetoothd: Unable to get connect data for Headset Voice gateway: getpeername: Transport endpoint is not connected (107) bluetoothd: connect error: Connection refused (111)
ããããå¥ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§åäžã® Bluetooth ã¢ããã¿ã䜿ã£ãŠããã€ã¹ããã¢ãªã³ã°ãããŠããããšãåå ã§ã (äŸ: ãã¥ã¢ã«ããŒã)ãäžéšã®ããã€ã¹ã¯åäžã® MAC ã¢ãã¬ã¹ (äŸ: Bluetooth ã¢ããã¿) ã«å¯ŸããŠè€æ°ã®ãã¢ãªã³ã°ãé¢é£ä»ããå Žåã«å¯ŸåŠã§ããŸããããã®åé¡ã解決ããã«ã¯ #ãã¥ã¢ã«ããŒããã¢ãªã³ã° ã®æç€ºã«åŸã£ãŠãã ããã
ã¹ãã£ã³ããŠãããã€ã¹ã衚瀺ãããªã
Bluetooth Low Energy ã䜿çšããŠããããã€ã¹ã¯ bluetoothctl ã§ã¹ãã£ã³ããŠã衚瀺ãããªãããšããããŸã (äŸ: Logitech MX Master)ãtransport le ã䜿ã£ãŠã¹ãã£ã³ããããšãã§ããŸãã
# bluetoothctl
[bluetooth]# menu scan [bluetooth]# transport le [bluetooth]# back [bluetooth]# scan on [bluetooth]# devices ... Device XX:XX:XX:XX:XX:XX DA V2 X <---- äœæ¶è²»é»åãªããã€ã¹
ããäžã€ã®æ¹æ³ã¯ãbluez-utils-compatAUR ãã€ã³ã¹ããŒã«ããbluetooth.service ãéå§ãã以äžãå®è¡ããããšã§ã:
# bluetoothctl
[NEW] Controller (MAC) myhostname [default] [bluetooth]# power on [CHG] Controller (MAC) Class: 0x0c010c Changing power on succeeded [CHG] Controller (MAC) Powered: yes [bluetooth]# scan on Discovery started [CHG] Controller (MAC) Discovering: yes
ä»ã®ã¿ãŒããã«ã§:
# hcitool lescan
ããã€ã¹ã衚瀺ããããŸã§åŸ
æ©ããŠãã hcitool ã Ctrl+c ã§éããŠãã ãããbluetoothctl ããããã€ã¹ãèªèããããéåžžéãã«ãã¢ãªã³ã°ã§ããŸãã
Intel Corp. AX200 Bluetooth ã§ BLE ããã€ã¹ãèŠã€ãããªã
ã©ãããããã®ããã€ã¹ã§ã¯ BLE ã®ããã·ãã¹ãã£ã³ãå£ããŠããããã§ãã詳现ã¯äžæµã®ãã°ã¬ããŒããèŠãŠãã ããã
ã¹ãªãŒãåŸã«åæ¥ç¶ã§ããªã
ã¹ãªãŒãåŸããã³ã³ãã¥ãŒã¿ãã¹ãªãŒããã埩垰ããåŸã«ãããã€ã¹ãèªåçã«åæ¥ç¶ãããªãããšããããŸãã
ãã®æããã°ã«ä»¥äžã®ãšã©ãŒãèšé²ãããŸã:
bluetoothd[487]: Authentication attempt without agent bluetoothd[487]: Access denied: org.bluez.Error.Rejected
ããã¯ãããã€ã¹ã trusted ãšããŠããŒã¯ãããŠããªãããšãåå ã§ãã#ãã¢ãªã³ã° ãåç §ããŠãã ããã
ããã€ã¹åºæã®åé¡
Bluetooth ããŠã¹ã®ã©ã° / æ¥ç¶æ / å¿çãªã
Bluetooth ããŠã¹#ãã©ãã«ã·ã¥ãŒãã£ã³ã° ãåç §ããŠãã ããã
ãªãŒãã£ãªããã€ã¹ã br-connection-profile-unavailable ã§æ¥ç¶ã«å€±æãã
PipeWire (pulseaudio-bluetooth ã§ã¯ãªã) ã䜿çšãããŠããããPipeWire ã®ã€ã³ã¹ã¿ã³ã¹ãå®è¡ãããŠããªãå Žåãbluetooth ãªãŒãã£ãªããã€ã¹ã¯æ¥ç¶ã«å€±æããŸããPipeWire ããŒã¢ã³ãéå§ããã«ã¯ãpipewire.service ãŠãŒã¶ãŒãŠããããéå§ããããäœããã®é³å£°ãåçããŠãã ããããã®åŸããªãŒãã£ãªããã€ã¹ãããäžåºŠæ¥ç¶ããŠã¿ãŠãã ããã
ããããã³ãšããŠã¹ã®å¹²æž
Bluetooth ããŠã¹ãšããŒããŒããåæã«äœ¿çšããŠãããšãã«é³å£°ãéåããå Žå㯠#23 https://bugs.launchpad.net/ubuntu/+source/bluez/+bug/424215 ã§åç §ãããŠããããã«ã次ã詊ããŠãã¿ãŠã ãã:
# hciconfig hci0 lm ACCEPT,MASTER # hciconfig hci0 lp HOLD,SNIFF,PARK
TP-LINK UB400 ãš Xbox ã®ã³ã³ãããŒã©ãæ¥ç¶/åæãç¹°ãè¿ã
以äžã®èšå®ã䜿çšããŠãã ãã:
/etc/bluetooth/main.conf
... [General] JustWorksRepairing = always FastConnectable = true Class = 0x000100 ... [GATT] ReconnectIntervals=1,1,2,3,5,8,13,21,34,55 AutoEnable=true ...
ãããŠãbluetooth.service ãåèµ·åããŠãã ããã
é¢é£ãã xpadneo ã«é¢ããè°è«ãèŠãããšãã§ããŸãããxpadneo ã®ãã©ã€ãã¯å¿ èŠãããŸããã
ãã¡ã€ã«è»¢éã®åé¡
gnome-bluetooth
bluetooth-properties ã§ãã¡ã€ã«ã®åä¿¡ãæå¹ã«ããããšãããšãã«ä»¥äžã®ã¡ãã»ãŒãžã衚瀺ãããå Žå:
Bluetooth OBEX start failed: Invalid path Bluetooth FTP start failed: Invalid path
XDG ãŠãŒã¶ãŒãã£ã¬ã¯ããªãååšããããšã確èªããŠãã ããã
ã·ã³ããªãã¯ãªã³ã¯ã®ããã§ã転éããããã¡ã€ã«ãåä¿¡ã§ããªã
æå¹ãª Bluetooth æ¥ç¶ã§ãã¡ã€ã«ã®åä¿¡ã«å€±æããå Žåãåé¡ã¯ãã¡ã€ã«ã®è»¢éãã¹å ã®ã·ã³ããªãã¯ãªã³ã¯ã§ããå ŽåããããŸãããžã£ãŒãã«ã«ä»¥äžã®ãããªãã°ãçŸããŸã:
Jun 18 11:18:13 ember obexd[3338969]: open(/home/me/.cache/obexd/MOC740): Operation not permitted (1)
ãšã©ãŒã¡ãã»ãŒãžã«è¡šç€ºãããããã¹å
ã«ã·ã³ããªãã¯ãªã³ã¯ãå«ãŸããŠããå Žåãobexd ã¯ããã©ã«ãã§ãããæåŠããŸãããã®æåã¯ãããããã€ã³ãã¡ã€ã«ã obex.service ãŠãŒã¶ãµãŒãã¹ã«å¯ŸããŠäœ¿ãããšã«ããåæåæã«äžæžãã§ããŸã:
~/.config/systemd/user/obex.service.d/10-symlink.conf
[Service] ExecStart= ExecStart=/usr/lib/bluetooth/obexd --symlinks
ãã®åŸããŠãŒã¶ã® systemd ãããŒãžã£ã®èšå®ããªããŒãããobex.service ãŠãŒã¶ãŠããããåèµ·åããŠãã ããã