시작하려면 `hciconfig hci0 up`을 어디에 넣어야 하나요?

시작하려면 `hciconfig hci0 up`을 어디에 넣어야 하나요?

시스템 시작 시 블루투스 장치를 활성화하고 싶습니다.

권장되는 접근 방식은 무엇입니까?

명령은 입니다 sudo hciconfig hci0 up.

넣어야 할까요 /etc/rc.local? 아니면 을 사용해야 합니까 update-rc.d?

이를 수행하는 "올바른" 방법이 없다면 을 선택하겠습니다 /etc/rc.local.

감사해요.

편집하다

@krt의 답변에 따라 @reboot cronjob을 추가했지만 hci0재부팅 시 여전히 종료됩니다. /var/log/syslog작업이 올바르게 실행되는지 여부 에 따라 다릅니다 .

1136 May 24 11:17:20 klein /usr/sbin/cron[2107]: (CRON) INFO (pidfile fd = 3)
1137 May 24 11:17:20 klein /usr/sbin/cron[2108]: (CRON) STARTUP (fork ok)
1138 May 24 11:17:20 klein /usr/sbin/cron[2108]: (CRON) INFO (Running @reboot jobs)

답변1

시스템이 bluetoothd자동으로 시작됩니까? 그렇다면 해당 구성을 확인해야 합니다. hciconfig시작 시 구성한 설정을 재정의할 수 있습니다.

예를 들어 [Policy]my 섹션 의 기본값 /etc/bluetooth/main.conf은 . 로 설정하면 모든 블루투스 인터페이스가 자동으로 활성화됩니다 .AutoEnablefalsetruebluetoothd

이보다 더 세밀한 제어를 원할 경우 bluetoothctlBlueZ 버전에 따라 또는 다른 명령을 사용해야 할 수도 있습니다.

답변2

그리고시스템 장치예를 들어 장치가 도착하자마자 시작되고 실패하면 실패하도록 만들고 /usr/lib/systemd/system/bluetooth-audio.service추가합니다 .After=bluetooth.targetbluetooth.targetBindsTo=bluetooth.targetbluetooth.target

#!/bin/sh
[Unit]
Description=Bluetooth Audio Connect
ConditionPathIsDirectory=/sys/class/bluetooth
After=bluetooth.target
BindsTo=bluetooth.target

[Service]
ExecStart=/home/scripts/bluetooth_connect.sh
Type=simple

systemctl daemon-reload그리고 systemctl start bluetooth-audio.service장치를 시작하세요. 문제는 udev블루투스 없이는 스크립트를 실행하는 것이 아직 쓸모가 없다는 것입니다. 이것은 해당 (광산)입니다블루투스 연결그리고블루투스 연결이 끊어졌습니다.쉘 스크립트.

답변3

저는 Ubuntu 20.04 LTS를 사용하고 있으며 systemd.service를 사용하여 부팅 시 hciconfig 스크립트를 로드하고 있습니다.

  1. /usr/bin/ 아래에 스크립트를 저장합니다.

     sudo cat /usr/bin/hciconfig_bt.sh
     #! /bin/bash
    
     # 'Interference between Headphones and Mouse' fix
    
     # from https://wiki.archlinux.org/index.php/Bluetooth#Interference_between_Headphones_and_Mouse
    
     hciconfig hci0 lm ACCEPT,MASTER
    
     hciconfig hci0 lp HOLD,SNIFF,PARK`
    
  2. systemd.service 유닛을 생성하고 /etc/systemd/system/으로 이동합니다.

cat /etc/systemd/system/hciconfig_bt.service
[Unit]
Description=Bluetooth Mouse & Headphone Interference Fix systemd service.

[Service]
Type=forking
ExecStart=/bin/bash /usr/bin/hciconfig_bt.sh

[Install]
WantedBy=multi-user.target
  1. chmod +x스크립트 및 systemd.service 단위에 대해 이 작업을 수행해야 합니다 .

  2. 성공을 보장하기 위해 실행하십시오 systemctl start 'your systemd.service unit'.

  3. 마지막으로 systemctl enable 'your systemd.service unit'시작 시 장치를 호출하기 위해 실행합니다.

systemd.service에 대해 잘 모르신다면 먼저 다음 글을 확인해 보세요.

https://www.linode.com/docs/quick-answers/linux/start-service-at-boot/ https://www.freedesktop.org/software/systemd/man/systemd.service.html

답변4

다음 내용을 넣어주세요/etc/cron.d/<yourfilename>

#enable BT
@reboot root hciconfig hci0 up

관련 정보