Faia o le MacBook Pro 2018 T2 galue ma ArchLinux (dualboot)

O loʻo i ai le tele o faʻasalalauga e uiga i le mea moni o le T2 chip fou o le a le mafai ai ona faʻapipiʻi Linux i luga o le 2018 MacBooks fou ma se paʻu paʻu. Na mavae le taimi, ma i le faaiuga o le 2019, na faʻatinoina e le au atinaʻe lona tolu le tele o avetaʻavale ma paʻu fatu mo fegalegaleaiga ma le T2 pu. O le avetaʻavale autu mo MacBook faʻataʻitaʻiga 2018 ma fou faʻaaogaina VHCI faʻaogaina (paʻi / keyboard / etc. galuega), faʻapea foʻi ma le faʻaogaina lelei.

Проект mbp2018-bridge-drv vaevaeina i 3 vaega autu:

  • BCE (Buffer Copy Engine) - fa'atuina le ala feso'ota'iga autu ma le T2. VHCI ma Audio e manaʻomia lenei vaega.
  • VHCI o le USB Virtual Host Controller; o le piano, isumu ma isi vaega o loʻo tuʻuina atu e lenei vaega (o isi avetaʻavale e faʻaaogaina lenei pule talimalo e tuʻuina atu ai le tele o galuega.
  • Leo - aveta'avale mo le T2 fa'alogo fa'alogo, o lo'o lagolagoina i le taimi nei na'o le fa'alogo leo e ala i le fa'aogaina o le MacBook


O le galuega lona lua ua ta'ua macbook12-spi-taavale, ma fa'atino ai le tomai e fa'agaioi ai se aveta'avale fa'aoga mo le piano, SPI trackpad, ma le pa'i mo MacBook Pro Late 2016 ma mulimuli ane. O nisi ta'avale keyboard/trackpad o lo'o aofia nei i totonu o le fatu, amata i le version 5.3.

Lagolago mo masini e pei o le wi-fi, touchpad, ma isi sa faʻatinoina foi e faʻaaoga ai patches kernel. Fa'asologa o le fatu o lo'o iai nei 5.3.5-1

O le a le mea o loʻo galue i le taimi nei

  1. NVMe
  2. Keyboard
  3. USB-C (Thunderbolt e leʻi faʻataʻitaʻiina, pe a otometi le utaina o le module, e faʻamalo le faiga)
  4. Touchbar (fa'atasi ai ma le malosi e ki ai ki Fn, moli tua, ESC, ma isi)
  5. Leo (na'o sipika o lo'o i totonu)
  6. Wi-Fi module (e ala i le brcmfmac ma na'o le iw)
  7. DisplayPort i luga ole USB-C
  8. Sensors
  9. Taofi/Fa'aauau (vaega)
  10. ma isi.

O lenei a'oa'oga e talafeagai mo macbookpro15,1 ma macbookpro15,2. O le tusiga na ave o se faavae mai Github i le Igilisi. mai iinei. E leʻo aoga mea uma i lenei tusiga, o lea na tatau ai ona ou suʻeina aʻu lava fofo.

Mea e te manaʻomia e faʻapipiʻi

  • Feso'ota'iga fa'apipi'i USB-C i le USB (a itiiti ifo ma le tolu fa'aoga USB mo le fa'afeso'ota'i o le isumu, keyboard, modem USB po'o le telefoni ile fa'aogaina o le fa'aogaina). E naʻo le mea e manaʻomia i le taimi muamua o le faʻapipiʻiina
  • USB keyboard
  • USB/USB-C flash drive la'ititi 4GB

1. Fa'agata le fa'asa o le fa'aosoina mai fa'asalalauga fafo

https://support.apple.com/en-us/HT208330
https://www.ninjastik.com/support/2018-macbook-pro-boot-from-usb/

2. Fa'asoa avanoa avanoa e fa'aaoga ai le Disk Utility

Mo le faʻaogagofie, na vave ona ou tuʻuina atu le 30GB i le disk, faʻapipiʻi i le exfat i le Disk Utility lava ia. Vaevaeina o le Tisiki Fa'aletino Fa'aoga.

3. Fausia se ata ISO

Filifiliga:

  1. E mafai ona e alu i le auala faigofie ma sii mai se ata ua saunia ma le fatu 5.3.5-1 ma patches mai aunali1 sootaga i le ata ua uma
  2. Fausia se ata e oe lava e ala ile archlive (e manaʻomia se faiga faʻapipiʻi Archa)

    Faʻapipiʻi archiso

    pacman -S archiso

    
    cp -r /usr/share/archiso/configs/releng/ archlive
    cd archlive
    

    Fa'aopoopo le faleteuoloa ile pacman.conf:

    
    [mbp]
    Server = https://packages.aunali1.com/archlinux/$repo/$arch
    

    Matou te le amanaiaina le fatu muamua i pacman.conf:

    IgnorePkg   = linux linux-headers
    

    Faʻaopoopo pusa manaʻomia, i le faaiuga faʻaopoopo le linux-mbp kernel ma linux-mbp-headers

    ...
    wvdial
    xl2tpd
    linux-mbp
    linux-mbp-headers
    

    Matou te suia le tusitusiga e galue i le faiga faʻafesoʻotaʻi (sui pacstrap -C ma 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!"
    }

    Fausia se ata:

    sudo ./build.sh -v

    Oomi le Y e fa'ase'e ai afifi le amana'ia, ona tusi lea o le ata ISO i le usb flash drive:

    sudo dd if=out/archlinux*.iso of=/dev/sdb bs=1M

4. Uluai seevae

Toe fa'afou fa'atasi ma le ta'avale afi ma fa'aofi le piano. Filifili filifiliga pe a aliali mai le apu, filifili EFI BOOT.

Le isi, e tatau ona e oomi le "e" ki ma ulufale i le pito o le laina o le poloaiga module_blacklist=faititili. Afai e le faia lenei mea, e le mafai ona ta'a le faiga ma o le a aliali mai se Thunderbolt ICM Error.

I le fa'aaogaina o le fdisk/cfdisk matou te maua ai la matou vaeluaga (mo a'u o le nvme0n1p4), fa'atulaga ma fa'apipi'i le fa'amaumauga. E mafai ona e fa'aogaina faatonuga aloaia poʻo i autafa.

Matou te le o faia se vaeluaga o le seevae; matou te tusia le bootloader i totonu /dev/nvme0n1p1
A maeʻa ona faʻatupu atoatoa le siosiomaga i / mnt ma aʻo leʻi alu i le arch-chroot, tusi:

mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt /bin/bash

Fa'aopoopo i /etc/pacman.conf:


[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch

Fa'apipi'i le fatu:


sudo pacman -S linux-mbp linux-mbp-headers
sudo mkinitcpio -p linux-mbp

Matou te resitalaina faititili ma apu i /etc/modprobe.d/blacklist.conf

blacklist thunderbolt
blacklist applesmc

Keyboard, touchbar, ma isi

Fa'apipi'i ioe:


sudo pacman -S git gcc make fakeroot binutils
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si

Fa'apipi'i modules mo le pa'i e galue ai:


git clone --branch mbp15 https://github.com/roadrunner2/macbook12-spi-driver.git
cd macbook12-spi-driver
make install

Faaopoopo modules i le amataga: /etc/modules-load.d/apple.conf

industrialio_triggered_buffer
apple-ibridge
apple-ib-tb
apple-ib-als

Fa'apipi'i modules kernel mo le piano. I totonu o le fale teu oloa tausagali1 o lo'o i ai se afifi ua uma ona fai, ua ta'ua apple-bce-dkms-git. Ina ia faʻapipiʻi, tusi i totonu o le faʻamafanafanaga:

pacman -S apple-bce-dkms-git

I lenei tulaga, o le a valaʻau le kernel module apu-bce. I le tulaga o le faʻapotopotoina e le tagata lava ia, e taʻua TLM. E tusa ai, afai e te manaʻo e lesitala se module i le vaega MODULES o le mkininicpio.conf faila, ona aua nei galo po o le fea module na e faʻapipiʻiina.

Fonotaga tusilima:


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

Fa'aopoopo le bce po'o le apple-bce module e amata ai: /etc/modules-load.d/bce.conf

bce

Afai e te manaʻo e faʻaoga le Fn faʻamau e le mafai, ona tusi lea i le /etc/modprobe.d/apple-tb.conf faila:

options apple-ib-tb fnmode=2

Faʻafouina le fatu ma initramfs.


mkinitcpio -p linux-mbp

Fa'apipi'i iwd:

sudo pacman -S networkmanager iwd

5. Loavaa

O le taimi lava e faʻapipiʻi uma ai afifi autu i totonu o le chroot, e mafai ona e amata faʻapipiʻi le bootloader.

Ua le mafai ona ou maua le grub e galue. Grub seevae mai le USB drive fafo, ae a e taumafai e lesitala i le nvme e ala i

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub

O le faiga na alu i le fefe tele, ma ina ua uma ona toe faʻafouina se mea fou e ala i filifiliga e leʻi aliali mai. Ou te leʻi mauaina se vaifofo manino i lenei faʻafitauli ma o lea na filifili ai e taumafai e faʻaaoga le faʻaogaina o le systemd-boot.

  1. Fa'alauiloa
    bootctl --path=/boot install

    ma tatou o atu ai i le popole vale. Tape le MacBook, toe ki, kiliki filifiliga (aua le tapeina le USB-C hub ma piano)

  2. Matou te siakiina ua faʻaalia se faʻamatalaga fou EFI BOOT faʻaopoopo i le masini fafo
  3. Matou te filifili e taʻavale mai se masini USB i fafo, e pei o le taimi o le faʻapipiʻi muamua (aua neʻi galo e faʻamaonia module_blacklist=thunderbolt)
  4. Matou te faʻapipiʻiina le matou disk ma alu i totonu o le siosiomaga e ala i le arch-chroot


mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt

Afai e manaʻomia le faʻaogaina o le keyboard seʻia oʻo ina faʻatumu atoatoa le polokalama (e manaʻomia pe a faʻaogaina le faʻailoga luks/dm-crypt), ona tusi lea i le faila /etc/mkinicpio.conf i le vaega MODULES:

MODULES=(ext4 applespi intel_lpss_pci spi_pxa2xx_platform bce)

Faʻafouina le fatu ma initramfs.


mkinicpio -p linux-mbp

Faʻatulagaina systemd-boot

Matou te faʻasaʻo le /boot/loader/loader.conf faila, tape mea uma i totonu, ma faʻaopoopo mea nei:

default arch
timeout 5
editor 1

Alu i le /boot/loader/entry folder, fai le arch.conf faila ma tusi:

title arch
linux /vmlinuz-linux-mbp
initrd /initramfs-linux-mbp.img
options root=/dev/<b>nvme0n1p4</b> rw pcie_ports=compat

Afai na e faʻaaogaina luks ma lvm, ona

options cryptdevice=/dev/<b>nvme0n1p4</b>:luks root=/dev/mapper/vz0-root rw pcie_ports=compat

Toe fa'afou ile MacOS.

6. Seti Wi-Fi

E pei ona i ai i le faaiuga, e teuina e MacOS faila firmware mo le wi-fi adapter i totonu o le pusa /usr/share/firmware/wifi , ma e mafai ona e aveina mai iina i foliga o blobs ma fafaga i latou i le brcmfmac kernel module. Ina ia mafai ona suʻeina po o fea faila e faʻaogaina e lau adapter, tatala se laina i le MacOS ma tusi:

ioreg -l | grep C-4364

Matou te maua se lisi umi. Matou te manaʻomia naʻo faila mai le vaega Talosaga faila:

"RequestedFiles" = ({"Firmware"="<b>C-4364__s-B2/maui.trx</b>","TxCap"="C-4364__s-B2/maui-X3.txcb","Regulatory"="C-4364__s-B2/<b>maui-X3.clmb</b>","NVRAM"="C-4364__s-B2/<b>P-maui-X3_M-HRPN_V-m__m-7.7.txt</b>"})

I lou tulaga, atonu e eseese igoa faila. Kopi i latou mai le /usr/share/firmware/wifi folder i le flash drive ma toe faaigoa i latou e faapea:

    maui.trx -> brcmfmac4364-pcie.bin
    maui-X3.clmb -> brcmfmac4364-pcie.clm_blob
    P-maui-X3_M-HRPN_V-m__m-7.7.txt -> brcmfmac4364-pcie.Apple Inc.-<b>MacBookPro15,2.txt</b>

I lenei tulaga, o le faila faila mulimuli o loʻo i ai igoa faʻataʻitaʻiga; afai o lau faʻataʻitaʻiga e le o macbookpro15,2, ona e manaʻomia lea e toe faʻaigoaina lenei faila e tusa ai ma lau faʻataʻitaʻiga MacBook.

Toe fa'afou ile Arch.

Kopi faila mai le flash drive i le /lib/firmware/brcm/ folder


sudo cp brcmfmac4364-pcie.bin /lib/firmware/brcm/
sudo cp brcmfmac4364-pcie.clm_blob /lib/firmware/brcm/
sudo cp 'brcmfmac4364-pcie.Apple Inc.-<b>MacBookPro15,2.txt' /lib/firmware/brcm/

Siaki le fa'atinoga o le module:


rmmod brcmfmac
modprobe brcmfmac

Matou te mautinoa o loʻo faʻaalia le fesoʻotaʻiga fesoʻotaʻiga e ala i ifconfig/ip.
Seti wifi e ala i iwctl

Fa'alogoga. Via netctl, nmcli, ma isi. E le aoga le atina'e, na'o le iwd.

Matou te faʻamalosia NetworkManager e faʻaaoga le iwd. Ina ia faia lenei mea, fatu le faila /etc/NetworkManager/NetworkManager.conf ma tusi:

[device]
wifi.backend=iwd

Amata le auaunaga NetworkManager


sudo systemctl start NetworkManager.service
sudo systemctl enable NetworkManager.service

7. Leo

Ina ia mafai ona galue le leo, e tatau ona e faʻapipiʻi pulseaudio:


sudo pacman -S pulseaudio

La'u mai faila e tolu:

Sei o tatou siitia i latou:

    /usr/share/alsa/cards/AppleT2.conf
    /usr/share/pulseaudio/alsa-mixer/profile-sets/apple-t2.conf
    /usr/lib/udev/rules.d/91-pulseaudio-custom.rules

8. Fa'amalolo/Fa'aauau

I le taimi nei 16.10.2019 e tatau ona e filifili pe leo po'o le taofia/fa'aauau. O loʻo matou faʻatali mo le tusitala o le bce module e faʻamaeʻa le gaioiga.

Ina ia fausia se module ma masalosalo / toe amata lagolago, e tatau ona e faia mea nei:


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

Afai na e faʻapipiʻiina le apple-bce module ua saunia mai le fale teu oloa anuali1, e tatau ona e aveese muamua ona faʻapipiʻi lea ma faʻapipiʻi le module bce ma le lagolago mode suspend.

E le gata i lea, e te manaʻomia le faʻaopopoina o le applesmc module i le blacklist (pe afai e te leʻi faia muamua) ma ia mautinoa i totonu /boot/loader/entries/arch.conf i le laina filifiliga i le pito e faʻaopoopo le parakalafa. pcie_ports=compat.

I le taimi nei, o le avetaavale paʻu paʻu e paʻu pe a ulufale i le tulaga le tumau, ma o le avetaʻavale faititili o nisi taimi e malolo ai le faiga mo le sili atu i le 30 sekone, ma mo ni nai minute pe a toe amata. O lenei mea e mafai ona faʻamautu e ala i le otometi ona laʻuina faʻafitauli modules.

Fausia se tala /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

Fai ia mafai ona faatino:

sudo chmod +x /lib/systemd/system-sleep/rmmod.sh

Na'o le pau lena mo le taimi nei. O le taunu'uga o se faiga fa'aoga atoatoa, se'i vagana ai nisi o nuances ma le fa'agata/fa'aauau. E leai ni fa'alavelave po'o ni fa'alavelave fatu na matauina i le tele o aso o le taimi e alu ai. Ou te faʻamoemoe i se taimi lata mai o le a faʻamaeʻaina e le tusitala o le bce module, ma o le a matou maua le lagolago atoatoa mo le taofia / toe amata ma le leo.

puna: www.habr.com

Faaopoopo i ai se faamatalaga