Fè MacBook Pro 2018 T2 travay ak ArchLinux (double demaraj)
Te gen yon ti jan battage sou lefèt ke nouvo chip T2 a pral fè li enposib enstale Linux sou nouvo MacBooks 2018 yo ak yon touchbar. Tan te pase, ak nan fen 2019, devlopè twazyèm pati yo te aplike yon kantite chofè ak plak nwayo pou entèraksyon ak chip T2 la. Chofè prensipal la pou modèl MacBook 2018 ak pi nouvo aplike operasyon VHCI (operasyon manyen / klavye / elatriye), osi byen ke operasyon son.
BCE (Buffer Copy Engine) - etabli kanal kominikasyon prensipal la ak T2. VHCI ak Audio mande pou eleman sa a.
VHCI se yon USB Virtual Host Controller; klavye a, sourit ak lòt konpozan sistèm yo bay nan eleman sa a (lòt chofè yo itilize kontwolè lame sa a pou bay plis fonksyonalite.
Odyo - chofè pou koòdone odyo T2 a, kounye a sèlman sipòte pwodiksyon odyo atravè moun kap pale MacBook yo.
Dezyèm pwojè a rele macbook12-spi-driver, epi li aplike kapasite pou opere yon chofè antre pou klavye a, SPI trackpad, ak touchbar pou Fen 2016 ak pita MacBook Pro. Gen kèk chofè klavye/trackpad ki enkli kounye a nan nwayo a, kòmanse ak vèsyon 5.3.
Sipò pou aparèy tankou wi-fi, touchpad, elatriye te aplike tou lè l sèvi avèk plak nwayo. Vèsyon nwayo aktyèl la5.3.5-1
Ki sa k ap travay nan moman an
NVMe
Klavye
USB-C (Thunderbolt pa te teste; lè modil la chaje otomatikman, li jele sistèm nan)
Tutorial sa a aplikab pou macbookpro15,1 ak macbookpro15,2. Atik la te pran kòm yon baz nan Github nan lang angle. kon sa. Se pa tout bagay nan atik sa a te travay, kidonk mwen te oblije jwenn yon solisyon tèt mwen.
Ki sa ou bezwen enstale
Adaptè docking USB-C pou USB (omwen twa antre USB pou konekte yon sourit, klavye, modèm USB oswa telefòn nan mòd atachman). Sa a se sèlman nesesè pandan premye etap yo nan enstalasyon yo
USB klavye
USB/USB-C kondwi flash minimòm 4GB
1. Enfim entèdiksyon an sou bòt soti nan medya ekstèn
cp -r /usr/share/archiso/configs/releng/ archlive
cd archlive
Ajoute depo a nan pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Nou inyore nwayo orijinal la nan pacman.conf:
IgnorePkg = linux linux-headers
Ajoute pakè ki nesesè yo, nan fen ajoute nwayo linux-mbp ak linux-mbp-headers
...
wvdial
xl2tpd
linux-mbp
linux-mbp-headers
Nou chanje script la pou travay nan mòd entèaktif (ranplase pacstrap -C ak 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!"
}
Fòme yon imaj:
sudo ./build.sh -v
Peze Y pou sote pakè yo inyore, Lè sa a, ekri imaj ISO a sou kondwi flash USB a:
sudo dd if=out/archlinux*.iso of=/dev/sdb bs=1M
4. Premye bòt
Rdemare ak kondwi flash la ak klavye mete. Peze opsyon lè pòm lan parèt, chwazi EFI BOOT.
Apre sa, ou bezwen peze "e" kle a epi antre nan fen liy lòd la module_blacklist=tonè. Si sa pa fèt, sistèm nan ka pa demaraj epi yon Erè Thunderbolt ICM ap parèt.
Sèvi ak fdisk/cfdisk nou jwenn patisyon nou an (pou mwen se nvme0n1p4), fòma li epi enstale achiv la. Ou ka itilize enstriksyon ofisyèl yo oswa sou kote.
Nou pa kreye yon patisyon bòt; nou pral ekri bootloader la /dev/nvme0n1p1
Apre anviwònman an nan /mnt fin fòme nèt epi anvan ou deplase nan arch-chroot, ekri:
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt /bin/bash
Ajoute nan /etc/pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Enstale modil nwayo pou klavye a. Nan depo a anuali1 gen yon pake pare, li rele pòm-bce-dkms-git. Pou enstale li, ekri nan konsole a:
pacman -S apple-bce-dkms-git
Nan ka sa a, yo pral rele modil nwayo a pòm-bce. Nan ka pwòp tèt ou-asanble, li rele ecb. An konsekans, si ou vle anrejistre yon modil nan seksyon MODULES nan fichye mkinicpio.conf, pa bliye ki modil ou enstale.
Manyèl asanble:
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
Ajoute modil bce oswa apple-bce nan demaraj: /etc/modules-load.d/bce.conf
bce
Si ou vle itilize bouton Fn yo pa defo, ekri nan /etc/modprobe.d/apple-tb.conf fichye a:
options apple-ib-tb fnmode=2
Mete ajou nwayo a ak initramfs.
mkinitcpio -p linux-mbp
Enstale iwd:
sudo pacman -S networkmanager iwd
5. Chargeur
Yon fwa ke tout pakè prensipal yo enstale andedan chroot la, ou ka kòmanse enstale bootloader la.
Mwen pa te kapab jwenn grub nan travay. Grub bòt soti nan yon kondwi USB ekstèn, men lè ou eseye anrejistre li nan nvme atravè
sistèm nan te antre nan panik nwayo, epi apre rdemare yon nouvo atik nan opsyon pa t 'parèt. Mwen pa t 'jwenn okenn solisyon klè nan pwoblèm sa a ak Se poutèt sa deside eseye aplike demaraj lè l sèvi avèk systemd-boot.
Lanse
bootctl --path=/boot install
epi nou antre nan panik nwayo. Etenn MacBook a, vire l ankò, klike sou opsyon (pa fèmen USB-C mwaye a ak klavye)
Nou tcheke si yon nouvo antre EFI BOOT parèt anplis aparèy ekstèn lan
Nou chwazi demare soti nan yon kondwi USB ekstèn, tankou pandan premye enstalasyon an (pa bliye presize module_blacklist = thunderbolt)
Nou monte disk nou an epi ale nan anviwònman an atravè arch-chroot
mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt
Si li nesesè pou klavye a travay jiskaske sistèm lan konplètman chaje (sa a nesesè lè w ap itilize chifreman luks/dm-crypt), Lè sa a, ekri li nan /etc/mkinicpio.conf fichye a nan seksyon MODIL la:
Kòm li te tounen soti nan fen a, MacOS estoke fichye firmwèr yo pou adaptè a wi-fi nan katab la /usr/share/firmware/wifi , epi ou ka pran yo soti nan fòm lan nan blob epi bay yo manje nan modil la nwayo brcmfmac. Pou chèche konnen ki fichye adaptè w la itilize, louvri yon tèminal nan MacOS epi ekri:
ioreg -l | grep C-4364
Nou jwenn yon lis long. Nou sèlman bezwen dosye ki soti nan seksyon an RequestedFiles:
Nan ka sa a, dènye dosye tèks la gen non modèl yo; si modèl ou a pa macbookpro15,2, Lè sa a, ou bezwen chanje non fichye sa a an akò ak modèl MacBook ou a.
Rdemare nan Arch.
Kopi fichye ki soti nan kondwi flash la nan katab /lib/firmware/brcm/
Nan moman sa a 16.10.2019 ou dwe chwazi swa son oswa sispann / rezime. N ap tann otè modil bce a pou konplete fonksyonalite a.
Pou konstwi yon modil ak sipò sispansyon/rezime, ou dwe fè bagay sa yo:
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
Si ou enstale modil apple-bce ki pare a nan depo anuali1 la, Lè sa a, ou dwe premye retire li epi sèlman Lè sa a, rasanble epi enstale modil la bce ak sipò mòd sispann.
Epitou, ou bezwen ajoute modil applesmc a nan lis nwa a (si ou pa te fè sa anvan) epi asire w ke nan /boot/loader/entries/arch.conf nan liy opsyon yo nan fen paramèt la te ajoute. pcie_ports = konpa.
Kounye a, chofè a touchbar aksidan lè w ap antre nan mòd sispansyon, epi chofè a thunderbolt pafwa jele sistèm lan pou plis pase 30 segonn, ak pou plizyè minit lè rekòmanse. Sa a ka fiks pa otomatikman dechaje modil pwoblèm.
Kreye yon 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
Fè li ègzekutabl:
sudo chmod +x /lib/systemd/system-sleep/rmmod.sh
Se tout pou kounye a. Rezilta a se yon sistèm konplètman travayabl, ak eksepsyon de kèk nuans ak sispann / rezime. Pa gen okenn aksidan oswa panik nwayo yo te obsève pandan plizyè jou nan uptime. Mwen espere ke nan fiti prè otè a nan modil la bce pral fini li, epi nou pral jwenn sipò konplè pou sispann / rezime ak son.