Linux drivers for mac

How to install Mac keyboard and trackpad drivers

I have recently installed Ubuntu on my Mac book Pro 2016, and noticed that the built in keyboard, and the track-pad are frozen. I have looked up how to install the drivers but I don’t understand a how to use GitHub and got lost really quick. What is the fastest way I can get these drivers installed and working? I am using an external keyboard and mouse for now but would not like to in the long run.

After spending many hours on the exact same issue, I finally ran across this link: wiki.t2linux.org/guides/dkms/#installing-modules I am using a Macbook 15,1 (15″ 2018 MBP) and Ubuntu 20.04.

2 Answers 2

Note that two of the steps (about loading the modules either at boot or immediately) are optional (and have been marked as such), and should not be necessary for Ubuntu.

Preparation

First install the dkms module

Next check that your kernel isn’t outdated (or your distribution uses different module versions from those used later) by running:

dkms status or ls -l /usr/src 

If the version of apple-bce is 0.1 then uninstall the old modules (to avoid incompatibility issues):

sudo dkms uninstall -m apple-bce -v 0.1 sudo dkms uninstall -m apple-ibridge -v 0.1 sudo rm -r /usr/src/apple-bce-0.1 sudo rm -r /usr/src/apple-ibridge-0.1 sudo rm -r /var/lib/dkms/apple-bce sudo rm -r /var/lib/dkms/apple-ibridge 

Installation

  1. Install the BCE (Buffer Copy Engine) module for Keyboard and Audio
  2. If you are on Arch, then use Aunali1’s apple-bce-dkms-git package
  3. Otherwise, run
sudo git clone https://github.com/t2linux/apple-bce-drv /usr/src/apple-bce-r183.c884d9c 
PACKAGE_NAME="apple-bce" PACKAGE_VERSION="r183.c884d9c" MAKE[0]="make KVERSION=$kernelver" CLEAN="make clean" BUILT_MODULE_NAME[0]="apple-bce" DEST_MODULE_LOCATION[0]="/kernel/drivers/misc" AUTOINSTALL="yes" 
  • Run sudo git clone https://github.com/t2linux/apple-ib-drv /usr/src/apple-ibridge-0.1
  • Run sudo dkms install -m apple-ibridge -v 0.1 . If on a live ISO, use sudo dkms install -m apple-ibridge -v 0.1 -k x.x.x-mbp instead and change x.x.x-mbp to the kernel that you have installed, as by default dkms will try to build the module for the kernel that the live ISO is using, which will most likely be older.
sudo modprobe apple_bce sudo modprobe apple_ib_tb sudo modprobe apple_ib_als 

The touchbar and the keyboard should now work.

For audio some additional configuration is required, see Audio config files.

Making the modules load at boot time — optional

In Ubuntu, these should already be set:

echo "apple-bce apple-ib_tb apple-ib-als brcmfmac" >> /etc/modules-load.d/t2.conf 

If you don’t want (for example) the touch bar modules, you can omit them from this command. brcmfmac is needed to use the internal Wi-Fi chip, refer to the Wi-Fi guide for details on how to set that up.

Configuring the Touchbar module

The Touchbar module offers some modes to set. In /etc/modprobe.d/apple-tb.conf , set fnmode (options apple-ib-tb fnmode=x) to one of the following options:

  • 0: Only show F1-F12
  • 1: Show media and brightness controls, use the fn key to switch to F1-12
  • 2: Show F1-F12, use the fn key to switch to media and brightness controls
  • 3: Only show media and brightness controls
  • 4: Only show the escape key

Fixing suspend

#!/bin/sh if [ "$" = "pre" ]; then modprobe -r apple_ib_tb hid_apple elif [ "$" = "post" ]; then modprobe hid_apple apple_ib_tb fi 
sudo chmod 755 /lib/systemd/system-sleep/rmmod_tb.sh sudo chown root:root /lib/systemd/system-sleep/rmmod_tb.sh 

This unloads the Touchbar modules as they can cause issues for suspend.

Possible Issues

The apple_ib_als module can cause issues, if you find your computer hanging at shutdown, or having BCE errors at boot, try blacklisting it by running

sudo sh -c "echo blacklist apple-ib-als" >> /etc/modprobe.d/blacklist.conf 

or removing it from /etc/modules-load.d/t2.conf .

Источник

Debian GNU/Linux + Macbook Air 2017 (установка wifi драйверов)

Так случилось что захотелось снести MacOS на Macbook’е Air и поставить что то более свободное и линуксовое. Макбук 2017 года, долгое время пользовался MacOS Mojave, обновляться до новых выпусков, зная возможные проблемы, желания не было. Немного перебирая варианты дистрибутивов и попробовав различные Live образы, выбор пал на Debian 11 но так как официально он еще не вышел (выход намечен на 14 августа 2021), то взял его второй релиз кандидат Bullseye RC 2.

Проблема 1

Вот тут и появился первый подводный камень: Debian поддерживает не все wifi устройства из коробки. На помощь могут прийти non-free прошивки, которые можно установить после установки системы, добавив репозитории этих несвободных прошивок, в файле sources.list .

Проблема 2

Теперь появляется второй подводный камень: а как мы установим прошивку для wifi устройства если у нас не работает сеть после установки? Тут уже на помощь пришел смартфон с включенным режимом USB Tethering. Подключив с помощью кабеля USB к макбуку, установщик на удивление сразу распознал это как проводное сетевое соединение. Таким образом интернет соединение для установки драйверов на wifi и первоначальных пакетов, мы себе обеспечили.

Действия после установки

Сам процесс инсталляции я описывать не буду так как все индивидуально, и это тема для отдельной статьи.

После установки открываем терминал и утилитой lspci узнаем модель нашего wifi устройства, введя следующую команду:

На выводе получим название модели устройства, в моей случае это:

Network controller [0280]: Broadcom Inc. and subsidiaries BCM4360 802.11ac Wireless Network Adapter [14e4:43a0] (rev 03)

BCM4360 это и есть модель wifi устройства. Свободных прошивок к сожалению на него нет и теперь чтобы wifi заработал, нам придется установить несвободный драйвер broadcom-sta-dkms который предоставляет исходный код для модуля ядра wl Остальной список поддерживаемых моделей можно посмотреть в описании драйвера https://packages.debian.org/buster/broadcom-sta-dkms

Так же перед установкой, поставим пару необходимых пакетов wireless-tools и wpasupplicant

sudo apt install wireless-tools sudo apt install wpasupplicant

Далее открываем из под рута, файл sources.list (я использую nano)

sudo nano /ect/apt/sources.list

И вписываем возле каждого урла репозитория, напротив слова main , теги contrib non-free . Должно получится примерно следующее:

Затем сохраняем файл и обновляем инфу о пакетах командой sudo apt update .

Теперь устанавливаем сам драйвер введя команду:

sudo apt install linux-image-$(uname -r|sed 's,[^-]*-[^-]*-,,') linux-headers-$(uname -r|sed 's,[^-]*-[^-]*-,,') broadcom-sta-dkms

По ее завершению, убираем модули b44 b43 b43legacy ssb brcmsmac bcma из ядра системы, командой:

sudo modprobe -r b44 b43 b43legacy ssb brcmsmac bcma

После этого в Network manager’е (я использовал его для настройки сети) появится раздел Wi-Fi Networks где мы уже сможем выбрать доступную сеть и ввести пароль для доступа.

Заключение

Данный гайд может быть полезен не только владельцам маков но и других ноутбуков и десктопов. Так же гайд подойдет остальным Debian производным дистрибутивам (хотя могут быть нюансы).

Источник

Is it possible to use Linux USB drivers on Mac OS X?

No. The kernel interfaces are completely different. Though MacOSX and Linux are both UNIXes-ish (in fact, Mac OS X is 100% UNIX Certified) they’re vastly different in architecture. Your best bet would be to try VMWare and use a Linux instance under VMWare to try and access it.

EDIT: I just saw your edit, saying you have source and don’t want VMWare. I’d still say no. The underpinnings of Linux and MacOSX are radically different. The source wouldn’t ‘just work’ unless someone made it work specifically for MacOSX. I’d check the source for ‘#ifdef darwin’ or something similar to that, it won’t work. You’d have to have the right version too — Apple changes it’s kernel enough between major releases that a very old port may not work.

Many years ago, there was a project for device drivers to be portable across platforms. It was called Project UDI. The theory was to have a Device Driver Environment in your kernel. The APIs would be consistent across all OSes. Device drivers were source code compatible everywhere, and binary compatible (what you would like) across machines with the same ABI (x86, AMD64, etc). There was a port I remember for Darwin, but I think it was much more theoretical on MacOSX than anything.

The environment worked technically (it actually shipped as the native Device Driver Interface for UnixWare, with the old DDI a compatibility layer on top of UDI) but flopped for human/political reasons. Having SCO/Caldera as the main push for the project didn’t help much. For an OS with good driver support (say, Solaris, Windows) having those drivers is an advantage over kernels that don’t, so the only support would come by definition from OSes that didn’t have drivers, and not a lot of influence. Stallman didn’t like it much either — binary compatibility would make it less likely (he posited) to ship source for drivers.

Источник

Читайте также:  Cisco vpn client anyconnect linux
Оцените статью
Adblock
detector