ProHoster > Blog > Tsamaiso > Ho etsa MacBook Pro 2018 T2 e sebetse le ArchLinux (dualboot)
Ho etsa MacBook Pro 2018 T2 e sebetse le ArchLinux (dualboot)
Ho bile le hype e nyane mabapi le taba ea hore chip e ncha ea T2 e tla etsa hore ho se khonehe ho kenya Linux ho 2018 MacBooks e ncha e nang le touchbar. Nako e ile ea feta, 'me qetellong ea selemo sa 2019, bahlahisi ba mokha oa boraro ba ile ba kenya ts'ebetsong bakhanni ba' maloa le li-patches tsa kernel bakeng sa ho sebelisana le chip ea T2. Mokhanni ea ka sehloohong bakeng sa mehlala ea MacBook 2018 le lisebelisoa tse ncha tsa VHCI (touch / keyboard / joalo-joalo), hammoho le ts'ebetso ea molumo.
BCE (Buffer Copy Engine) - e theha mocha o moholo oa puisano le T2. VHCI le Audio li hloka karolo ena.
VHCI ke USB Virtual Host Controller; keyboard, mouse le likarolo tse ling tsa tsamaiso li fanoa ke karolo ena (bakhanni ba bang ba sebelisa molaoli oa moeti ho fana ka ts'ebetso e eketsehileng.
Audio - mokhanni oa sebopeho sa molumo oa T2, hajoale o ts'ehetsa feela tlhahiso ea molumo ka libui tse hahelletsoeng ka har'a MacBook
Morero oa bobeli o bitsoa macbook12-spi-driver, 'me e sebelisa bokhoni ba ho sebelisa mokhanni oa ho kenya keyboard, SPI trackpad, le touchbar bakeng sa Late 2016 le MacBook Pros hamorao. Bakhanni ba bang ba keyboard / trackpad joale ba kenyellelitsoe kernel, ho qala ka mofuta oa 5.3.
Tšehetso ea lisebelisoa tse kang wi-fi, touchpad, joalo-joalo e ile ea boela ea kenngoa ts'ebetsong ka li-patches tsa kernel. Mofuta oa hona joale oa kernel5.3.5-1
Se sebetsang hona joale
NVMe
Keyboard
USB-C (Thunderbolt ha e so lekoe; ha module e jarolloa ka bo eona, e homisa sistimi)
Touchbar (e nang le bokhoni ba ho bulela linotlolo tsa Fn, backlight, ESC, joalo-joalo)
Molumo (libui tse hahelletsoeng feela)
Mojule oa Wi-Fi (ka bcmfmac le feela ka iw)
DisplayPort holim'a USB-C
E hlahlobang
Emisa/Qala hape (karolo)
joalo-joalo.
Thupelo ena e sebetsa bakeng sa macbookpro15,1 le macbookpro15,2. Sengoliloeng se nkiloe e le motheo oa Github ka Senyesemane. ho tloha mona. Ha se ntho e 'ngoe le e 'ngoe e hlahang sehloohong sena e ileng ea sebetsa, kahoo ke ile ka tlameha ho iphumanela tharollo.
Seo u se hlokang ho kenya
Adapter ea USB-C e kenang ho USB (bonyane lisebelisoa tse tharo tsa USB bakeng sa ho hokahanya mouse, keyboard, modem ea USB kapa fono ka mokhoa oa ho kopanya). Sena se hlokahala feela nakong ea mekhahlelo ea pele ea ho kenya
USB keyboard
USB/USB-C flash drive bonyane 4GB
1. Thibela thibelo ea booting ho tsoa mecha ea litaba ea kantle
cp -r /usr/share/archiso/configs/releng/ archlive
cd archlive
Kenya sebaka sa polokelo ho pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Re hlokomoloha kernel ea mantlha ho pacman.conf:
IgnorePkg = linux linux-headers
Kenya liphutheloana tse hlokahalang, qetellong eketsa linux-mbp kernel le linux-mbp-headers.
...
wvdial
xl2tpd
linux-mbp
linux-mbp-headers
Re fetola sengoloa hore se sebetse ka mokhoa o kopanetsoeng (fetola pacstrap -C ka 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!"
}
Ho etsa setšoantšo:
sudo ./build.sh -v
Tobetsa Y ho tlola liphutheloana tse hlokomolohuoang, ebe u ngola setšoantšo sa iso ho usb flash drive:
sudo dd if=out/archlinux*.iso of=/dev/sdb bs=1M
4. Bootle ba pele
Qala hape ka flash drive le keyboard e kentsoeng. Tobetsa likhetho ha apole e hlaha, khetha EFI BOOT.
Ka mor'a moo, o hloka ho tobetsa konopo ea "e" 'me u kene qetellong ea mola oa taelo module_blacklist=sealuma. Haeba sena se sa etsoa, sistimi e kanna ea se qale mme Phoso ea Thunderbolt ICM e tla hlaha.
U sebelisa fdisk / cfdisk re fumana karohano ea rona (ho nna ke nvme0n1p4), e hlophise ebe u kenya polokelo. U ka sebelisa ditaelo tsa semmuso kapa ka mahlakoreng.
Ha re thehe karolo ea boot; re tla ngola bootloader ho eona /dev/nvme0n1p1
Kamora hore tikoloho e /mnt e thehoe ka botlalo mme pele o fallela ho arch-chroot, ngola:
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt /bin/bash
Kenya ho /etc/pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Ho kenya li-module tsa kernel bakeng sa keyboard. Sebakeng sa polokelo anuali1 ho na le sephutheloana se seng se entsoe, se bitsoa apple-bce-dkms-git. Ho e kenya, ngola ka har'a console:
pacman -S apple-bce-dkms-git
Tabeng ena, kernel module e tla bitsoa apole-bce. Tabeng ea ho iketsetsa kopano, ho bitsoa ecb. Ka hona, haeba u batla ho ngolisa mojule karolong ea MODULES ea faele ea mkinicpio.conf, u se ke ua lebala hore na u kentse mojule ofe.
Ho kopanya ka letsoho:
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
Kenya mojule oa bce kapa oa apole-bce ho qala: /etc/modules-load.d/bce.conf
bce
Haeba u batla ho sebelisa likonopo tsa Fn ka ho sa feleng, joale ngola faeleng ea /etc/modprobe.d/apple-tb.conf:
options apple-ib-tb fnmode=2
Ho nchafatsa kernel le initramfs.
mkinitcpio -p linux-mbp
Kenya iwd:
sudo pacman -S networkmanager iwd
5. Mojari
Hang ha liphutheloana tsohle tse ka sehloohong li kenngoa ka hare ho chroot, u ka qala ho kenya bootloader.
Ha ke so khone ho fumana grub ho sebetsa. Tlosa lieta ho tsoa ho drive ea kantle ea USB, empa ha u leka ho e ngolisa ho nvme ka
kenya grub --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
Sistimi e ile ea tšoha kernel, mme kamora ho qala ntho e ncha ka likhetho ha ea ka ea hlaha. Ha kea fumana tharollo e hlakileng ea bothata bona mme ka hona ke nkile qeto ea ho leka ho kenya ts'ebetsong ho sebelisa systemd-boot.
Qala
bootctl --path=/boot install
'me re kena tšabong ea kernel. Tima MacBook, e bulele hape, tobetsa likhetho (u se ke ua tima hub ea USB-C ka keyboard)
Re hlahloba hore ho kenoa ha EFI BOOT e ncha ho hlahile ho phaella ho sesebelisoa sa ka ntle
Re khetha ho qalisa koloi ho tloha ka ntle ho USB drive, joalo ka nakong ea kopo ea pele (u se ke ua lebala ho hlakisa module_blacklist = thunderbolt)
Re kenya disk ea rona ebe re ea tikolohong ka arch-chroot
mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt
Haeba ho hlokahala hore keyboard e sebetse ho fihlela sisteme e kentsoe ka botlalo (sena sea hlokahala ha u sebelisa encryption ea luks/dm-crypt), joale e ngole faeleng ea /etc/mkinicpio.conf karolong ea MODULES:
Joalokaha ho ile ha etsahala qetellong, MacOS e boloka lifaele tsa firmware bakeng sa adaptara ea wi-fi foldareng /usr/share/firmware/wifi , 'me u ka li nka ho tloha moo ka mokhoa oa li-blobs' me u li fepe ho brcmfmac kernel module. Ho tseba hore na adaptara ea hau e sebelisa lifaele life, bula terminal ho MacOS ebe u ngola:
ioreg -l | grep C-4364
Re fumana lethathamo le lelelele. Re hloka feela lifaele tse tsoang karolong RequestedFiles:
Tabeng ea hau, mabitso a lifaele a ka fapana. Li kopitse ho tloha ho /usr/share/firmware/wifi foldareng ho ea ho flash drive ebe u li reha lebitso ka tsela e latelang:
Tabeng ena, faele ea ho qetela ea mongolo e na le mabitso a mohlala; haeba mohlala oa hau e se macbookpro15,2, joale u lokela ho reha faele ena ho latela mohlala oa hau oa MacBook.
Qala hape ho Arch.
Kopitsa lifaele ho tloha ho flash drive ho ea ho /lib/firmware/brcm/ foldareng
Ka nako ena 16.10.2019 u tlameha ho khetha molumo kapa ho emisa / qala hape. Re emetse hore mongoli oa mojule oa bce a phethe mosebetsi.
Ho aha mojule ka tšehetso e emisitsoeng / qala hape, o tlameha ho etsa tse latelang:
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
Haeba o kentse mojule oa apple-bce o seng o entsoe sebakeng sa polokelo ea anuali1, joale o tlameha ho o tlosa pele ebe o kopanya le ho kenya module ea bce ka ts'ehetso ea mokhoa oa ho emisa.
Hape, ho hlokahala hore u kenye module ea applesmc lethathamong le letšo (haeba ha u e-s'o etse sena pele) 'me u netefatse hore ho /boot/loader/entries/arch.conf moleng oa likhetho qetellong parameter e eketsoa. pcie_ports=compati.
Hajoale, mokhanni oa touchbar oa senyeha ha a kena ka mokhoa oa ho emisa, 'me mokhanni oa sealuma ka linako tse ling o emisa sistimi ka metsotsoana e fetang 30, le metsotso e mengata ha a qala hape. Sena se ka lokisoa ka ho laolla li-module tse nang le bothata ka bo eona.
Etsa mongolo /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
Etsa hore e phethahale:
sudo chmod +x /lib/systemd/system-sleep/rmmod.sh
Ke phetho bakeng sa jwale. Sephetho ke sistimi e sebetsang ka botlalo, ntle le li-nuances tse ling tse emisang / qala hape. Ha ho na likotsi kapa tšabo ea kernel e ileng ea bonoa matsatsing a 'maloa a nako. Ke tšepa hore haufinyane mongoli oa bce module o tla e qeta, 'me re tla fumana tšehetso e feletseng ea ho emisa / resume le molumo.