Palju on rÀÀgitud sellest, et uue T2 kiibi tÔttu ei ole vÔimalik 2018. aasta MacBookidega Touch Bar-iga Linuxit installida. Aja edenedes, 2019. aasta lÔpus, on kolmandate osapoolte arendajad loonud mitmeid draivereid ja kerneliplaatide parandusi T2 kiibiga suhtlemiseks. Peamine draiver 2018. ja uudse MacBooki mudelite jaoks vÔimaldab VHCI (touche/kliaviatuur jne) ning ka heli funktsionaalsust.
Projekt jagatud kolme peamise komponendi peale:
- BCE (Buffer Copy Engine) â loob T2-ga peamise sidekanali. VHCI ja Audio vajavad seda komponenti.
- VHCI â see on virtuaalne hostkontroller USB; klaviatuur, hiir ja muud sĂŒsteemi komponendid pakuvad selle komponenti kaudu (teised draiverid kasutavad seda hostkontrollerit, et tagada suurem funktsionaalsus).
- Audio â draiver T2 heliliidestele, hetkel toetatakse ainult heli edastamist lĂ€bi MacBooki integreeritud kĂ”larite.
Teine projekt on nimega , ja see vÔimaldab klaviatuuri, SPI puuteplaadi ja MacBook Pro 2016. aasta lÔpu ning hilisemate versioonide puutepaneeli draiverit. Osad klaviatuuri/puutetplaadi draiverid on alates versioonist 5.3 lisatud kÀrku.
Samuti on rakendatud toe selliste seadmete nagu wi-fi, puuteplaat jne osas kÀrku patƥid. Praegu on kÀrku versioon
Mis hetkel töötab
- NVMe
- Klaviatuur
- USB-C (Thunderbolt ei ole testitud, mooduli automaatne laadimine hangib sĂŒsteemi tĂ€ielikult)
- Puutepaneel (Fn klahvide, taustvalguse, ESC jne toega)
- Heli (ainult sisseehitatud kÔlarid)
- Wi-Fi moodul (brcmfmac kaudu ja ainult lÀbi iw)
- DisplayPort USB-C kaudu
- Andurid
- Suspend/Resume (osaliselt)
- jne..
See juhend kehtib macbookpro15,1 ja macbookpro15,2 jaoks. Aluseks on ingliskeelne artikkel GitHubist. Kuid mitte kÔik selle artikli osad ei töötanud, seega tuli lahendusi ise otsida.
Mida on installimiseks vaja
- USB-C dokkadapter USB-le (vĂ€hemalt kolm USB porti hiire, klaviatuuri, usb modem vĂ”i telefoni ĂŒhendamiseks tethering reĆŸiimis). See on vajalik ainult installimise esimeses etapis.
- USB-klaviatuur
- USB/USB-C mÀlupulk, vÀhemalt 4GB
1. Keelame vÀliste seadmete laadimise keelamine
2. Eraldame vaba ruumi Disk Utility abil
Mugavuse huvides eraldasin ma kohe 30GB ketast, vormindades selle exfat formaati Disk Utility's. .
3. Loome iso pildi
Valikud:
- VÔime minna lihtsat teed ja laadida alla valmis pilt tuumaga 5.3.5-1 ja plaastritega
- Luua pilt ise archlive'i kaudu (vajalik on sĂŒsteem Arch'i distributsiooniga)
Paigaldame
pacman -S archisocp -r /usr/share/archiso/configs/releng/ archlive cd archliveLisame hoidla pacman.conf'i:
[mbp] Server = https://packages.aunali1.com/archlinux/$repo/$archIgnoreerime originaalset tuuma pacman.conf'is:
IgnorePkg = linux linux-headersLisame vajalikud paketid, lÔpuks lisame linux-mbp ja linux-mbp-headers tuuma
... wvdial xl2tpd linux-mbp linux-mbp-headersMuudame skripti interaktiivseks tööks (asendame pacstrap -C pacstrap -i -C-ga):
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!" }Loome pildi:
sudo ./build.sh -vVajutame Y, et vahele jÀtta ignoreeritud paketid, seejÀrel kirjutame iso-pildi usb-mÀlupulgale:
sudo dd if=out/archlinux*.iso of=/dev/sdb bs=1M
4. Esimene kÀivitamine
TaaskÀivitame sisestatud mÀlupulgaga ja klaviatuuriga. Vajutame options, kui Ôun ilmub, valime EFI BOOT.
SeejĂ€rel tuleb vajutada klahvi âeâ ja kirjutada kĂ€surea lĂ”pule module_blacklist=thunderbolt. Kui seda ei tehta, ei pruugi sĂŒsteem kĂ€ivituda ja ilmneb viga Thunderbolt ICM Error.
Kasutades fdisk/cfdisk, leidke meie jaotus (minu puhul on see nvme0n1p4), vormindage ja paigaldage Arch. VÔite kasutada vÔi .
KĂ€ivitamisjaotust ei loo, laadijat kirjutame /dev/nvme0n1p1
PĂ€rast seda, kui keskkond on tĂ€ielikult loodud /mnt kaustas ja enne arch-chrooti ĂŒleminekut, kirjutame:
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt /bin/bash
Lisame /etc/pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Paigaldame tuuma:
sudo pacman -S linux-mbp linux-mbp-headers
sudo mkinitcpio -p linux-mbp
Lisame thunderbolt ja applesmc /etc/modprobe.d/blacklist.conf
blacklist thunderbolt
blacklist applesmc
Klaviatuur, taÄhbar jne
Paigaldame yay:
sudo pacman -S git gcc make fakeroot binutils
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
Paigaldame moodulid taÄhbariga töötamiseks:
git clone --branch mbp15 https://github.com/roadrunner2/macbook12-spi-driver.git
cd macbook12-spi-driver
make install
Lisame moodulid automaatlaadimisse: /etc/modules-load.d/apple.conf
industrialio_triggered_buffer
apple-ibridge
apple-ib-tb
apple-ib-als
Paigaldame tuuma moodulid klaviatuuri tööks. Repos on valmis paket, nimega apple-bce-dkms-git. Selle installimiseks kirjutame konsoolis:
pacman -S apple-bce-dkms-gitSelle juhul on tuumamoodul nimega apple-bce. Kui koguda iseseisvalt, siis nimetatakse seda bce. Vastavalt, kui soovite mooduli kirjutada sektsiooni MODULES faili mkinicpio.conf, siis Àrge unustage, millist moodulit te installisite.
KĂ€sitsi kogumine:
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
Lisame mooduli bce vÔi apple-bce automaatkÀivitusse: /etc/modules-load.d/bce.conf
bceKui soovite kasutada vaikimisi klahve Fn, siis faili /etc/modprobe.d/apple-tb.conf kirjutame:
options apple-ib-tb fnmode=2Uuendame tuuma ja initramfs.
mkinitcpio -p linux-mbp
Installime iwd:
sudo pacman -S networkmanager iwd5. Laadur
PÀrast seda, kui chrootis on kÔik peamised paketid installitud, saab alustada laadurite installimist.
Mul ei Ă”nnestunud grub'i tööle saada. VĂ€liselt usb-kettalt grub laadib, kuid kui pĂŒĂŒan seda nvme'isse kirjutada lĂ€bi
grub-install âtarget=x86_64-efi âefi-directory=/boot âbootloader-id=grub
sĂŒsteem lĂ€heb kernel panic'i ja pĂ€rast taaskĂ€ivitamist uut punkti options'i kaudu ei ilmunud. Selge lahendust sellele probleemile ma ei leidnud ja seepĂ€rast otsustasin proovida laadimist systemd-boot'i kaudu.
- KĂ€ivitage
bootctl --path=/boot installja ja kernel panic. LĂŒlitame MacBooki vĂ€lja, lĂŒlitame uuesti sisse, vajutame options (usb-c hubi klaviatuuriga ei katkesta)
- Kontrollime, et lisaks vÀlisele seadmele on ilmunud uus EFI BOOT kirje
- Valime kÀivitamise vÀliselt usb-kettalt nagu esmakordsel installimisel (Àrge unustage sisestada module_blacklist=thunderbolt)
- Mountime meie ketta ja liigume keskkonda arch-chroot kaudu
mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt
Kui on vajalik, et klaviatuur töötaks enne sĂŒsteemi tĂ€ielikku kĂ€ivitamist (see on vajalik luks/dm-crypt-i krĂŒpteerimise korral), siis kirjutame faili /etc/mkinicpio.conf jaotisesse MODULES:
MODULES=(ext4 applespi intel_lpss_pci spi_pxa2xx_platform bce)
Uuendame tuuma ja initramfs.
mkinicpio -p linux-mbp
Seame systemd-booti
Muudame faili /boot/loader/loader.conf, kustutame sealt kÔik ja lisame jÀrgmise:
default arch
timeout 5
editor 1
Liigume kausta /boot/loader/entries, loome faili arch.conf ja kirjutame:
pealkiri arch
linux /vmlinuz-linux-mbp
initrd /initramfs-linux-mbp.img
valikud root=/dev/<b>nvme0n1p4</b> rw pcie_ports=compat
Kui kasutasime luks ja lvm, siis
valikud cryptdevice=/dev/<b>nvme0n1p4</b>:luks root=/dev/mapper/vz0-root rw pcie_ports=compat
TaaskÀivitame MacOS-i.
6. Wi-Fi seadistamine
Kuidas selgus, salvestab MacOS wi-fi adaptorite pĂŒsivara failid kausta /usr/share/firmware/wifi , ja saate need sealt blob'idena vĂ”tta ja edastada brcmfmac-i tuumamoodulile. Selleks et teada saada, milliseid faile teie adapter kasutab, avage MacOS-is terminal ja kirjutage:
ioreg -l | grep C-4364Saame pika nimekirja. Meid huvitavad ainult failid jaotises RequestedFiles:
"RequestedFiles" = ({"Firmware"="<b>C-4364__s-B2/maui.trx</b>","TxCap"="C-4364__s-B2/maui-X3.txcb","Regulatory"="C-4364__s-B2/<b>maui-X3.clmb</b>","NVRAM"="C-4364__s-B2/<b>P-maui-X3_M-HRPN_V-m__m-7.7.txt</b>"})
Teie puhul vĂ”ivad failide nimed erineda. Kopeerige need kaustast /usr/share/firmware/wifi mĂ€lupulgale ja nimetage ĂŒmber jĂ€rgmisse vormingusse:
maui.trx -> brcmfmac4364-pcie.bin
maui-X3.clmb -> brcmfmac4364-pcie.clm_blob
P-maui-X3_M-HRPN_V-m__m-7.7.txt -> brcmfmac4364-pcie.Apple Inc.-<b>MacBookPro15,2.txt</b>
Antud juhul sisaldab viimane tekstifail mudeli nimesid; kui teie mudel ei ole macbookpro15,2, tuleb see fail ĂŒmber nimetada vastavalt teie MacBooki mudelile.
TaaskÀivitage archi.
Kopeerime failid mÀlupulgalt kausta /lib/firmware/brcm/
sudo cp brcmfmac4364-pcie.bin /lib/firmware/brcm/
sudo cp brcmfmac4364-pcie.clm_blob /lib/firmware/brcm/
sudo cp 'brcmfmac4364-pcie.Apple Inc.-<b>MacBookPro15,2.txt' /lib/firmware/brcm/
Kontrollime mooduli toimivust:
rmmod brcmfmac
modprobe brcmfmac
Veenduge, et vÔrguliides oleks nÀhtav ifconfig/ip kaudu.
Seame wifi ĂŒles lĂ€bi
TÀhelepanu. Netctl, nmcli jne kaudu liides ei tööta, ainult iwd kaudu.
Sundime NetworkManagerit kasutama iwd-d. Selleks loome faili /etc/NetworkManager/NetworkManager.conf ja kirjutame:
[device]
wifi.backend=iwd
KĂ€ivitame NetworkManageri teenuse
sudo systemctl start NetworkManager.service
sudo systemctl enable NetworkManager.service
7. HÀÀl
Heli toimimiseks on vaja installida pulseaudio:
sudo pacman -S pulseaudio
Laadime alla kolm faili:
Liigutame need:
/usr/share/alsa/cards/AppleT2.conf
/usr/share/pulseaudio/alsa-mixer/profile-sets/apple-t2.conf
/usr/lib/udev/rules.d/91-pulseaudio-custom.rules8. Suspend/Resume
Praegu tuleb valida kas heli vÔi suspend/resume. Ootame, kuni mooduli autor funktsionaalsuse lÔpetab. 16.10.2019 Selleks, et koguda moodul suspend/resume toe jaoks, tuleb teha jÀrgmist:
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
Kui olete installinud valmis mooduli apple-bce repostoryst anuali1, siis tuleb see eelnevalt eemaldada ja alles seejĂ€rel koguda ning installida bce moodul suspend reĆŸiimi toega.
Samuti peate lisama musta nimekirja mooduli applesmc (kui te pole seda varem teinud) ja veenduma, et /boot/loader/entries/arch.conf failis, read options lÔpus on lisatud parameeter
pcie_ports=compat Praegu kukub touchbar'i juhtimisseade suspend reĆŸiimi minnes ning thunderbolti draiver vahel kĂŒlmutab sĂŒsteemi ĂŒle 30 sekundi ja taaselustamisel â mitu minutit. Seda saab parandada probleemselt moodulit automaatselt eemaldades..
Looge skript
Tehke see kÀivitatavaks: /lib/systemd/system-sleep/rmmod.sh:
#!/bin/sh
if [ "${1}" == "pre" ]; then
rmmod thunderbolt
rmmod apple_ib_tb
elif [ "${1}" == "post" ]; then
modprobe apple_ib_tb
modprobe thunderbolt
fi
sudo chmod +x /lib/systemd/system-sleep/rmmod.sh
sudo chmod +x /lib/systemd/system-sleep/rmmod.sh Sellega oleme lĂ”petanud. LĂ”ppkokkuvĂ”ttes on tekkinud ĂŒsna toimiv sĂŒsteem, vĂ€lja arvatud mĂ”ned detailid suspend/resume osas. Paari pĂ€eva jooksul pole olnud mingeid krahhe ega kernel panic'e. Loodetavasti tĂ€iustab moduli autor bce peagi ning saame tĂ€ieliku toe suspend/resume ja heli osas.
Allikas: habr.com
