실행할 때 sudo hcitool lescan
다음을 얻습니다.
Set scan parameters failed: Input/output error
동글 컨트롤러에 대한 명령을 실행 bluetoothctl
하고 사용할 때 "Powered: No"라는 것을 확인했습니다. show
전원을 켜면 sudo hcitool lescan
예상대로 작동합니다.
ArchLinux에서 다음 Bluetooth 스택을 사용하고 있습니다.
~ ❯❯❯ pacman -Qs bluetooth
extra/bluez 5.43-2
Daemons for the bluetooth protocol stack
extra/bluez-firmware 1.2-8
Firmwares for Broadcom BCM203x and STLC2300 Bluetooth chips
extra/bluez-libs 5.43-2
Deprecated libraries for the bluetooth protocol stack
extra/bluez-utils 5.43-2
Development and debugging utilities for the bluetooth protocol stack
extra/gnome-bluetooth 3.20.0+6+g3bac4f9-1
The GNOME Bluetooth Subsystem
extra/pulseaudio-bluetooth 10.0-2
Bluetooth support for PulseAudio
community/python2-pybluez 0.22-2
Python wrapper for the BlueZ Bluetooth stack
extra/sbc 1.3-1
Bluetooth Subband Codec (SBC) library
플러그 앤 플레이를 수정하고 연결 시 Bluetooth 컨트롤러에 전원을 공급하는 방법이 있습니까? (연결된 상태로 두면 부팅 후 예상대로 작동하므로 연결을 끊을 필요가 없습니다.)
답변1
장치가 컴퓨터에 연결되면 자동으로 bluetoothctl 프로그램을 사용하여 장치의 전원을 켤 수 있습니다.
더 나은 옵션은 스크립트하기 쉬운 것을 사용하는 것입니다. Bluetoothctl에서는 명령을 표준 입력으로 에코해야 하는데, 이는 약간 이상합니다.
연결된 장치를 감지하기 위한 udev 규칙은 이를 처리할 수 있어야 합니다.
Bluetooth 무선 기능이 내장된 기계에서는 hci0
외부 Bluetooth 어댑터가 아닌 내장 Bluetooth 어댑터를 의미할 가능성이 높습니다.
이 경우 다음 파일 내용을
hci0
교체하십시오 .hci1
이 파일을 생성합니다:/etc/udev/rules.d/10-local.rules
콘텐츠:
ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig %k up"
그래도 작동하지 않으면 bluetoothctl 스크립팅을 시도해 볼 수 있습니다.
udev 규칙은 다음과 같습니다:
ACTION=="add", KERNEL=="hci0", RUN+="/usr/local/bin/PowerOnBluetooth"
이 파일을 생성합니다:/usr/local/bin/PowerOnBluetooth
콘텐츠:
#!/bin/bash
echo -e 'power on\nquit\n' | bluetoothctl
파일을 실행 파일로 표시하는 것을 잊지 마세요.
chmod +x /usr/local/bin/PowerOnBluetooth
원천: