Омогућавање да МацБоок Про 2018 Т2 ради са АрцхЛинук-ом (дуалбоот)
Било је поприлично узбуђења око чињенице да ће нови Т2 чип онемогућити инсталирање Линука на нове МацБоок-ове из 2018. са додирном траком. Време је пролазило, а крајем 2019. године, независни програмери су имплементирали бројне драјвере и закрпе кернела за интеракцију са Т2 чипом. Главни драјвер за МацБоок моделе 2018 и новије имплементира ВХЦИ рад (рад на додир/тастатуру/итд.), као и рад са звуком.
БЦЕ (Буффер Цопи Енгине) - успоставља главни комуникациони канал са Т2. ВХЦИ и Аудио захтевају ову компоненту.
ВХЦИ је УСБ виртуелни хост контролер; тастатуру, миш и друге системске компоненте обезбеђује ова компонента (други драјвери користе овај хост контролер да обезбеде више функционалности.
Аудио - драјвер за Т2 аудио интерфејс, тренутно подржава само аудио излаз преко уграђених звучника МацБоок-а
Други пројекат се зове мацбоок12-спи-дривер, и имплементира могућност управљања улазним драјвером за тастатуру, СПИ трацкпад и тоуцхбар за касне 2016. и касније МацБоок Про. Неки драјвери за тастатуру/трацкпад су сада укључени у кернел, почевши од верзије 5.3.
Подршка за уређаје као што су ви-фи, тоуцхпад итд. такође је имплементирана помоћу закрпа језгра. Тренутна верзија кернела5.3.5-1
Шта ради у овом тренутку
НВМе
тастатура
УСБ-Ц (Тхундерболт није тестиран; када се модул аутоматски учита, замрзава систем)
Овај водич је применљив за мацбоокпро15,1 и мацбоокпро15,2. Чланак је узет као основа са Гитхуб-а на енглеском. стога. Није све у овом чланку функционисало, па сам морао сам да пронађем решење.
Šta treba da instalirate
УСБ-Ц адаптер за прикључивање на УСБ (најмање три УСБ улаза за повезивање миша, тастатуре, УСБ модема или телефона у режиму повезивања). Ово је неопходно само у првим фазама инсталације
УСБ тастатура
УСБ/УСБ-Ц флеш диск минимално 4 ГБ
1. Онемогућите забрану покретања са спољних медија
cp -r /usr/share/archiso/configs/releng/ archlive
cd archlive
Додајте спремиште у пацман.цонф:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Ми игноришемо оригинално језгро у пацман.цонф:
IgnorePkg = linux linux-headers
Додајте потребне пакете, на крају додајте линук-мбп кернел и линук-мбп-хеадерс
...
wvdial
xl2tpd
linux-mbp
linux-mbp-headers
Ми мењамо скрипту да ради у интерактивном режиму (замените пацстрап -Ц са пацстрап -и -Ц):
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!"
}
Формирање слике:
sudo ./build.sh -v
Притисните И да прескочите занемарене пакете, а затим упишите исо слику на УСБ флеш диск:
sudo dd if=out/archlinux*.iso of=/dev/sdb bs=1M
4. Прво покретање
Поново покрените рачунар са уметнутим флеш диском и тастатуром. Притисните опције када се појави јабука, изаберите ЕФИ БООТ.
Затим морате да притиснете тастер „е“ и унесете на крају командне линије модуле_блацклист=тхундерболт. Ако се то не уради, систем се можда неће покренути и појавиће се Тхундерболт ИЦМ грешка.
Помоћу фдиск/цфдиск налазимо нашу партицију (код мене је то нвме0н1п4), форматирамо је и инсталирамо архиву. Можете користити службена упутства или бочно.
Не правимо партицију за покретање; уписаћемо покретач /дев/нвме0н1п1
Након што је окружење у /мнт потпуно формирано и пре него што пређете на арцх-цхроот, напишите:
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt /bin/bash
Додајте у /етц/пацман.цонф:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Инсталирање модула кернела за тастатуру. У спремишту ануали1 постоји готов пакет, зове се аппле-бце-дкмс-гит. Да бисте га инсталирали, напишите у конзоли:
pacman -S apple-bce-dkms-git
У овом случају биће позван модул кернела јабука-п.н.е. У случају самосталног склапања тзв бце. Сходно томе, ако желите да региструјете модул у одељку МОДУЛЕС датотеке мкиницпио.цонф, не заборавите који сте модул инсталирали.
Ручна монтажа:
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
Додајте бце или аппле-бце модул за покретање: /етц/модулес-лоад.д/бце.цонф
bce
Ако подразумевано желите да користите Фн дугмад, онда напишите у датотеку /етц/модпробе.д/аппле-тб.цонф:
options apple-ib-tb fnmode=2
Ажурирање кернела и инитрамфс-а.
mkinitcpio -p linux-mbp
Инсталирај ивд:
sudo pacman -S networkmanager iwd
5. Утоваривач
Када су сви главни пакети инсталирани унутар цхроот-а, можете почети са инсталирањем покретачког програма.
Нисам успео да натерам груб на посао. Груб се покреће са екстерног УСБ диска, али када покушате да га региструјете у нвме преко
систем је упао у панику кернела, а након поновног покретања нове ставке кроз опције се нису појавиле. Нисам пронашао јасно решење за овај проблем и стога сам одлучио да покушам да имплементирам покретање помоћу системд-боот.
Лансирање
bootctl --path=/boot install
и улазимо у кернел панику. Искључите МацБоок, укључите га поново, кликните на опције (не искључујте УСБ-Ц чвориште са тастатуром)
Проверавамо да ли се поред спољног уређаја појавио нови унос ЕФИ БООТ
Бирамо да се покренемо са екстерног УСБ диска, као и током прве инсталације (не заборавите да наведете модуле_блацклист=тхундерболт)
Монтирамо наш диск и улазимо у окружење преко арцх-цхроот-а
mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt
Ако је потребно да тастатура ради док се систем потпуно не учита (ово је неопходно када користите лукс/дм-црипт енкрипцију), онда то упишите у датотеку /етц/мкиницпио.цонф у одељку МОДУЛИ:
Како се на крају испоставило, МацОС чува фајлове фирмвера за ви-фи адаптер у фасцикли /уср/схаре/фирмваре/вифи , и можете их узети одатле у облику мрљица и унети их у модул језгра брцмфмац. Да бисте сазнали које датотеке ваш адаптер користи, отворите терминал у МацОС-у и напишите:
ioreg -l | grep C-4364
Добијамо дугу листу. Потребне су нам само датотеке из секције РекуестедФилес:
У вашем случају, називи датотека могу се разликовати. Копирајте их из фасцикле /уср/схаре/фирмваре/вифи на флеш диск и преименујте их на следећи начин:
У овом случају, последња текстуална датотека садржи називе модела; ако ваш модел није мацбоокпро15,2, онда морате да преименујете ову датотеку у складу са вашим МацБоок моделом.
Поново покрените у Арцх.
Копирајте датотеке са флеш диска у фасциклу /либ/фирмваре/брцм/
Тренутно 16.10.2019 морате изабрати или звук или суспендовати/наставити. Чекамо да аутор бце модула заврши функционалност.
Да бисте направили модул са обустављеном/наставком подршке, морате да урадите следеће:
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
Ако сте инсталирали готов аппле-бце модул из ануали1 спремишта, онда га прво морате уклонити и тек онда саставити и инсталирати бце модул са подршком за суспендовани режим.
Такође, потребно је да додате апплесмц модул на црну листу (ако то раније нисте урадили) и уверите се да је у /боот/лоадер/ентриес/арцх.цонф у реду опција на крају параметар додат пцие_портс=цомпат.
Тренутно, драјвер тоуцхбар-а се руши када уђе у режим суспендовања, а драјвер Тхундерболт понекад замрзне систем на више од 30 секунди, а на неколико минута када се настави. Ово се може поправити аутоматским истоваром проблематичних модула.
#!/bin/sh
if [ "" == "pre" ]; then
rmmod thunderbolt
rmmod apple_ib_tb
elif [ "" == "post" ]; then
modprobe apple_ib_tb
modprobe thunderbolt
fi
Учините га извршним:
sudo chmod +x /lib/systemd/system-sleep/rmmod.sh
То је све за сада. Резултат је потпуно функционалан систем, са изузетком неких нијанси са обуставом/наставком. Током неколико дана непрекидног рада нису примећени падови или паника кернела. Надам се да ће га у блиској будућности аутор бце модула завршити, а ми ћемо добити пуну подршку за суспенд/ресуме и звук.