ProHoster > Блог > Gudanarwa > Yin MacBook Pro 2018 T2 aiki tare da ArchLinux (dualboot)
Yin MacBook Pro 2018 T2 aiki tare da ArchLinux (dualboot)
An yi ɗan ƙara jin daɗi game da gaskiyar cewa sabon guntu T2 zai sa ba zai yiwu a shigar da Linux akan sabon 2018 MacBooks tare da taɓa taɓawa ba. Lokaci ya wuce, kuma a ƙarshen 2019, masu haɓaka ɓangare na uku sun aiwatar da adadin direbobi da facin kernel don hulɗa tare da guntu T2. Babban direba don samfuran MacBook 2018 da sababbi suna aiwatar da aikin VHCI (aiki na taɓawa / allon allo / da sauransu), da kuma aikin sauti.
BCE (Buffer Copy Engine) - ya kafa babban tashar sadarwa tare da T2. VHCI da Audio suna buƙatar wannan bangaren.
VHCI mai kula da Mai watsa shiri ne na USB; Ana samar da maballin, linzamin kwamfuta da sauran abubuwan tsarin ta wannan bangaren (sauran direbobi suna amfani da wannan mai sarrafa mai masaukin don samar da ƙarin ayyuka.
Audio - direba don mu'amala mai jiwuwa ta T2, a halin yanzu yana goyan bayan fitowar sauti kawai ta hanyar ginanniyar lasifikar da ke cikin MacBook
Ana kiran aikin na biyu macbook12-spi-driver, kuma yana aiwatar da ikon sarrafa direban shigarwa don madannai, SPI trackpad, da mashaya don MacBook Pro Late 2016 da kuma daga baya. Wasu direbobin madannai/maɓallin waƙa yanzu an haɗa su a cikin kernel, farawa da sigar 5.3.
An kuma aiwatar da goyan bayan na'urori irin su wi-fi, touchpad, da sauransu ta amfani da facin kernel. Sigar kernel na yanzu5.3.5-1
Me ke aiki a halin yanzu
NVMe
Keyboard
USB-C (ba a gwada Thunderbolt ba; lokacin da aka ɗora kayan aikin ta atomatik, yana daskare tsarin)
Touchbar (tare da ikon kunna maɓallan Fn, hasken baya, ESC, da sauransu)
Sauti (ginayen lasifika kawai)
Wi-Fi module (ta hanyar bcmfmac kuma ta hanyar iw kawai)
DisplayPort akan USB-C
Na'urar haska bayanai
Dakatar da / Ci gaba (wani bangare)
da dai sauransu ..
Wannan koyawa tana aiki don macbookpro15,1 da macbookpro15,2. An ɗauki labarin azaman tushe daga Github a Turanci. daga nan. Ba duk abin da ke cikin wannan labarin ya yi aiki ba, don haka dole ne in sami mafita da kaina.
Abin da kuke buƙata don shigarwa
USB-C adaftar docking zuwa USB (aƙalla abubuwan shigar da kebul guda uku don haɗa linzamin kwamfuta, keyboard, modem USB ko waya a yanayin haɗawa). Wannan wajibi ne kawai a lokacin matakan farko na shigarwa
USB keyboard
Kebul/USB-C flash drive mafi ƙarancin 4GB
1. Kashe haramcin yin booting daga kafofin watsa labarai na waje
cp -r /usr/share/archiso/configs/releng/ archlive
cd archlive
Ƙara wurin ajiya zuwa pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Mun yi watsi da ainihin kernel a pacman.conf:
IgnorePkg = linux linux-headers
Ƙara fakitin da suka dace, a ƙarshe ƙara linux-mbp kernel da linux-mbp-headers.
...
wvdial
xl2tpd
linux-mbp
linux-mbp-headers
Muna canza rubutun zuwa aiki a yanayin hulɗa (maye gurbin pacstrap -C tare da 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!"
}
Ƙirƙirar hoto:
sudo ./build.sh -v
Latsa Y don tsallake fakitin da ba a kula da su ba, sannan rubuta hoton iso zuwa filasha na USB:
sudo dd if=out/archlinux*.iso of=/dev/sdb bs=1M
4. Farko taya
Sake yi tare da filasha da kuma shigar da madannai. Danna zaɓuɓɓuka lokacin da apple ya bayyana, zaɓi EFI BOOT.
Na gaba, kuna buƙatar danna maɓallin "e" kuma shigar a ƙarshen layin umarni module_blacklist = tsawa. Idan ba a yi haka ba, tsarin na iya ƙila yin taya kuma Kuskuren Thunderbolt ICM zai bayyana.
Yin amfani da fdisk/cfdisk muna samun ɓangaren mu (a gare ni nvme0n1p4 ne), tsara shi kuma shigar da tarihin. Kuna iya amfani da umarnin hukuma ko a gefe.
Ba muna ƙirƙirar ɓangaren taya ba; za mu rubuta bootloader a ciki /dev/nvme0n1p1
Bayan yanayin a /mnt ya kasance gaba daya kuma kafin motsawa zuwa arch-chroot, rubuta:
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt /bin/bash
Ƙara zuwa /etc/pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Sanya kernel modules don madannai. A cikin ma'ajiyar shekara 1 akwai kunshin da aka shirya, ana kiransa apple-bce-dkms-git. Don shigar da shi, rubuta a cikin na'ura mai kwakwalwa:
pacman -S apple-bce-dkms-git
A wannan yanayin, za a kira ƙirar kernel apple-bce. A cikin yanayin haɗin kai, ana kiran shi lanƙwasa. Don haka, idan kuna son yin rijistar module a sashin MODULES na fayil ɗin mkinicpio.conf, to kar ku manta da wanne tsarin da kuka shigar.
Haɗa hannu:
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
Ƙara ƙirar bce ko apple-bce zuwa farawa: /etc/modules-load.d/bce.conf
bce
Idan kuna son amfani da maɓallin Fn ta tsohuwa, to ku rubuta a cikin fayil /etc/modprobe.d/apple-tb.conf:
options apple-ib-tb fnmode=2
Ana ɗaukaka kernel da initramfs.
mkinitcpio -p linux-mbp
Shigar iwd:
sudo pacman -S networkmanager iwd
5. Mai lodi
Da zarar an shigar da duk manyan fakiti a cikin chroot, zaku iya fara shigar da bootloader.
Ba zan iya samun grub don aiki ba. Grub boots daga kebul na USB na waje, amma lokacin da kake ƙoƙarin yin rijista ta nvme ta
tsarin ya shiga cikin firgita kernel, kuma bayan sake yin sabon abu ta hanyar zaɓuɓɓuka bai bayyana ba. Ban sami wata bayyananniyar mafita ga wannan matsalar ba saboda haka na yanke shawarar ƙoƙarin aiwatar da booting ta amfani da systemd-boot.
Kaddamarwa
bootctl --path=/boot install
kuma mun shiga cikin firgici. Kashe MacBook, kunna shi kuma, danna zaɓuɓɓuka (kada ku kashe tashar USB-C tare da keyboard)
Mun duba cewa sabon shigarwar EFI BOOT ya bayyana baya ga na'urar waje
Mun zaɓi don taya daga kebul na USB na waje, kamar lokacin shigarwa na farko (kar a manta da saka module_blacklist=thunderbolt)
Muna hawa faifan mu kuma mu shiga cikin muhalli ta hanyar arch-chroot
mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt
Idan maballin ya zama dole ya yi aiki har sai tsarin ya cika (wannan yana da mahimmanci yayin amfani da luks/dm-crypt encryption), sannan rubuta shi a cikin fayil /etc/mkinicpio.conf a cikin sashin MODULES:
Kamar yadda ya juya a ƙarshe, MacOS yana adana fayilolin firmware don adaftar wi-fi a cikin babban fayil ɗin /usr/share/firmware/wifi , kuma zaku iya ɗaukar su daga can a cikin nau'in ɓangarorin ku ciyar da su zuwa tsarin kernel na bcmfmac. Don gano fayilolin adaftar ku ke amfani da su, buɗe tasha a MacOS kuma rubuta:
ioreg -l | grep C-4364
Muna samun dogon jeri. Muna buƙatar fayiloli kawai daga sashin Fayilolin da ake buƙata:
A cikin yanayin ku, sunayen fayil ɗin na iya bambanta. Kwafi su daga babban fayil /usr/share/firmware/wifi zuwa faifan faifai kuma sake suna kamar haka:
A wannan yanayin, fayil ɗin rubutu na ƙarshe ya ƙunshi sunayen ƙira; idan samfurin ku ba macbookpro15,2 ba ne, to kuna buƙatar sake suna wannan fayil ɗin daidai da ƙirar MacBook ɗinku.
Sake kunnawa cikin Arch.
Kwafi fayilolin daga filasha zuwa babban fayil /lib/firmware/brcm/
A wannan lokacin 16.10.2019 dole ne ka zaɓi ko dai sauti ko dakatarwa/ci gaba. Muna jiran marubucin BC module don kammala aikin.
Don gina module tare da dakatarwa/ci gaba da tallafi, dole ne ku yi masu zuwa:
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
Idan kun shigar da kayan aikin apple-bce da aka shirya daga ma'ajiyar anuali1, to dole ne ku fara cire shi sannan kawai ku tattara kuma shigar da tsarin BC tare da goyan bayan yanayin dakatarwa.
Har ila yau, kuna buƙatar ƙara samfurin applesmc zuwa blacklist (idan ba ku yi wannan ba a da) kuma ku tabbata cewa a /boot/loader/entries/arch.conf a cikin layin zaɓuɓɓuka a ƙarshen an ƙara siginar. pcie_ports=compat.
A halin yanzu, direban taɓawar yana yin karo lokacin shigar da yanayin dakatarwa, kuma direban tsawa wani lokacin yana daskare tsarin sama da daƙiƙa 30, kuma na mintuna da yawa lokacin da aka ci gaba. Ana iya gyara wannan ta sauke kayan aiki masu matsala ta atomatik.
#!/bin/sh
if [ "" == "pre" ]; then
rmmod thunderbolt
rmmod apple_ib_tb
elif [ "" == "post" ]; then
modprobe apple_ib_tb
modprobe thunderbolt
fi
Sanya shi mai aiwatarwa:
sudo chmod +x /lib/systemd/system-sleep/rmmod.sh
Shi ke nan a yanzu. Sakamakon shine cikakken tsarin aiki, ban da wasu nuances tare da dakatarwa / ci gaba. Ba a ga faɗuwa ko fargabar kwaya a cikin kwanaki da yawa na lokacin aiki ba. Ina fatan nan gaba kadan marubucin BC module zai gama shi, kuma za mu sami cikakken goyon baya don dakatarwa / ci gaba da sauti.