You are not logged in.
Hi,
I have used the following udev rule in /etc/udev/rules.d/10-local.rules as per: https://wiki.archlinux.org/index.php/bluetooth under Arch Linux to automatically start my Bluetooth adpater at boot time:
ACTION=="add", KERNEL=="hci0", RUN+="/usr/bin/hciconfig %k up"
Until last week when I performed a system update, the udev rule does not appear to run as the bluetooth adapter is in its default state of "DOWN".
If I run:
udevadm test /sys/devices/pci0000\:00/0000\:00\:06.0/usb1/1-2/1-2\:1.0/bluetooth/hci0
I can see that the rule is found and triggered albeit in test mode:
[root@arch ~]# udevadm test /sys/devices/pci0000\:00/0000\:00\:06.0/usb1/1-2/1-2\:1.0/bluetooth/hci0
calling: test
version 232
This program is for debugging only, it does not run any program
specified by a RUN key. It may show incorrect results, because
some values may be different, or not available at a simulation run.
=== trie on-disk ===
tool version: 232
file size: 8441128 bytes
header size 80 bytes
strings 1846968 bytes
nodes 6594080 bytes
Load module index
Found container virtualization none
timestamp of '/etc/systemd/network' changed
Parsed configuration file /usr/lib/systemd/network/99-default.link
Created link configuration context.
timestamp of '/etc/udev/rules.d' changed
Reading rules file: /usr/lib/udev/rules.d/10-dm.rules
Reading rules file: /etc/udev/rules.d/10-local.rules
Reading rules file: /usr/lib/udev/rules.d/11-dm-lvm.rules
Reading rules file: /usr/lib/udev/rules.d/13-dm-disk.rules
Reading rules file: /usr/lib/udev/rules.d/50-udev-default.rules
Reading rules file: /usr/lib/udev/rules.d/60-block.rules
Reading rules file: /usr/lib/udev/rules.d/60-cdrom_id.rules
Reading rules file: /usr/lib/udev/rules.d/60-drm.rules
Reading rules file: /usr/lib/udev/rules.d/60-evdev.rules
Reading rules file: /usr/lib/udev/rules.d/60-pcmcia.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-alsa.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-input.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-storage.rules
Reading rules file: /usr/lib/udev/rules.d/60-persistent-v4l.rules
Reading rules file: /usr/lib/udev/rules.d/60-serial.rules
Reading rules file: /etc/udev/rules.d/60-vboxadd.rules
Reading rules file: /usr/lib/udev/rules.d/63-md-raid-arrays.rules
Reading rules file: /usr/lib/udev/rules.d/64-btrfs.rules
Reading rules file: /usr/lib/udev/rules.d/64-md-raid-assembly.rules
Reading rules file: /usr/lib/udev/rules.d/69-dm-lvm-metad.rules
Reading rules file: /usr/lib/udev/rules.d/70-mouse.rules
Reading rules file: /usr/lib/udev/rules.d/70-power-switch.rules
Reading rules file: /usr/lib/udev/rules.d/70-touchpad.rules
Reading rules file: /usr/lib/udev/rules.d/70-uaccess.rules
Reading rules file: /usr/lib/udev/rules.d/71-seat.rules
Reading rules file: /usr/lib/udev/rules.d/73-seat-late.rules
Reading rules file: /usr/lib/udev/rules.d/75-net-description.rules
Reading rules file: /usr/lib/udev/rules.d/75-probe_mtd.rules
Reading rules file: /usr/lib/udev/rules.d/78-sound-card.rules
Reading rules file: /usr/lib/udev/rules.d/80-drivers.rules
Reading rules file: /usr/lib/udev/rules.d/80-net-setup-link.rules
Reading rules file: /usr/lib/udev/rules.d/90-vconsole.rules
Reading rules file: /usr/lib/udev/rules.d/95-dm-notify.rules
Reading rules file: /usr/lib/udev/rules.d/99-systemd.rules
rules contain 24576 bytes tokens (2048 * 12 bytes), 12060 bytes strings
1776 strings (22269 bytes), 1177 de-duplicated (10809 bytes), 600 trie nodes used
RUN '/usr/bin/hciconfig %k up' /etc/udev/rules.d/10-local.rules:1
created db file '/run/udev/data/+bluetooth:hci0' for '/devices/pci0000:00/0000:00:06.0/usb1/1-2/1-2:1.0/bluetooth/hci0'
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:06.0/usb1/1-2/1-2:1.0/bluetooth/hci0
DEVTYPE=host
SUBSYSTEM=bluetooth
SYSTEMD_ALIAS=/sys/subsystem/bluetooth/devices/hci0
SYSTEMD_WANTS=bluetooth.target
TAGS=:systemd:
USEC_INITIALIZED=10993834
run: '/usr/bin/hciconfig hci0 up'
Unload module index
Unloaded link configuration context.
[root@arch ~]#
If I I roll back my Arch Linux installation to 15th November, my udev rule works once again. If it helps, here are the packages that were downgraded to restore functionality:
archlinux-keyring: downgrading from version 20161201-1 to version 20161101-1
bash: downgrading from version 4.4.005-1 to version 4.4-1
glib2: downgrading from version 2.50.2-1 to version 2.50.1-1
gnupg: downgrading from version 2.1.16-1 to version 2.1.15-2
hwids: downgrading from version 20161103-1 to version 20160801-1
iputils: downgrading from version 20161105.1f2bb12-1 to version 20160308.0db72a4-1
libgpg-error: downgrading from version 1.25-1 to version 1.24-1
libsystemd: downgrading from version 232-4 to version 231-4
linux: downgrading from version 4.8.11-1 to version 4.8.7-1
linux-headers: downgrading from version 4.8.11-1 to version 4.8.7-1
mkinitcpio: downgrading from version 22-1 to version 21-1
ncurses: downgrading from version 6.0+20161112-1 to version 6.0-4
npth: downgrading from version 1.3-1 to version 1.2-1
pacman-mirrorlist: downgrading from version 20161203-1 to version 20161114-1
pinentry: downgrading from version 1.0.0-1 to version 0.9.7-3
sqlite: downgrading from version 3.15.2-1 to version 3.15.1-2
systemd: downgrading from version 232-4 to version 231-4
systemd-sysvcompat: downgrading from version 232-4 to version 231-4
tzdata: downgrading from version 2016j-1 to version 2016i-1
virtualbox-guest-modules-arch: downgrading from version 5.1.10-2 to version 5.1.8-1
xz: downgrading from version 5.2.2-2 to version 5.2.2-1
zlib: downgrading from version 1:1.2.8-7 to version 1.2.8-4
Could a recent change to systemd be the issue?
Thanks,
Neil.
Last edited by NeilMunday (2016-12-10 19:32:41)
Offline
It appears that this is a cross post and is now moot based upon this thread
As such, I am going to close and dust bin this thread. If I am wrong, please leave the moderators a note using the report link and we will restore the thread to Kernel and Hardware
Restored, by request
Last edited by ewaller (2016-12-05 00:16:21)
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
I just ran into this issue myself.
If it's of any additional help, I noticed the following in journalctl:
systemd-udevd[153]: Process '/bin/hciconfig hci0 up' failed with exit code 1.
It seems to be happening on all of my boxen that were updated to systemd 232. The manpage for hciconfig didn't give any info about exit code 1.
Offline
Same issue here. I changed the udev rule to redirect output to a log file
ACTION=="add", SUBSYSTEM=="hci0", RUN+="/usr/bin/sh -c '/usr/bin/hciconfig %k up >>/var/log/hciconfig.log 2>&1'"
Under systemd-231, the command is successful with no error messages. Under systemd-232, the following error message appears
Can't open HCI socket.: Protocol not supported
I searched the error in hciconfig source and found it here: http://git.kernel.org/cgit/bluetooth/bl … ig.c#n2019
If I had to guess I'd say that either udev 232 is running hciconfig "too early" compared to 231 or something has changed in the way udev runs processes.
Possibly these new lines in systemd-udevd.service:
MountFlags=slave
MemoryDenyWriteExecute=yes
RestrictRealtime=yes
RestrictAddressFamilies=AF_UNIX AF_NETLINK AF_INET AF_INET6
When I get a chance I will try changing these lines to try to understand what is going on.
Offline
I have solved the issue on my machine by using
sudo systemctl edit --full systemd-udevd.service
to comment out the last line of the unit (RestrictAddressFamilies). Bluetooth now powers back on properly, both on startup and on resume from suspend/hibernate.
Offline
Thanks for tracking that down and for the solution, @vociferos! Very helpful!
Just as a variation, I tested it by adding AF_BLUETOOTH to RestrictAddressFamilies instead of commenting it out, and that worked as well. So we have two possible solutions
Here's what mine now says for reference:
RestrictAddressFamilies=AF_UNIX AF_NETLINK AF_INET AF_INET6 AF_BLUETOOTH
Offline
Thanks guys, these work for me too. :-)
Offline
I choose vic_acid solution, works perfect !
Thanks to community
Offline
Is it worth updating https://wiki.archlinux.org/index.php/bluetooth to include vic_acid's solution above or should a bug be raised against the systemd package?
Offline
With last bluez update, no power up at boot.
I have to change
AutoEnable=true
in /etc/bluetooth/main.conf, as it was commented on false, and then rebooted.
I kept the vic_acid's solution.
Offline