Ubuntu connects AirPods headphones
Sometimes I want to connect the AirPods2 headset to the Ubuntu computer. After recently reinstalling the system, I encountered a situation where the headset could not be paired. I hereby record the exploration process. I have not tried other AirPods models, and have not tested the equipment (recently purchased AirPods Pro 2nd Generation, after Test, the second generation can also be matched according to this method), the method should be similar.
First, change the control mode to ControllerMode = bredr , the possible values are: "dual", "bredr", "le", if one does not work, try another mode
➜ ~ egrep -v '^#|^$' /etc/bluetooth/main.conf
[General]
ControllerMode = bredr
[Policy]
AutoEnable=true
Second, restart the bluetooth service
sudo systemctl restart bluetooth.service
At this point, if your device can be directly identified and matched through the bluetooth page of Gnome Settings, the following steps allmost useless, just take a look.
When the graphical interface cannot be matched, the terminal operation
1. Open the interactive bluetooth control tool
➜ ~ bluetoothctl
Agent registered
[CHG] Device F4:F5:DB:65:B0:3B RSSI: -73
[CHG] Device 4C:D1:A1:3F:B2:55 RSSI: -79
[CHG] Device 94:87:E0:A1:89:49 RSSI: -72
[CHG] Device A0:A4:C5:04:43:17 RSSI: -77
[CHG] Device B4:CB:57:16:D5:80 RSSI: -82
2. Scan the device through 'scan on', press and hold the match button on the back of AirPods2 while scanning
[bluetooth]# scan on
Discovery started
[NEW] Device 44:66:FC:9C:CC:FC 44-66-FC-9C-CC-FC
[NEW] Device C4:E1:A1:AC:C0:6A C4-E1-A1-AC-C0-6A
[CHG] Device 00:A6:19:18:52:86 RSSI: -69
[NEW] Device 7C:9A:1D:B0:62:02 AirPods
[NEW] Device A4:50:46:BA:7F:49 A4-50-46-BA-7F-49
When there are many devices in the environment, it seems that there is no good way to filter. You need to carefully observe your device name. As shown above, my airpod2 device has been successfully identified.
[NEW] Device 7C:9A:1D:B0:62:02 AirPods
3. Connect AirPods2
[bluetooth]# connect 7C:9A:1D:B0:62:02
Attempting to connect to 7C:9A:1D:B0:62:02
[CHG] Device 7C:9A:1D:B0:62:02 ServicesResolved: yes
[CHG] Device 7C:9A:1D:B0:62:02 Paired: yes
Connection successful
[AirPods]#
Haha, it works !
4. Check the device information (AirPods2 info)
[AirPods]# info 7C:9A:1D:B0:62:02
Device 7C:9A:1D:B0:62:02 (public)
Name: AirPods
Alias: AirPods
Class: 0x00240418
Icon: audio-headphones
Paired: yes
Trusted: no
Blocked: no
Connected: yes
LegacyPairing: no
UUID: Service Discovery Serve.. (00001000-0000-1000-8000-00805f9b34fb)
UUID: Audio Sink (0000110b-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
UUID: A/V Remote Control (0000110e-0000-1000-8000-00805f9b34fb)
UUID: Handsfree (0000111e-0000-1000-8000-00805f9b34fb)
UUID: PnP Information (00001200-0000-1000-8000-00805f9b34fb)
UUID: Vendor specific (74ec2172-0bad-4d01-8f77-997b2be0722a)
Modalias: bluetooth:v004Cp200Fd9047
5. When connecting again next time, first query the device address through the devices command, and the address will be remembered for a period of time (the graphical interface connection method should also be used at this time)
[AirPods]# devices
Device 7C:9A:1D:B0:62:02 AirPods
Device AC:49:DB:4E:39:41 mephisto
Check the help information, you can try additional control functions, which will not be demonstrated here:
[AirPods]# help
Menu main:
Available commands:
-------------------
advertise Advertise Options Submenu
monitor Advertisement Monitor Options Submenu
scan Scan Options Submenu
gatt Generic Attribute Submenu
admin Admin Policy Submenu
list List available controllers
show [ctrl] Controller information
select <ctrl> Select default controller
devices List available devices
paired-devices List paired devices
system-alias <name> Set controller alias
reset-alias Reset controller alias
power <on/off> Set controller power
pairable <on/off> Set controller pairable mode
discoverable <on/off> Set controller discoverable mode
discoverable-timeout [value] Set discoverable timeout
agent <on/off/capability> Enable/disable agent with given capability
default-agent Set agent as the default one
advertise <on/off/type> Enable/disable advertising with given type
set-alias <alias> Set device alias
scan <on/off/bredr/le> Scan for devices
info [dev] Device information
pair [dev] Pair with device
cancel-pairing [dev] Cancel pairing with device
trust [dev] Trust device
untrust [dev] Untrust device
block [dev] Block device
unblock [dev] Unblock device
remove <dev> Remove device
connect <dev> Connect device
disconnect [dev] Disconnect device
menu <name> Select submenu
version Display version
quit Quit program
exit Quit program
help Display help about this program
export Print environment variables
The above is mainly for the situation when the graphical interface operation is invalid, I hope it will help you
Copyright statement:
- All content that is not sourced is original., please do not reprint without authorization (because the typesetting is often disordered after reprinting, the content is uncontrollable, and cannot be continuously updated, etc.);
- For non-profit purposes, to deduce any content of this blog, please give the relevant webpage address of this site in the form of 'source of original text' or 'reference link' (for the convenience of readers).
See Also:
- Whether initialDelaySeconds is valid in the startupProbe probe of k8s
- Nginx webdav for Joplin
- alacritty terminal use