Hello Florian, On 2020-04-28 09:45, pelzflorian (Florian Pelz) wrote: > Danny, Brice, I’m putting you in Cc, maybe you have an opinion on > this? I suppose I should not change %default-extra-linux-options. Keeping this module enabled in the kernel seems a good idea, it allows support for mice solely speaking Human Interface Device Boot Protocol (HIDBP); probably somebody somewhere is unwittingly relying on it being present by default in Guix. > From the Linux kernel docs > : >> 5.2. USB Race >> >> The Apple multi-touch trackpads report both mouse and keyboard events >> via different interfaces of the same usb device. This creates a race >> condition with the HID driver, which, if not told otherwise, will find >> the standard HID mouse and keyboard, and claim the whole device. To >> remedy, the usb product id must be listed in the mouse_ignore list of >> the hid driver. > Indeed for me on good boots, the command `lsusb -t` prints > |__ Port 3: Dev 2, If 2, Class=Human Interface Device, > Driver=bcm5974, 12M > while on bad boots it says Driver=usbmouse. > > But why that happens I do not know, because the mouse_ignore list in > the Linux-libre kernel’s drivers/hid/hid-quirks.c file does list my > touchpad. Strange. I will investigate further if a change to the > kernel config could help. FWI the issue span from the driver 'usbmouse' (drivers/hid/usbhid/usbmouse.c) which doesn't use drivers/hid/hid-quirks.c contrary to 'usbhid' (drivers/hid/usbhid/hid-core.c) which is using it. This is probably why you did not report having an issue with 'usbhid' racing with 'bcm597'; 'usbhid' is effectively prevented to take over your touchpad by the quirks while 'usbmouse' isn't aware of it. Passing arguments to the kernel to blacklist a module is the correct way of doing this currently FWIU; it's already used in gnu/system/install.scm. Cheers, - Brice