Stap 5: Setup het script dat wordt uitgevoerd wanneer een Bluetooth-apparaat verbinding maakt
Laten we eerst setup een regel in onze udev die stelt dat wanneer een apparaat verbinding maakt, onze script zal worden uitgevoerd. Voer de volgende opdracht om de udev regellijst te openen.
sudo nano /etc/udev/rules.d/99-input.rules
Er moet gewoon een enkele lijn er die lijkt op:
Subsysteem "=="input", groep ="input", MODE ="0660"
Eronder, laten we doorgaan en voeg de volgende regel:
KERNEL == "input [0-9] *", stelt in werking +="/ usr/lib/udev/bluetooth"
Opslaan en sluiten.
Nu laten we het script dat de bovenstaande regel bestand referencement daadwerkelijk te besparen. Eerste controle om te zien of een udev / map bestaat. Doen sudo ls-la /usr/lib/udev . Als het niet bestaat ga je gang en maken het zo: sudo mkdir /usr/lib/udev
sudo nano /usr/lib/udev/bluetooth
Kopiëren en plakken (of type het uit als je pech hebt) het volgende script in uw terminal.
Opmerking: Ik heb niet schrijven dit script alleen. Ik vond het tijdens onderzoek (waarom het wiel opnieuw uitvinden als niet nodig) en bewerkt om te werken op de manier ik het nodig had om te zo vriendelijk mogelijk, Bluetooth-wijs.
#! / bin/bash ACTIE = $(expr "$ACTION": "\([a-zA-Z]\+\).*") # Uitschakelen BT Ontdek modus voordat u bestaande BT-apparaat aansluit op de audio # Stel de audio-uitgang op de analoge # Volumeniveau instellen op 100 procent
#change als u geen gebruik van standaard analoge audio-uitgang maken.
#THIS werkte niet voor mijn PI dus ik toegevoegd een amixer opdracht hieronder
AUDIOSINK = "alsa_output.platform-bcm2835_AUD0.0.analog-stereo"
echo "uitvoeren van bluetooth script... | $ACTION| ">> /var/log/bluetooth_dev
Als ["$ACTION" = "Voeg toe"]
vervolgens
hciconfig hci0 noscan
# DEZE REGEL UIT ALS U WILT OUTPUT AUDIO VIA HDMI COMMENTAAR
amixer cset numid = 3 1
amixer set Master 100%
pacmd set-wastafel-volume 0 65537
voor dev in $(vinden van /sys/devices/virtual/input / - naam input *) slaap 1 Bevestig ='sudo -u pi pactl lijst korte | grep $bluez_dev'
doen
Als [-f "$dev/naam"]
vervolgens
Mac = $(cat "$dev/name" | sed 's/:/_/g')
bluez_dev = bluez_source. $mac
Als [! - z "$CONFIRM"]
vervolgens
echo "bluez_source in te stellen: $bluez_dev" >> /var/log/bluetooth_dev
ECHO pactl belasting-module module-loopback bron = $bluez_dev wastafel = $AUDIOSINK rate = 44100 adjust_time = 0 >> /var/log/bluetooth_dev
sudo -u pi pactl belasting-module module-loopback bron = $bluez_dev wastafel = $AUDIOSINK rate = 44100 adjust_time = 0 >> /var/log/bluetooth_dev
fi
fi
gedaan
fi
Als ["$ACTION" = "Verwijder"]
vervolgens
# Zet bluetooth ontdekking als apparaat verbinding wordt verbroken
sudo hciconfig hci0 piscan
fi
Sparen en ga weg! Nu laten we het wijzigen van de machtigingen van het bestand om het te maken uitvoerbaar.
sudo chmod 774 /usr/lib/udev/bluetooth
Geweldig! De Raspberry PI is nu geschikt voor het afspelen van Bluetooth audio via A2DP! Whoo! Nu laten we gaan een stap verder door te draaien op detectiemodus en automatisch accepteren van verbindingen rechts wanneer de PI automatisch in de opdrachtregel logt.