ProHoster > Блог > басқарма > MacBook Pro 2018 T2 ArchLinux (қос жүктеу) бағдарламасымен жұмыс істеуге мүмкіндік береді.
MacBook Pro 2018 T2 ArchLinux (қос жүктеу) бағдарламасымен жұмыс істеуге мүмкіндік береді.
Жаңа T2 чипі Linux жүйесін сенсорлық тақтасы бар жаңа 2018 MacBook компьютерлеріне орнатуды мүмкін етпейтіні туралы біраз шу болды. Уақыт өтті және 2019 жылдың соңында үшінші тарап әзірлеушілері T2 чипімен өзара әрекеттесу үшін бірқатар драйверлер мен ядро патчтарын енгізді. 2018 және одан кейінгі MacBook үлгілеріне арналған негізгі драйвер VHCI операциясын (сенсорлық/пернетақта/т.б. операция), сондай-ақ дыбыстық жұмысты жүзеге асырады.
BCE (Buffer Copy Engine) - T2-мен негізгі байланыс арнасын орнатады. VHCI және Audio бұл компонентті қажет етеді.
VHCI — USB виртуалды хост контроллері; пернетақтаны, тінтуірді және басқа жүйе құрамдастарын осы құрамдас қамтамасыз етеді (басқа драйверлер көбірек функционалдылықты қамтамасыз ету үшін осы хост контроллерін пайдаланады.
Аудио - T2 аудио интерфейсіне арналған драйвер, қазіргі уақытта тек MacBook кірістірілген динамиктері арқылы аудио шығысын қолдайды.
Екінші жоба деп аталады macbook12-spi-драйвер, және ол MacBook Pro Late 2016 және одан кейінгі нұсқасы үшін пернетақта, SPI сенсорлық тақтасы және сенсорлық тақта үшін енгізу драйверін басқару мүмкіндігін жүзеге асырады. Кейбір пернетақта/трекпад драйверлері 5.3 нұсқасынан бастап ядроға енді.
Wi-Fi, сенсорлық тақта және т.б. сияқты құрылғыларды қолдау ядро патчтары арқылы жүзеге асырылды. Ағымдағы ядро нұсқасы5.3.5-1
Қазіргі уақытта не істеп жатыр
NVMe
Пернетақта
USB-C (Thunderbolt тексерілмеген; модуль автоматты түрде жүктелгенде, ол жүйені қатырады)
Сенсорлық тақта (Fn пернелерін, артқы жарықты, ESC және т.б. қосу мүмкіндігі бар)
Дыбыс (тек кірістірілген динамиктер)
Wi-Fi модулі (brcmfmac арқылы және тек iw арқылы)
USB-C арқылы DisplayPort
Датчиктер
Тоқтата тұру/жалғастыру (ішінара)
және т.б.
Бұл оқулық macbookpro15,1 және macbookpro15,2 үшін жарамды. Мақала ағылшын тіліндегі Github сайтынан негіз ретінде алынды. мұнда. Бұл мақалада бәрі жұмыс істемеді, сондықтан мен шешімді өзім табуға тура келді.
Орнату үшін не қажет
USB-C қондыру адаптері (тінтуірді, пернетақтаны, USB модемді немесе телефонды байланыстыру режимінде қосуға арналған кемінде үш USB кірісі). Бұл орнатудың алғашқы кезеңдерінде ғана қажет
cp -r /usr/share/archiso/configs/releng/ archlive
cd archlive
Репозиторийді pacman.conf файлына қосыңыз:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Біз pacman.conf ішіндегі бастапқы ядроны елемейміз:
IgnorePkg = linux linux-headers
Қажетті пакеттерді қосыңыз, соңында linux-mbp ядросын және linux-mbp-тақырыптарын қосыңыз
...
wvdial
xl2tpd
linux-mbp
linux-mbp-headers
Интерактивті режимде жұмыс істеу үшін сценарийді өзгертеміз (pacstrap -C орнына 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!"
}
Суретті қалыптастыру:
sudo ./build.sh -v
Еленбеген бумаларды өткізіп жіберу үшін Y пернесін басыңыз, содан кейін ISO кескінін USB флэш-дискісіне жазыңыз:
sudo dd if=out/archlinux*.iso of=/dev/sdb bs=1M
4. Бірінші жүктеу
Флэш-диск пен пернетақта салынған күйде қайта жүктеңіз. Алма пайда болған кезде опцияларды басыңыз, EFI BOOT таңдаңыз.
Содан кейін «e» пернесін басып, пәрмен жолының соңына енгізу керек module_blacklist=найзағай. Бұл орындалмаса, жүйе жүктелмеуі мүмкін және Thunderbolt ICM қатесі пайда болады.
Fdisk/cfdisk көмегімен біз бөлімімізді табамыз (мен үшін бұл nvme0n1p4), оны пішімдеп, мұрағатты орнатамыз. Сіз пайдалана аласыз ресми нұсқаулар немесе жағына.
Біз жүктеу бөлімін жасамаймыз, біз жүктеушіні жазамыз /dev/nvme0n1p1
/mnt ортасы толығымен қалыптасқаннан кейін және arch-chroot-қа көшу алдында мынаны жазыңыз:
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt /bin/bash
/etc/pacman.conf ішіне қосыңыз:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Пернетақтаға ядро модульдерін орнату. Репозиторийде anuali1 дайын пакет бар, оны атайды apple-bce-dkms-git. Оны орнату үшін консольге жазыңыз:
pacman -S apple-bce-dkms-git
Бұл жағдайда ядро модулі шақырылады алма-bce. Өзін-өзі құрастыру жағдайында ол аталады б. Сәйкесінше, mkinicpio.conf файлының MODULES бөлімінде модульді тіркегіңіз келсе, қай модульді орнатқаныңызды ұмытпаңыз.
Қолмен құрастыру:
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 немесе apple-bce модулін қосыңыз: /etc/modules-load.d/bce.conf
bce
Fn түймелерін әдепкі бойынша пайдаланғыңыз келсе, /etc/modprobe.d/apple-tb.conf файлына жазыңыз:
options apple-ib-tb fnmode=2
Ядро мен initramfs жаңарту.
mkinitcpio -p linux-mbp
iwd орнату:
sudo pacman -S networkmanager iwd
5. Жүктегіш
Барлық негізгі бумалар chroot ішіне орнатылғаннан кейін, жүктеуші орнатуды бастауға болады.
Мен жұмысты жинай алмадым. Grub сыртқы USB дискісінен жүктеледі, бірақ оны nvme арқылы тіркеуге тырысқанда
жүйе ядролық дүрбелеңге ұшырады және қайта жүктегеннен кейін опциялар арқылы жаңа элемент пайда болмады. Мен бұл мәселенің нақты шешімін таппадым, сондықтан systemd-boot арқылы жүктеуді жүзеге асыруға шешім қабылдадым.
Іске қосу
bootctl --path=/boot install
және біз ядролық дүрбелеңге түсеміз. MacBook компьютерін өшіріңіз, қайта қосыңыз, опцияларды басыңыз (пернетақтамен USB-C хабын өшірмеңіз)
Сыртқы құрылғыға қосымша жаңа EFI BOOT жазбасы пайда болғанын тексереміз
Біз бірінші орнату кезіндегідей сыртқы USB дискісінен жүктеуді таңдаймыз (modul_blacklist=thunderbolt көрсетуді ұмытпаңыз)
Біз дискімізді орнатып, arch-chroot арқылы ортаға шығамыз
mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt
Жүйе толық жүктелгенше пернетақта жұмыс істеуі қажет болса (бұл luks/dm-crypt шифрлауын пайдаланған кезде қажет), оны МОДУЛЬТЕР бөліміндегі /etc/mkinicpio.conf файлына жазыңыз:
Соңында белгілі болғандай, MacOS қалтада wi-fi адаптері үшін микробағдарлама файлдарын сақтайды /usr/share/микробағдарлама/wifi , және сіз оларды сол жерден блобтар түрінде алып, brcmfmac ядро модуліне бере аласыз. Адаптеріңіз қандай файлдарды пайдаланатынын білу үшін MacOS жүйесінде терминалды ашып, мынаны жазыңыз:
ioreg -l | grep C-4364
Біз ұзын тізімді аламыз. Бізге тек бөлімдегі файлдар қажет RequestedFiles:
Бұл жағдайда соңғы мәтіндік файлда үлгі атаулары бар, егер сіздің үлгіңіз macbookpro15,2 болмаса, онда бұл файлдың атын MacBook үлгісіне сәйкес өзгерту керек.
Қазіргі уақытта 16.10.2019 дыбысты немесе тоқтатуды/жалғастыруды таңдау керек. Біз bce модулінің авторын функционалдылықты аяқтауын күтеміз.
Тоқтатылған/жалғастыру қолдауы бар модуль құру үшін келесі әрекеттерді орындау керек:
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
Егер сіз anuali1 репозиторийінен дайын apple-bce модулін орнатқан болсаңыз, алдымен оны алып тастауыңыз керек, содан кейін тоқтата тұру режимінің қолдауымен bce модулін жинап, орнату керек.
Сондай-ақ, applesmc модулін қара тізімге қосу керек (егер сіз мұны бұрын жасамаған болсаңыз) және соңында опциялар жолындағы /boot/loader/entries/arch.conf параметрінде параметр қосылғанына көз жеткізіңіз. pcie_ports=үйлесімді.
Қазіргі уақытта сенсорлық тақта драйвері тоқтата тұру режиміне кіру кезінде бұзылады, ал найзағай драйвері кейде жүйені 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
Әзірге бәрі осы. Нәтиже - тоқтата тұру/жалғастыру бар кейбір нюанстарды қоспағанда, толығымен жұмыс істейтін жүйе. Жұмыс уақытының бірнеше күнінде ешқандай апаттар немесе ядролық дүрбелең байқалмады. Жақын арада bce модулінің авторы оны аяқтайды деп үміттенемін және біз тоқтата тұру/жалғастыру және дыбыс үшін толық қолдау аламыз.