ProHoster > Blog > Rianachd > A’ toirt air MacBook Pro 2018 T2 obrachadh le ArchLinux (dualboot)
A’ toirt air MacBook Pro 2018 T2 obrachadh le ArchLinux (dualboot)
Tha beagan hype air a bhith ann mu dheidhinn gun dèan a’ chip T2 ùr e do-dhèanta Linux a chuir a-steach air na 2018 MacBooks ùra le bàr-suathaidh. Chaidh ùine seachad, agus aig deireadh 2019, chuir luchd-leasachaidh treas-phàrtaidh grunn dhraibhearan agus pìosan kernel an gnìomh airson eadar-obrachadh leis a’ chip T2. Is e am prìomh dhraibhear airson modalan MacBook 2018 agus innealan nas ùire gnìomhachd VHCI (obrachadh suathadh / meur-chlàr / msaa), a bharrachd air obrachadh fuaim.
BCE (Einnsean Leth-bhreac Bufair) - a’ stèidheachadh a’ phrìomh sianal conaltraidh le T2. Feumaidh VHCI agus Audio am pàirt seo.
Tha VHCI na Rianadair Host Virtual USB; tha am meur-chlàr, an luchag agus co-phàirtean siostam eile air an toirt seachad leis a’ phàirt seo (bidh draibhearan eile a’ cleachdadh an rianadair aoigheachd seo gus barrachd gnìomh a thoirt seachad.
Fuaim - draibhear airson eadar-aghaidh claisneachd T2, an-dràsta a’ toirt taic do thoraidhean claisneachd tro luchd-labhairt togte MacBook
Canar an dàrna pròiseact ris Driver airson macbook12 spi, agus bidh e a’ buileachadh comas draibhear cuir a-steach obrachadh airson a’ mheur-chlàr, trackpad SPI, agus bàr-touch airson MacBook Pro anmoch 2016 agus nas fhaide air adhart. Tha cuid de dhraibhearan meur-chlàr / trackpad a-nis air an toirt a-steach don kernel, a’ tòiseachadh le dreach 5.3.
Chaidh taic airson innealan leithid wi-fi, touchpad, msaa a chuir an gnìomh cuideachd a’ cleachdadh pìosan kernel. Tionndadh kernel gnàthach5.3.5-1
Dè tha ag obair an-dràsta
NVMe
Meur-chlàr
USB-C (Cha deach Thunderbolt a dhearbhadh; nuair a thèid am modal a luchdachadh gu fèin-ghluasadach, bidh e a’ reothadh an t-siostam)
Touchbar (le comas na h-iuchraichean Fn a thionndadh, backlight, ESC, msaa.)
Fuaim (luchd-labhairt togte a-mhàin)
Modal Wi-Fi (tro brcmfmac agus dìreach tro iw)
DisplayPort thairis air USB-C
Sensors
Cuir stad air / ath-thòiseachadh (gu ìre)
etc ..
Tha an oideachadh seo buntainneach airson macbookpro15,1 agus macbookpro15,2. Chaidh an artaigil a thogail mar bhunait bho Github sa Bheurla. bho seo. Cha do dh’ obraich a h-uile dad san artaigil seo, agus mar sin bha agam ri fuasgladh a lorg mi-fhìn.
Dè dh'fheumas tu airson an stàladh
Adaptor docking USB-C gu USB (co-dhiù trì cuir a-steach USB airson luchag, meur-chlàr, modem USB no fòn a cheangal ann am modh tethering). Chan eil seo riatanach ach anns na ciad ìrean de stàladh
Meur-chlàr USB
Dràibhear flash USB/USB-C aig a’ char as lugha 4GB
1. Cuir dheth an casg air booting bho mheadhanan a-muigh
cp -r /usr/share/archiso/configs/releng/ archlive
cd archlive
Cuir an stòr gu pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Bidh sinn a’ seachnadh an kernel tùsail ann am pacman.conf:
IgnorePkg = linux linux-headers
Cuir ris na pacaidean riatanach, aig an deireadh cuir ris an kernel linux-mbp agus linux-mbp-headers
...
wvdial
xl2tpd
linux-mbp
linux-mbp-headers
Bidh sinn ag atharrachadh an sgriobt gus obrachadh ann am modh eadar-ghnìomhach (cuir pacstrap -i -C an àite pacstrap -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!"
}
A 'cruthachadh ìomhaigh:
sudo ./build.sh -v
Brùth Y gus pasganan nach deach an aire a sheachnadh, an uairsin sgrìobh an ìomhaigh iso chun an draibhear USB flash:
sudo dd if=out/archlinux*.iso of=/dev/sdb bs=1M
4. A 'chiad boot
Dèan ath-thòiseachadh leis an draibhear flash agus am meur-chlàr air a chuir a-steach. Brùth roghainnean nuair a nochdas an ubhal, tagh EFI BOOT.
An ath rud, feumaidh tu an iuchair “e” a bhrùthadh agus cuir a-steach aig deireadh na loidhne-àithne module_blacklist=tàirneanach. Mura dèanar seo, dh’ fhaodadh nach tòisich an siostam agus nochdaidh Mearachd Thunderbolt ICM.
A’ cleachdadh fdisk/cfdisk lorgaidh sinn ar dealachadh (dhomhsa is e nvme0n1p4 a th’ ann), cruth e agus stàlaich an tasglann. Faodaidh tu a chleachdadh stiùiridhean oifigeil no taobh.
Chan eil sinn a’ cruthachadh sgaradh bròg; sgrìobhaidh sinn am bootloader a-steach /dev/nvme0n1p1
Às deidh don àrainneachd ann an / mnt a bhith air a chruthachadh gu tur agus mus gluais thu gu arch-chroot, sgrìobh:
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt /bin/bash
Cuir ri /etc/pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
A' stàladh mhodalan kernel airson a' mheur-chlàir. Anns an ionad-tasgaidh uair 1 tha pasgan deiseil ann, canar ris apple-bce-dkms-git. Gus a stàladh, sgrìobh sa chonsail:
pacman -S apple-bce-dkms-git
Anns a 'chùis seo, thèid am modal kernel a ghairm ubhal-bce. Ann an cùis fèin-chruinneachadh, canar BCE. Mar sin, ma tha thu airson modal a chlàradh anns an roinn MODULES den fhaidhle mkinicpio.conf, na dì-chuimhnich dè am modal a chuir thu a-steach.
Co-chruinneachadh làimhe:
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
Cuir ris a’ mhodal bce no apple-bce airson tòiseachadh: /etc/modules-load.d/bce.conf
bce
Ma tha thu airson na putanan Fn a chleachdadh gu bunaiteach, sgrìobh am faidhle /etc/modprobe.d/apple-tb.conf:
options apple-ib-tb fnmode=2
Ag ùrachadh an kernel agus initramfs.
mkinitcpio -p linux-mbp
Stàlaich iwd:
sudo pacman -S networkmanager iwd
5. Luchdaich
Aon uair ‘s gu bheil na prìomh phasganan uile air an stàladh taobh a-staigh a’ chroot, faodaidh tu tòiseachadh air an bootloader a stàladh.
Cha deach agam air grub fhaighinn a dh’ obair. Boots Grub bho dhràibhear USB taobh a-muigh, ach nuair a dh'fheuchas tu ri clàradh ann an nvme tro
chaidh an siostam a-steach gu clisgeadh kernel, agus às deidh dha rud ùr ath-thòiseachadh tro roghainnean cha do nochd e. Cha do lorg mi fuasgladh soilleir sam bith air an duilgheadas seo agus mar sin cho-dhùin mi feuchainn ri booting a chuir an gnìomh a’ cleachdadh systemd-boot.
Cur air bhog
bootctl --path=/boot install
agus thèid sinn a-steach gu clisgeadh kernel. Cuir dheth am MacBook, tionndaidh air a-rithist e, cliog air roghainnean (na cuir dheth am mòr-ionad USB-C le meur-chlàr)
Bidh sinn a’ dèanamh cinnteach gu bheil inntrigeadh ùr EFI BOOT air nochdadh a bharrachd air an inneal a-muigh
Bidh sinn a’ roghnachadh bròg bho dhràibhear USB taobh a-muigh, mar rè a’ chiad stàladh (na dìochuimhnich modal_blacklist=thunderbolt a shònrachadh)
Bidh sinn a’ cur suas ar diosc agus a’ dol a-steach don àrainneachd tro arch-chroot
mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt
Ma tha e riatanach gum bi am meur-chlàr ag obair gus am bi an siostam làn làn (tha seo riatanach nuair a bhios tu a’ cleachdadh crioptachadh luks/dm-crypt), sgrìobh e san fhaidhle /etc/mkinicpio.conf anns an roinn MODULES:
Mar a thàinig e a-mach aig a’ cheann thall, bidh MacOS a’ stòradh na faidhlichean firmware airson an adapter wi-fi sa phasgan /usr/share/firmware/wifi , agus faodaidh tu an toirt às an sin ann an cruth bloban agus am biadhadh chun mhodal kernel brcmfmac. Gus faighinn a-mach dè na faidhlichean a bhios an inneal-atharrachaidh agad a’ cleachdadh, fosgail inneal-crìochnachaidh ann an MacOS agus sgrìobh:
ioreg -l | grep C-4364
Gheibh sinn liosta fhada. Chan fheum sinn ach faidhlichean bhon roinn Faidhlichean a chaidh iarraidh:
Anns a 'chùis agad, faodaidh ainmean faidhle a bhith eadar-dhealaichte. Dèan lethbhreac dhiubh bhon phasgan / usr/share/firmware/wifi chun an flash drive agus ath-ainmich iad mar a leanas:
Anns a 'chùis seo, tha na h-ainmean modail anns an fhaidhle teacsa mu dheireadh; mura h-eil am modail agad macbookpro15,2, feumaidh tu am faidhle seo ath-ainmeachadh a rèir do mhodail MacBook.
Dèan ath-thòiseachadh gu Arch.
Dèan lethbhreac de na faidhlichean bhon dreach flash chun phasgan /lib/firmware/brcm/
Nì sinn cinnteach gun nochd an eadar-aghaidh lìonra tro ifconfig/ip.
Suidheachadh wifi tro iwctl
An aire. Tro netctl, nmcli, etc. Chan eil an eadar-aghaidh ag obair, dìreach tro iwd.
Bidh sinn a’ toirt air NetworkManager iwd a chleachdadh. Gus seo a dhèanamh, cruthaich am faidhle /etc/NetworkManager/NetworkManager.conf agus sgrìobh:
Aig an àm seo 16.10.2019 feumaidh tu an dàrna cuid fuaim a thaghadh no stad / ath-thòiseachadh. Tha sinn a’ feitheamh ri ùghdar a’ mhodal bce gus an gnìomh a chrìochnachadh.
Gus modal a thogail le taic amharasach / ath-thòiseachadh, feumaidh tu na leanas a dhèanamh:
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
Ma chuir thu a-steach am modal apple-bce deiseil bhon stòr anuali1, feumaidh tu an toiseach a thoirt air falbh agus dìreach an uairsin cruinnich agus stàlaich am modal bce le taic modh crochte.
Cuideachd, feumaidh tu am modal applesmc a chur ris an liosta dhubh (mura h-eil thu air seo a dhèanamh roimhe) agus dèan cinnteach gu bheil am paramadair air a chur ris ann an /boot/loader/entries/arch.conf anns an loidhne roghainnean aig an deireadh pcie_ports = compat.
An-dràsta, bidh draibhear a’ bhàr-touch a’ tuiteam nuair a thèid e a-steach don mhodh crochaidh, agus bidh an draibhear tàirneanach uaireannan a’ reothadh an t-siostam airson còrr is 30 diog, agus airson grunn mhionaidean nuair a thòisicheas e a-rithist. Faodar seo a chàradh le bhith a’ luchdachadh mhodalan trioblaideach gu fèin-ghluasadach.
#!/bin/sh
if [ "" == "pre" ]; then
rmmod thunderbolt
rmmod apple_ib_tb
elif [ "" == "post" ]; then
modprobe apple_ib_tb
modprobe thunderbolt
fi
Dèan e so-ghnìomhaichte:
sudo chmod +x /lib/systemd/system-sleep/rmmod.sh
Tha sin uile airson a-nis. Is e an toradh siostam gu tur obrachail, ach a-mhàin cuid de nuances le stad / ath-thòiseachadh. Cha deach tubaistean no clisgeadh kernel fhaicinn rè grunn làithean de uptime. Tha mi an dòchas gun cuir ùghdar a’ mhodal bce crìoch air a dh’ aithghearr, agus gum faigh sinn làn thaic airson stad/ath-thòiseachadh agus fuaim.