J'ai créé un script pour activer mon pilote Bluetooth. J'ai ensuite utilisé rc.local pour l'exécuter à partir du démarrage. Mais ça ne fonctionne pas.
Lors de l'exécution de la commande systemctl status rc-local.service
Je reçois:
Failed to issue method call: no such interface 'org.freedesktop.DBus.Properties'
on object at path /org/freedesktop/systemd1/unit/rc_2dlocal_2eservice
Ce que je devrais obtenir est quelque chose qui ressemble à ceci :
rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/lib/systemd/system/rc-local.service; static; vendor preset: enabled)
Drop-In: /lib/systemd/system/rc-local.service.d
└─debian.conf
Active: active (running) since Mon 2018-04-02 10:39:44 -03; 1s ago
Process: 2044 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)
Main PID: 2049 (svscanboot)
Tasks: 3
Memory: 556.0K
CPU: 10ms
CGroup: /system.slice/rc-local.service
Tous mes fichiers sont exécutables (
chmod 755 [filename]
), et j'ai vérifié que le rc.local devrait fonctionner avecSudo /etc/init.d/rc.local start
etSudo /etc/rc.local start
.
Y a-t-il quelque chose qui me manque?
Fichier rc.local actuel:
#!/bin/sh -e
#
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/home/[redacted]/Desktop/rtl8723bs_bt/start_bt.sh
exit 0
Contenu du start_bt.sh
#!/bin/bash
#
# Shell script to install Bluetooth firmware and attach BT part of
# RTL8723BS
#
if [ "$1" = "" ]
then
# Find the TTY attached to the BT device
TTYSTRING=`dmesg -t | grep tty | grep MMIO | cut -b 14-18`
TTY=`expr substr "$TTYSTRING" 1 5`
if [ "$TTYSTRING" = "" ]
then
echo
echo "No BT TTY device has been found"
echo "Either this computer has no BT device that uses hciattach, or"
echo "Your kernel does not have module 8250_dw configured."
echo "Note: The configuration variable is CONFIG_SERIAL_8250_DW."
echo
exit 1
fi
else
# Use the TTY device mentioned oi the call
TTY=$1
fi
TTY="/dev/$TTY"
echo "Using device $TTY for Bluetooth"
if [ ! -f /lib/firmware/rtl_bt/rtlbt_config ];
then
mkdir -p /lib/firmware/rtl_bt/
cp rtlbt_* /lib/firmware/rtl_bt/.
fi
./rtk_hciattach -n -s 115200 $TTY rtk_h5 > hciattach.txt 2>&1 &
Selon Ce message sur le forum le problème pourrait être dû aux échecs de mise à niveau des distributions. Après avoir converti mon disque physique en un VM et l'avoir mis à jour, il a fonctionné avec un script de test: test.sh
echo run > run.txt
J'ai ensuite remis mon script d'origine et cela n'a toujours pas fonctionné. Suivre les conseils de Wazoox :
Oui, évidemment, le script "start_bt" copie les fichiers et exécute les commandes à partir d'un endroit défini qui n'est pas/(à partir duquel /etc/rc.local est exécuté). Vous devriez probablement ajouter une ligne comme celle-ci: cd/home/[caviardé]/Desktop/rtl8723bs_bt/juste après l'écho de la ligne "Utilisation de l'appareil $ TTY pour Bluetooth"
En ajoutant cd/home/[caviardé]/Desktop/rtl8723bs_bt/au script a résolu le problème de ne pas fonctionner. Pour résoudre ce problème sur l'ordinateur physique, je devrai réinstaller Ubuntu, ce qui n'était pas un problème pour moi.
Je réécris mon commentaire en réponse:
Le script "start_bt" copie les fichiers et exécute les commandes à partir d'un emplacement défini qui n'est pas/(à partir duquel /etc/rc.local est exécuté). Vous devez ajouter une ligne comme celle-ci:
cd /home/[redacted]/Desktop/rtl8723bs_bt/
juste après la ligne
echo "Using device $TTY for Bluetooth"
Pour que toutes les commandes soient exécutées dans le bon dossier.