ProHoster > Blog > Administrasi > Ngadamel MacBook Pro 2018 T2 tiasa dianggo sareng ArchLinux (dualboot)
Ngadamel MacBook Pro 2018 T2 tiasa dianggo sareng ArchLinux (dualboot)
Aya rada hype ngeunaan kanyataan yén chip T2 anyar bakal ngajadikeun eta teu mungkin masang Linux Ubuntu dina MacBooks anyar 2018 kalawan touchbar a. Waktos kaliwat, sareng dina ahir taun 2019, pamekar pihak katilu ngalaksanakeun sababaraha supir sareng patch kernel pikeun interaksi sareng chip T2. Supir utama pikeun modél MacBook 2018 sareng anu langkung énggal ngalaksanakeun operasi VHCI (operasi touch / keyboard / jsb), ogé operasi sora.
BCE (Buffer Copy Engine) - ngadegkeun saluran komunikasi utama sareng T2. VHCI sareng Audio ngabutuhkeun komponén ieu.
VHCI mangrupakeun USB Virtual Host Controller; kibor, mouse sareng komponenana sistem anu sanésna disayogikeun ku komponén ieu (driver sanésna nganggo host controller ieu pikeun nyayogikeun langkung seueur fungsionalitas.
Audio - supir pikeun panganteur audio T2, ayeuna ngan ngarojong kaluaran audio ngaliwatan spiker diwangun-di MacBook urang
Proyék kadua disebut macbook12-spi-supir, sarta eta implements kamampuhan pikeun beroperasi supir input pikeun keyboard, trackpad SPI, sarta touchbar pikeun MacBook Pro Ahir 2016 sarta engké. Sababaraha panggerak keyboard/trackpad ayeuna diasupkeun kana kernel, dimimitian ku versi 5.3.
Rojongan pikeun alat sapertos wi-fi, touchpad, jsb ogé dilaksanakeun nganggo patch kernel. Vérsi kernel ayeuna5.3.5-1
Naon anu dianggo ayeuna
NVMe
keyboard
USB-C (Thunderbolt teu acan diuji; nalika modul dimuat sacara otomatis, éta beku sistem)
Modul Wi-Fi (via brcmfmac sareng ngan ukur liwat iw)
DisplayPort ngaliwatan USB-C
Sénsor
Tunda / Neruskeun (sabagian)
jsb ..
Tutorial ieu lumaku pikeun macbookpro15,1 jeung macbookpro15,2. Tulisan ieu dicandak salaku dasar tina Github dina basa Inggris. di dieu. Henteu sadayana dina tulisan ieu tiasa dianggo, janten kuring kedah milarian solusi sorangan.
Naon anu anjeun kedah pasang
USB-C docking adaptor ka USB (sahenteuna tilu input USB pikeun nyambungkeun mouse a, keyboard, modem USB atawa telepon dina modeu Nga-tether). Ieu ngan diperlukeun dina tahap mimiti instalasi
kibor USB
USB / USB-C flash drive minimum 4GB
1. Pareuman larangan dina booting ti média éksternal
cp -r /usr/share/archiso/configs/releng/ archlive
cd archlive
Tambahkeun Repository kana pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Urang malire kernel aslina dina pacman.conf:
IgnorePkg = linux linux-headers
Tambahkeun bungkusan anu diperyogikeun, dina tungtungna tambahkeun kernel linux-mbp sareng linux-mbp-headers
...
wvdial
xl2tpd
linux-mbp
linux-mbp-headers
Kami ngarobih naskah pikeun dianggo dina modeu interaktif (ganti pacstrap -C sareng 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!"
}
Ngabentuk gambar:
sudo ./build.sh -v
Pencét Y pikeun ngalangkungan bungkusan anu teu dipaliré, teras tuliskeun gambar iso kana USB flash drive:
sudo dd if=out/archlinux*.iso of=/dev/sdb bs=1M
4. boot munggaran
Reboot sareng flash drive sareng keyboard diselapkeun. Pencét pilihan nalika apel muncul, pilih EFI BOOT.
Salajengna, anjeun kedah pencét tombol "e" sareng lebetkeun dina tungtung garis paréntah module_blacklist = guludug. Upami ieu henteu dilakukeun, sistem moal tiasa boot sareng Kasalahan Thunderbolt ICM bakal muncul.
Ngagunakeun fdisk / cfdisk kami manggihan partisi urang (kanggo kuring éta nvme0n1p4), pormat eta tur masang arsip. Anjeun tiasa make parentah resmi atawa gigir.
Kami henteu nyiptakeun partisi boot; kami bakal nyerat bootloader di /dev/nvme0n1p1
Saatos lingkungan di / mnt kabentuk lengkep sareng sateuacan ngalih ka arch-chroot, nyerat:
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt /bin/bash
Tambahkeun ka /etc/pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Masang modul kernel pikeun keyboard. Dina gudang taunan1 aya bungkusan siap-siap, disebutna apel-bce-dkms-git. Pikeun masang éta, tulis dina konsol:
pacman -S apple-bce-dkms-git
Dina hal ieu, modul kernel bakal disebut apal-bce. Dina kasus timer assembly, mangka disebut SM. Sasuai, upami anjeun hoyong ngadaptar modul dina bagian MODUL dina file mkinicpio.conf, teras ulah hilap modul anu anjeun pasang.
Majelis manual:
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
Tambahkeun modul bce atanapi apple-bce pikeun ngamimitian: /etc/modules-load.d/bce.conf
bce
Upami anjeun hoyong nganggo tombol Fn sacara standar, teras tulis dina file /etc/modprobe.d/apple-tb.conf:
options apple-ib-tb fnmode=2
Ngamutahirkeun kernel sareng initramfs.
mkinitcpio -p linux-mbp
Pasang iwd:
sudo pacman -S networkmanager iwd
5. Pamuat
Sakali sadaya bungkusan utama dipasang di jero chroot, anjeun tiasa ngamimitian masang bootloader.
Abdi henteu acan tiasa kéngingkeun grub damel. Sapatu Grub tina drive USB éksternal, tapi nalika anjeun nyobian ngadaptar dina nvme via
Sistim indit kana panik kernel, sarta sanggeus rebooting item anyar ngaliwatan pilihan teu muncul. Kuring henteu mendakan solusi anu jelas pikeun masalah ieu sareng ku kituna mutuskeun nyobian ngalaksanakeun booting nganggo systemd-boot.
Ngaluncurkeun
bootctl --path=/boot install
sarta kami balik kana panik kernel. Pareuman MacBook, hurungkeun deui, klik pilihan (ulah mareuman hub USB-C sareng keyboard)
Kami pariksa yén éntri EFI BOOT énggal parantos muncul salian ti alat éksternal
Urang milih boot ti USB drive éksternal, sakumaha dina mangsa pamasangan munggaran (tong poho pikeun nangtukeun module_blacklist=thunderbolt)
Urang Gunung disk urang jeung lebet kana lingkungan via arch-chroot
mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt
Lamun perlu keyboard pikeun digawé nepi ka sistem pinuh dimuat (ieu diperlukeun nalika ngagunakeun enkripsi luks/dm-crypt), lajeng nulis eta dina file /etc/mkinicpio.conf dina bagian MODUL:
Sapertos tungtungna, MacOS nyimpen file firmware pikeun adaptor wi-fi dina polder /usr/share/firmware/wifi , sareng anjeun tiasa nyandakna ti dinya dina bentuk gumpalan sareng tuang kana modul kernel brcmfmac. Pikeun milarian file mana anu dianggo ku adaptor anjeun, buka terminal dina MacOS sareng nyerat:
ioreg -l | grep C-4364
Simkuring meunang daptar panjang. Urang ngan butuh file ti bagian DipéntaFiles:
Dina hal ieu, file téks anu terakhir ngandung nami modél; upami modél anjeun sanés macbookpro15,2, maka anjeun kedah ngaganti nami file ieu saluyu sareng modél MacBook anjeun.
Reboot kana Arch.
Nyalin file tina flash drive kana folder /lib/firmware/brcm/
Dina momen ieu 16.10.2019 anjeun kedah milih sora atanapi ngagantungkeun / neruskeun. Kami ngantosan panulis modul bce ngalengkepan fungsionalitasna.
Pikeun ngawangun modul kalayan dukungan anu disangka / neruskeun, anjeun kedah ngalakukeun ieu:
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
Lamun dipasang modul apel-bce siap-dijieun ti Repository anuali1, mangka anjeun kudu mimiti nyabut eta na ngan lajeng ngumpul tur masang modul bce kalayan rojongan mode suspend.
Ogé, anjeun kedah nambihan modul applesmc kana daptar hideung (upami anjeun henteu acan ngalakukeun ieu sateuacanna) sareng pastikeun yén dina /boot/loader/entry/arch.conf dina garis pilihan dina tungtung parameter ditambahkeun. pcie_ports=compat.
Ayeuna, supir touchbar nabrak nalika asup kana mode suspend, sarta supir thunderbolt kadang freezes sistem pikeun leuwih ti 30 detik, sarta sababaraha menit nalika resuming. Ieu bisa dibenerkeun ku otomatis unloading modul masalah.
Jieun naskah /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
Jieun eta laksana:
sudo chmod +x /lib/systemd/system-sleep/rmmod.sh
Sakitu wae kanggo ayeuna. Hasilna mangrupikeun sistem anu tiasa dianggo, iwal sababaraha nuansa kalayan ngagantungkeun / neruskeun. Henteu aya kacilakaan atanapi panik kernel anu dititénan salami sababaraha dinten uptime. Kuring miharep éta dina mangsa nu bakal datang panulis modul bce bakal rengse eta, sarta kami bakal meunang rojongan pinuh pikeun ngagantungkeun / neruskeun jeung sora.