New Linux Driver Posted To Enable Keyboard Support On M3 MacBooks
([Apple] 6 Hours Ago
Apple DockChannel)
- Reference: 0001643918
- News link: https://www.phoronix.com/news/Apple-DockChannel-M3-Keyboard
- Source link:
While [1]Linux 7.2 introduces the ability to boot on Apple M3 Macs , it's not yet remotely useful for end-users wanting to use an Apple Mac/MacBook as their daily system. As it stands now, [2]the M3 Macs boot to a simple console and that's about it with the lack of proper GPU acceleration and functionality like the keyboard on MacBooks not working either. Posted to the kernel mailing list today was the new driver patches for enabling the internal keyboard on more recent Apple MacBooks.
Michael Reeves posted the set of ten patches for supporting the Apple Silicon DockChannel internal keyboards under Linux. This is needed for Apple M3 MacBooks and others to actually use the laptop keyboard. This support is being introduced with the new "apple-dockchannel" driver.
Reeves explains in the patch cover letter to [3]the patch series :
"This series introduces support for the internal keyboards on Apple Silicon M2 and M3 MacBook models.
On these platforms, built-in input devices are managed by a dedicated coprocessor running an RTKit-based operating system. Communication between this coprocessor and the main processor is carried out over a low-latency hardware byte FIFO interface called DockChannel.
To support this input path, the series introduces a few new components:
- An apple-dockchannel mailbox driver to handle the low-level byte-stream FIFO.
- A DockChannel HID transport driver (apple-hid) that boots the coprocessor using the RTKit framework and encapsulates the HID protocol over the mailbox.
- Minor additions to the apple-rtkit and hid-apple drivers to support the TraceKit endpoint and integrate the keyboards into the existing input-quirks framework.
- Devicetree bindings and DTS updates to describe the nodes on M2 and M3 laptops.
The transport driver is based on an original out-of-tree implementation by Hector Martin, but it has been significantly rewritten for upstream inclusion to use the standard Linux mailbox framework and align better with upstream HID design patterns and reduce reliance on hacks.
While the coprocessor manages both the keyboard and the trackpad, this series only enables keyboard support. The keyboard can be initialised without loading external firmware, whereas the trackpad requires firmware. Trackpad support will be submitted in a subsequent series once these base transport layers are established.
Tested on: MacBook Air M3 (J613)."
So trackpad support remains left to be tackled for this upstream-focused driver plus other functionality needed before the Apple M3 devices will be useful with the mainline Linux kernel. For downstream Asahi Linux the Apple M3 enablement remains ongoing too with currently being around alpha quality.
[1] https://www.phoronix.com/news/Linux-7.2-SoC-Updates
[2] https://www.phoronix.com/news/Linux-7.2-Boots-Apple-M3
[3] https://lore.kernel.org/lkml/20260630-apple-mtp-keyboard-final-v1-0-506d936a1707@gmail.com/
Michael Reeves posted the set of ten patches for supporting the Apple Silicon DockChannel internal keyboards under Linux. This is needed for Apple M3 MacBooks and others to actually use the laptop keyboard. This support is being introduced with the new "apple-dockchannel" driver.
Reeves explains in the patch cover letter to [3]the patch series :
"This series introduces support for the internal keyboards on Apple Silicon M2 and M3 MacBook models.
On these platforms, built-in input devices are managed by a dedicated coprocessor running an RTKit-based operating system. Communication between this coprocessor and the main processor is carried out over a low-latency hardware byte FIFO interface called DockChannel.
To support this input path, the series introduces a few new components:
- An apple-dockchannel mailbox driver to handle the low-level byte-stream FIFO.
- A DockChannel HID transport driver (apple-hid) that boots the coprocessor using the RTKit framework and encapsulates the HID protocol over the mailbox.
- Minor additions to the apple-rtkit and hid-apple drivers to support the TraceKit endpoint and integrate the keyboards into the existing input-quirks framework.
- Devicetree bindings and DTS updates to describe the nodes on M2 and M3 laptops.
The transport driver is based on an original out-of-tree implementation by Hector Martin, but it has been significantly rewritten for upstream inclusion to use the standard Linux mailbox framework and align better with upstream HID design patterns and reduce reliance on hacks.
While the coprocessor manages both the keyboard and the trackpad, this series only enables keyboard support. The keyboard can be initialised without loading external firmware, whereas the trackpad requires firmware. Trackpad support will be submitted in a subsequent series once these base transport layers are established.
Tested on: MacBook Air M3 (J613)."
So trackpad support remains left to be tackled for this upstream-focused driver plus other functionality needed before the Apple M3 devices will be useful with the mainline Linux kernel. For downstream Asahi Linux the Apple M3 enablement remains ongoing too with currently being around alpha quality.
[1] https://www.phoronix.com/news/Linux-7.2-SoC-Updates
[2] https://www.phoronix.com/news/Linux-7.2-Boots-Apple-M3
[3] https://lore.kernel.org/lkml/20260630-apple-mtp-keyboard-final-v1-0-506d936a1707@gmail.com/