La souris et ses 3 boutons

Non je ne vais pas parler d’une jeune fille acnéique…

Environnement

Debian 11 Bullseye

Equipement

Souris sans fil Logitech M235

Logiciels installés

apt list --installed | grep input

libinput-bin/testing,unstable,now 1.14.1-2 amd64  [installé, automatique]
libinput-tools/testing,unstable,now 1.14.1-2 amd64  [installé]
libinput10/testing,unstable,now 1.14.1-2 amd64  [installé, automatique]
xinput/oldstable,stable,testing,unstable,now 1.6.2-1+b1 amd64  [installé]
xserver-xorg-input-all/oldstable,stable,testing,unstable,now 1:7.7+19 amd64  [installé]
xserver-xorg-input-evdev/stable,testing,unstable,now 1:2.10.6-1 amd64  [installé]
xserver-xorg-input-libinput/testing,unstable,now 0.29.0-1 amd64  [installé, automatique]
xserver-xorg-input-synaptics/stable,testing,unstable,now 1.9.1-1 amd64  [installé]
xserver-xorg-input-wacom/testing,unstable,now 0.34.99.1-1+b1 amd64  [installé]

Détection

Le petit récepteur branché sur un port usb est détecté par le noyau Linux

lsusb
Bus 005 Device 003: ID 046d:c52f Logitech, Inc. Unifying Receiver

lsusb -t
Bus 05.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/5p, 12M
    |__ Port 2: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 2: Dev 3, If 1, Class=Human Interface Device, Driver=usbhid, 12M

lsmod | grep usbhid
usbhid                 65536  1 hid_logitech_dj
hid                   139264  5 usbhid,hid_generic,hid_logitech_dj,hid_logitech_hidpp
usbcore               299008  10 ohci_hcd,ehci_pci,usbhid,usb_storage,uvcvideo,ehci_hcd,btusb,ohci_pci,uas,ums_realtek

Messages dans le journal au branchement du récepteur

oct. 16 09:14:20 debian kernel: usb 5-2: new full-speed USB device number 3 using ohci-pci
oct. 16 09:14:20 debian kernel: usb 5-2: New USB device found, idVendor=046d, idProduct=c52f, bcdDevice=22.00
oct. 16 09:14:20 debian kernel: usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
oct. 16 09:14:20 debian kernel: usb 5-2: Product: USB Receiver
oct. 16 09:14:20 debian kernel: usb 5-2: Manufacturer: Logitech
oct. 16 09:14:20 debian kernel: logitech-djreceiver 0003:046D:C52F.0004: hidraw0: USB HID v1.11 Mouse [Logitech USB Receiver] on usb-0000:00:13.0-2/input0
oct. 16 09:14:20 debian kernel: logitech-djreceiver 0003:046D:C52F.0005: hiddev0,hidraw1: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:13.0-2/input1
oct. 16 09:14:20 debian kernel: logitech-djreceiver 0003:046D:C52F.0005: device of type eQUAD step 4 DJ (0x04) connected on slot 1
oct. 16 09:14:20 debian kernel: input: Logitech M315/M235 as /devices/pci0000:00/0000:00:13.0/usb5/5-2/5-2:1.1/0003:046D:C52F.0005/0003:046D:4009.0006/input/input25
oct. 16 09:14:20 debian kernel: logitech-hidpp-device 0003:046D:4009.0006: input,hidraw2: USB HID v1.11 Mouse [Logitech M315/M235] on usb-0000:00:13.0-2/input1:1
oct. 16 09:14:20 debian mtp-probe[7640]: checking bus 5, device 3: "/sys/devices/pci0000:00/0000:00:13.0/usb5/5-2"
oct. 16 09:14:20 debian mtp-probe[7640]: bus: 5, device: 3 was not an MTP device
oct. 16 09:14:20 debian mtp-probe[7646]: checking bus 5, device 3: "/sys/devices/pci0000:00/0000:00:13.0/usb5/5-2"
oct. 16 09:14:20 debian mtp-probe[7646]: bus: 5, device: 3 was not an MTP device
oct. 16 09:14:20 debian systemd-logind[653]: Watching system buttons on /dev/input/event6 (Logitech M315/M235)

Listage des caractéristiques

xinput --list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Logitech M315/M235                      	id=11	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=13	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Video Bus                               	id=8	[slave  keyboard (3)]
    ↳ Power Button                            	id=9	[slave  keyboard (3)]
    ↳ 2SF022: HP Webcam                       	id=10	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=12	[slave  keyboard (3)]
    ↳ HP WMI hotkeys                          	id=14	[slave  keyboard (3)]
    ↳ Logitech M315/M235                      	id=15	[slave  keyboard (3)]

Listage avec libinput

sudo libinput list-devices

Caractéristiques détaillées

 xinput list-props 11

Device 'Logitech M315/M235':
	Device Enabled (145):	1
	Coordinate Transformation Matrix (147):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	libinput Natural Scrolling Enabled (283):	0
	libinput Natural Scrolling Enabled Default (284):	0
	libinput Scroll Methods Available (285):	0, 0, 1
	libinput Scroll Method Enabled (286):	0, 0, 0
	libinput Scroll Method Enabled Default (287):	0, 0, 0
	libinput Button Scrolling Button (288):	2
	libinput Button Scrolling Button Default (289):	2
	libinput Middle Emulation Enabled (290):	0
	libinput Middle Emulation Enabled Default (291):	0
	libinput Accel Speed (292):	0.000000
	libinput Accel Speed Default (293):	0.000000
	libinput Accel Profiles Available (294):	1, 1
	libinput Accel Profile Enabled (295):	1, 0
	libinput Accel Profile Enabled Default (296):	1, 0
	libinput Left Handed Enabled (297):	0
	libinput Left Handed Enabled Default (298):	0
	libinput Send Events Modes Available (268):	1, 0
	libinput Send Events Mode Enabled (269):	0, 0
	libinput Send Events Mode Enabled Default (270):	0, 0
	Device Node (271):	"/dev/input/event7"
	Device Product ID (272):	1133, 16393
	libinput Drag Lock Buttons (299):	<no items>
	libinput Horizontal Scroll Enabled (300):	1

Exemple de modification d’un paramètre

xinput set-prop 11 "libinput Middle Emulation Enabled" "1,1,1"

Test des 3 boutons

xev | grep button
  

Une fenêtre s’ouvre

On peut tester que le clic sur chaque bouton: gauche, molette, droit est bien détecté.

state 0x10, button 1, same_screen YES
    state 0x110, button 1, same_screen YES
    state 0x10, button 2, same_screen YES
    state 0x210, button 2, same_screen YES
    state 0x10, button 3, same_screen YES
    state 0x410, button 3, same_screen YES

Dysfonctionnement du clic molette

Parfois le clic sur la molette (bouton 2) n’est pas détecté ce qui empêche le copier/coller de texte sélectionné.

Le seul palliatif que j’ai trouvé est de débrancher puis rebrancher le récepteur du port usb.

Par Bidouille De Bian

Bidouilleur sur Linux Debian 10 (Buster). Débutant dans le blog sur Wordpress.