æ°ãã T2 ãããã«ãããã¿ããããŒãåããæ°ãã 2018 MacBook ã« Linux ãã€ã³ã¹ããŒã«ã§ããªããªããšããäºå®ã«ã€ããŠãããªãã®èªå€§å®£äŒãè¡ãããŠããŸããã æãçµã¡ã2019 幎æ«ã«ã¯ããµãŒãããŒãã£ã®éçºè ã T2 ããããšå¯Ÿè©±ããããã®å€æ°ã®ãã©ã€ããŒãšã«ãŒãã« ããããå®è£ ããŸããã MacBook 2018 ã¢ãã«ä»¥éã®ã¡ã€ã³ãã©ã€ããŒã¯ãVHCI æäœ (ã¿ãã/ããŒããŒããªã©ã®æäœ) ããã³ãµãŠã³ãæäœãå®è£ ããŸãã
ãããžã§ã¯ã
- BCE (ãããã¡ ã³ã㌠ãšã³ãžã³) - T2 ãšã®ã¡ã€ã³éä¿¡ãã£ãã«ã確ç«ããŸãã VHCI ãšãªãŒãã£ãªã«ã¯ãã®ã³ã³ããŒãã³ããå¿ èŠã§ãã
- VHCI 㯠USB ä»®æ³ãã¹ã ã³ã³ãããŒã©ãŒã§ãã ããŒããŒããããŠã¹ãããã³ãã®ä»ã®ã·ã¹ãã ã³ã³ããŒãã³ãã¯ããã®ã³ã³ããŒãã³ãã«ãã£ãŠæäŸãããŸã (ä»ã®ãã©ã€ããŒã¯ãã®ãã¹ã ã³ã³ãããŒã©ãŒã䜿çšããŠãããå€ãã®æ©èœãæäŸããŸãã
- ãªãŒãã£ãª - T2 ãªãŒãã£ãª ã€ã³ã¿ãŒãã§ã€ã¹çšã®ãã©ã€ããŒãçŸåšãMacBook ã®å èµã¹ããŒã«ãŒãä»ãããªãŒãã£ãªåºåã®ã¿ããµããŒãããŠããŸãã
XNUMX çªç®ã®ãããžã§ã¯ãã¯æ¬¡ã®ããã«åŒã°ããŸãã
Wi-Fiãã¿ããããããªã©ã®ããã€ã¹ã®ãµããŒãããã«ãŒãã« ãããã䜿çšããŠå®è£
ãããŸããã çŸåšã®ã«ãŒãã«ã®ããŒãžã§ã³
çŸæç¹ã§äœãæ©èœããŠããã®ã
- NVMe
- ããŒããŒã
- USB-C (Thunderbolt ã¯ãã¹ããããŠããŸãããã¢ãžã¥ãŒã«ãèªåçã«ããŒãããããšã·ã¹ãã ãããªãŒãºããŸã)
- ã¿ããã㌠(Fn ããŒãããã¯ã©ã€ããESC ãªã©ããªã³ã«ããæ©èœä»ã)
- ãµãŠã³ãïŒå èµã¹ããŒã«ãŒã®ã¿ïŒ
- Wi-Fi ã¢ãžã¥ãŒã« (brcmfmac çµç±ããã³ iw çµç±ã®ã¿)
- DisplayPort over USB-C
- ã»ã³ãµãŒ
- äžæåæ¢ã»åéïŒäžéšïŒ
- ç..
ãã®ãã¥ãŒããªã¢ã«ã¯ macbookpro15,1 ããã³ macbookpro15,2 ã«é©çšãããŸãã ãã®èšäºã¯è±èªã® Github ããåŒçšãããã®ã§ãã
ã€ã³ã¹ããŒã«ã«å¿ èŠãªãã®
- USB ãžã® USB-C ãããã³ã° ã¢ããã¿ãŒ (ããŠã¹ãããŒããŒããUSB ã¢ãã ããŸãã¯ãã¶ãªã³ã° ã¢ãŒãã®é»è©±ãæ¥ç¶ããããã®å°ãªããšã XNUMX ã€ã® USB å ¥å)ã ããã¯ã€ã³ã¹ããŒã«ã®æåã®æ®µéã§ã®ã¿å¿ èŠã§ã
- USBããŒããŒã
- USB/USB-C ãã©ãã·ã¥ ãã©ã€ã æå° 4GB
1. å€éšã¡ãã£ã¢ããã®èµ·åçŠæ¢ãç¡å¹ã«ãã
2. ãã£ã¹ã¯ãŠãŒãã£ãªãã£ã䜿çšããŠç©ºãé åãå²ãåœãŠãŸãã
䟿å®äžãããã«ãã£ã¹ã¯ã« 30GB ãå²ãåœãŠããã£ã¹ã¯ãŠãŒãã£ãªãã£èªäœã§ exfat ã§ãã©ãŒãããããŸããã
3. ISO ã€ã¡ãŒãžãäœæãã
ãªãã·ã§ã³ïŒ
- ã·ã³ãã«ãªæ¹æ³ã§ãã«ãŒãã« 5.3.5-1 ãšããããå«ãæ¢è£œã®ã€ã¡ãŒãžã次ã®ãµã€ãããããŠã³ããŒãã§ããŸãã
ã¢ãŠããª1 å®æç»åãžã®ãªã³ã¯ - Archlive çµç±ã§ã€ã¡ãŒãžãèªåã§äœæããŸã (Archa ãã£ã¹ããªãã¥ãŒã·ã§ã³ãåããã·ã¹ãã ãå¿
èŠã§ã)
ã»ãã
ã¢ã«ã㜠pacman -S archiso
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-headers ãè¿œå ããŸãã
... 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
ã«ãŒãã«ãã€ã³ã¹ããŒã«ããŸãã
sudo pacman -S linux-mbp linux-mbp-headers
sudo mkinitcpio -p linux-mbp
/etc/modprobe.d/blacklist.confã«thunderboltãšapplesmcãç»é²ããŸãã
blacklist thunderbolt
blacklist applesmc
ããŒããŒããã¿ããããŒãªã©
ãã£ããŒãã€ã³ã¹ããŒã«ããŸãã
sudo pacman -S git gcc make fakeroot binutils
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
ã¿ããããŒãæ©èœããããã«ã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ããŸãã
git clone --branch mbp15 https://github.com/roadrunner2/macbook12-spi-driver.git
cd macbook12-spi-driver
make install
ã¹ã¿ãŒãã¢ããã«ã¢ãžã¥ãŒã«ãè¿œå ããŸã: /etc/modules-load.d/apple.conf
industrialio_triggered_buffer
apple-ibridge
apple-ib-tb
apple-ib-als
ããŒããŒãã®ã«ãŒãã« ã¢ãžã¥ãŒã«ãã€ã³ã¹ããŒã«ããŸãã ãªããžããªå
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ãåäœãããããšãã§ããŸããã§ããã Grub ã¯å€éš USB ãã©ã€ãããèµ·åããŸãããGrub ã nvme ã«ç»é²ããããšãããšã
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
ã·ã¹ãã ãã«ãŒãã« ãããã¯ã«é¥ããåèµ·ååŸããªãã·ã§ã³ã«ããæ°ããé ç®ã衚瀺ãããŸããã§ããã ãã®åé¡ã«å¯Ÿããæ確ãªè§£æ±ºçãèŠã€ãããªãã£ãã®ã§ãsystemd-boot ã䜿çšããŠããŒããå®è£ ããŠã¿ãããšã«ããŸããã
- æã¡äžã
bootctl --path=/boot install
ãããŠã«ãŒãã«ãããã¯ã«é¥ããŸãã MacBook ã®é»æºãåããå床é»æºãå ¥ããŠããªãã·ã§ã³ãã¯ãªãã¯ããŸã (ããŒããŒãä»ã USB-C ããã®é»æºãåããªãã§ãã ãã)ã
- å€éšããã€ã¹ã«å ããŠãæ°ãã EFI BOOT ãšã³ããªã衚瀺ãããŠããããšã確èªããŸãã
- æåã®ã€ã³ã¹ããŒã«æãšåæ§ã«ãå€éš USB ãã©ã€ãããèµ·åããããšãéžæããŸã (module_blacklist=thunderbolt ãæå®ããããšãå¿ããªãã§ãã ãã)ã
- ãã£ã¹ã¯ãããŠã³ãããarch-chroot çµç±ã§ç°å¢ã«å ¥ããŸãã
mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt
ã·ã¹ãã ãå®å šã«ããŒãããããŸã§ããŒããŒããåäœãããå¿ èŠãããå Žå (ããã¯ãluks/dm-crypt æå·åã䜿çšãããšãã«å¿ èŠã§ã)ãããã /etc/mkinicpio.conf ãã¡ã€ã«ã® MODULES ã»ã¯ã·ã§ã³ã«æžã蟌ã¿ãŸãã
MODULES=(ext4 applespi intel_lpss_pci spi_pxa2xx_platform bce)
ã«ãŒãã«ãšinitramfsãæŽæ°ããŸãã
mkinicpio -p linux-mbp
systemd-boot ã®ã»ããã¢ãã
/boot/loader/loader.conf ãã¡ã€ã«ãç·šéãããã®äžã«ãããã®ããã¹ãŠåé€ãã次ã®å 容ãè¿œå ããŸãã
default arch
timeout 5
editor 1
/boot/loader/entries ãã©ã«ããŒã«ç§»åããarch.conf ãã¡ã€ã«ãäœæããŠæ¬¡ã®ããã«èšè¿°ããŸãã
title arch
linux /vmlinuz-linux-mbp
initrd /initramfs-linux-mbp.img
options root=/dev/<b>nvme0n1p4</b> rw pcie_ports=compat
luks ãš lvm ã䜿çšããå Žåã
options cryptdevice=/dev/<b>nvme0n1p4</b>:luks root=/dev/mapper/vz0-root rw pcie_ports=compat
MacOS ãåèµ·åããŸãã
6. Wi-Fièšå®
çµå±ã®ãšãããMacOS 㯠Wi-Fi ã¢ããã¿ãŒã®ãã¡ãŒã ãŠã§ã¢ ãã¡ã€ã«ã次ã®ãã©ã«ããŒã«ä¿åããŸãã /usr/share/ãã¡ãŒã ãŠã§ã¢/wifi ãããŠããããã BLOB ã®åœ¢åŒã§ããããååŸããbrcmfmac ã«ãŒãã« ã¢ãžã¥ãŒã«ã«ãã£ãŒãããããšãã§ããŸãã ã¢ããã¿ãŒã䜿çšãããã¡ã€ã«ã確èªããã«ã¯ãMacOS ã§ã¿ãŒããã«ãéããŠæ¬¡ã®ããã«æžã蟌ã¿ãŸãã
ioreg -l | grep C-4364
é·ããªã¹ããåŸãããŸãã ã»ã¯ã·ã§ã³ã®ãã¡ã€ã«ã®ã¿ãå¿ èŠã§ã èŠæ±ããããã¡ã€ã«:
"RequestedFiles" = ({"Firmware"="<b>C-4364__s-B2/maui.trx</b>","TxCap"="C-4364__s-B2/maui-X3.txcb","Regulatory"="C-4364__s-B2/<b>maui-X3.clmb</b>","NVRAM"="C-4364__s-B2/<b>P-maui-X3_M-HRPN_V-m__m-7.7.txt</b>"})
ããªãã®å Žåããã¡ã€ã«åã¯ç°ãªãå¯èœæ§ããããŸãã ãããã /usr/share/firmware/wifi ãã©ã«ããŒãããã©ãã·ã¥ ãã©ã€ãã«ã³ããŒãã次ã®ããã«ååãå€æŽããŸãã
maui.trx -> brcmfmac4364-pcie.bin
maui-X3.clmb -> brcmfmac4364-pcie.clm_blob
P-maui-X3_M-HRPN_V-m__m-7.7.txt -> brcmfmac4364-pcie.Apple Inc.-<b>MacBookPro15,2.txt</b>
ãã®å ŽåãæåŸã®ããã¹ã ãã¡ã€ã«ã«ã¯ã¢ãã«åãå«ãŸããŠããŸããã¢ãã«ã macbookpro15,2 ã§ãªãå Žåã¯ãMacBook ã®ã¢ãã«ã«å¿ããŠãã®ãã¡ã€ã«ã®ååãå€æŽããå¿ èŠããããŸãã
Arch ãåèµ·åããŸãã
ãã¡ã€ã«ããã©ãã·ã¥ ãã©ã€ããã /lib/firmware/brcm/ ãã©ã«ããŒã«ã³ããŒããŸãã
sudo cp brcmfmac4364-pcie.bin /lib/firmware/brcm/
sudo cp brcmfmac4364-pcie.clm_blob /lib/firmware/brcm/
sudo cp 'brcmfmac4364-pcie.Apple Inc.-<b>MacBookPro15,2.txt' /lib/firmware/brcm/
ã¢ãžã¥ãŒã«ã®æ©èœã確èªããŸãã
rmmod brcmfmac
modprobe brcmfmac
ifconfig/ip ãéããŠãããã¯ãŒã¯ ã€ã³ã¿ãŒãã§ã€ã¹ã衚瀺ãããããšã確èªããŸãã
Wi-Fi ãã»ããã¢ãããã
泚æã netctlãnmcli ãªã©çµç±ã€ã³ã¿ãŒãã§ã€ã¹ã¯ iwd çµç±ã§ã®ã¿æ©èœããŸããã
NetworkManager ã« iwd ã®äœ¿çšã匷å¶ããŸãã ãããè¡ãã«ã¯ããã¡ã€ã« /etc/NetworkManager/NetworkManager.conf ãäœæãã次ã®ããã«èšè¿°ããŸãã
[device]
wifi.backend=iwd
NetworkManagerãµãŒãã¹ãéå§ããŸã
sudo systemctl start NetworkManager.service
sudo systemctl enable NetworkManager.service
7.é³
ãµãŠã³ããæ©èœãããã«ã¯ãpulseaudio ãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã
sudo pacman -S pulseaudio
XNUMX ã€ã®ãã¡ã€ã«ãããŠã³ããŒãããŸãã
ãããã移åããŠã¿ãŸããã:
/usr/share/alsa/cards/AppleT2.conf
/usr/share/pulseaudio/alsa-mixer/profile-sets/apple-t2.conf
/usr/lib/udev/rules.d/91-pulseaudio-custom.rules
8.äžæåæ¢/åé
çŸåš 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=äºææ§.
çŸåšãã¿ããã㌠ãã©ã€ããŒã¯ãµã¹ãã³ã ã¢ãŒãã«å ¥ããšãã«ã¯ã©ãã·ã¥ããThunderbolt ãã©ã€ããŒã¯ã·ã¹ãã ã 30 ç§ä»¥äžããªãŒãºããåéæã«æ°åéããªãŒãºããããšããããŸãã ããã¯ãåé¡ã®ããã¢ãžã¥ãŒã«ãèªåçã«ã¢ã³ããŒãããããšã§ä¿®æ£ã§ããŸãã
ã¹ã¯ãªãããäœæãã /lib/systemd/ã·ã¹ãã ã¹ãªãŒã/rmmod.sh:
#!/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 ã¢ãžã¥ãŒã«ã®äœè
ããããå®æããããµã¹ãã³ã/ã¬ãžã¥ãŒã ãšãµãŠã³ããå®å
šã«ãµããŒããããããšãé¡ã£ãŠããŸãã
åºæïŒ habr.com