ืืื ืื ืืขื ืืืืค ืืืื ืืขืืืื ืฉืืฉืื ืืืืฉ ืฉื T2 ืืืคืฉืจ ืืืชืงืื ืืื ืืงืก ืขื ืืืฉืื ื-MacBook ืืืืฉืื ืฉื 2018 ืขื ืกืจืื ืืืข. ืืืื ืืืฃ, ืืืกืืฃ 2019, ืืคืชืื ืฆื ืฉืืืฉื ืืืืืขื ืืกืคืจ ืืจืืืืจืื ืืชืืงืื ื ืืืื ืืืื ืืจืืงืฆืื ืขื ืฉืื T2. ืืืจืืืืจ ืืจืืฉื ืขืืืจ ืืืื MacBook 2018 ืืืืื ืืืืฉื ืืช ืคืขืืืช VHCI (ืคืขืืืช ืืืข/ืืงืืืช/ืืื'), ืืื ืื ืชืคืขืื ืงืื.
ืคืจืืืงื
- BCE (Buffer Copy Engine) - ืืงืื ืืช ืขืจืืฅ ืืชืงืฉืืจืช ืืจืืฉื ืขื T2. VHCI ืืืืืื ืืืจืฉืื ืจืืื ืื.
- VHCI ืืื ืืงืจ ืืืจื ืืืจืืืืื USB; ืืืงืืืช, ืืขืืืจ ืืจืืืื ืืขืจืืช ืืืจืื ืืกืืคืงืื ืขื ืืื ืจืืื ืื (ืื ืืื ืืชืงื ืื ืืืจืื ืืฉืชืืฉืื ืืืงืจ ืืืจื ืื ืืื ืืกืคืง ืคืื ืงืฆืืื ืืืืช ืจืื ืืืชืจ.
- ืืืืื - ืื ืื ืืชืงื ืขืืืจ ืืืฉืง ืืืืืื T2, ืชืืื ืืจืืข ืจืง ืืคืื ืืืืื ืืจื ืืจืืงืืืื ืืืืื ืื ืฉื ื-MacBook
ืืคืจืืืงื ืืฉื ื ื ืงืจื
ืชืืืื ืืืืฉืืจืื ืืืื Wi-Fi, ืืฉืื ืืืข ืืื' ืืืฉืื ืื ืืืืฆืขืืช ืชืืงืื ื ืืืื. ืืจืกืช ืืงืจื ื ืื ืืืืืช
ืื ืขืืื ืืจืืข
- NVMe
- ืืงืืืช
- USB-C (Thunderbolt ืื ื ืืืง; ืืืฉืจ ืืืืืื ื ืืขื ืืืืืืืืช, ืืื ืืงืคืื ืืช ืืืขืจืืช)
- ืกืจืื ืืืข (ืขื ืืืืืืช ืืืคืขืื ืืช ืืงืฉื Fn, ืชืืืจื ืืืืจืืช, ESC ืืื')
- ืกืืื ื (ืจืง ืจืืงืืืื ืืืื ืื)
- ืืืืื Wi-Fi (ืืจื brcmfmac ืืจืง ืืจื iw)
- DisplayPort ืืจื USB-C
- ืืืืฉื ืื
- ืืฉืขืื/ืืืฉื (ืืืงืืช)
- ืืืืืฆื ืืื..
ืืืจืื ืื ืืฉืื ืขืืืจ macbookpro15,1 ื-macbookpro15,2. ืืืืืจ ื ืืงื ืืืกืืก ื-Github ืืื ืืืืช.
ืื ืืชื ืฆืจืื ืืืชืงืื
- ืืชืื ืขืืื ื USB-C ื-USB (ืืคืืืช ืฉืืืฉ ืื ืืกืืช USB ืืืืืืจ ืขืืืจ, ืืงืืืช, ืืืื USB ืื ืืืคืื ืืืฆื ืงืฉืืจื). ืื ื ืืืฅ ืจืง ืืฉืืืื ืืจืืฉืื ืื ืฉื ืืืชืงื ื
- ืืงืืืช USB
- ืืื ื ืืืืง ืืกืื USB/USB-C ืืื ืืืื 4GB
1. ืืฉืืช ืืช ืืืืกืืจ ืขื ืืชืืื ืืืืื ืืืฆืื ืืช
2. ืืงืฆื ืืงืื ืคื ืื ืืืืฆืขืืช ืืื ืืฉืืจืืช ืืืกืง
ืืืขืื ื ืืืืช ืืงืฆืชื ืืื 30GB ืืืืกืง, ืคืืจืื ืืืชื ื-exfat ื-Disk Utility ืขืฆืื.
3. ืฆืืจ ืชืืื ืช ISO
ืืคืฉืจืืืืช:
- ืืชื ืืืื ืืืืช ืืืจื ืืคืฉืืื ืืืืืจืื ืชืืื ื ืืืื ื ืขื ืงืจื ื 5.3.5-1 ืืชืืงืื ืื ื-
aunali1 ืงืืฉืืจ ืืชืืื ื ืืืืืืจืช - ืฆืืจ ืชืืื ื ืืขืฆืื ืืจื archlive (ื ืืจืฉืช ืืขืจืืช ืขื ืืคืฆืช Archa)
ืืืชืงืื
archiso 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
ืื ื ืจืืฉืืื ืจืขื ื-applesmc ื- /etc/modprobe.d/blacklist.conf
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
ืืืงืจื ืื, ืืืืืื ืืืืื ืืืงืจื apple-bce. ืืืงืจื ืฉื ืืจืืื ืขืฆืืืช, ืื ื ืงืจื ecb. ืืืชืื ืืื, ืื ืืชื ืจืืฆื ืืจืฉืื ืืืืื ืืงืืข MODULES ืฉื ืืงืืืฅ mkinicpio.conf, ืื ืื ืชืฉืื ืืืื ืืืืื ืืชืงื ืช.
ืืจืืื ืืื ืืช:
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 via
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/firmware/wifi , ืืืชื ืืืื ืืงืืช ืืืชื ืืฉื ืืฆืืจื ืฉื ืืชืืื ืืืืืืื ืืืชื ืืืืืื ืืืืช brcmfmac. ืขื ืื ืช ืืืืืช ืืืืื ืงืืฆืื ืืืชืื ืฉืื ืืฉืชืืฉ, ืคืชื ืืกืืฃ ื-MacOS ืืืชืื:
ioreg -l | grep C-4364
ืื ืื ื ืืงืืืื ืจืฉืืื ืืจืืื. ืื ืื ื ืฆืจืืืื ืจืง ืงืืฆืื ืืืืืืจ RequestedFiles:
"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.
ืืืืจืช wifi ืืืืฆืขืืช
ืชืฉืืืช ืืื. ืืจื 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. ืฆืืื
ืืื ืฉืืกืืื ื ืืขืืื, ืขืืื ืืืชืงืื pulsaudio:
sudo pacman -S pulseaudio
ืืืจื ืฉืืืฉื ืงืืฆืื:
ืืื ื ืขืืืจ ืืืชื:
/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
ืื ืืชืงื ืช ืืช ืืืืื ื-apple-bce ืืืืื ืืืืืจ anuali1, ืชืืืื ืขืืื ืืืกืืจ ืืืชื ืืจืง ืืืืจ ืืื ืืืจืืื ืืืืชืงืื ืืช ืืืืื bce ืขื ืชืืืื ืืืฆื ืืฉืืืื.
ืืื ืื, ืืชื ืฆืจืื ืืืืกืืฃ ืืช ืืืืื applesmc ืืจืฉืืื ืืฉืืืจื (ืื ืื ืขืฉืืช ืืืช ืืขืืจ) ืืืืืื ืฉื- /boot/loader/entries/arch.conf ืืฉืืจืช ืืืคืฉืจืืืืช ืืกืืฃ ืืชืืืกืฃ ืืคืจืืืจ pcie_ports=compat.
ื ืืื ืืขืืฉืื, ืื ืื ืืืชืงื ืฉื ืกืจืื ืืืืข ืงืืจืก ืืืฉืจ ืืื ื ืื ืก ืืืฆื ืืฉืืืื, ืื ืื ื-Thunderbolt ืืคืขืืื ืืงืคืื ืืช ืืืขืจืืช ืืืืชืจ ื-30 ืฉื ืืืช, ืืืืฉื ืืกืคืจ ืืงืืช ืืขืช ืืืืืฉ ืืคืขืืื. ื ืืชื ืืชืงื ืืืช ืขื ืืื ืคืจืืงื ืืืืืืืืช ืฉื ืืืืืืื ืืขืืืชืืื.
ืฆืืจ ืกืงืจืืคื /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
ืืคืื ืืืชื ืื ืืชื ืืคืขืื:
sudo chmod +x /lib/systemd/system-sleep/rmmod.sh
ืื ืืื ืืขืช ืขืชื. ืืชืืฆืื ืืื ืืขืจืืช ืืฉืืื ืืืืืืื, ืืืขื ืืื ื ืืืื ืกืื ืขื ืืฉืขืื/ืงืืจืืช ืืืื. ืื ื ืฆืคื ืงืจืืกืืช ืื ืคืื ืืงืืช ืืืื ืืืืื ืืกืคืจ ืืืื ืฉื ืืื ืคืขืืื. ืื ื ืืงืืื ืฉืืขืชืื ืืงืจืื ืืืืืจ ืฉื ืืืืื bce ืืกืืื ืืืชื, ืื ืงืื ืชืืืื ืืืื ืืืฉืขืื/ืืืืฉ ืืืฆืืื.
ืืงืืจ: www.habr.com