Onde devo colocar 'hciconfig hci0 up' para iniciar

2

Desejo ativar o dispositivo Bluetooth quando o sistema estiver ativo.

Qual é a maneira recomendada de fazer isso?

O comando é sudo hciconfig hci0 up .

Devo colocar em /etc/rc.local ? ou devo usar update-rc.d ?

Se não houver uma maneira "correta" de fazer isso, escolherei o caminho com /etc/rc.local .

Obrigado.

Editar

Seguindo a resposta do @krt, adicionei o comando @reboot cronjob, mas hci0 ainda estão inativos ao reinicializar. De acordo com /var/log/syslog , o trabalho está sendo executado corretamente.

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)
    
por ironsand 24.05.2015 / 11:09

4 respostas

1

Seu sistema está iniciando bluetoothd na inicialização? Se sim, você deve verificar sua configuração: pode estar substituindo as configurações que você faz com hciconfig quando ele é inicializado.

Por exemplo, a seção [Policy] do meu /etc/bluetooth/main.conf tem uma configuração AutoEnable , cujo padrão é false . Se você definir como true , todas as interfaces Bluetooth serão ativadas automaticamente por bluetoothd .

Se você quer um controle mais refinado do que isso, você pode ter que usar bluetoothctl ou algum outro comando (depende da sua versão BlueZ).

    
por 30.01.2018 / 11:30
0

com a unidade systemd , crie, por exemplo, /usr/lib/systemd/system/bluetooth-audio.service e adicione After=bluetooth.target , para que a unidade inicie logo após bluetooth.target ter sido atingida e BindsTo=bluetooth.target para fazer com que ela falhe quando bluetooth.target falhou:

#!/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 e systemctl start bluetooth-audio.service trazem a unidade para cima. o problema é que executar scripts de udev é bastante inútil, enquanto não há bluetooth ainda. aqui estão os bluetooth_connect correspondentes (meu) e bluetooth_disconnect scripts de shell.

    
por 23.11.2017 / 21:08
-1

Em vez de usar /etc/rc.local ou update-rc-d você simplesmente criará um novo @reboot cronjob. Para fazer isso, abra o crontab do root com:

sudo crontab -u root -e

Adicione o seguinte a ele:

@reboot hciconfig hci0 up 

Crontabs @reboot executa o trabalho uma vez em cada inicialização e reinicialização.

    
por 24.05.2015 / 11:56
-1

Coloque o seguinte em /etc/cron.d/<yourfilename>

#enable BT
@reboot root hciconfig hci0 up
    
por 03.09.2017 / 05:21