You are not logged in.

#1 2023-10-31 00:10:36

Zosoled
Member
Registered: 2023-10-30
Posts: 17

[SOLVED] Logitech MX Ergo does not appear in Bluetooth scan

I have a Logitech MX Ergo which has two connection modes to accommodate multiple devices via Bluetooth. However, while Windows and macOS are able to pick it up easily when in pairing mode, Arch (using bluetoothctl) cannot. I tried connecting and forgetting both connection modes on both Windows and macOS to try freeing them up within the mouse to no avail. I tried manually creating a bluez profile for it using the manual key extraction instructions in the wiki, but it will not connect. I have tried toggling SSP, LE, BR/EDR, ControllerMode in main.conf, and setting transport filters as described in other wiki and forum entries. I do not know what else to do to troubleshoot the issue of this mouse simply not appearing during scans.

Edit: To add some more background, this mouse HAS been able to connect in the past. I am also able to connect other devices to Arch, like my iPhone.

Last edited by Zosoled (2023-11-03 00:09:15)

Offline

#2 2023-10-31 07:34:44

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 74,307

Re: [SOLVED] Logitech MX Ergo does not appear in Bluetooth scan

Arch (using bluetoothctl) cannot

Please don't paraphrase, https://bbs.archlinux.org/viewtopic.php?id=57855

https://wiki.archlinux.org/title/Blueto … ot_pairing
Also 3rd link below. Mandatory.
Disable it (it's NOT the BIOS setting!) and reboot windows and linux twice for voodo reasons.

Offline

#3 2023-10-31 22:31:27

Zosoled
Member
Registered: 2023-10-30
Posts: 17

Re: [SOLVED] Logitech MX Ergo does not appear in Bluetooth scan

Thanks for the info! Sorry about the paraphrasing, I will try to provide a more detailed response.

The Logitech MX Ergo has a button on top which is used in the following ways:
- Short press to switch between connection profiles, allowing it to connect to up to 2 different devices depending on which profile is selected (1 or 2).
- Long press to start pairing for the currently-selected profile.

I am not dual-booting. I have tested pairing and forgetting both of the mouse's two profiles to two completely separate computers: a PC running Windows and an iMac running macOS. Both of these computers can pair with the mouse on either profile without issue. My desired target for the mouse connection is a third computer, a PC running Arch Linux only. It cannot see the mouse when scanning and thus cannot pair with it. I disabled fast start on the Windows machine anyway and rebooted twice as directed, and I then rebooted the Linux machine twice, and it still does not show the mouse in pairing mode and during a scan.

I have executed the following as user:

[zosoled@arch ~]$ bluetoothctl
hci0 new_settings: powered bondable ssp br/edr le secure-conn cis-central cis-peripheral 
Agent registered
[CHG] Controller 30:03:C8:CC:A5:7C Pairable: yes
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# agent on
Agent is already registered
[bluetooth]# default-agent
Default agent request successful
[bluetooth]# scan on
Discovery started
[CHG] Controller 30:03:C8:CC:A5:7C Discovering: yes
[bluetooth]# devices
[bluetooth]#

I executed the commands above as root too, with no success.

I then tried to add a profile manually. After disabling fast start and rebooting twice on Windows, I extracted the keys from the registry and transformed them according to the wiki, using the "Other devices" table section: https://wiki.archlinux.org/title/Blueto … h_5.1_Keys

The original values from the registry were as follows:

Registry key=f88bb3fd79ed
"LTK"=55e3847414276ab6de0bef912a1f503c
"KeyLength"=00000010
"ERand"=4079308430bbf5df
"EDIV"=00008680
"IRK"=daf8658199a821cd340a0e267cb27bd3
"Address"=ed,79,fd,b3,8b,f8,00,00
"AddressType"=00000001
"CSRK"=652c6ae535b2e5a092c49438f162285f
"OutboundSignCounter"=00000000
"CEntralIRKStatus"=00000001
"AuthReq"=0000002d

I created a profile manually by doing the following:

su -
mkdir "/var/lib/bluetooth/30:03:C8:CC:A5:7C/F8:8B:B3:FD:79:ED"
cd "/var/lib/bluetooth/30:03:C8:CC:A5:7C/F8:8B:B3:FD:79:ED"
nano info

I added the following content to the resulting "info" file:

[General]
Name=MX Ergo
Class=0x000580
SupportedTechnologies=BR/EDR;LE;
Trusted=true
Blocked=false

[LongTermKey]
Key=55e3847414276ab6de0bef912a1f503c
Rand=16138010656802634048
EDiv=8680

I then tried to connect since bluetoothctl could see this manually-created device profile.

[root@arch F8:8B:B3:FD:79:ED]# bluetoothctl
hci0 new_settings: powered bondable ssp br/edr le secure-conn cis-central cis-peripheral 
Agent registered
[CHG] Controller 30:03:C8:CC:A5:7C Pairable: yes
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# agent on
Agent is already registered
[bluetooth]# default-agent
Default agent request successful
[bluetooth]# scan on
hci0 type 7 discovering on
Discovery started
[CHG] Controller 30:03:C8:CC:A5:7C Discovering: yes
[bluetooth]# devices
Device F8:8B:B3:FD:79:ED MX Ergo
hci0 type 7 discovering off
[bluetooth]# connect F8:8B:B3:FD:79:ED 
Attempting to connect to F8:8B:B3:FD:79:ED
hci0 type 7 discovering on
hci0 F8:8B:B3:FD:79:ED type BR/EDR connect failed (status 0x04, Connect Failed)
[CHG] Device F8:8B:B3:FD:79:ED Paired: yes
Failed to connect: org.bluez.Error.Failed br-connection-create-socket

I tried all of the above as root first as you can see, and I tried again as user with no success. I then searched online for the error "br-connection-create-socket" and found this thread: https://bbs.archlinux.org/viewtopic.php?id=270465
I tried the suggestions in that thread and had no success.

Here is my kernel and bluez version info:

[zosoled@arch ~]$ uname -sr
Linux 6.5.9-arch2-1
[zosoled@arch ~]$ pacman -Si bluez bluez-utils
Repository      : extra
Name            : bluez
Version         : 5.70-1
Description     : Daemons for the bluetooth protocol stack
Architecture    : x86_64
URL             : http://www.bluez.org/
Licenses        : GPL2
Groups          : None
Provides        : None
Depends On      : libical  dbus  glib2  alsa-lib  json-c  glibc
Optional Deps   : None
Conflicts With  : obexd-client  obexd-server
Replaces        : None
Download Size   : 938.66 KiB
Installed Size  : 2779.71 KiB
Packager        : Robin Candau <antiz@archlinux.org>
Build Date      : Thu 28 Sep 2023 04:49:31 PM PDT
Validated By    : MD5 Sum  SHA-256 Sum  Signature
Repository      : extra
Name            : bluez-utils
Version         : 5.70-1
Description     : Development and debugging utilities for the bluetooth protocol stack
Architecture    : x86_64
URL             : http://www.bluez.org/
Licenses        : GPL2
Groups          : None
Provides        : bluez-hcidump
Depends On      : dbus  systemd  systemd-libs  glib2  glibc  readline
Optional Deps   : ell: for btpclient
                  json-c: for mesh-cfgclient
Conflicts With  : bluez-hcidump
Replaces        : bluez-hcidump  bluez<=4.101
Download Size   : 1013.91 KiB
Installed Size  : 4073.77 KiB
Packager        : Robin Candau <antiz@archlinux.org>
Build Date      : Thu 28 Sep 2023 04:49:31 PM PDT
Validated By    : MD5 Sum  SHA-256 Sum  Signature

Offline

#4 2023-11-01 07:11:58

seth
Member
From: Don't DM me only for attention
Registered: 2012-09-03
Posts: 74,307

Re: [SOLVED] Logitech MX Ergo does not appear in Bluetooth scan

I disabled fast start on the Windows machine anyway

That's only relevant when dual booting.

https://wiki.archlinux.org/title/Blueto … up_in_scan

Offline

#5 2023-11-02 00:53:48

Zosoled
Member
Registered: 2023-10-30
Posts: 17

Re: [SOLVED] Logitech MX Ergo does not appear in Bluetooth scan

Yeah I assumed as much, but I didn't want to leave any stone unturned.

I have tried the steps listed in the wiki section you linked to no avail. In the output below, I removed the menu of available commands for brevity, and I put the mouse in pairing mode before executing the "connect" and "pair" commands.

[zosoled@arch ~]$ bluetoothctl
hci0 new_settings: powered bondable ssp br/edr le secure-conn cis-central cis-peripheral 
Agent registered
[CHG] Controller 30:03:C8:CC:A5:7C Pairable: yes
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# agent on
Agent is already registered
[bluetooth]# default-agent
Default agent request successful
[bluetooth]# menu scan
[bluetooth]# transport le
[bluetooth]# back
[bluetooth]# scan on
SetDiscoveryFilter success
Discovery started
[CHG] Controller 30:03:C8:CC:A5:7C Discovering: yes
[bluetooth]# devices
Device F8:8B:B3:FD:79:ED MX Ergo
[bluetooth]# connect F8:8B:B3:FD:79:ED 
Attempting to connect to F8:8B:B3:FD:79:ED
Failed to connect: org.bluez.Error.Failed le-connection-abort-by-local
[bluetooth]# pair F8:8B:B3:FD:79:ED 
Attempting to pair with F8:8B:B3:FD:79:ED
Failed to pair: org.bluez.Error.Failed
[bluetooth]# 

Offline

#6 2023-11-02 01:24:17

Zosoled
Member
Registered: 2023-10-30
Posts: 17

Re: [SOLVED] Logitech MX Ergo does not appear in Bluetooth scan

Looks like this was solved somehow with bluez-utils-compat, although I'm not completely sure how. It didn't work at first, and then trying a second time did; I believe the key was both removing my manually-created mouse profile and also restarting the bluetooth service, at which point the hcitool lescan command was able to make the mouse visible to the bluetoothctl tool as described in the wiki. I will outline what I did for posterity.

First, after installing the AUR package, I walked through the wiki steps. Note that at this point, I still had my manually-created mouse profile in /var/lib/bluetooth/...):

[zosoled@arch ~]$ systemctl restart bluetooth.service
[zosoled@arch ~]$ bluetoothctl
hci0 new_settings: powered bondable ssp br/edr le secure-conn cis-central cis-peripheral 
Agent registered
[CHG] Controller 30:03:C8:CC:A5:7C Pairable: yes
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# scan on
Discovery started
[CHG] Controller 30:03:C8:CC:A5:7C Discovering: yes
hci0 class of device changed: 0x000000
hci0 new_settings: bondable ssp br/edr le secure-conn cis-central cis-peripheral 
[CHG] Controller 30:03:C8:CC:A5:7C Class: 0x00000000 (0)
[CHG] Controller 30:03:C8:CC:A5:7C Powered: no
[CHG] Controller 30:03:C8:CC:A5:7C Discovering: no
hci0 class of device changed: 0x6c0104
[CHG] Controller 30:03:C8:CC:A5:7C Class: 0x006c0104 (7078148)
hci0 name changed: arch
hci0 new_settings: powered bondable ssp br/edr le secure-conn cis-central cis-peripheral 
[CHG] Controller 30:03:C8:CC:A5:7C Powered: yes
[bluetooth]# devices
Device F8:8B:B3:FD:79:ED MX Ergo

In another terminal tab:

[zosoled@arch ~]$ sudo hcitool lescan
Set scan parameters failed: Input/output error
[zosoled@arch ~]$ sudo hciconfig hci0 down
[zosoled@arch ~]$ sudo hciconfig hci0 up
[zosoled@arch ~]$ sudo hcitool lescan
LE Scan ...

The wiki says to interrupt the LE scan when your device appears, but my mouse never showed up.

I then renamed my mouse profile "30:03:C8:CC:A5:7C-backup" so that I still retained the pairing keys. Then I repeated the commands above, and I got a bunch of new MAC addresses appearing for the hcitool lescan, but the mouse wasn't among them.

[zosoled@arch ~]$ sudo hcitool lescan
[sudo] password for zosoled: 
Set scan parameters failed: Input/output error
[zosoled@aaarch ~]$ sudo hciconfig hci0 down
[zosoled@arch ~]$ sudo hciconfig hci0 up
[zosoled@arch ~]$ sudo hcitool lescan
LE Scan ...
E2:BB:9E:38:4B:0A (unknown)
49:B9:86:99:7C:36 (unknown)
E2:BB:9E:38:4B:0A (unknown)
59:FD:DA:A9:2C:68 (unknown)
7F:12:0C:9F:4F:CE (unknown)
E2:BB:9E:38:4B:0A (unknown)
7A:08:B5:57:68:4E (unknown)
49:B9:86:99:7C:36 (unknown)
80:7D:3A:E8:EE:26 27be4f94
<the MAC addresses above repeated ad nauseum until the ctrl+C interrupt>
^C[zosoled@arch ~]$

Finally, I tried one more time after restarting the bluetooth service, and the mouse finally appeared after repeating the process again.

In the terminal being used for bluetoothctl:

[zosoled@arch ~]$ sudo systemctl restart bluetooth
[zosoled@arch ~]$ bluetoothctl
hci0 new_settings: powered bondable ssp br/edr le secure-conn cis-central cis-peripheral 
Agent registered
[CHG] Controller 30:03:C8:CC:A5:7C Pairable: yes
[bluetooth]# power on
Changing power on succeeded
[bluetooth]# agent on
Agent is already registered
[bluetooth]# default-agent
Default agent request successful
[bluetooth]# devices
[bluetooth]# scan on
Discovery started

Then in the terminal being used for hcitool, I restarted the lescan:

[zosoled@arch ~]$ sudo hcitool lescan
LE Scan ...
F8:8B:B3:FD:79:EE MX Ergo
<other MAC addresses ad nauseum until the ctrl+C interrupt>
^C[zosoled@arch ~]$

Finally in the other terminal, the mouse appeared as well.

[CHG] Controller 30:03:C8:CC:A5:7C Discovering: yes
[NEW] Device F8:8B:B3:FD:79:EE MX Ergo
[CHG] Device F8:8B:B3:FD:79:EE RSSI: 0xffffffbb (-69)
[CHG] Device F8:8B:B3:FD:79:EE RSSI: 0xffffffc4 (-60)
[CHG] Device F8:8B:B3:FD:79:EE RSSI: 0xffffffbb (-69)
[bluetooth]# pair F8:8B:B3:FD:79:EE 
Attempting to pair with F8:8B:B3:FD:79:EE
[CHG] Device F8:8B:B3:FD:79:EE Connected: yes
[CHG] Device F8:8B:B3:FD:79:EE Bonded: yes
[CHG] Device F8:8B:B3:FD:79:EE UUIDs: 00001800-0000-1000-8000-00805f9b34fb
[CHG] Device F8:8B:B3:FD:79:EE UUIDs: 00001801-0000-1000-8000-00805f9b34fb
[CHG] Device F8:8B:B3:FD:79:EE UUIDs: 0000180a-0000-1000-8000-00805f9b34fb
[CHG] Device F8:8B:B3:FD:79:EE UUIDs: 0000180f-0000-1000-8000-00805f9b34fb
[CHG] Device F8:8B:B3:FD:79:EE UUIDs: 00001812-0000-1000-8000-00805f9b34fb
[CHG] Device F8:8B:B3:FD:79:EE UUIDs: 00010000-0000-1000-8000-011f2000046d
[CHG] Device F8:8B:B3:FD:79:EE ServicesResolved: yes
[CHG] Device F8:8B:B3:FD:79:EE Paired: yes
[NEW] Primary Service (Handle 0x0000)
	/org/bluez/hci0/dev_F8_8B_B3_FD_79_EE/service0008
	00001801-0000-1000-8000-00805f9b34fb
	Generic Attribute Profile
[NEW] Characteristic (Handle 0x0000)
	/org/bluez/hci0/dev_F8_8B_B3_FD_79_EE/service0008/char0009
	00002a05-0000-1000-8000-00805f9b34fb
	Service Changed
[NEW] Descriptor (Handle 0x0000)
	/org/bluez/hci0/dev_F8_8B_B3_FD_79_EE/service0008/char0009/desc000b
	00002902-0000-1000-8000-00805f9b34fb
	Client Characteristic Configuration
[NEW] Primary Service (Handle 0x0000)
	/org/bluez/hci0/dev_F8_8B_B3_FD_79_EE/service000c
	0000180a-0000-1000-8000-00805f9b34fb
	Device Information
[NEW] Characteristic (Handle 0x0000)
	/org/bluez/hci0/dev_F8_8B_B3_FD_79_EE/service000c/char000d
	00002a29-0000-1000-8000-00805f9b34fb
	Manufacturer Name String
[NEW] Characteristic (Handle 0x0000)
	/org/bluez/hci0/dev_F8_8B_B3_FD_79_EE/service000c/char000f
	00002a24-0000-1000-8000-00805f9b34fb
	Model Number String
[NEW] Characteristic (Handle 0x0000)
	/org/bluez/hci0/dev_F8_8B_B3_FD_79_EE/service000c/char0011
	00002a25-0000-1000-8000-00805f9b34fb
	Serial Number String
[NEW] Characteristic (Handle 0x0000)
	/org/bluez/hci0/dev_F8_8B_B3_FD_79_EE/service000c/char0013
	00002a27-0000-1000-8000-00805f9b34fb
	Hardware Revision String
[NEW] Characteristic (Handle 0x0000)
	/org/bluez/hci0/dev_F8_8B_B3_FD_79_EE/service000c/char0015
	00002a26-0000-1000-8000-00805f9b34fb
	Firmware Revision String
[NEW] Characteristic (Handle 0x0000)
	/org/bluez/hci0/dev_F8_8B_B3_FD_79_EE/service000c/char0017
	00002a28-0000-1000-8000-00805f9b34fb
	Software Revision String
[NEW] Characteristic (Handle 0x0000)
	/org/bluez/hci0/dev_F8_8B_B3_FD_79_EE/service000c/char0019
	00002a50-0000-1000-8000-00805f9b34fb
	PnP ID
[NEW] Primary Service (Handle 0x0000)
	/org/bluez/hci0/dev_F8_8B_B3_FD_79_EE/service001b
	0000180f-0000-1000-8000-00805f9b34fb
	Battery Service
[NEW] Characteristic (Handle 0x0000)
	/org/bluez/hci0/dev_F8_8B_B3_FD_79_EE/service001b/char001c
	00002a19-0000-1000-8000-00805f9b34fb
	Battery Level
[NEW] Primary Service (Handle 0x0000)
	/org/bluez/hci0/dev_F8_8B_B3_FD_79_EE/service0035
	00010000-0000-1000-8000-011f2000046d
	Vendor specific
[NEW] Characteristic (Handle 0x0000)
	/org/bluez/hci0/dev_F8_8B_B3_FD_79_EE/service0035/char0036
	00010001-0000-1000-8000-011f2000046d
	Vendor specific
[NEW] Descriptor (Handle 0x0000)
	/org/bluez/hci0/dev_F8_8B_B3_FD_79_EE/service0035/char0036/desc0038
	00002902-0000-1000-8000-00805f9b34fb
	Client Characteristic Configuration
Pairing successful
[CHG] Device F8:8B:B3:FD:79:EE Modalias: usb:v046DpB01Dd0018
[MX Ergo]# exit
[zosoled@arch ~]$ 

Just in case the resulting "attributes" and "info" files are of any use to anyone else, here are their contents:

[root@arch F8:8B:B3:FD:79:EE]# cat attributes
[1]
UUID=00002800-0000-1000-8000-00805f9b34fb
Value=1800
EndGroupHandle=7

[8]
UUID=00002800-0000-1000-8000-00805f9b34fb
Value=1801
EndGroupHandle=11

[12]
UUID=00002800-0000-1000-8000-00805f9b34fb
Value=180A
EndGroupHandle=26

[27]
UUID=00002800-0000-1000-8000-00805f9b34fb
Value=180F
EndGroupHandle=29

[30]
UUID=00002800-0000-1000-8000-00805f9b34fb
Value=1812
EndGroupHandle=52

[53]
UUID=00002800-0000-1000-8000-00805f9b34fb
Value=00010000000010008000011F2000046D
EndGroupHandle=65535
[root@arch F8:8B:B3:FD:79:EE]# cat info
[General]
Name=MX Ergo
Appearance=0x03c2
AddressType=static
SupportedTechnologies=LE;
Trusted=false
Blocked=false
WakeAllowed=true
Services=00001800-0000-1000-8000-00805f9b34fb;00001801-0000-1000-8000-00805f9b34fb;0000180a-0000-1000-8000-00805f9b34fb;0000180f-0000-1000-8000-00805f9b34fb;00001812-0000-1000-8000-00805f9b34fb;00010000-0000-1000-8000-011f2000046d;

[ConnectionParameters]
MinInterval=6
MaxInterval=9
Latency=44
Timeout=216

[IdentityResolvingKey]
Key=D37BB27C260E0A34CD21A8998165F8DA

[LocalSignatureKey]
Key=FC82EC0EBE1D400DFDD5B5B92F91CDF2
Counter=0
Authenticated=false

[LongTermKey]
Key=159040A7047C65CBB8EBB942DFE343FE
Authenticated=0
EncSize=16
EDiv=7307
Rand=16937938792972772135

[DeviceID]
Source=2
Vendor=1133
Product=45085
Version=24
[root@arch F8:8B:B3:FD:79:EE]# 

Offline

Board footer

Powered by FluxBB