Abnormal touchpad behavior on MacBook Air A1466 EMC2559

Hello,

Requirements:

I have Searched the forum for my issue and found nothing related or helpful
I have checked the Resources category (Resources Index)
I have reviewed the Wiki for relevant information
I have read the the Release Notes and Errata

OpenMandriva Lx version:

OpenMandriva Lx release 25.06 (ROME) Rolling for x86_64 kernel Linux 6.14.2-desktop-3o

Desktop environment (KDE, LXQT…):

KDE Plasma 6.3.4 (Wayland)

Description of the issue (screenshots if relevant):

Abnormal touchpad behavior on MacBook Air A1466 EMC2559.

The physical buttons do not respond at all. Additionally, the pointer only moves verically when I slide my finger from right to left, and it moves to the right when I slide my finger up or down but only if I down one of the two buttons. The only function that works correctly is two-finger scrolling.

Relevant informations (hardware involved, software version, logs or output…):

lspci
00:00.0 Host bridge: Intel Corporation 3rd Gen Core processor DRAM Controller (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04)
00:16.0 Communication controller: Intel Corporation 7 Series/C216 Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 7 Series/C216 Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 1 (rev c4)
00:1c.1 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2 (rev c4)
00:1c.4 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 5 (rev c4)
00:1d.0 USB controller: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation QS77 Express Chipset LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 7 Series/C216 Chipset Family SMBus Controller (rev 04)
02:00.0 Network controller: Broadcom Inc. and subsidiaries BCM43224 802.11a/b/g/n (rev 01)
03:00.0 PCI bridge: Intel Corporation DSL3510 Thunderbolt Controller [Cactus Ridge 4C 2012] (rev 03)
04:00.0 PCI bridge: Intel Corporation DSL3510 Thunderbolt Controller [Cactus Ridge 4C 2012] (rev 03)
04:03.0 PCI bridge: Intel Corporation DSL3510 Thunderbolt Controller [Cactus Ridge 4C 2012] (rev 03)
04:04.0 PCI bridge: Intel Corporation DSL3510 Thunderbolt Controller [Cactus Ridge 4C 2012] (rev 03)
04:05.0 PCI bridge: Intel Corporation DSL3510 Thunderbolt Controller [Cactus Ridge 4C 2012] (rev 03)
04:06.0 PCI bridge: Intel Corporation DSL3510 Thunderbolt Controller [Cactus Ridge 4C 2012] (rev 03)
05:00.0 System peripheral: Intel Corporation DSL3510 Thunderbolt Controller [Cactus Ridge 4C 2012] (rev 03)
lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 003: ID 05ac:8510 Apple, Inc. FaceTime HD Camera (Built-in)
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 003: ID 0424:2513 Microchip Technology, Inc. (formerly SMSC) 2.0 Hub
Bus 002 Device 004: ID 0a5c:4500 Broadcom Corp. BCM2046B1 USB 2.0 Hub (part of BCM2046 Bluetooth)
Bus 002 Device 005: ID 05ac:024d Apple, Inc. Internal Keyboard/Trackpad (MacBook Air) (ISO)
Bus 002 Device 006: ID 05ac:8404 Apple, Inc. Internal Memory Card Reader
Bus 002 Device 009: ID 05ac:821f Apple, Inc. Built-in Bluetooth 2.0+EDR HCI
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
xinput list
[ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ xwayland-pointer:10                       id=6    [slave  pointer  (2)]
⎜   ↳ xwayland-relative-pointer:10              id=7    [slave  pointer  (2)]
⎜   ↳ xwayland-pointer-gestures:10              id=8    [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ xwayland-keyboard:10                      id=9    [slave  keyboard (3)]

Please fix this and indicate what you have tried.

We will require you to verify this is an issue in X11, as well. If possible, make sure you are not using the Slim version. It is more debloated than a full version and may require manual package installs as a byproduct.

Thanks for fixing, but it appears you missed something:

This may also be relevant:

We don’t appear to currently package mtrack so this is probably a @bero question. It will most likely be a module.

1 Like

Thanks for your reply.

Yes, I saw that discussion, but unfortunately there is no solution to the problem there. :cry:

Thank you very much. I will definitely read it.

What bothers me is that I also tried the Mageia and Openmamba ISOs, and the touchpad worked fine with both of them (they had other problems, though :winking_face_with_tongue: ). It almost makes me think that it’s something that needs to be activated in the kernel.

OMLx is not based on those, it is independent. You could run a live disk of those distros and check which modules are loaded for input.

Don’t forget to try this.

Yes, I understand. I meant that it would be interesting to understand where the difference lies. I should do some cross-testing with OpenMandriva.

You’re right, sorry I forgot to reply earlier. Before installing the full ROME version with Wayland, I tried almost all the available OpenMandriva ISO images, both slim and full, with X11 and Wayland, and with other graphics daemons. But all versions gave me the exact same problem. :cry:

Then, yeah. It’s probably a module problem. Your success rate will increase using X11 as we don’t support Wayland for production level work. This means you use (test) it at your own peril.

1 Like

I had experienced this issue a while back with a MacBook Pro from the same era. I searched online and found a post that said to check for the bcm5974 module being there (which is the correct one), and it was for me on OMLx ROME. It also stated to check for the usbmouse module, if it was there (it was), then remove both and load bcm5974 again. Those steps worked for me on ROME with x11. Obviously, other action would need to be taken in order to get that to be permanent. Also, there would be a matter of your wireless card if that’s an extra fun model like mine was. Those laptops are an extreme myriad of traditionally unfriendly hardware.

2 Likes

I’ve made some progress.

As you say, the problem is caused by the conflict between modules bcm5974 and usbmouse.

I managed to get the trackpad working by giving these commands:

sudo rmmod usbmouse
sudo rmmod bcm5974
sudo modprobe bcm5974

The problem now is figuring out how to make the solution permanent.

To prevent a module from loading we have to blacklist it. The file is /etc/modprobe.d/blacklist-omv.conf and entry will be blacklist usbmouse

However, usbmouse is already blacklisted on my system. So, may be it is default? Check yours. If there is entry for it in your blacklist-omv.conf file and yet it is loading then I am not sure why.

To enable a module, we have to create a file with just module’s name in it under /etc/modules-load.d/. I am taking cue from the ‘vbox-guest-additions.conf’ file inside this directory. You could create a file by name ‘bcm.conf’ and enter just bcm5974 in it, such that

cat /etc/modules-load.d/bcm.conf
bcm5974

Reboot for the changes to take effect. I am not sure if the intird file has to be rebuilt.

1 Like

Not the OP, but I have tried this to no avail. I am on a 2012 MacBook Pro 9,1 Non-Retina.

Hello,

I had responded to OP earlier in the thread. For reference, the hardware where the steps worked for me was MacBookPro11,3. These are the only Macs I have experience with, so not sure the difference. Are you saying that the touchpad doesn’t begin working as desired on yours?

Yes, but when running these commands:

I get this error:

libkmod: kmod_config_parse: /etc/modprobe.d/bcm.conf line 1: ignoring bad line starting with 'bcm5974'

Okay, ignore what I said above. The trackpad works now. The error was a result of me creating a file where it shouldn’t be.

Now all I have to write is a script file called .fix-trackpad.sh in my home directory as follows:

#!/bin/sh
rmmod usbmouse
rmmod bcm5974
modprobe bcm5974

then run chmod +x ~/.fix-trackpad.sh and sudo crontab -e, then paste this line in the editor so the script will execute on startup:

@reboot /home/<your-username>/.fix-trackpad.sh

Finally, I will see if this works by rebooting the system. Hope this works!

1 Like

Didn’t work. Hopefully editing /etc/crontab and adding the line there directly fixes it.

Edit: Well, that didn’t work either. But, thankfully, I found a solution once and for all.
I first had to create a systemd service file at /etc/systemd/system with the name fix-trackpad.service with the following content:

[Unit]
Description=Fix MacBook Trackpad Issues
After=network.target

[Service]
ExecStart=/home/<your-username>/.fix-trackpad.sh
Type=simple
User=root

[Install]
WantedBy=multi-user.target

Then, I enabled and started the script by running these commands:

su -
systemctl daemon-reload
systemctl enable fix-trackpad.service
systemctl start fix-trackpad.service
reboot

After the MacBook restarted, it still works.

1 Like

And @Tedesfo, if my solution fixes your problem as well, you can mark the issue as “ Solved.”

I don’t understand why, but this solution doesn’t work.

The usbmouse module is already present in the /etc/modprobe.d/blacklist-omv.conf file by default.

I also tried creating the bcm.conf file in /etc/modules-load.d to enable the bcm5974 module. But none of this seems to have any effect on the system.

This solution works.

It is certainly a very clever solution.

However, I don’t think it is the definitive solution, in the sense that user intervention is required to resolve the trackpad malfunction. I believe it would be interesting to understand the cause of this problem so that OpenMandriva developers can intervene and provide future MacBook users like us with a system that is already fixed.

1 Like