-
-
Save sergeygalkin/fac6a61a9d126a3460fbfa2b502dc542 to your computer and use it in GitHub Desktop.
Adding Bluetooth support to ArchLinux ARM's Raspberry Pi 4 version
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# /lib/udev/rules.d/90-pi-bluetooth.rules | |
# Copied from https://github.com/RPi-Distro/pi-bluetooth/blob/master/lib/udev/rules.d/90-pi-bluetooth.rules | |
# Raspberry Pi bluetooth module: enable routing of SCO packets to the HCI interface | |
ACTION=="add", SUBSYSTEM=="bluetooth", KERNEL=="hci[0-9]", TAG+="systemd", ENV{SYSTEMD_WANTS}+="bthelper@%k.service" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# /etc/udev/rules.d/99-serial.rules | |
# Copied from Raspbian's 99-com.rules | |
KERNEL=="ttyAMA[01]", PROGRAM="/bin/sh -c '\ | |
ALIASES=/proc/device-tree/aliases; \ | |
if cmp -s $ALIASES/uart0 $ALIASES/serial0; then \ | |
echo 0;\ | |
elif cmp -s $ALIASES/uart0 $ALIASES/serial1; then \ | |
echo 1; \ | |
else \ | |
exit 1; \ | |
fi\ | |
'", SYMLINK+="serial%c" | |
KERNEL=="ttyS0", PROGRAM="/bin/sh -c '\ | |
ALIASES=/proc/device-tree/aliases; \ | |
if cmp -s $ALIASES/uart1 $ALIASES/serial0; then \ | |
echo 0; \ | |
elif cmp -s $ALIASES/uart1 $ALIASES/serial1; then \ | |
echo 1; \ | |
else \ | |
exit 1; \ | |
fi \ | |
'", SYMLINK+="serial%c" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# /usr/bin/btuart | |
# Based on https://github.com/RPi-Distro/pi-bluetooth/blob/master/usr/bin/btuart | |
HCIATTACH=/usr/bin/btattach | |
if grep -q "Pi 4" /proc/device-tree/model; then | |
BDADDR= | |
else | |
SERIAL=`cat /proc/device-tree/serial-number | cut -c9-` | |
B1=`echo $SERIAL | cut -c3-4` | |
B2=`echo $SERIAL | cut -c5-6` | |
B3=`echo $SERIAL | cut -c7-8` | |
BDADDR=`printf b8:27:eb:%02x:%02x:%02x $((0x$B1 ^ 0xaa)) $((0x$B2 ^ 0xaa)) $((0x$B3 ^ 0xaa))` | |
fi | |
uart0="`cat /proc/device-tree/aliases/uart0`" | |
serial1="`cat /proc/device-tree/aliases/serial1`" | |
if [ "$uart0" = "$serial1" ] ; then | |
uart0_pins="`wc -c /proc/device-tree/soc/gpio@7e200000/uart0_pins/brcm\,pins | cut -f 1 -d ' '`" | |
if [ "$uart0_pins" = "16" ] ; then | |
$HCIATTACH -B /dev/serial1 -P bcm -S 3000000 | |
else | |
$HCIATTACH -B /dev/serial1 -P bcm -S 921600 --noflowctl | |
fi | |
else | |
$HCIATTACH -B /dev/serial1 -P bcm -S 460800 --noflowctl | |
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# /lib/systemd/system/hciuart.service | |
# Copied from Raspbian | |
[Unit] | |
Description=Configure Bluetooth Modems connected by UART | |
ConditionFileNotEmpty=/proc/device-tree/soc/gpio@7e200000/bt_pins/brcm,pins | |
Requires=dev-serial1.device | |
After=dev-serial1.device | |
[Service] | |
Type=simple | |
ExecStart=/usr/bin/btuart | |
[Install] | |
WantedBy=multi-user.target |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment