E hana ana i ka MacBook Pro 2018 T2 me ArchLinux (dualboot)
Ua nui ka hype e pili ana i ka ʻoiaʻiʻo e hiki ʻole i ka chip T2 hou ke hoʻokomo iā Linux ma ka 2018 MacBooks hou me kahi pā. Ua hala ka manawa, a ma ka hopena o 2019, ua hoʻokō nā mea hoʻomohala ʻekolu i nā mea hoʻokele a me nā ʻāpana kernel no ka launa pū ʻana me ka chip T2. ʻO ka mea hoʻokele nui no nā hiʻohiʻona MacBook 2018 a me nā mea hou e hoʻokō i ka hana VHCI (hoʻopā / keyboard / etc. hana), a me ka hana kani.
BCE (Buffer Copy Engine) - hoʻokumu i ke ala kamaʻilio nui me T2. Pono ʻo VHCI a me Audio i kēia ʻāpana.
ʻO VHCI kahi USB Virtual Host Controller; Hāʻawi ʻia ka papa keyboard, ʻiole a me nā ʻōnaehana ʻē aʻe e kēia ʻāpana (hoʻohana nā mea hoʻokele ʻē aʻe i kēia mea hoʻokele hoʻokipa e hāʻawi i nā hana hou aku.
Leo - mea hoʻokele leo T2, kākoʻo wale i ka hoʻopuka leo ma o ka MacBook i kūkulu ʻia i loko
Kapa ʻia ka papahana ʻelua mea hoʻokele macbook12-spi, a hoʻokō i ka hiki ke hoʻohana i ka mea hoʻokele hoʻokomo no ka keyboard, SPI trackpad, a me ka touchbar no MacBook Pro Late 2016 a ma hope. Hoʻokomo ʻia kekahi mau mea hoʻokele keyboard/trackpad i ka kernel, e hoʻomaka ana me ka mana 5.3.
Ua hoʻokō ʻia ke kākoʻo no nā polokalamu e like me wi-fi, touchpad, etc. ʻO ka mana kernel o kēia manawa5.3.5-1
He aha ka hana i kēia manawa
NVMe
Keyboard
USB-C (ʻAʻole i hoʻāʻo ʻia ʻo Thunderbolt; ke hoʻouka ʻia ka module, hoʻokuʻu ia i ka ʻōnaehana)
Touchbar (me ka hiki ke hoʻohuli i nā kī Fn, backlight, ESC, etc.)
Kani (nā leo i loko wale nō)
Module Wi-Fi (ma o brcmfmac a ma o iw wale nō)
HōʻikePort ma luna o USB-C
Nā mīkini uila
Hoʻokuʻu/Hoʻomau (ʻāpana)
a pela aku ..
Pili kēia kumu aʻo no ka macbookpro15,1 a me ka macbookpro15,2. Ua lawe ʻia ka ʻatikala ma ke ʻano he kumu mai Github ma ka ʻōlelo Pelekania. mai kēia wahi. ʻAʻole pono nā mea a pau o kēia ʻatikala, no laila pono wau e ʻimi i kahi hopena iaʻu iho.
He aha kāu e pono ai e hoʻouka
USB-C docking adapter i USB (ma ka liʻiliʻi ʻekolu mau mea hoʻokomo USB no ka hoʻopili ʻana i ka ʻiole, ka papa keyboard, ka modem USB a i ʻole ke kelepona ma ke ʻano hoʻopili). Pono wale kēia i nā manawa mua o ka hoʻokomo
kīwī USB
USB/USB-C flash drive ka palena iki 4GB
1. Hoʻopau i ka pāpā ʻana i ka hoʻopaʻa ʻana mai ka media waho
cp -r /usr/share/archiso/configs/releng/ archlive
cd archlive
Hoʻohui i ka waihona i pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Haʻalele mākou i ka kernel kumu ma pacman.conf:
IgnorePkg = linux linux-headers
E hoʻohui i nā pūʻolo e pono ai, ma ka hopena e hoʻohui i ka linux-mbp kernel a me linux-mbp-headers
...
wvdial
xl2tpd
linux-mbp
linux-mbp-headers
Hoʻololi mākou i ka palapala e hana ma ke ʻano pāʻani (e hoʻololi i ka pacstrap -C me ka 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!"
}
Ke hana nei i kiʻi:
sudo ./build.sh -v
E kaomi iā Y e hoʻokuʻu i nā pūʻolo i nānā ʻole ʻia, a laila e kākau i ke kiʻi iso i ka USB flash drive:
sudo dd if=out/archlinux*.iso of=/dev/sdb bs=1M
4. Pua mua
E hoʻomaka hou me ka flash drive a me ka keyboard i hoʻokomo ʻia. E kaomi i nā koho ke ʻike ʻia ka ʻāpala, koho i ka EFI BOOT.
A laila, pono ʻoe e kaomi i ke kī "e" a komo i ka hope o ka laina kauoha module_blacklist=hekili. Inā ʻaʻole i hana ʻia kēia, ʻaʻole paha e hoʻomaka ka ʻōnaehana a ʻike ʻia kahi Thunderbolt ICM Error.
Ma ka hoʻohana ʻana i fdisk/cfdisk ʻike mākou i kā mākou pāhele (noʻu ʻo nvme0n1p4), hoʻohālikelike a hoʻokomo i ka waihona. Hiki iā ʻoe ke hoʻohana kuhikuhi oihana ai ole ia, ʻaoʻao.
ʻAʻole mākou e hana i kahi ʻāpana boot; e kākau mākou i ka bootloader i loko /dev/nvme0n1p1
Ma hope o ka hoʻokumu ʻia ʻana o ke kaiapuni i / mnt a ma mua o ka neʻe ʻana i arch-chroot, e kākau:
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt /bin/bash
Hoʻohui i /etc/pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Ke hoʻokomo nei i nā modula kernel no ka papa keyboard. Ma ka waihona makahikili1 aia he pūʻolo mākaukau, ua kapa ʻia apple-bce-dkms-git. No ka hoʻouka ʻana, e kākau i ka console:
pacman -S apple-bce-dkms-git
I kēia hihia, e kāhea ʻia ka module kernel apple-bce. Ma ka hihia o ka hui pū ʻana, ua kapa ʻia bce. No laila, inā makemake ʻoe e hoʻopaʻa inoa i kahi module ma ka ʻāpana MODULES o ka faila mkinincpio.conf, a laila mai poina i ka module āu i hoʻokomo ai.
Hui lima lima:
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
Hoʻohui i ka module bce a i ʻole apple-bce i ka hoʻomaka: /etc/modules-load.d/bce.conf
bce
Inā makemake ʻoe e hoʻohana i nā pihi Fn ma ke ʻano paʻamau, a laila e kākau ma ka waihona /etc/modprobe.d/apple-tb.conf:
options apple-ib-tb fnmode=2
Hoʻonui i ka kernel a me initramfs.
mkinitcpio -p linux-mbp
E hoʻouka i ka iwd:
sudo pacman -S networkmanager iwd
5. Mea lawe ukana
Ke hoʻokomo ʻia nā pūʻolo nui i loko o ka chroot, hiki iā ʻoe ke hoʻomaka e hoʻokomo i ka bootloader.
ʻAʻole hiki iaʻu ke kiʻi i ka grub e hana. ʻO nā kāmaʻa Grub mai kahi USB USB waho, akā ke hoʻāʻo ʻoe e hoʻopaʻa inoa iā ia ma nvme ma
Ua hele ka ʻōnaehana i ka panic kernel, a ma hope o ka hoʻihoʻi hou ʻana i kahi mea hou ma o nā koho ʻaʻole i ʻike ʻia. ʻAʻole i loaʻa iaʻu kahi hopena maopopo i kēia pilikia a no laila ua hoʻoholo wau e hoʻāʻo e hoʻokō i ka booting me ka hoʻohana ʻana i ka systemd-boot.
Hoʻolana
bootctl --path=/boot install
a hele mākou i loko o ka hopohopo kernel. Hoʻopau i ka MacBook, hoʻohuli hou, kaomi i nā koho (mai hoʻopau i ka hub USB-C me ka keyboard)
Nānā mākou ua ʻike ʻia kahi hoʻokomo EFI BOOT hou ma waho o ka hāmeʻa waho
Koho mākou e kāʻei mai kahi USB USB waho, e like me ka wā o ka hoʻokomo mua ʻana (mai poina e kuhikuhi i ka module_blacklist=thunderbolt)
Kau mākou i kā mākou disk a hele i ke kaiapuni ma o arch-chroot
mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt
Inā pono e hana ka papa keyboard a hoʻopiha piha ʻia ka ʻōnaehana (pono kēia i ka wā e hoʻohana ai i ka luks/dm-crypt encryption), a laila e kākau iā ia ma ka faila /etc/mkinicpio.conf ma ka ʻāpana MODULES:
E like me ka hopena i ka hopena, mālama ʻo MacOS i nā faila firmware no ka adapter wi-fi i loko o ka waihona /usr/share/firmware/wifi , a hiki iā ʻoe ke lawe iā lākou mai laila mai ma ke ʻano o nā blobs a hānai iā lākou i ka module kernel brcmfmac. I mea e ʻike ai i nā faila e hoʻohana ai kāu adapter, e wehe i kahi pahu ma MacOS a kākau:
ioreg -l | grep C-4364
Loaʻa iā mākou kahi papa inoa lōʻihi. Pono mākou i nā faila mai ka ʻāpana Nā faila i noi ʻia:
I kēia hihia, aia i ka waihona kikokikona hope nā inoa hoʻohālike; inā ʻaʻole ʻo macbookpro15,2 kāu kumu hoʻohālike, a laila pono ʻoe e inoa hou i kēia faila e like me kāu kumu hoʻohālike MacBook.
Hoʻomaka hou i ka Arch.
E kope i nā faila mai ka flash drive i ka waihona /lib/firmware/brcm/
I kēia manawa 16.10.2019 pono ʻoe e koho i ke kani a i ʻole ke hoʻopanee/hoʻomau. Ke kali nei mākou i ka mea kākau o ka module bce e hoʻopau i ka hana.
No ke kūkulu ʻana i kahi module me ke kākoʻo susped/resume, pono ʻoe e hana i kēia:
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
Inā ʻoe i hoʻokomo i ka module apple-bce i mākaukau ʻia mai ka waihona anuali1, a laila pono ʻoe e wehe mua a laila hoʻohui a hoʻokomo i ka module bce me ke kākoʻo mode suspend.
Eia kekahi, pono ʻoe e hoʻohui i ka module applesmc i ka papa inoa ʻeleʻele (inā ʻaʻole ʻoe i hana i kēia ma mua) a e hōʻoia i loko /boot/loader/entries/arch.conf i ka laina koho ma ka hopena ua hoʻohui ʻia ka ʻāpana. pcie_ports=compat.
I kēia manawa, hāʻule ka mea hoʻokele touchbar i ke komo ʻana i ke ʻano hoʻomaha, a i kekahi manawa hoʻokuʻu ka mea hoʻokele hekili i ka ʻōnaehana ma mua o 30 kekona, a no kekahi mau minuke ke hoʻomaka hou. Hiki ke hoʻopaʻa ʻia kēia ma ka wehe ʻana i nā modules pilikia.
Hana i kahi palapala /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
E hoʻokō iā ia:
sudo chmod +x /lib/systemd/system-sleep/rmmod.sh
ʻO ia wale nō i kēia manawa. ʻO ka hopena he ʻōnaehana holoʻokoʻa, me ka ʻokoʻa o kekahi mau nuances me ka suspend/resume. ʻAʻole ʻike ʻia nā pōʻino a i ʻole nā panic kernel i nā lā he nui o ka uptime. Manaʻo wau i ka wā e hiki mai ana e hoʻopau ka mea kākau o ka module bce, a e loaʻa iā mākou ke kākoʻo piha no ka hoʻomaha / hoʻomau a me ke kani.