Gwneud i MacBook Pro 2018 T2 weithio gydag ArchLinux (dualboot)
Bu cryn dipyn o hype ynghylch y ffaith y bydd y sglodyn T2 newydd yn ei gwneud hi'n amhosibl gosod Linux ar y MacBooks 2018 newydd gyda bar cyffwrdd. Aeth amser heibio, ac ar ddiwedd 2019, gweithredodd datblygwyr trydydd parti nifer o yrwyr a chlytiau cnewyllyn ar gyfer rhyngweithio â'r sglodyn T2. Mae'r prif yrrwr ar gyfer modelau MacBook 2018 a mwy newydd yn gweithredu gweithrediad VHCI (gweithrediad cyffwrdd/bysellfwrdd/etc.), yn ogystal â gweithrediad cadarn.
BCE (Injan Copi Clustogi) - yn sefydlu'r brif sianel gyfathrebu gyda T2. Mae angen y gydran hon ar VHCI a Sain.
Mae VHCI yn Rheolwr Gwesteiwr Rhithwir USB; darperir y bysellfwrdd, llygoden a chydrannau system eraill gan y gydran hon (mae gyrwyr eraill yn defnyddio'r rheolydd gwesteiwr hwn i ddarparu mwy o ymarferoldeb.
Sain - gyrrwr ar gyfer y rhyngwyneb sain T2, ar hyn o bryd dim ond yn cefnogi allbwn sain trwy siaradwyr adeiledig y MacBook
Gelwir yr ail brosiect macbook12-spi-gyrrwr, ac mae'n gweithredu'r gallu i weithredu gyrrwr mewnbwn ar gyfer y bysellfwrdd, trackpad SPI, a bar cyffwrdd ar gyfer 2016 hwyr ac yn ddiweddarach MacBook Pros. Mae rhai gyrwyr bysellfwrdd / trackpad bellach wedi'u cynnwys yn y cnewyllyn, gan ddechrau gyda fersiwn 5.3.
Gweithredwyd cefnogaeth ar gyfer dyfeisiau fel wi-fi, touchpad, ac ati hefyd gan ddefnyddio clytiau cnewyllyn. Fersiwn cnewyllyn cyfredol5.3.5-1
Beth sy'n gweithio ar hyn o bryd
NVMe
bysellfwrdd
USB-C (Nid yw Thunderbolt wedi'i brofi; pan fydd y modiwl yn cael ei lwytho'n awtomatig, mae'n rhewi'r system)
Bar Cyffwrdd (gyda'r gallu i droi'r bysellau Fn ymlaen, backlight, ESC, ac ati)
Sain (siaradwyr adeiledig yn unig)
Modiwl Wi-Fi (trwy brcmfmac a dim ond trwy iw)
DisplayPort dros USB-C
Synwyryddion
Atal/Ailgychwyn (yn rhannol)
ac ati ..
Mae'r tiwtorial hwn yn berthnasol ar gyfer macbookpro15,1 a macbookpro15,2. Cymerwyd yr erthygl fel sail o Github yn Saesneg. felly. Nid oedd popeth yn yr erthygl hon yn gweithio, felly roedd yn rhaid i mi ddod o hyd i ateb fy hun.
Beth sydd angen i chi ei osod
Addasydd tocio USB-C i USB (o leiaf dri mewnbwn USB ar gyfer cysylltu llygoden, bysellfwrdd, modem USB neu ffôn yn y modd clymu). Dim ond yn ystod camau cyntaf y gosodiad y mae hyn yn angenrheidiol
Bysellfwrdd USB
Gyriant fflach USB/USB-C o leiaf 4GB
1. Analluoga'r gwaharddiad ar booting o gyfryngau allanol
cp -r /usr/share/archiso/configs/releng/ archlive
cd archlive
Ychwanegu'r ystorfa i pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Rydym yn anwybyddu'r cnewyllyn gwreiddiol yn pacman.conf:
IgnorePkg = linux linux-headers
Ychwanegwch y pecynnau angenrheidiol, ar y diwedd ychwanegwch y cnewyllyn linux-mbp a linux-mbp-headers
...
wvdial
xl2tpd
linux-mbp
linux-mbp-headers
Rydym yn newid y sgript i weithio yn y modd rhyngweithiol (yn lle pacstrap -C gyda 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!"
}
Ffurfio delwedd:
sudo ./build.sh -v
Pwyswch Y i hepgor pecynnau wedi'u hanwybyddu, yna ysgrifennwch y ddelwedd iso i'r gyriant fflach usb:
sudo dd if=out/archlinux*.iso of=/dev/sdb bs=1M
4. Cist cyntaf
Ailgychwyn gyda'r gyriant fflach a'r bysellfwrdd wedi'u mewnosod. Pwyswch opsiynau pan fydd yr afal yn ymddangos, dewiswch EFI BOOT.
Nesaf, mae angen i chi wasgu'r allwedd “e” a nodi ar ddiwedd y llinell orchymyn module_blacklist=follt taranau. Os na wneir hyn, efallai na fydd y system yn cychwyn a bydd Gwall ICM Thunderbolt yn ymddangos.
Gan ddefnyddio fdisk/cfdisk rydym yn dod o hyd i'n rhaniad (i mi nvme0n1p4 ydyw), ei fformatio a gosod yr archif. Gallwch ddefnyddio cyfarwyddiadau swyddogol neu ochr.
Nid ydym yn creu rhaniad cychwyn; byddwn yn ysgrifennu'r cychwynnydd i mewn /dev/nvme0n1p1
Ar ôl i'r amgylchedd yn /mnt gael ei ffurfio'n llwyr a chyn symud i arch-chroot, ysgrifennwch:
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt /bin/bash
Ychwanegu at /etc/pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Gosod modiwlau cnewyllyn ar gyfer y bysellfwrdd. Yn yr ystorfa anuali1 mae pecyn parod, fe'i gelwir afal-bce-dkms-git. I'w osod, ysgrifennwch yn y consol:
pacman -S apple-bce-dkms-git
Yn yr achos hwn, bydd y modiwl cnewyllyn yn cael ei alw afal-bce. Yn achos hunan-gynulliad, fe'i gelwir CC. Yn unol â hynny, os ydych chi am gofrestru modiwl yn adran MODULES y ffeil mkinicpio.conf, yna peidiwch ag anghofio pa fodiwl a osodwyd gennych.
Cydosod â llaw:
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
Ychwanegwch y modiwl bce neu apple-bce i gychwyn: /etc/modules-load.d/bce.conf
bce
Os ydych chi am ddefnyddio'r botymau Fn yn ddiofyn, yna ysgrifennwch yn y ffeil /etc/modprobe.d/apple-tb.conf:
options apple-ib-tb fnmode=2
Diweddaru'r cnewyllyn a'r initramfs.
mkinitcpio -p linux-mbp
Gosod iwd:
sudo pacman -S networkmanager iwd
5. Llwythwr
Unwaith y bydd yr holl brif becynnau wedi'u gosod y tu mewn i'r chroot, gallwch chi ddechrau gosod y cychwynnwr.
Dydw i ddim wedi gallu cael grub i weithio. Grub boots o yriant USB allanol, ond pan fyddwch yn ceisio ei gofrestru yn nvme drwy
aeth y system i banig cnewyllyn, ac ar ôl ailgychwyn eitem newydd trwy opsiynau nid oedd yn ymddangos. Ni ddaethpwyd o hyd i unrhyw ateb clir i'r broblem hon ac felly penderfynais geisio gweithredu cychwyn gan ddefnyddio systemd-boot.
Lansio
bootctl --path=/boot install
ac awn i mewn i banig cnewyllyn. Diffoddwch y MacBook, trowch ef ymlaen eto, cliciwch ar opsiynau (peidiwch â diffodd y canolbwynt USB-C gyda bysellfwrdd)
Rydym yn gwirio bod cofnod BOOT EFI newydd wedi ymddangos yn ychwanegol at y ddyfais allanol
Rydyn ni'n dewis cychwyn o yriant USB allanol, fel yn ystod y gosodiad cyntaf (peidiwch ag anghofio nodi module_blacklist = thunderbolt)
Rydyn ni'n gosod ein disg ac yn mynd i'r amgylchedd trwy arch-chroot
mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt
Os oes angen i'r bysellfwrdd weithio nes bod y system wedi'i llwytho'n llawn (mae hyn yn angenrheidiol wrth ddefnyddio amgryptio luks/dm-crypt), yna ysgrifennwch ef yn y ffeil /etc/mkinicpio.conf yn yr adran MODIWLAU:
Fel y digwyddodd yn y diwedd, mae MacOS yn storio'r ffeiliau firmware ar gyfer yr addasydd wi-fi yn y ffolder /usr/rhannu/cadarnwedd/wifi , a gallwch eu cymryd oddi yno ar ffurf smotiau a'u bwydo i'r modiwl cnewyllyn brcmfmac. Er mwyn darganfod pa ffeiliau y mae eich addasydd yn eu defnyddio, agorwch derfynell yn MacOS ac ysgrifennwch:
ioreg -l | grep C-4364
Cawn restr hir. Dim ond ffeiliau o'r adran sydd eu hangen arnom Ffeiliau Cais:
Yn eich achos chi, gall enwau'r ffeiliau fod yn wahanol. Copïwch nhw o'r ffolder /usr/share/firmware/wifi i'r gyriant fflach a'u hail-enwi fel a ganlyn:
Yn yr achos hwn, mae'r ffeil testun olaf yn cynnwys enwau'r model; os nad macbookpro15,2 yw'ch model, yna mae angen i chi ailenwi'r ffeil hon yn unol â'ch model MacBook.
Ailgychwyn i Arch.
Copïwch y ffeiliau o'r gyriant fflach i'r ffolder /lib/firmware/brcm/
Ar hyn o bryd 16.10.2019 rhaid i chi ddewis naill ai sain neu atal/ailddechrau. Rydym yn aros i awdur y modiwl bce gwblhau'r swyddogaeth.
I adeiladu modiwl gyda chefnogaeth amheus/ailddechrau, rhaid i chi wneud y canlynol:
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
Os gwnaethoch chi osod y modiwl apple-bce parod o'r ystorfa anuali1, yna mae'n rhaid i chi ei dynnu'n gyntaf a dim ond wedyn cydosod a gosod y modiwl bce gyda chefnogaeth modd atal.
Hefyd, mae angen i chi ychwanegu'r modiwl applesmc at y rhestr ddu (os nad ydych wedi gwneud hyn o'r blaen) a gwnewch yn siŵr bod y paramedr yn cael ei ychwanegu yn /boot/loader/entries/arch.conf yn y llinell opsiynau ar y diwedd pcie_ports = compat.
Ar hyn o bryd, mae gyrrwr y bar cyffwrdd yn damwain wrth fynd i mewn i'r modd atal, ac mae'r gyrrwr taranfollt weithiau'n rhewi'r system am fwy na 30 eiliad, ac am sawl munud wrth ailddechrau. Gellir trwsio hyn trwy ddadlwytho modiwlau problemus yn awtomatig.
Creu sgript /lib/systemd/system-sleep/rmmod.sh:
#!/bin/sh
if [ "" == "pre" ]; then
rmmod thunderbolt
rmmod apple_ib_tb
elif [ "" == "post" ]; then
modprobe apple_ib_tb
modprobe thunderbolt
fi
Ei wneud yn weithredadwy:
sudo chmod +x /lib/systemd/system-sleep/rmmod.sh
Dyna i gyd am y tro. Y canlyniad yw system gwbl ymarferol, ac eithrio rhai arlliwiau gydag ataliad / ailddechrau. Ni welwyd unrhyw ddamweiniau na phanig cnewyllyn yn ystod sawl diwrnod o uptime. Gobeithiaf yn y dyfodol agos y bydd awdur y modiwl bce yn ei orffen, ac y cawn gefnogaeth lawn i atal/ailddechrau a sain.