ΠΠΌΠ°ΡΠ΅ Π΄ΠΎΡΡΠ° ΡΡΠΌ ΠΎΠΊΠΎΠ»ΠΎ Π½ΠΎΠ²ΠΈΡ ΡΠΈΠΏ T2, Π·Π°ΡΠ°Π΄ΠΈ ΠΊΠΎΠΉΡΠΎ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° Linux Π½Π° Π½ΠΎΠ²ΠΈΡΠ΅ MacBook 2018 Ρ Touch Bar. ΠΡΠ΅ΠΌΠ΅ΡΠΎ ΠΌΠΈΠ½Π° ΠΈ ΠΊΡΠΌ ΠΊΡΠ°Ρ Π½Π° 2019 Π³ΠΎΠ΄ΠΈΠ½Π° Π²ΡΠ½ΡΠ½ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Ρ Π° ΡΠ΅Π΄ΠΈΡΠ° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ ΠΈ ΠΏΠ°ΡΡΠΈ Π·Π° ΡΠ΄ΡΠΎΡΠΎ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ Ρ ΡΠΈΠΏΠ° T2. ΠΡΠ½ΠΎΠ²Π½ΠΈΡΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π·Π° ΠΌΠΎΠ΄Π΅Π»ΠΈΡΠ΅ MacBook ΠΎΡ 2018 ΠΈ ΠΏΠΎ-Π½ΠΎΠ²ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° ΡΠ°Π±ΠΎΡΠ° Π½Π° VHCI (ΠΈΡΠΏΠ°Π½ΡΠΊΠΈΡΠ΅ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°/ΡΡΡΠΏΠ°Π΄ ΠΈ Ρ.Π½.), Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° ΠΈ Π½Π° Π·Π²ΡΠΊΠ°.
ΠΡΠΎΠ΅ΠΊΡ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° 3 ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
- BCE (Buffer Copy Engine) β ΡΡΡΠ°Π½ΠΎΠ²ΡΠ²Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΊΠ°Π½Π°Π» Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Ρ T2. VHCI ΠΈ Audio ΠΈΠ·ΠΈΡΠΊΠ²Π°Ρ ΡΠΎΠ·ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ.
- VHCI β ΡΠΎΠ²Π° Π΅ Π²ΠΈΡΡΡΠ°Π»Π΅Π½ ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π·Π° Ρ ΠΎΡΡ USB; ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°ΡΠ°, ΠΌΠΈΡΠΊΠ°ΡΠ° ΠΈ Π΄ΡΡΠ³ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΡΡ ΠΎΡ ΡΠΎΠ·ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ (Π΄ΡΡΠ³ΠΈ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΡΠΎΠ·ΠΈ Ρ ΠΎΡΡ-ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Ρ Π·Π° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ).
- Audio β Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π·Π° Π°ΡΠ΄ΠΈΠΎΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° T2, Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ° ΡΠ°ΠΌΠΎ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π·Π²ΡΠΊ ΠΏΡΠ΅Π· Π²Π³ΡΠ°Π΄Π΅Π½ΠΈΡΠ΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠΈ Π½Π° MacBook.
ΠΡΠΎΡΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠ΅ Π½Π°ΡΠΈΡΠ° , ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Π·Π° Π²Ρ
ΠΎΠ΄ Π·Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°ΡΠ°, ΡΡΡΠΏΠ°Π΄Π° SPI, Touch Bar Π·Π° MacBook Pro ΠΎΡ ΠΊΡΠ°Ρ Π½Π° 2016 Π³. ΠΈ ΠΏΠΎ-ΠΊΡΡΠ½ΠΈ Π²Π΅ΡΡΠΈΠΈ. Π§Π°ΡΡ ΠΎΡ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈΡΠ΅ Π·Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°ΡΠ°/ΡΡΡΠΏΠ°Π΄Π° Π²Π΅ΡΠ΅ ΡΠ° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π² ΡΠ΄ΡΠΎΡΠΎ, Π·Π°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ Π²Π΅ΡΡΠΈΡ 5.3.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π±Π΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΊΠ°ΡΠΎ Wi-Fi, ΡΡΡΠΏΠ°Π΄ ΠΈ Ρ.Π½. Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΏΠ°ΡΡΠΈ Π·Π° ΡΠ΄ΡΠΎΡΠΎ. Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π²Π΅ΡΡΠΈΡΡΠ° Π½Π° ΡΠ΄ΡΠΎΡΠΎ
ΠΠ°ΠΊΠ²ΠΎ ΡΠ°Π±ΠΎΡΠΈ Π² ΠΌΠΎΠΌΠ΅Π½ΡΠ°
- NVMe
- ΠΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°
- USB-C (Thunderbolt Π½Π΅ Π΅ ΡΠ΅ΡΡΠ²Π°Π½, ΠΏΡΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π°ΠΌΡΡΠ·Π²Π° Π½Π°ΠΏΡΠ»Π½ΠΎ)
- Touch Bar (Ρ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ»Π°Π²ΠΈΡΠΈΡΠ΅ Fn, ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΊΠ°, ESC ΠΈ Ρ.Π½.)
- ΠΠ²ΡΠΊ (ΡΠ°ΠΌΠΎ Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠΈ)
- ΠΠΎΠ΄ΡΠ» Wi-Fi (ΡΡΠ΅Π· brcmfmac ΠΈ ΡΠ°ΠΌΠΎ ΠΏΡΠ΅Π· iw)
- DisplayPort ΠΏΡΠ΅Π· USB-C
- Π‘Π΅Π½Π·ΠΎΡΠΈ
- Suspend/Resume (ΡΠ°ΡΡΠΈΡΠ½ΠΎ)
- ΠΈ Ρ.Π½.
Π’Π°Π·ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡ Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠΈΠΌΠ° Π·Π° macbookpro15,1 ΠΈ macbookpro15,2. ΠΡΠ½ΠΎΠ²Π°Π½Π° Π΅ Π½Π° ΡΡΠ°ΡΠΈΡ ΠΎΡ GitHub Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΈ . ΠΠ΅ Π²ΡΠΈΡΠΊΠΎ ΠΎΡ ΡΠ°Π·ΠΈ ΡΡΠ°ΡΠΈΡ ΡΠ°Π±ΠΎΡΠΈ, Π·Π°ΡΠΎΠ²Π° ΡΠ΅ Π½Π°Π»ΠΎΠΆΠΈ Π΄Π° ΡΡΡΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»Π½ΠΎ.
ΠΠ°ΠΊΠ²ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π·Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΡΠ°
- USB-C Π°Π΄Π°ΠΏΡΠ΅Ρ Π·Π° ΠΏΡΠ΅Ρ ΠΎΠ΄ Π½Π° USB (ΠΏΠΎΠ½Π΅ ΡΡΠΈ USB Π²Ρ ΠΎΠ΄Π° Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΠΌΠΈΡΠΊΠ°, ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°, USB ΠΌΠΎΠ΄Π΅ΠΌ ΠΈΠ»ΠΈ ΡΠ΅Π»Π΅ΡΠΎΠ½ Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° tethering). Π’ΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ°ΠΌΠΎ Π² Π½Π°ΡΠ°Π»Π½ΠΈΡΠ΅ Π΅ΡΠ°ΠΏΠΈ Π½Π° ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΡΠ°.
- USB ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°
- USB/USB-C ΡΠ»Π°ΡΠΊΠ° Ρ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ 4GB
1. ΠΠ·ΠΊΠ»ΡΡΠ²Π°ΠΌΠ΅ Π·Π°Π±ΡΠ°Π½Π°ΡΠ° Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ ΠΎΡ Π²ΡΠ½ΡΠ½ΠΈ Π½ΠΎΡΠΈΡΠ΅Π»ΠΈ
2. ΠΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π²Π°ΠΌΠ΅ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΌΡΡΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° Disk Utility.
ΠΠ° ΡΠ΄ΠΎΠ±ΡΡΠ²ΠΎ Π²Π΅Π΄Π½Π°Π³Π° ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ 30GB Π½Π° Π΄ΠΈΡΠΊΠ°, ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°ΠΉΠΊΠΈ Π³ΠΎ Π² exFAT Π² ΡΠ°ΠΌΠΈΡ Disk Utility. .
3. Π‘ΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ iso ΠΎΠ±ΡΠ°Π·
ΠΠΏΡΠΈΠΈ:
- ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΡΡΠ½Π΅ΠΌ ΠΏΠΎ Π»Π΅ΡΠ½ΠΈΡ ΠΏΡΡ ΠΈ Π΄Π° ΠΈΠ·ΡΠ΅Π³Π»ΠΈΠΌ Π³ΠΎΡΠΎΠ² ΠΎΠ±ΡΠ°Π· Ρ ΡΠ΄ΡΠΎ 5.3.5-1 ΠΈ ΠΏΠ°ΡΠΎΠ²Π΅ ΠΎΡ
- Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ ΠΎΠ±ΡΠ°Π· ΡΠ°ΠΌΠΈ Ρ archlive (Π½ΡΠΆΠ½Π° Π΅ ΡΠΈΡΡΠ΅ΠΌΠ° Ρ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΡ Π½Π° Π°ΡΡ)
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅
pacman -S archisocp -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. ΠΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅
ΠΡΠ΅Π·Π°ΡΠ΅ΠΆΠ΄Π°ΠΌΠ΅ Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π° ΡΠ»Π°ΡΠΊΠ° ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°. ΠΠ°ΡΠΈΡΠΊΠ°ΠΌΠ΅ options ΠΏΡΠΈ ΠΏΠΎΡΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ±ΡΠ»ΠΊΠ°ΡΠ°, ΠΈΠ·Π±ΠΈΡΠ°ΠΌΠ΅ EFI BOOT.
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π½Π°ΡΠΈΡΠ½Π΅ΠΌ ΠΊΠ»Π°Π²ΠΈΡΠ° βeβ ΠΈ Π΄Π° Π½Π°ΠΏΠΈΡΠ΅ΠΌ Π² ΠΊΡΠ°Ρ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ module_blacklist=thunderbolt. ΠΠΊΠΎ Π½Π΅ Π½Π°ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠΎΠ²Π°, ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ ΡΠ΅ Π·Π°ΡΠ΅Π΄ΠΈ ΠΈ ΡΠ΅ ΠΈΠ·Π»Π΅Π·Π΅ Π³ΡΠ΅ΡΠΊΠ° Thunderbolt ICM Error.
Π‘ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° 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
ΠΠ°ΠΏΠΈΡΠ²Π°ΠΌΠ΅ thunderbolt ΠΈ applesmc Π² /etc/modprobe.d/blacklist.conf
blacklist thunderbolt
blacklist applesmc
ΠΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°, ΡΠ°ΡΠ±Π°Ρ ΠΈ Ρ.Π½.
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ yay:
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
ΠΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π·Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΠ°ΡΠ°. Π ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡΡ ΠΈΠΌΠ° Π³ΠΎΡΠΎΠ² ΠΏΠ°ΠΊΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ Π½Π°ΡΠΈΡΠ° apple-bce-dkms-git. ΠΠ° Π΄Π° Π³ΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΌΠ΅, ΠΏΠΈΡΠ΅ΠΌ Π² ΠΊΠΎΠ½Π·ΠΎΠ»Π°ΡΠ°:
pacman -S apple-bce-dkms-gitΠ ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ ΠΌΠΎΠ΄ΡΠ»ΡΡ Π½Π° ΡΠ΄ΡΠΎΡΠΎ ΡΠ΅ ΡΠ΅ Π½Π°ΡΠΈΡΠ° apple-bce. ΠΡΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ ΡΠΎΠΉ ΡΠ΅ Π½Π°ΡΠΈΡΠ° bce. Π‘ΡΠΎΡΠ²Π΅ΡΠ½ΠΎ, Π°ΠΊΠΎ ΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° Π·Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Π° Π² ΡΠ΅ΠΊΡΠΈΡΡΠ° 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 iwd5. ΠΠ°ΡΠ΅ΠΆΠ΄Π°Ρ
Π‘Π»Π΅Π΄ ΠΊΠ°ΡΠΎ Π² chroot Π²ΡΠΈΡΠΊΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ ΡΠ° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½ΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π·Π°ΠΏΠΎΡΠ½Π΅ΠΌ Ρ ΠΈΠ½ΡΡΠ°Π»Π°ΡΠΈΡΡΠ° Π½Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°ΡΠ°.
ΠΠ΅ ΡΡΠΏΡΡ Π΄Π° Π½Π°ΠΊΠ°ΡΠ°ΠΌ grub Π΄Π° ΡΠ°Π±ΠΎΡΠΈ. Grub ΡΠ΅ Π·Π°ΡΠ΅ΠΆΠ΄Π° ΠΎΡ Π²ΡΠ½ΡΠ΅Π½ usb Π΄ΠΈΡΠΊ, Π½ΠΎ ΠΏΡΠΈ ΠΎΠΏΠΈΡ Π·Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π½Π΅ΡΠΎ ΠΌΡ Π² nvme ΡΡΠ΅Π·
grub-install βtarget=x86_64-efi βefi-directory=/boot βbootloader-id=grub
ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° ΠΏΡΠ΅ΡΡΡΠΏΡ kernel panic, ΠΈ ΡΠ»Π΅Π΄ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½ΠΎΠ²Π° ΠΎΠΏΡΠΈΡ Π½Π΅ ΡΠ΅ ΠΏΠΎΡΠ²ΠΈ Π² options. ΠΠ΅ Π½Π°ΠΌΠ΅ΡΠΈΡ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΎ ΡΡΠ½ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ·ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈ Π·Π°ΡΠΎΠ²Π° ΡΠ΅ΡΠΈΡ Π΄Π° ΠΎΠΏΠΈΡΠ°ΠΌ Π΄Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°ΠΌ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ΡΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° systemd-boot.
- Π‘ΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅
bootctl --path=/boot installΠΈ ΠΎΡΠΈΠ²Π°ΠΌΠ΅ Π² kernel panic. ΠΠ·ΠΊΠ»ΡΡΠ²Π°ΠΌΠ΅ MacBook, Π²ΠΊΠ»ΡΡΠ²Π°ΠΌΠ΅ Π³ΠΎ ΠΎΡΠ½ΠΎΠ²ΠΎ, Π½Π°ΡΠΈΡΠΊΠ°ΠΌΠ΅ options (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 ΠΈ Π·Π°ΠΏΠΈΡΠ²Π°ΠΌΠ΅:
ΠΠ°Π³Π»Π°Π²ΠΈΠ΅ Π°ΡΡ
linux /vmlinuz-linux-mbp
initrd /initramfs-linux-mbp.img
ΠΎΠΏΡΠΈΠΈ root=/dev/<b>nvme0n1p4</b> rw pcie_ports=compat
Π ΡΠ»ΡΡΠ°ΠΉ, ΡΠ΅ ΡΠΌΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π»ΠΈ luks ΠΈ lvm, ΡΠΎΠ³Π°Π²Π°
ΠΎΠΏΡΠΈΠΈ cryptdevice=\/dev\/<b>nvme0n1p4</b>:luks root=\/dev\/mapper\/vz0-root rw pcie_ports=ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ
Π Π΅ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅ Π² MacOS.
6. ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π½Π° Wi-Fi
ΠΠ°ΠΊΡΠΎ Π² ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΡΠ΅ ΠΎΠΊΠ°Π·Π°, ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Π½Π° ΡΡΡΠΌΡΠ΅ΡΠΈΡΠ΅ Π·Π° wi-fi Π°Π΄Π°ΠΏΡΠ΅ΡΠ° MacOS ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π² ΠΏΠ°ΠΏΠΊΠ° /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. ΠΠ²ΡΠΊ
ΠΠ° Π΄Π° ΡΠ°Π±ΠΎΡΠΈ Π·Π²ΡΠΊΡΡ, Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΠ΅ pulseaudio:
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.rules8. Suspend/Resume
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° 16.10.2019 ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·Π±Π΅ΡΠ΅ΠΌ ΠΌΠ΅ΠΆΠ΄Ρ Π·Π²ΡΠΊ ΠΈΠ»ΠΈ suspend/resume. Π§Π°ΠΊΠ°ΠΌΠ΅, Π΄ΠΎΠΊΠ°ΡΠΎ Π°Π²ΡΠΎΡΡΡ Π½Π° bce ΠΌΠΎΠ΄ΡΠ»Π° Π·Π°Π²ΡΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΡΠ°.
ΠΠ° Π΄Π° ΡΠ³Π»ΠΎΠ±ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Π° Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° suspend/resume, ΡΡΡΠ±Π²Π° Π΄Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄Π½ΠΎΡΠΎ:
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 Ρ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΡΠ΅ΠΆΠΈΠΌ suspend.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»Π° applesmc Π² blacklist (Π°ΠΊΠΎ Π½Π΅ ΡΡΠ΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠ»ΠΈ ΠΏΠΎ-ΡΠ°Π½ΠΎ) ΠΈ Π΄Π° ΡΠ΅ ΡΠ²Π΅ΡΠΈΡΠ΅, ΡΠ΅ Π² /boot/loader/entries/arch.conf Π² ΡΠ΅Π΄Π° options Π² ΠΊΡΠ°Ρ Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡΡΡ pcie_ports=compat.
Π ΠΌΠΎΠΌΠ΅Π½ΡΠ° Π΄ΡΠ°ΠΉΠ²Π΅ΡΡΡ Π½Π° ΡΠ°ΡΠ±Π°ΡΠ° ΠΏΠ°Π΄Π° ΠΏΡΠΈ Π²Ρ ΠΎΠ΄ Π² ΡΠ΅ΠΆΠΈΠΌ suspend, Π° Π΄ΡΠ°ΠΉΠ²Π΅ΡΡΡ Π½Π° thunderbolt ΠΏΠΎΠ½ΡΠΊΠΎΠ³Π° Π±Π»ΠΎΠΊΠΈΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π·Π° ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 30 ΡΠ΅ΠΊΡΠ½Π΄ΠΈ, Π° ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ±Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ β Π·Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΌΠΈΠ½ΡΡΠΈ. Π’ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΠΏΠΎΠΏΡΠ°Π²Π΅Π½ΠΎ ΡΡΠ΅Π· Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎΡΠΎ ΠΈΠ·Π²Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ.
Π‘ΡΠ·Π΄Π°ΠΉΡΠ΅ ΡΠΊΡΠΈΠΏΡ /lib/systemd/system-sleep/rmmod.sh:
#!/bin/sh
if [ "${1}" == "pre" ]; then
rmmod thunderbolt
rmmod apple_ib_tb
elif [ "${1}" == "post" ]; then
modprobe apple_ib_tb
modprobe thunderbolt
fi
ΠΠ°ΠΏΡΠ°Π²Π΅ΡΠ΅ Π³ΠΎ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌ:
sudo chmod +x /lib/systemd/system-sleep/rmmod.sh ΠΠ° ΡΠΎΠ²Π° Π·Π°ΡΠ΅Π³Π° Π΅ Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ. Π ΠΊΡΠ°ΠΉΠ½Π° ΡΠΌΠ΅ΡΠΊΠ° ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ°Π±ΠΎΡΠ΅ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° Π½ΡΠΊΠΎΠΈ Π½ΡΠ°Π½ΡΠΈ Ρ suspend/resume. ΠΡΠΌΠ° Π½Π°Π±Π»ΡΠ΄Π°Π²Π°Π½ΠΈ ΡΡΠΈΠ²ΠΎΠ²Π΅ ΠΈ kernel panic ΠΏΡΠ΅Π· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ Π½ΡΠΊΠΎΠ»ΠΊΠΎ Π΄Π½ΠΈ uptime. ΠΠ°Π΄ΡΠ²Π°ΠΌ ΡΠ΅, ΡΠ΅ ΡΠΊΠΎΡΠΎ Π°Π²ΡΠΎΡΡΡ Π½Π° ΠΌΠΎΠ΄ΡΠ»Π° bce ΡΠ΅ Π³ΠΎ Π·Π°Π²ΡΡΡΠΈ ΠΈ ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΠΌ ΠΏΡΠ»Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° suspend/resume ΠΈ Π·Π²ΡΠΊ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
