ProHoster > Blog > İdarə > MacBook Pro 2018 T2-nin ArchLinux ilə işləməsi (ikili yükləmə)
MacBook Pro 2018 T2-nin ArchLinux ilə işləməsi (ikili yükləmə)
Yeni T2 çipinin toxunma paneli ilə yeni 2018 MacBook-lara Linux quraşdırmağı qeyri-mümkün edəcəyi ilə bağlı kifayət qədər şırınga var. Vaxt keçdi və 2019-cu ilin sonunda üçüncü tərəf tərtibatçıları T2 çipi ilə qarşılıqlı əlaqə üçün bir sıra drayverlər və nüvə yamaqlarını tətbiq etdilər. MacBook 2018 və daha yeni modellər üçün əsas sürücü VHCI əməliyyatını (toxunma/klaviatura/s. əməliyyat), eləcə də səs əməliyyatını həyata keçirir.
BCE (Buffer Copy Engine) - T2 ilə əsas rabitə kanalını qurur. VHCI və Audio bu komponenti tələb edir.
VHCI USB Virtual Host Nəzarətçisidir; klaviatura, siçan və digər sistem komponentləri bu komponent tərəfindən təmin edilir (digər sürücülər daha çox funksionallıq təmin etmək üçün bu host nəzarətçisindən istifadə edirlər.
Audio - T2 audio interfeysi üçün sürücü, hazırda yalnız MacBook-un daxili dinamikləri vasitəsilə səs çıxışını dəstəkləyir
İkinci layihə adlanır macbook12-spi sürücü, və o, MacBook Pro Late 2016 və sonrakı versiyalar üçün klaviatura, SPI trackpad və touchbar üçün daxiletmə sürücüsünü idarə etmək qabiliyyətini həyata keçirir. Bəzi klaviatura/trackpad drayverləri indi 5.3 versiyasından başlayaraq nüvəyə daxil edilmişdir.
Wi-Fi, touchpad və s. kimi cihazlara dəstək də nüvə yamaqlarından istifadə etməklə həyata keçirilib. Cari kernel versiyası5.3.5-1
Hazırda nə işləyir
NVMe
Klaviatura
USB-C (Thunderbolt sınaqdan keçirilməyib; modul avtomatik yükləndikdə sistemi dondurur)
Toxunma paneli (Fn düymələrini, arxa işığı, ESC və s. yandırmaq imkanı ilə)
Səs (yalnız daxili dinamiklər)
Wi-Fi modulu (brcmfmac vasitəsilə və yalnız iw vasitəsilə)
USB-C üzərindən DisplayPort
Sensorlar
Dayandırın/Davam edin (qismən)
və s ..
Bu təlimat macbookpro15,1 və macbookpro15,2 üçün uyğundur. Məqalə ingilis dilində Github-dan əsas götürülüb. buradan. Bu məqalədəki hər şey nəticə vermədi, buna görə də özüm bir həll tapmalı oldum.
Nə quraşdırmalısınız
USB-C dok adapteri (siçanı, klaviaturanı, USB modemi və ya telefonu bağlama rejimində qoşmaq üçün ən azı üç USB girişi). Bu, yalnız quraşdırmanın ilk mərhələlərində lazımdır
cp -r /usr/share/archiso/configs/releng/ archlive
cd archlive
Anbarı pacman.conf-a əlavə edin:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Biz pacman.conf-da orijinal nüvəyə məhəl qoymuruq:
IgnorePkg = linux linux-headers
Lazımi paketləri əlavə edin, sonunda linux-mbp kernel və linux-mbp-headers əlavə edin.
...
wvdial
xl2tpd
linux-mbp
linux-mbp-headers
Skripti interaktiv rejimdə işləmək üçün dəyişdiririk (pacstrap -C-ni pacstrap -i -C ilə əvəz edin):
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!"
}
Şəkil yaratmaq:
sudo ./build.sh -v
İcazəsiz paketləri keçmək üçün Y düyməsini basın, sonra iso şəklini usb flash sürücüsünə yazın:
sudo dd if=out/archlinux*.iso of=/dev/sdb bs=1M
4. İlk yükləmə
Daxil edilmiş flash sürücü və klaviatura ilə yenidən başladın. Alma görünəndə seçimləri basın, EFI BOOT seçin.
Sonra, "e" düyməsini basmalı və əmr satırının sonunda daxil etməlisiniz module_blacklist=ildırım. Bu edilmədikdə, sistem açılmaya bilər və Thunderbolt ICM Xətası görünəcək.
Fdisk/cfdisk-dən istifadə edərək bölməmizi tapırıq (mənim üçün bu nvme0n1p4), formatlaşdırıb arxivi quraşdırırıq. İstifadə edə bilərsən rəsmi göstərişlər və ya yan tərəfə.
Yükləmə bölməsi yaratmırıq, yükləyicini yazacağıq /dev/nvme0n1p1
/mnt-dəki mühit tamamilə formalaşdıqdan sonra və arch-chroot-a keçməzdən əvvəl yazın:
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt /bin/bash
/etc/pacman.conf-a əlavə edin:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Klaviatura üçün nüvə modullarının quraşdırılması. Anbarda anual1 hazır paketi var, adlanır apple-bce-dkms-git. Quraşdırmaq üçün konsolda yazın:
pacman -S apple-bce-dkms-git
Bu halda kernel modulu çağırılacaq alma-bce. Öz-özünə montaj vəziyyətində deyilir e.ə. Müvafiq olaraq, əgər siz modulu mkinicpio.conf faylının MODULLAR bölməsində qeydiyyatdan keçirmək istəyirsinizsə, o zaman hansı modulu quraşdırdığınızı unutmayın.
Əl ilə montaj:
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
Başlamaq üçün bce və ya apple-bce modulunu əlavə edin: /etc/modules-load.d/bce.conf
bce
Defolt olaraq Fn düymələrindən istifadə etmək istəyirsinizsə, /etc/modprobe.d/apple-tb.conf faylına yazın:
options apple-ib-tb fnmode=2
Kernelin və initramfların yenilənməsi.
mkinitcpio -p linux-mbp
iwd quraşdırın:
sudo pacman -S networkmanager iwd
5. Yükləyici
Bütün əsas paketlər chroot daxilində quraşdırıldıqdan sonra siz yükləyicini quraşdırmağa başlaya bilərsiniz.
Qrubu işə götürə bilmədim. Grub xarici USB sürücüsündən yüklənir, ancaq onu nvme-də qeydiyyatdan keçirməyə çalışdığınız zaman
sistem kernel çaxnaşmasına girdi və yenidən başladıqdan sonra seçimlər vasitəsilə yeni bir element görünmədi. Mən bu problemin aydın həllini tapmadım və buna görə də systemd-boot istifadə edərək yükləməni həyata keçirməyə qərar verdim.
Başlat
bootctl --path=/boot install
və nüvə panikasına giririk. MacBook-u söndürün, yenidən yandırın, seçimlərə klikləyin (klaviatura ilə USB-C mərkəzini söndürməyin)
Xarici cihaza əlavə olaraq yeni EFI BOOT girişinin göründüyünü yoxlayırıq
Biz ilk quraşdırma zamanı olduğu kimi xarici USB sürücüsündən yükləməyi seçirik (modul_blacklist=thunderbolt təyin etməyi unutmayın)
Biz diskimizi quraşdırırıq və arch-chroot vasitəsilə mühitə daxil oluruq
mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt
Sistem tam yüklənənə qədər klaviaturanın işləməsi lazımdırsa (bu, luks/dm-crypt şifrələməsindən istifadə edərkən lazımdır), onda onu MODULLAR bölməsində /etc/mkinicpio.conf faylına yazın:
Sonda məlum oldu ki, MacOS wi-fi adapteri üçün proqram təminatı fayllarını qovluqda saxlayır /usr/share/firmware/wifi , və siz onları oradan bloblar şəklində götürüb brcmfmac kernel moduluna qidalandıra bilərsiniz. Adapterinizin hansı faylları istifadə etdiyini öyrənmək üçün MacOS-da terminal açın və yazın:
ioreg -l | grep C-4364
Uzun bir siyahı alırıq. Bizə yalnız bölmədən fayllar lazımdır RequestedFiles:
Sizin vəziyyətinizdə fayl adları fərqli ola bilər. Onları /usr/share/firmware/wifi qovluğundan flash sürücüyə kopyalayın və adlarını aşağıdakı kimi dəyişdirin:
Bu halda, sonuncu mətn faylı model adlarını ehtiva edir, əgər modeliniz macbookpro15,2 deyilsə, onda siz MacBook modelinizə uyğun olaraq bu faylın adını dəyişdirməlisiniz.
Hazırda 16.10.2019 ya səsi, ya da dayandırmağı/davam etməyi seçməlisiniz. Biz bce modulunun müəllifinin funksionallığı tamamlamasını gözləyirik.
Dayandırılmış/davam dəstəyi ilə modul yaratmaq üçün aşağıdakıları etməlisiniz:
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
Hazır apple-bce modulunu anuali1 repozitoriyasından quraşdırmısınızsa, onda siz əvvəlcə onu çıxarmalı və yalnız sonra dayandırma rejimi dəstəyi ilə bce modulunu yığıb quraşdırmalısınız.
Həmçinin, siz applesmc modulunu qara siyahıya əlavə etməlisiniz (əgər bunu əvvəllər etməmisinizsə) və sonunda seçimlər sətirində /boot/loader/entries/arch.conf-da parametrin əlavə olunduğundan əmin olun. pcie_ports=uyğun.
Hazırda toxunma panelinin sürücüsü dayandırma rejiminə daxil olarkən qəzaya uğrayır və ildırım sürücüsü bəzən sistemi 30 saniyədən çox, davam edərkən isə bir neçə dəqiqə dondurur. Bu, problemli modulları avtomatik boşaltmaqla düzəldilə bilər.
#!/bin/sh
if [ "" == "pre" ]; then
rmmod thunderbolt
rmmod apple_ib_tb
elif [ "" == "post" ]; then
modprobe apple_ib_tb
modprobe thunderbolt
fi
Onu icra edilə bilən hala gətirin:
sudo chmod +x /lib/systemd/system-sleep/rmmod.sh
Hələlik bu qədər. Nəticə, dayandırma/davam etmə ilə bəzi nüanslar istisna olmaqla, tamamilə işlək sistemdir. Bir neçə günlük iş vaxtı ərzində heç bir qəza və ya nüvə panikası müşahidə edilmədi. Ümid edirəm ki, yaxın gələcəkdə bce modulunun müəllifi onu bitirəcək və biz dayandırmaq/davam etmək və səs vermək üçün tam dəstək alacağıq.