Ny fanaovana ny MacBook Pro 2018 T2 miasa amin'ny ArchLinux (dualboot)

Nisy ny resabe kely momba ny hoe ny chip T2 vaovao dia tsy afaka mametraka Linux amin'ny MacBooks vaovao 2018 miaraka amin'ny touchbar. Nandeha ny fotoana, ary tamin'ny faran'ny taona 2019, ny mpamorona antoko fahatelo dia nametraka mpamily sy paty kernel maromaro mba hifaneraserana amin'ny chip T2. Ny mpamily lehibe ho an'ny maodely MacBook 2018 sy ny vao haingana kokoa dia mampihatra ny fiasan'ny VHCI (fihetseham-po / fitendry / sns), ary koa ny fiasan'ny feo.

Ny tetikasa mbp2018-bridge-drv mizara ho singa 3 lehibe:

  • BCE (Buffer Copy Engine) - mametraka ny fantsom-pifandraisana lehibe miaraka amin'ny T2. Ny VHCI sy Audio dia mitaky an'io singa io.
  • VHCI dia USB Virtual Host Controller; ny klavier, ny totozy ary ny singa rafitra hafa dia omen'ity singa ity (ny mpamily hafa dia mampiasa ity mpanara-maso mpampiantrano ity mba hanomezana fiasa bebe kokoa.
  • Audio - mpamily ho an'ny interface T2 audio, amin'izao fotoana izao dia tsy manohana afa-tsy ny famoahana feo amin'ny alΓ lan'ny mpandahateny ao amin'ny MacBook


Ny tetikasa faharoa dia antsoina macbook12-spi-driver, ary mampihatra ny fahafahana miasa mpamily fampidirana ho an'ny klavier, SPI trackpad, ary touchbar ho an'ny faran'ny 2016 sy ny MacBook Pros taty aoriana. Ny sasany amin'ireo mpamily kitendry/trackpad dia tafiditra ao anatin'ny kernel, manomboka amin'ny version 5.3.

Ny fanohanana ny fitaovana toy ny wi-fi, touchpad, sns dia nampiharina tamin'ny alΓ lan'ny patch kernel. Version kernel ankehitriny 5.3.5-1

Inona no miasa amin'izao fotoana izao

  1. NVMe
  2. Ohatra
  3. USB-C (Tsy nosedraina ny kotrokorana; rehefa alefa ho azy ny maodely, dia mampivaingana ny rafitra)
  4. Touchbar (miaraka amin'ny fahafahana manokatra ny fanalahidin'ny Fn, backlight, ESC, sns.)
  5. Feo (mpikabary anatiny ihany)
  6. Module Wi-Fi (amin'ny alΓ lan'ny brcmfmac ary amin'ny alΓ lan'ny iw ihany)
  7. DisplayPort amin'ny USB-C
  8. Sela Mpandray Hafanana
  9. Atsaharo/Avereno (ampahany)
  10. etc ..

Ity fampianarana ity dia azo ampiharina amin'ny macbookpro15,1 sy macbookpro15,2. Ny lahatsoratra dia nalaina ho fototry ny Github amin'ny teny anglisy. avy eto. Tsy nandaitra avokoa ny zava-drehetra ato amin’ity lahatsoratra ity, ka tsy maintsy nitady vahaolana ny tenako.

Inona no ilainao apetraka

  • Adapter docking USB-C amin'ny USB (fampidirana USB telo farafahakeliny hampifandraisana totozy, fitendry, modem USB na telefaona amin'ny fomba fametahana). Izany dia ilaina mandritra ny dingana voalohany amin'ny fametrahana
  • USB fitendry
  • USB/USB-C flash drive farafahakeliny 4GB

1. Atsaharo ny fandrarana ny fandefasana avy amin'ny haino aman-jery ivelany

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

2. Omeo toerana malalaka amin'ny fampiasana Disk Utility

Ho fanamorana dia nanome 30GB avy hatrany ho an'ny kapila aho, mamolavola azy amin'ny exfat ao amin'ny Disk Utility mihitsy. Fizarana fitaovana kapila ara-batana.

3. Mamorona sary ISO

safidy:

  1. Afaka mandeha amin'ny lalana tsotra ianao ary misintona sary efa vita miaraka amin'ny kernel 5.3.5-1 sy patches avy aunali1 rohy mankany amin'ny sary vita
  2. Mamorona sary amin'ny alΓ lan'ny archlive (rafitra misy fizarana Archa no ilaina)

    hametraka archiso

    pacman -S archiso

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

    Ampio ny tahiry ao amin'ny pacman.conf:

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

    Tsy raharahantsika ny kernel tany am-boalohany ao amin'ny pacman.conf:

    IgnorePkg   = linux linux-headers
    

    Ampio ny fonosana ilaina, amin'ny farany ampio ny kernel linux-mbp sy linux-mbp-headers

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

    Ovainay ny script mba hiasa amin'ny mode interactive (soloo ny pacstrap -C amin'ny 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!"
    }

    Mamorona sary:

    sudo ./build.sh -v

    Tsindrio Y raha hitsingevana ny fonosana tsy noraharahiana, dia soraty amin'ny USB flash drive ny sary iso:

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

4. Boot voalohany

Avereno indray miaraka amin'ny kapila tselatra sy ny klavier nampidirina. Tsindrio ny safidy rehefa miseho ny paoma, mifidiana EFI BOOT.

Manaraka, mila manindry ny fanalahidy "e" ianao ary miditra amin'ny faran'ny baiko baiko module_blacklist=kotrokorana. Raha tsy vita izany, dia mety tsy boot ny rafitra ary hiseho ny Thunderbolt ICM Error.

Amin'ny fampiasana fdisk/cfdisk dia ahitantsika ny fizarantsika (ho ahy dia nvme0n1p4 izany), amboary izany ary apetraho ny rakitra. Azonao ampiasaina toromarika ofisialy na sisiny.

Tsy mamorona fizarazarana boot izahay; hanoratra ny bootloader izahay /dev/nvme0n1p1
Rehefa vita tanteraka ny tontolo iainana ao / mnt ary alohan'ny hifindrana amin'ny arch-chroot dia soraty hoe:

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

Ampio amin'ny /etc/pacman.conf:


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

Apetraho ny kernel:


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

Misoratra anarana ny kotrokorana sy ny applesmc ao amin'ny /etc/modprobe.d/blacklist.conf

blacklist thunderbolt
blacklist applesmc

Kitendry, touchbar, sns

Mametraka yay:


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

Fametrahana mΓ΄dΓ΄l mba hiasa amin'ny touchbar:


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

Ampio mΓ΄dΓ΄ly amin'ny fanombohana: /etc/modules-load.d/apple.conf

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

Fametrahana modules kernel ho an'ny klavier. Ao amin'ny repository taonaali1 misy fonosana efa vita, atao hoe apple-bce-dkms-git. Mba hametrahana azy dia soraty ao amin'ny console:

pacman -S apple-bce-dkms-git

Amin'ity tranga ity dia antsoina ny module kernel paoma-bce. Raha ny fivorian'ny tena dia atao hoe TK. Noho izany, raha te hisoratra anarana module ao amin'ny fizarana MODULES amin'ny rakitra mkinicpio.conf ianao, dia aza adino izay module napetrakao.

Fivoriambe tanana:


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

Ampio ny module bce na apple-bce hanombohana: /etc/modules-load.d/bce.conf

bce

Raha te hampiasa ny bokotra Fn ho default ianao, dia soraty ao amin'ny rakitra /etc/modprobe.d/apple-tb.conf:

options apple-ib-tb fnmode=2

Fanavaozana ny kernel sy initramfs.


mkinitcpio -p linux-mbp

Mametraka iwd:

sudo pacman -S networkmanager iwd

5. Loader

Raha vao tafapetraka ao anatin'ny chroot ny fonosana lehibe rehetra dia afaka manomboka mametraka ny bootloader ianao.

Tsy afaka nampiditra grub hiasa aho. Grub boots avy amin'ny kapila USB ivelany, fa rehefa manandrana misoratra anarana amin'ny nvme via

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

Ny rafitra dia niditra tao amin'ny kernel panic, ary taorian'ny rebooting zavatra vaovao amin'ny alalan'ny safidy dia tsy niseho. Tsy nahita vahaolana mazava ho an'ity olana ity aho ary noho izany dia nanapa-kevitra ny hanandrana hampihatra booting mampiasa systemd-boot.

  1. fandefasana
    bootctl --path=/boot install

    ary miditra amin'ny kernel panic isika. Vonoy ny MacBook, avereno indray, tsindrio ny safidy (aza vonoina ny hub USB-C miaraka amin'ny klavier)

  2. Manamarina izahay fa nisy fidirana EFI BOOT vaovao nipoitra ankoatra ny fitaovana ivelany
  3. Mifidy ny boot avy amin'ny kapila USB ivelany izahay, toy ny tamin'ny fametrahana voalohany (aza adino ny mamaritra module_blacklist=thunderbolt)
  4. Mametraka ny kapila izahay ary miditra amin'ny tontolo iainana amin'ny alΓ lan'ny arch-chroot


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

Raha toa ka ilaina ny fiasan'ny klavier mandra-pahatongan'ny rafitra feno (ilaina izany rehefa mampiasa luks/dm-crypt encryption), dia soraty ao amin'ny rakitra /etc/mkinicpio.conf ao amin'ny fizarana MODULES:

MODULES=(ext4 applespi intel_lpss_pci spi_pxa2xx_platform bce)

Fanavaozana ny kernel sy initramfs.


mkinicpio -p linux-mbp

Fametrahana systemd-boot

Manova ny rakitra /boot/loader/loader.conf izahay, mamafa ny ao anatiny, ary ampio ireto manaraka ireto:

default arch
timeout 5
editor 1

Mandehana any amin'ny fampirimana /boot/loader/entry, mamorona ny rakitra arch.conf ary manorata:

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

Raha nampiasa luks sy lvm ianao dia

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

Reboot amin'ny MacOS.

6. Fametrahana Wi-Fi

Araka ny hita tamin'ny farany, MacOS dia mitahiry ny rakitra firmware ho an'ny adapter wi-fi ao amin'ny lahatahiry /usr/share/firmware/wifi , ary azonao atao ny maka azy ireo amin'ny endrika blobs ary mamahana azy ireo amin'ny module kernel brcmfmac. Mba hahitana izay rakitra ampiasain'ny adaptateranao, sokafy ny terminal amin'ny MacOS ary soraty:

ioreg -l | grep C-4364

Mahazo lisitra lavabe izahay. Ny rakitra avy amin'ny fizarana ihany no ilainay RequestedFiles:

"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>"})

Amin'ny tranga misy anao dia mety tsy mitovy ny anaran'ny rakitra. Adikao ao amin'ny lahatahiry / usr / share / firmware / wifi mankany amin'ny flash drive izy ireo ary avereno anarana toy izao manaraka izao:

    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>

Amin'ity tranga ity, ny rakitra lahatsoratra farany dia misy ny anaran'ny modely; raha tsy macbookpro15,2 ny modelyo, dia mila manova anarana ity rakitra ity ianao mifanaraka amin'ny modely MacBook-nao.

Hiverina any amin'ny Arch.

Adikao ny rakitra avy amin'ny flash drive mankany amin'ny /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/

Fanamarinana ny fiasan'ny module:


rmmod brcmfmac
modprobe brcmfmac

Ataovy azo antoka fa miseho amin'ny alΓ lan'ny ifconfig/ip.
Fametrahana wifi amin'ny yuctl

Attention. Amin'ny alΓ lan'ny netctl, nmcli, sns. Tsy mandeha ny interface fa amin'ny alalan'ny iwd ihany.

Manery ny NetworkManager izahay hampiasa iwd. Mba hanaovana izany, mamorona ny rakitra /etc/NetworkManager/NetworkManager.conf ary soraty:

[device]
wifi.backend=iwd

Atombohy ny serivisy NetworkManager


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

7. Feo

Mba hampandehanana ny feo dia mila mametraka pulseaudio ianao:


sudo pacman -S pulseaudio

Misintona rakitra telo:

Andao hamindra azy ireo:

    /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. Atsaharo/Avereno

Amin'izao fotoana izao 16.10.2019 tsy maintsy misafidy ianao na feo na fampiatoana/resume. Miandry ny mpanoratra ny bce module izahay hamita ny fiasa.

Mba hamoronana mΓ΄dely miaraka amin'ny fanohanan'ny susped/resume dia tsy maintsy manao izao manaraka izao ianao:


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

Raha nametraka ny maodely apple-bce efa vita avy amin'ny tahiry anuali1 ianao, dia tsy maintsy esorinao aloha izany ary avy eo manangona sy mametraka ny maody bce miaraka amin'ny fanohanan'ny fomba fampiatoana.

Ankoatra izany, mila ampidirinao ao amin'ny lisitra mainty ny module applesmc (raha mbola tsy nanao izany ianao) ary ataovy azo antoka fa ao amin'ny /boot/loader/entries/arch.conf ao amin'ny tsipika safidy amin'ny farany dia ampiana ny parameter. pcie_ports=compat.

Amin'izao fotoana izao, ny mpamily touchbar dia mianjera rehefa miditra amin'ny fomba fampiatoana, ary ny kotroka indraindray dia manamaivana ny rafitra mandritra ny 30 segondra mahery, ary mandritra ny minitra maromaro rehefa miverina. Azo amboarina izany amin'ny alΓ lan'ny famoahana ho azy ireo modules misy olana.

Mamorona script /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

Ataovy azo tanterahana izany:

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

Izay ihany aloha izao. Ny vokatr'izany dia rafitra azo ampiasaina tanteraka, afa-tsy ireo nuance sasany miaraka amin'ny fampiatoana/resume. Tsy nisy fianjerana na fikorontanan'ny kernel hita nandritra ny andro maromaro niasana. Manantena aho fa tsy ho ela ny mpanoratra ny bce module dia hamita izany, ary hahazo fanohanana feno amin'ny fampiatoana/resume sy feo.

Source: www.habr.com

Add a comment