Ma te mahi a MacBook Pro 2018 T2 me ArchLinux (taurua)

He iti noa nga korero mo te meka ko te maramara T2 hou ka kore e taea te whakauru i te Linux ki runga i nga MacBooks hou 2018 me te paera. Kua pahemo te wa, a, i te mutunga o te tau 2019, ka whakatinanahia e nga kaiwhakawhanake tuatoru te maha o nga taraiwa me nga papanga kernel mo te taunekeneke me te maramara T2. Ko te taraiwa matua mo nga tauira MacBook 2018 me nga mea hou kei te whakatinana i te mahi VHCI (mahi pa / papapātuhi / etc.), me te mahi tangi.

Ko te kaupapa mbp2018-piriti-drv wehea kia 3 nga waahanga matua:

  • BCE (Buffer Copy Engine) - ka whakatuu te hongere korero matua me T2. Ko te VHCI me te Ororongo e hiahia ana ki tenei waahanga.
  • Ko te VHCI he Kaiwhakahaere Kaihautu Mariko USB; ko te papapātuhi, te kiore me etahi atu waahanga punaha e whakaratohia ana e tenei waahanga (ko etahi atu taraiwa e whakamahi ana i tenei kaiwhakahaere kaihautu hei whakarato i etahi atu mahi.
  • Ororongo - taraiwa mo te atanga ororongo T2, i tenei wa ka tautoko noa i nga whakaputanga oro ma roto i nga kaikorero i roto i te MacBook


Ko te kaupapa tuarua e kiia ana macbook12-spi-taraiwa, me te whakatinana i te kaha ki te whakahaere i tetahi taraiwa whakauru mo te papapātuhi, SPI trackpad, me te paanui mo te MacBook Pro Late 2016 me muri mai. Ko etahi o nga taraiwa papapātuhi/trackpad kua whakauruhia ki roto i te kernel, timata mai i te putanga 5.3.

Ko te tautoko mo nga taputapu penei i te wi-fi, te touchpad, me era atu i whakatinanahia ma te whakamahi i nga papanga kernel. Putanga kernel o naianei 5.3.5-1

He aha te mahi i tenei wa

  1. NVMe
  2. Papapātuhi
  3. USB-C (Kare ano a Thunderbolt i whakamatauria; ka utaina aunoatia te kōwae, ka whakatio te punaha)
  4. Paepa (me te kaha ki te whakakā i nga taviri Fn, rama whakamuri, ESC, aha atu)
  5. Oro (nga orooro whakauru noa)
  6. Kōwae Wi-Fi (mā te brcmfmac me te iw anake)
  7. Tauranga Whakaatu i runga USB-C
  8. Pūoko
  9. Whakatarewa/Whakahou (he wahanga)
  10. etc.

E tika ana tenei akoranga mo te macbookpro15,1 me te macbookpro15,2. I tangohia te tuhinga mai i a Github i te reo Ingarihi. mai i konei. Kaore nga mea katoa i roto i tenei tuhinga i whai hua, no reira me rapu e au he otinga.

He aha e hiahia ana koe ki te tāuta

  • USB-C urutau urutau ki te USB (e toru neke atu nga urunga USB mo te hono kiore, papapātuhi, pouwhanga USB, waea ranei i te aratau hono). He mea tika tenei i nga waahanga tuatahi o te whakaurunga
  • papapātuhi USB
  • USB/USB-C puku kohiko iti 4GB

1. Monokia te aukati i te puhipuhi mai i nga panui o waho

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

2. Toha mokowā wātea mā te whakamahi i te Taputapu Kōpae

Mo te waatea, ka tohatohahia e ahau te 30GB ki te kōpae, ka whakahōputu ki te exfat i roto i te Disk Utility ake. Wehewehenga i te Taputapu Kopae Kopae Tinana.

3. Waihangatia he ahua ISO

Ngā Kōwhiringa:

  1. Ka taea e koe te haere i te huarahi ngawari me te tango i tetahi ahua kua oti te hanga me te kernel 5.3.5-1 me nga papanga mai i aunali1 hono ki te ahua kua oti
  2. Waihangahia he whakaahua ma te archlive (he punaha me te tohatoha Archa e hiahiatia ana)

    Whakauruhia archiso

    pacman -S archiso

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

    Tāpirihia te pātaka ki te pacman.conf:

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

    Ka warewarehia te kakano taketake i roto i te pacman.conf:

    IgnorePkg   = linux linux-headers
    

    Taapirihia nga kohinga e tika ana, i te mutunga ka taapirihia te kernel linux-mbp me nga pane linux-mbp-pane

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

    Ka huri tatou i te tuhinga kia mahi i roto i te aratau tauwhitiwhiti (whakakapihia te pacstrap -C me te 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!"
    }

    Te hanga pikitia:

    sudo ./build.sh -v

    Pēhia te Y ki te peke i ngā pōkai kua warewarehia, kātahi ka tuhi i te atahanga iso ki te puku kohiko USB:

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

4. Puta tuatahi

Me whakaara ano me te puku kohiko me te papapātuhi kua whakauruhia. Patohia nga whiringa ka puta te aporo, tohua EFI BOOT.

I muri mai, me pehi koe i te matua "e" ka uru ki te mutunga o te raina whakahau module_blacklist=he whatitiri. Ki te kore e mahia tenei, kare pea te punaha e puhipuhi ka puta he Hapa ICM Thunderbolt.

Ma te whakamahi i te fdisk/cfdisk ka kitea to maatau wehewehenga (mo au ko nvme0n1p4), whakahōputuhia me te whakauru i te puranga. Ka taea e koe te whakamahi tohutohu whai mana ranei tahataha.

Kaore matou i te hanga i te wehewehenga boot; ka tuhia e matou te bootloader ki roto /dev/nvme0n1p1
I muri i te hanganga o te taiao i / mnt, i mua i te neke ki te arch-chroot, tuhia:

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

Tāpiri ki /etc/pacman.conf:


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

Tāutahia te kernel:


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

Ka rehita matou i te whatitiri me te aporo ki /etc/modprobe.d/blacklist.conf

blacklist thunderbolt
blacklist applesmc

Papapātuhi, pae pa, aha atu

Tāutahia:


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

Tāuta kōwae mō te pae pa ki te mahi:


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

Tāpiri kōwae ki te whakaoho: /etc/modules-load.d/apple.conf

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

Kei te whakauru i nga waahanga kernel mo te papapātuhi. I roto i te putunga taunali1 he kete kua oti te hanga, ka kiia aporo-bce-dkms-git. Hei whakauru, tuhia ki te papatohu:

pacman -S apple-bce-dkms-git

I tenei take, ka karangahia te kōwae kernel aporo-bce. Mo te huihuinga-whaiaro, ka kiia tupato. Na, ki te hiahia koe ki te rehita i tetahi kōwae i roto i te waahanga MODULES o te kōnae mkinincpio.conf, kaua e wareware ko tehea waahanga i whakauruhia e koe.

Huinga ā-ringa:


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

Tāpirihia te kōwae bce, aporo-bce rānei ki te whakaoho: /etc/modules-load.d/bce.conf

bce

Mena kei te pirangi koe ki te whakamahi i nga paatene Fn ma te taunoa, ka tuhi ki te konae /etc/modprobe.d/apple-tb.conf:

options apple-ib-tb fnmode=2

Te whakahou i te kernel me te initramfs.


mkinitcpio -p linux-mbp

Tāuta iwd:

sudo pacman -S networkmanager iwd

5. Kaiuta

Kia whakauruhia nga kohinga matua katoa ki roto i te chroot, ka taea e koe te timata ki te whakauru i te bootloader.

Kare ano au i kaha ki te tiki keru ki te mahi. He putu Grub mai i te puku USB o waho, engari ka ngana koe ki te rehita i roto i te nvme ma

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

ka raru te punaha, a, i muri i te whakaara ano i tetahi mea hou na roto i nga whiringa kaore i puta. Kaore au i kitea he otinga maamaa mo tenei raru, na reira ka whakatau ahau ki te ngana ki te whakatinana i te booting ma te whakamahi i te systemd-boot.

  1. Whakarewatanga
    bootctl --path=/boot install

    a ka haere matou ki roto ki te kakano mataku. Whakawetohia te MacBook, whakahurihia ano, paatohia nga whiringa (kaua e whakawetohia te USB-C me te papapātuhi)

  2. Ka tirohia e matou kua puta mai he urunga EFI BOOT hou hei taapiri atu ki te taputapu o waho
  3. Ka kowhiria e matou ki te peke mai i te puku USB o waho, penei i te wa o te whakaurunga tuatahi (kaua e wareware ki te tohu module_blacklist=thunderbolt)
  4. Ka whakairihia ta maatau kōpae ka haere ki te taiao ma te arch-chroot


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

Mena e tika ana kia mahi te papapātuhi kia oti ra ano te utaina o te punaha (he mea tika tenei ina whakamahia te whakamunatanga luks/dm-crypt), ka tuhia ki te konae /etc/mkinicpio.conf i te waahanga MODULES:

MODULES=(ext4 applespi intel_lpss_pci spi_pxa2xx_platform bce)

Te whakahou i te kernel me te initramfs.


mkinicpio -p linux-mbp

Te whakatu systemd-boot

Ka whakatikahia e matou te konae /boot/loader/loader.conf, ka mukua nga mea katoa o roto, ka taapiri i nga mea e whai ake nei:

default arch
timeout 5
editor 1

Haere ki te kōpaki /boot/loader/enries, hanga te kōnae arch.conf ka tuhi:

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

Mena i whakamahia e koe te luks me te lvm, na

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

Me whakaara ano ki te MacOS.

6. Tatūnga Wi-Fi

I te mutunga, ka penapenahia e MacOS nga konae firmware mo te urutau wi-fi i roto i te kōpaki /usr/share/firmware/wifi , a ka taea e koe te tango mai i reira i roto i te ahua o te pupuhi me te whangai ki te kōwae kernel brcmfmac. Kia kitea he aha nga konae e whakamahia ana e to kaiurutau, whakatuwherahia he tauranga ki MacOS ka tuhi:

ioreg -l | grep C-4364

Ka whiwhi tatou i te rarangi roa. Me hiahia noa matou i nga konae mai i te waahanga Kōnae Tonoa:

"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 to keehi, ka rereke pea nga ingoa o nga konae. Tāruahia mai i te kōpaki /usr/share/firmware/wifi ki te puku kohiko ka whakaingoatia e whai ake nei:

    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 tenei keehi, kei roto i te konae tuhinga whakamutunga nga ingoa tauira; mena ehara to tauira i te macbookpro15,2, me whakaingoatia ano tenei konae kia rite ki to tauira MacBook.

Whakahou ano ki Arch.

Tāruahia ngā kōnae mai i te puku kohiko ki te kōpaki /lib/firmware/brcm/


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/

Te taki i te mahi o te kōwae:


rmmod brcmfmac
modprobe brcmfmac

Ka whakarite maatau ka puta te atanga whatunga ma te ifconfig/ip.
Te whakarite wifi ma iwctl

Te aro. Ma te netctl, nmcli, etc. Kaore te atanga e mahi, ma te iwd anake.

Ka akiakihia e matou te NetworkManager ki te whakamahi iwd. Hei mahi i tenei, hangahia te konae /etc/NetworkManager/NetworkManager.conf ka tuhi:

[device]
wifi.backend=iwd

Tīmatahia te ratonga NetworkManager


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

7. Tangi

Kia mahi ai te oro, me whakauru koe i te pulseaudio:


sudo pacman -S pulseaudio

Tikiake e toru nga konae:

Me nukuhia e tatou:

    /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. Whakatarewa/Whakahou

I tenei wa 16.10.2019 me whiriwhiri e koe te oro, te whakatārewa/whakahou. Kei te tatari matou mo te kaituhi o te kōwae bce ki te whakaoti i te mahi.

Hei hanga i tetahi kōwae me te tautoko whakapae/whakahou, me mahi koe i enei e whai ake 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

Mena kua whakauruhia e koe te waahanga aporo-bce kua rerihia mai i te rehitatanga anuali1, me tango e koe i te tuatahi katahi ka whakaemi me te whakauru i te kōwae bce me te tautoko aratau whakatārewa.

Ano, me whakauru koe i te waahanga applesmc ki te rarangi pango (mehemea kaore koe i mahi i mua) me te whakarite kei roto i /boot/loader/entries/arch.conf i roto i nga rarangi whiringa i te mutunga ka taapirihia te tawhā. pcie_ports=compat.

I tenei wa, ka pakaru te taraiwa pa i te wa e uru ana ki te aratau whakatarewa, a i etahi wa ka whakatio te taraiwa whatitiri i te punaha mo te neke atu i te 30 hēkona, me etahi meneti ka hoki ano. Ka taea te whakatika ma te tango aunoa i nga waahanga raru.

Waihangahia he tuhinga /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

Kia taea te whakahaere:

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

Heoi ano mo naianei. Ko te hua he punaha ka taea te mahi, haunga etahi ahuatanga me te aukati/whakahou. Karekau he tukinga, he riihi kakano ranei i kitea i roto i nga ra maha o te wa mahi. Kei te tumanako ahau a nga ra e heke mai nei ka whakaotihia e te kaituhi o te kōwae bce, ka whiwhi tatou i te tino tautoko mo te whakatarewa/whakahou me te tangi.

Source: will.com

Tāpiri i te kōrero