ProHoster > Blogs > AdministrÄcija > MacBook Pro 2018 T2 darbÄ«bas nodroÅ”inÄÅ”ana ar ArchLinux (dubultÄ sÄknÄÅ”ana)
MacBook Pro 2018 T2 darbÄ«bas nodroÅ”inÄÅ”ana ar ArchLinux (dubultÄ sÄknÄÅ”ana)
Ir bijis diezgan daudz ažiotÄžu par to, ka jaunÄ T2 mikroshÄma padarÄ«s neiespÄjamu Linux instalÄÅ”anu jaunajos 2018. gada MacBooks ar skÄrienjoslu. Laiks pagÄja, un 2019. gada beigÄs treÅ”o puÅ”u izstrÄdÄtÄji ieviesa vairÄkus draiverus un kodola ielÄpus mijiedarbÄ«bai ar T2 mikroshÄmu. Galvenais draiveris MacBook 2018. gada un jaunÄkiem modeļiem ievieÅ” VHCI darbÄ«bu (pieskÄriena/tastatÅ«ras/u.c. darbÄ«ba), kÄ arÄ« skaÅas darbÄ«bu.
BCE (Buffer Copy Engine) - izveido galveno sakaru kanÄlu ar T2. VHCI un Audio ir nepiecieÅ”ams Å”is komponents.
VHCI ir USB virtuÄlÄ resursdatora kontrolieris; tastatÅ«ru, peli un citus sistÄmas komponentus nodroÅ”ina Å”is komponents (citi draiveri izmanto Å”o resursdatora kontrolleri, lai nodroÅ”inÄtu vairÄk funkcionalitÄtes.
Audio ā T2 audio interfeisa draiveris, paÅ”laik atbalsta tikai audio izvadi caur MacBook iebÅ«vÄtajiem skaļruÅiem
Otrais projekts saucas macbook12-spi draiveris, un tas nodroÅ”ina iespÄju darbinÄt tastatÅ«ras ievades draiveri, SPI skÄrienpaliktni un skÄrienjoslu MacBook Pro 2016. gada beigÄm un jaunÄkÄm versijÄm. Daži tastatÅ«ras/skÄrienpaliktÅa draiveri tagad ir iekļauti kodolÄ, sÄkot ar versiju 5.3.
Izmantojot kodola ielÄpus, tika ieviests arÄ« atbalsts tÄdÄm ierÄ«cÄm kÄ Wi-Fi, skÄrienpaliktnis utt. PaÅ”reizÄjÄ kodola versija5.3.5-1
Kas Ŕobrīd darbojas
NVMe
tastatūra
USB-C (Thunderbolt nav pÄrbaudÄ«ts; kad modulis tiek ielÄdÄts automÄtiski, sistÄma sasalst)
SkÄrienjosla (ar iespÄju ieslÄgt Fn taustiÅus, fona apgaismojumu, ESC utt.)
SkaÅa (tikai iebÅ«vÄtie skaļruÅi)
Wi-Fi modulis (izmantojot brcmfmac un tikai caur iw)
DisplayPort, izmantojot USB-C
Sensori
ApturÄt/atsÄkt (daļÄji)
utt ..
Å Ä« apmÄcÄ«ba ir piemÄrojama Macbookpro15,1 un macbookpro15,2. Raksts tika Åemts par pamatu no Github angļu valodÄ. tÄtad. Ne viss Å”ajÄ rakstÄ darbojÄs, tÄpÄc man paÅ”am bija jÄatrod risinÄjums.
Kas jums nepiecieÅ”ams uzstÄdÄ«Å”anai
USB-C dokstacijas adapteris pie USB (vismaz trÄ«s USB ieejas peles, tastatÅ«ras, USB modema vai tÄlruÅa pievienoÅ”anai piesaistes režīmÄ). Tas ir nepiecieÅ”ams tikai pirmajos uzstÄdÄ«Å”anas posmos
USB tastatūra
USB/USB-C zibatmiÅas disks vismaz 4 GB
1. AtspÄjojiet sÄknÄÅ”anas aizliegumu no ÄrÄjÄ datu nesÄja
cp -r /usr/share/archiso/configs/releng/ archlive
cd archlive
Pievienojiet repozitoriju vietnei pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
MÄs ignorÄjam sÄkotnÄjo kodolu pacman.conf:
IgnorePkg = linux linux-headers
Pievienojiet nepiecieÅ”amÄs pakotnes, beigÄs pievienojiet linux-mbp kodolu un linux-mbp-headers
...
wvdial
xl2tpd
linux-mbp
linux-mbp-headers
MÄs mainÄm skriptu, lai tas darbotos interaktÄ«vajÄ režīmÄ (aizstÄt pacstrap -C ar 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!"
}
AttÄla veidoÅ”ana:
sudo ./build.sh -v
Nospiediet Y, lai izlaistu ignorÄtÄs pakotnes, pÄc tam ierakstiet ISO attÄlu USB zibatmiÅas diskÄ:
sudo dd if=out/archlinux*.iso of=/dev/sdb bs=1M
4. PirmÄ sÄknÄÅ”ana
RestartÄjiet ar ievietotu zibatmiÅas disku un tastatÅ«ru. Nospiediet opcijas, kad parÄdÄs Äbols, atlasiet EFI BOOT.
PÄc tam jums jÄnospiež taustiÅÅ” āeā un komandrindas beigÄs jÄievada module_blacklist=pÄrkons. Ja tas nav izdarÄ«ts, sistÄma var netikt sÄknÄta un parÄdÄ«sies Thunderbolt ICM kļūda.
Izmantojot fdisk/cfdisk, mÄs atrodam savu nodalÄ«jumu (man tas ir nvme0n1p4), formatÄjam to un instalÄjam arhÄ«vu. Tu vari izmantot oficiÄlÄs instrukcijas vai uz sÄniem.
MÄs neveidojam sÄknÄÅ”anas nodalÄ«jumu; mÄs ierakstÄ«sim sÄknÄÅ”anas ielÄdÄtÄju /dev/nvme0n1p1
Kad /mnt vide ir pilnÄ«bÄ izveidota un pirms pÄrejas uz arch-chroot, rakstiet:
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt /bin/bash
Pievienot /etc/pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Kodola moduļu instalÄÅ”ana tastatÅ«rai. RepozitorijÄ anuali1 ir jau gatava paka, tÄ saucas apple-bce-dkms-git. Lai to instalÄtu, ierakstiet konsolÄ:
pacman -S apple-bce-dkms-git
Å ajÄ gadÄ«jumÄ tiks izsaukts kodola modulis Äbols-bce. PaÅ”montÄžas gadÄ«jumÄ to sauc bce. AttiecÄ«gi, ja vÄlaties reÄ£istrÄt moduli faila mkinicpio.conf sadaÄ¼Ä MODUÄ»I, neaizmirstiet, kuru moduli instalÄjÄt.
ManuÄla montÄža:
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
Pievienojiet bce vai apple-bce moduli startÄÅ”anai: /etc/modules-load.d/bce.conf
bce
Ja pÄc noklusÄjuma vÄlaties izmantot Fn pogas, ierakstiet /etc/modprobe.d/apple-tb.conf failÄ:
options apple-ib-tb fnmode=2
Kodola un initramfs atjauninÄÅ”ana.
mkinitcpio -p linux-mbp
InstalÄjiet iwd:
sudo pacman -S networkmanager iwd
5. IekrÄvÄjs
Kad visas galvenÄs pakotnes ir instalÄtas chroot, varat sÄkt instalÄt sÄknÄÅ”anas programmu.
Man nav izdevies grubu dabÅ«t darbÄ. Grub sÄknÄjas no ÄrÄjÄ USB diska, bet, mÄÄ£inot to reÄ£istrÄt nvme, izmantojot
sistÄma nonÄca kodola panikÄ, un pÄc pÄrstartÄÅ”anas jauns vienums, izmantojot opcijas, neparÄdÄ«jÄs. Es neatradu skaidru Ŕīs problÄmas risinÄjumu un tÄpÄc nolÄmu mÄÄ£inÄt ieviest sÄknÄÅ”anu, izmantojot systemd-boot.
Palaist
bootctl --path=/boot install
un mÄs nonÄkam kodola panikÄ. IzslÄdziet MacBook, ieslÄdziet to vÄlreiz, noklikŔķiniet uz opcijÄm (neizslÄdziet USB-C centrmezglu ar tastatÅ«ru)
MÄs pÄrbaudÄm, vai papildus ÄrÄjai ierÄ«cei ir parÄdÄ«jies jauns EFI BOOT ieraksts
MÄs izvÄlamies palaist no ÄrÄjÄ USB diska, tÄpat kÄ pirmÄs instalÄÅ”anas laikÄ (neaizmirstiet norÄdÄ«t module_blacklist=thunderbolt)
MÄs uzstÄdÄm savu disku un dodamies vidÄ, izmantojot arch-chroot
mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt
Ja ir nepiecieÅ”ams, lai tastatÅ«ra darbotos lÄ«dz sistÄmas pilnÄ«gai ielÄdei (tas ir nepiecieÅ”ams, izmantojot luks/dm-crypt Å”ifrÄÅ”anu), tad ierakstiet to /etc/mkinicpio.conf failÄ sadaÄ¼Ä MODUÄ»I:
KÄ izrÄdÄ«jÄs beigÄs, MacOS mapÄ saglabÄ Wi-Fi adaptera programmaparatÅ«ras failus /usr/share/firmware/wifi , un jÅ«s varat Åemt tos no turienes lÄsumu veidÄ un ievadÄ«t brcmfmac kodola modulÄ«. Lai uzzinÄtu, kurus failus izmanto jÅ«su adapteris, atveriet terminÄli operÄtÄjsistÄmÄ MacOS un ierakstiet:
ioreg -l | grep C-4364
MÄs iegÅ«stam garu sarakstu. Mums ir nepiecieÅ”ami tikai faili no sadaļas PieprasÄ«tie faili:
Å ajÄ gadÄ«jumÄ pÄdÄjÄ teksta failÄ ir modeļu nosaukumi; ja jÅ«su modelis nav macbookpro15,2, jums ir jÄpÄrdÄvÄ Å”is fails atbilstoÅ”i jÅ«su MacBook modelim.
PÄrstartÄjiet programmÄ Arch.
KopÄjiet failus no zibatmiÅas diska mapÄ /lib/firmware/brcm/
Å obrÄ«d 16.10.2019 jums ir jÄizvÄlas vai nu skaÅa, vai apturÄt/atsÄkt. GaidÄm, kad bce moduļa autors pabeigs funkcionalitÄti.
Lai izveidotu moduli ar apturÄtu/atsÄktu atbalstu, jums ir jÄveic Å”Ädas darbÄ«bas:
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
Ja instalÄjÄt gatavo Apple-bce moduli no anuali1 repozitorija, tad vispirms tas ir jÄizÅem un tikai pÄc tam jÄsamontÄ un jÄinstalÄ bce modulis ar apturÄÅ”anas režīma atbalstu.
TÄpat melnajam sarakstam ir jÄpievieno modulis applesmc (ja iepriekÅ” to neesat izdarÄ«jis) un jÄpÄrliecinÄs, ka parametrs ir pievienots /boot/loader/entries/arch.conf opciju rindÄ beigÄs. pcie_ports=compat.
PaÅ”laik skÄrienjoslas draiveris avarÄ, pÄrejot uz apturÄÅ”anas režīmu, un pÄrkonstrÄvas draiveris dažreiz iesaldÄ sistÄmu ilgÄk par 30 sekundÄm un uz vairÄkÄm minÅ«tÄm, atsÄkot darbÄ«bu. To var novÄrst, automÄtiski izkraujot problemÄtiskos moduļus.
#!/bin/sh
if [ "" == "pre" ]; then
rmmod thunderbolt
rmmod apple_ib_tb
elif [ "" == "post" ]; then
modprobe apple_ib_tb
modprobe thunderbolt
fi
Padariet to izpildÄmu:
sudo chmod +x /lib/systemd/system-sleep/rmmod.sh
Tas pagaidÄm ir viss. RezultÄts ir pilnÄ«bÄ funkcionÄjoÅ”a sistÄma, izÅemot dažas nianses ar apturÄÅ”anu/atsÄkÅ”anu. VairÄku darbspÄjas dienu laikÄ netika novÄrotas avÄrijas vai kodola panikas. Ceru, ka tuvÄkajÄ laikÄ bce moduļa autors to pabeigs, un mÄs saÅemsim pilnu atbalstu suspend/resume un sound.