MacBook Pro 2018 T2 ze maachen mat ArchLinux (dualboot)
Et gouf e bëssen Hype iwwer d'Tatsaach datt den neien T2 Chip et onméiglech mécht Linux op den neien 2018 MacBooks mat enger Touchbar z'installéieren. D'Zäit ass vergaang, an um Enn vum 2019 hunn Drëtt-Partei Entwéckler eng Zuel vu Chauffeuren a Kernel Patches fir Interaktioun mam T2 Chip implementéiert. Den Haapttreiber fir MacBook Modeller 2018 a méi nei implementéiert VHCI Operatioun (Touch / Keyboard / etc. Operatioun), souwéi Tounoperatioun.
BCE (Buffer Copy Engine) - etabléiert den Haaptkommunikatiounskanal mat T2. VHCI an Audio erfuerderen dës Komponent.
VHCI ass en USB Virtual Host Controller; d'Tastatur, d'Maus an aner Systemkomponente gi vun dëser Komponent geliwwert (aner Chauffeuren benotzen dësen Hostcontroller fir méi Funktionalitéit ze bidden.
Audio - Chauffer fir den T2 Audio Interface, ënnerstëtzt de Moment nëmmen Audioausgang duerch de MacBook's agebaute Spriecher
Den zweete Projet heescht macbook12-spi-driver, an et implementéiert d'Fäegkeet fir en Input Chauffer fir d'Tastatur, SPI Trackpad an Touchbar fir MacBook Pro Late 2016 a spéider ze bedreiwen. E puer Tastatur / Trackpad Treiber sinn elo am Kernel abegraff, ugefaange mat der Versioun 5.3.
Ënnerstëtzung fir Apparater wéi Wi-Fi, Touchpad, etc gouf och mat Kernel Patches implementéiert. Aktuell Kernel Versioun5.3.5-1
Wat am Moment funktionnéiert
NVMe
Keyboard
USB-C (Thunderbolt ass net getest ginn; wann de Modul automatesch gelueden ass, afréiert de System)
Touchbar (mat der Fäegkeet fir d'Fn Schlësselen, Géigeliicht, ESC, etc.)
Sound (nëmmen agebaute Spriecher)
Wi-Fi Modul (iwwer brcmfmac an nëmmen iwwer iw)
DisplayPort iwwer USB-C
Sensoren
Suspend/Resume (deelweis)
etc ..
Dësen Tutorial ass applicabel fir macbookpro15,1 a macbookpro15,2. Den Artikel gouf als Basis vu Github op Englesch geholl. vun hei. Net alles an dësem Artikel huet geschafft, also hunn ech selwer eng Léisung ze fannen.
Wat Dir braucht fir ze installéieren
USB-C Docking Adapter op USB (op d'mannst dräi USB Inputen fir eng Maus, Tastatur, USB Modem oder Telefon am Tethering Modus ze verbannen). Dëst ass nëmmen an den éischten Etappe vun der Installatioun néideg
USB Tastatur
USB / USB-C Flash Drive Minimum 4GB
1. Desaktivéiere de Verbuet vum Booten vun externen Medien
cp -r /usr/share/archiso/configs/releng/ archlive
cd archlive
Füügt de Repository op pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Mir ignoréieren den ursprénglechen Kernel am pacman.conf:
IgnorePkg = linux linux-headers
Füügt déi néideg Packagen un, füügt um Enn den linux-mbp-Kernel a linux-mbp-Header derbäi
...
wvdial
xl2tpd
linux-mbp
linux-mbp-headers
Mir änneren de Skript fir am interaktiven Modus ze schaffen (ersetzen pacstrap -C mat pacstrap -i -C):
sudo nano /usr/bin/mkarchiso
# Install desired packages to airootfs
_pacman ()
{
_msg_info "Installing packages to '${work_dir}/airootfs/'..."
if [[ "${quiet}" = "y" ]]; then
pacstrap -i -C "${pacman_conf}" -c -G -M "${work_dir}/airootfs" $* &> /dev/null
else
pacstrap -i -C "${pacman_conf}" -c -G -M "${work_dir}/airootfs" $*
fi
_msg_info "Packages installed successfully!"
}
Bild bilden:
sudo ./build.sh -v
Dréckt Y fir ignoréiert Packagen ze sprangen, da schreift d'ISO Bild op den USB Flash Drive:
sudo dd if=out/archlinux*.iso of=/dev/sdb bs=1M
4. Éischt Stiwwel
Restart mat der Flash Drive an der Tastatur agebaut. Dréckt Optiounen wann den Apel erscheint, wielt EFI BOOT.
Als nächst musst Dir den "e" Schlëssel drécken a gitt um Enn vun der Kommandozeil module_blacklist = Thunderbolt. Wann dëst net gemaach gëtt, kann de System net booten an en Thunderbolt ICM Feeler erschéngt.
Mat fdisk / cfdisk fanne mir eis Partition (fir mech ass et nvme0n1p4), formatéiert se an installéiert d'Archiv. Dir kënnt benotzen offiziell Uweisungen oder Säiteweis.
Mir kreéieren keng Bootpartition; Mir schreiwen de Bootloader an /dev/nvme0n1p1
Nodeems d'Ëmwelt am / mnt komplett geformt ass a ier Dir op Arch-Chroot plënnert, schreift:
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt /bin/bash
Füügt op /etc/pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Installéiere Kernel Moduler fir d'Tastatur. Am Repository jährlech 1 et gëtt e fäerdege Pak, et heescht apple-bce-dkms-git. Fir et z'installéieren, schreift an der Konsole:
pacman -S apple-bce-dkms-git
An dësem Fall gëtt de Kernel Modul genannt apel-bce. Am Fall vun der Selbstmontage gëtt et genannt Eunapios. Deementspriechend, wann Dir e Modul an der MODULES Sektioun vun der mkinicpio.conf Datei registréiere wëllt, da vergiesst net wéi ee Modul Dir installéiert hutt.
Manuell Montage:
git clone https://github.com/MCMrARM/mbp2018-bridge-drv.git
cd mbp2018-bridge-drv
make
cp bce.ko /usr/lib/modules/extramodules-mbp/bce.ko
Füügt de bce- oder apple-bce-Modul fir de Start un: /etc/modules-load.d/bce.conf
bce
Wann Dir d'Fn-Knäppercher als Standard benotze wëllt, da schreift an der /etc/modprobe.d/apple-tb.conf Datei:
options apple-ib-tb fnmode=2
Aktualiséierung vum Kernel an Initramfs.
mkinitcpio -p linux-mbp
Installéieren iwd:
sudo pacman -S networkmanager iwd
5. Loader
Wann all d'Haaptpakete am Chroot installéiert sinn, kënnt Dir de Bootloader installéieren.
Ech konnt de Grub net op d'Aarbecht kréien. Grub boots vun engem externen USB Drive, awer wann Dir probéiert et an nvme ze registréieren via
de System ass an Kernel Panik gaangen, an no engem neien Element duerch Optiounen nei starten ass net erschéngt. Ech hunn keng kloer Léisung fir dëse Problem fonnt an hunn dofir beschloss ze probéieren de Booting mat Systemd-Boot ëmzesetzen.
Lancéiere
bootctl --path=/boot install
a mir ginn an Kernel Panik. Maacht de MacBook aus, schalt et erëm un, klickt op Optiounen (schalt den USB-C Hub net mat Tastatur aus)
Mir kontrolléieren datt en neien EFI BOOT Entrée nieft dem externen Apparat erschéngt
Mir wielen fir vun engem externen USB Drive ze booten, wéi während der éischter Installatioun (vergiesst net module_blacklist = Thunderbolt ze spezifizéieren)
Mir montéieren eis Disk a ginn an d'Ëmwelt iwwer Arch-Chroot
mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt
Wann et néideg ass datt d'Tastatur funktionnéiert bis de System voll gelueden ass (dëst ass néideg wann Dir luks/dm-crypt Verschlësselung benotzt), da schreift et an der /etc/mkinicpio.conf Datei an der MODULES Sektioun:
Wéi et sech um Enn erausstellt, späichert MacOS d'Firmwaredateien fir de Wi-Fi Adapter am Dossier /usr/share/firmware/wifi , an Dir kënnt se vun do an der Form vu Blobs huelen an se an de brcmfmac Kernel Modul fidderen. Fir erauszefannen wéi eng Dateien Ären Adapter benotzt, öffnen en Terminal op MacOS a schreift:
ioreg -l | grep C-4364
Mir kréien eng laang Lëscht. Mir brauchen nëmmen Dateien aus der Rubrik Gefrote Dateien:
An dësem Fall enthält déi lescht Textdatei d'Modelnamen; Wann Äre Modell net macbookpro15,2 ass, da musst Dir dës Datei am Aklang mat Ärem MacBook Modell ëmbenennen.
Restart an Arch.
Kopéiert d'Dateien vum Flash Drive an den Dossier /lib/firmware/brcm/
De Moment 16.10.2019 Dir musst entweder Sound oder suspendéieren / resume wielen. Mir waarden op den Auteur vum bce Modul fir d'Funktionalitéit ze kompletéieren.
Fir e Modul mat Susped / Resume Support ze bauen, musst Dir déi folgend maachen:
git clone https://github.com/MCMrARM/mbp2018-bridge-drv.git
cd mbp2018-bridge-drv
git checkout suspend
make
cp bce.ko /usr/lib/modules/extramodules-mbp/bce.ko
modprobe bce
Wann Dir de fäerdege Apple-bce-Modul aus dem anuali1-Repository installéiert hutt, da musst Dir et als éischt ewechhuelen an nëmmen dann de bce-Modul mat Suspension-Modus-Ënnerstëtzung montéieren an installéieren.
Och musst Dir den Applesmc Modul op d'Schwaarzlëscht addéieren (wann Dir dat net virdru gemaach hutt) a gitt sécher datt an /boot/loader/entries/arch.conf an der Optiounslinn um Enn de Parameter derbäigesat gëtt. pcie_ports=compat.
De Moment klappt den Touchbar Chauffer wann Dir an de Suspensiounsmodus erakënnt, an den Thunderbolt Chauffer freet heiansdo de System fir méi wéi 30 Sekonnen, a fir e puer Minutten wann Dir weider geet. Dëst kann fixéiert ginn andeems se problematesch Moduler automatesch ausluede.
Erstellt e Skript /lib/systemd/system-sleep/rmmod.sh:
#!/bin/sh
if [ "" == "pre" ]; then
rmmod thunderbolt
rmmod apple_ib_tb
elif [ "" == "post" ]; then
modprobe apple_ib_tb
modprobe thunderbolt
fi
Maacht et ausféierbar:
sudo chmod +x /lib/systemd/system-sleep/rmmod.sh
Dat ass alles fir de Moment. D'Resultat ass e komplett funktionéierbare System, mat Ausnam vun e puer Nuancen mat Suspen / Resume. Keng Crashen oder Kernel Panik goufen während e puer Deeg Uptime observéiert. Ech hoffen, datt an der nächster Zukunft den Auteur vum bce Modul et fäerdeg bréngt, a mir wäerte voll Ënnerstëtzung fir Suspensioun / Resume an Sound kréien.