You are not logged in.

#1 2021-12-05 02:41:00

srgrusso
Member
Registered: 2017-11-16
Posts: 10

bluetooth keyboard not auto connecting

I'm trying to get my bluetooth keyboard to auto connect without success. I followed the Arch bluetooth wiki https://wiki.archlinux.org/title/Bluetooth_keyboard.
I need this working since I have an encrypted home directory and need to enter my passphrase at the dmcrypt prompt.

edit: some hardware info:

lsusb
Bus 001 Device 006: ID 8087:0026 Intel Corp. AX201 Bluetooth

Last edited by srgrusso (2021-12-05 05:48:35)

Offline

#2 2021-12-06 14:07:50

TheStroyer
Member
Registered: 2018-08-28
Posts: 54

Re: bluetooth keyboard not auto connecting

If you follow the bluetoothctl steps, it will not automatically do that on boot. Have you configured it to connect automatically on boot?

Offline

#3 2021-12-08 03:17:14

srgrusso
Member
Registered: 2017-11-16
Posts: 10

Re: bluetooth keyboard not auto connecting

TheStroyer wrote:

If you follow the bluetoothctl steps, it will not automatically do that on boot. Have you configured it to connect automatically on boot?

I have AutoEnable=true line in /etc/bluetooth/main.conf. Is there something else that I am missing?

Offline

#4 2021-12-08 06:17:50

Strike0
Member
From: Germany
Registered: 2011-09-05
Posts: 1,489

Re: bluetooth keyboard not auto connecting

srgrusso wrote:

Is there something else that I am missing?

Did you include the mkinitcpio keyboard hook before autodetect, and generate the initramfs while the keyboard was active/paired? If not, regenerate it.

Offline

#5 2021-12-08 18:55:31

srgrusso
Member
Registered: 2017-11-16
Posts: 10

Re: bluetooth keyboard not auto connecting

Strike0 wrote:
srgrusso wrote:

Is there something else that I am missing?

Did you include the mkinitcpio keyboard hook before autodetect, and generate the initramfs while the keyboard was active/paired? If not, regenerate it.

it wasn't but it is now and still isn't working.  Here is my hooks line

 HOOKS=(base udev keyboard autodetect modconf bluetooth block encrypt filesystems fsck) 

Offline

#6 2021-12-09 09:51:55

Strike0
Member
From: Germany
Registered: 2011-09-05
Posts: 1,489

Re: bluetooth keyboard not auto connecting

1. Do you dual-boot, so that the active pairing may get messed up?

srgrusso wrote:
 HOOKS=(base udev keyboard autodetect modconf bluetooth block encrypt filesystems fsck) 

2. Where does the bluetooth hook originate from?
3. What happens booting with the fallback initramfs?
4. Apart from auto-poweron, do you have bluetooth set to discoverable too?

Offline

#7 2021-12-10 03:48:24

srgrusso
Member
Registered: 2017-11-16
Posts: 10

Re: bluetooth keyboard not auto connecting

Strike0 wrote:

1. Do you dual-boot, so that the active pairing may get messed up?

srgrusso wrote:
 HOOKS=(base udev keyboard autodetect modconf bluetooth block encrypt filesystems fsck) 

2. Where does the bluetooth hook originate from?
3. What happens booting with the fallback initramfs?
4. Apart from auto-poweron, do you have bluetooth set to discoverable too?

Thanks for you patience in helping me figure this out.

1.  Only use my keyboard in Arch
2. It's built in to my Asus rog strix z490-e gaming motherboard
3. will have to try and report back
4. Here is my main.conf

[General]

# Default adapter name
# Defaults to 'BlueZ X.YZ'
#Name = BlueZ

# Default device class. Only the major and minor device class bits are
# considered. Defaults to '0x000000'.
#Class = 0x000100

# How long to stay in discoverable mode before going back to non-discoverable
# The value is in seconds. Default is 180, i.e. 3 minutes.
# 0 = disable timer, i.e. stay discoverable forever
DiscoverableTimeout = 0

# Always allow pairing even if there are no agent registered
# Possible values: true, false
# Default: false
#AlwaysPairable = false

# How long to stay in pairable mode before going back to non-discoverable
# The value is in seconds. Default is 0.
# 0 = disable timer, i.e. stay pairable forever
#PairableTimeout = 0

# Use vendor id source (assigner), vendor, product and version information for
# DID profile support. The values are separated by ":" and assigner, VID, PID
# and version.
# Possible vendor id source values: bluetooth, usb (default) or false (disabled)
#DeviceID = bluetooth:1234:5678:abcd

# Do reverse service discovery for previously unknown devices that connect to
# us. For BR/EDR this option is really only needed for qualification since the
# BITE tester doesn't like us doing reverse SDP for some test cases, for LE
# this disables the GATT client functionally so it can be used in system which
# can only operate as peripheral.
# Defaults to 'true'.
#ReverseServiceDiscovery = true

# Enable name resolving after inquiry. Set it to 'false' if you don't need
# remote devices name and want shorter discovery cycle. Defaults to 'true'.
#NameResolving = true

# Enable runtime persistency of debug link keys. Default is false which
# makes debug link keys valid only for the duration of the connection
# that they were created for.
#DebugKeys = false

# Restricts all controllers to the specified transport. Default value
# is "dual", i.e. both BR/EDR and LE enabled (when supported by the HW).
# Possible values: "dual", "bredr", "le"
#ControllerMode = dual

# Enables Multi Profile Specification support. This allows to specify if
# system supports only Multiple Profiles Single Device (MPSD) configuration
# or both Multiple Profiles Single Device (MPSD) and Multiple Profiles Multiple
# Devices (MPMD) configurations.
# Possible values: "off", "single", "multiple"
#MultiProfile = off

# Permanently enables the Fast Connectable setting for adapters that
# support it. When enabled other devices can connect faster to us,
# however the tradeoff is increased power consumptions. This feature
# will fully work only on kernel version 4.1 and newer. Defaults to
# 'false'.
#FastConnectable = false

# Default privacy setting.
# Enables use of private address.
# Possible values: "off", "device", "network"
# "network" option not supported currently
# Defaults to "off"
#Privacy = off

# Specify the policy to the JUST-WORKS repairing initiated by peer
# Possible values: "never", "confirm", "always"
# Defaults to "never"
#JustWorksRepairing = never

# How long to keep temporary devices around
# The value is in seconds. Default is 30.
# 0 = disable timer, i.e. never keep temporary devices
#TemporaryTimeout = 30

# Enables the device to issue an SDP request to update known services when
# profile is connected. Defaults to true.
#RefreshDiscovery = true

# Enables experimental features and interfaces, alternatively a list of UUIDs
# can be given.
# Possible values: true,false,<UUID List>
# Possible UUIDS:
# d4992530-b9ec-469f-ab01-6c481c47da1c (BlueZ Experimental Debug)
# 671b10b5-42c0-4696-9227-eb28d1b049d6 (BlueZ Experimental Simultaneous Central and Peripheral)
# 15c0a148-c273-11ea-b3de-0242ac130004 (BlueZ Experimental LL privacy)
# 330859bc-7506-492d-9370-9a6f0614037f (BlueZ Experimental Bluetooth Quality Report)
# a6695ace-ee7f-4fb9-881a-5fac66c629af (BlueZ Experimental Offload Codecs)
# Defaults to false.
#Experimental = false

[BR]
# The following values are used to load default adapter parameters for BR/EDR.
# BlueZ loads the values into the kernel before the adapter is powered if the
# kernel supports the MGMT_LOAD_DEFAULT_PARAMETERS command. If a value isn't
# provided, the kernel will be initialized to it's default value.  The actual
# value will vary based on the kernel version and thus aren't provided here.
# The Bluetooth Core Specification should be consulted for the meaning and valid
# domain of each of these values.

# BR/EDR Page scan activity configuration
#PageScanType=
#PageScanInterval=
#PageScanWindow=

# BR/EDR Inquiry scan activity configuration
#InquiryScanType=
#InquiryScanInterval=
#InquiryScanWindow=

# BR/EDR Link supervision timeout
#LinkSupervisionTimeout=

# BR/EDR Page Timeout
#PageTimeout=

# BR/EDR Sniff Intervals
#MinSniffInterval=
#MaxSniffInterval=

[LE]
# The following values are used to load default adapter parameters for LE.
# BlueZ loads the values into the kernel before the adapter is powered if the
# kernel supports the MGMT_LOAD_DEFAULT_PARAMETERS command. If a value isn't
# provided, the kernel will be initialized to it's default value.  The actual
# value will vary based on the kernel version and thus aren't provided here.
# The Bluetooth Core Specification should be consulted for the meaning and valid
# domain of each of these values.
# LE advertisement interval (used for legacy advertisement interface only)
#MinAdvertisementInterval=
#MaxAdvertisementInterval=
#MultiAdvertisementRotationInterval=

# LE scanning parameters used for passive scanning supporting auto connect
# scenarios
#ScanIntervalAutoConnect=
#ScanWindowAutoConnect=

# LE scanning parameters used for passive scanning supporting wake from suspend
# scenarios
#ScanIntervalSuspend=
#ScanWindowSuspend=

# LE scanning parameters used for active scanning supporting discovery
# proceedure
#ScanIntervalDiscovery=
#ScanWindowDiscovery=

# LE scanning parameters used for passive scanning supporting the advertisement
# monitor Apis
#ScanIntervalAdvMonitor=
#ScanWindowAdvMonitor=

# LE scanning parameters used for connection establishment.
#ScanIntervalConnect=
#ScanWindowConnect=

# LE default connection parameters.  These values are superceeded by any
# specific values provided via the Load Connection Parameters interface
#MinConnectionInterval=
#MaxConnectionInterval=
#ConnectionLatency=
#ConnectionSupervisionTimeout=
#Autoconnecttimeout=

# Scan duration during interleaving scan. Only used when scanning for ADV
# monitors. The units are msec.
# Default: 300
#AdvMonAllowlistScanDuration=
# Default: 500
#AdvMonNoFilterScanDuration=

# Enable/Disable Advertisement Monitor interleave scan for power saving.
# 0: disable
# 1: enable
# Defaults to 1
#EnableAdvMonInterleaveScan=

[GATT]
# GATT attribute cache.
# Possible values:
# always: Always cache attributes even for devices not paired, this is
# recommended as it is best for interoperability, with more consistent
# reconnection times and enables proper tracking of notifications for all
# devices.
# yes: Only cache attributes of paired devices.
# no: Never cache attributes
# Default: always
#Cache = always

# Minimum required Encryption Key Size for accessing secured characteristics.
# Possible values: 0 and 7-16. 0 means don't care.
# Defaults to 0
#KeySize = 0

# Exchange MTU size.
# Possible values: 23-517
# Defaults to 517
#ExchangeMTU = 517

# Number of ATT channels
# Possible values: 1-5 (1 disables EATT)
# Default to 3
#Channels = 3

[AVDTP]
# AVDTP L2CAP Signalling Channel Mode.
# Possible values:
# basic: Use L2CAP Basic Mode
# ertm: Use L2CAP Enhanced Retransmission Mode
#SessionMode = basic

# AVDTP L2CAP Transport Channel Mode.
# Possible values:
# basic: Use L2CAP Basic Mode
# streaming: Use L2CAP Streaming Mode
#StreamMode = basic

[Policy]
#
# The ReconnectUUIDs defines the set of remote services that should try
# to be reconnected to in case of a link loss (link supervision
# timeout). The policy plugin should contain a sane set of values by
# default, but this list can be overridden here. By setting the list to
# empty the reconnection feature gets disabled.
#ReconnectUUIDs=00001112-0000-1000-8000-00805f9b34fb,0000111f-0000-1000-8000-00805f9b34fb,0000110a-0000-1000-8000-00805f9b34fb,0000110b-0000-1000-8000-00805f9b34fb

# ReconnectAttempts define the number of attempts to reconnect after a link
# lost. Setting the value to 0 disables reconnecting feature.
#ReconnectAttempts=7

# ReconnectIntervals define the set of intervals in seconds to use in between
# attempts.
# If the number of attempts defined in ReconnectAttempts is bigger than the
# set of intervals the last interval is repeated until the last attempt.
#ReconnectIntervals=1,2,4,8,16,32,64

# AutoEnable defines option to enable all controllers when they are found.
# This includes adapters present on start as well as adapters that are plugged
# in later on. Defaults to 'false'.
AutoEnable=true

# Audio devices that were disconnected due to suspend will be reconnected on
# resume. ResumeDelay determines the delay between when the controller
# resumes from suspend and a connection attempt is made. A longer delay is
# better for better co-existence with Wi-Fi.
# The value is in seconds.
# Default: 2
#ResumeDelay = 2

[AdvMon]
# Default RSSI Sampling Period. This is used when a client registers an
# advertisement monitor and leaves the RSSISamplingPeriod unset.
# Default: 0
#RSSISamplingPeriod=0

Offline

#8 2021-12-10 22:11:27

Strike0
Member
From: Germany
Registered: 2011-09-05
Posts: 1,489

Re: bluetooth keyboard not auto connecting

srgrusso wrote:

2. It's built in to my Asus rog strix z490-e gaming motherboard
3. will have to try and report back
4. Here is my main.conf

Not an expert on bluez, but I don't see something wrong in the main.conf.

Re 2: Sounds like a nice rig, but I was referring to the bluetooth hook that you have in your mkinitcpio config. It's not vanilla arch.
A search suggests, you may have that hook from an AUR package(?), which in turn features a promising comment to follow up: https://aur.archlinux.org/packages/mkin … ned-809717

Offline

Board footer

Powered by FluxBB