ื’ื•ืจื ืœ-MacBook Pro 2018 T2 ืœืขื‘ื•ื“ ืขื ArchLinux (dualboot)

ื”ื™ื” ืœื ืžืขื˜ ื”ื™ื™ืค ืœื’ื‘ื™ ื”ืขื•ื‘ื“ื” ืฉื”ืฉื‘ื‘ ื”ื—ื“ืฉ ืฉืœ T2 ื™ืืคืฉืจ ืœื”ืชืงื™ืŸ ืœื™ื ื•ืงืก ืขืœ ืžื—ืฉื‘ื™ ื”-MacBook ื”ื—ื“ืฉื™ื ืฉืœ 2018 ืขื ืกืจื’ืœ ืžื’ืข. ื”ื–ืžืŸ ื—ืœืฃ, ื•ื‘ืกื•ืฃ 2019, ืžืคืชื—ื™ ืฆื“ ืฉืœื™ืฉื™ ื”ื˜ืžื™ืขื• ืžืกืคืจ ื“ืจื™ื™ื‘ืจื™ื ื•ืชื™ืงื•ื ื™ ืœื™ื‘ื” ืœืื™ื ื˜ืจืืงืฆื™ื” ืขื ืฉื‘ื‘ T2. ื”ื“ืจื™ื™ื‘ืจ ื”ืจืืฉื™ ืขื‘ื•ืจ ื“ื’ืžื™ MacBook 2018 ื•ืื™ืœืš ืžื™ื™ืฉื ืืช ืคืขื•ืœืช VHCI (ืคืขื•ืœืช ืžื’ืข/ืžืงืœื“ืช/ื•ื›ื•'), ื›ืžื• ื’ื ืชืคืขื•ืœ ืงื•ืœ.

ืคืจื•ื™ืงื˜ mbp2018-bridge-drv ืžื—ื•ืœืง ืœ-3 ืžืจื›ื™ื‘ื™ื ืขื™ืงืจื™ื™ื:

  • BCE (Buffer Copy Engine) - ืžืงื™ื ืืช ืขืจื•ืฅ ื”ืชืงืฉื•ืจืช ื”ืจืืฉื™ ืขื T2. VHCI ื•ืื•ื“ื™ื• ื“ื•ืจืฉื™ื ืจื›ื™ื‘ ื–ื”.
  • VHCI ื”ื•ื ื‘ืงืจ ืžืืจื— ื•ื™ืจื˜ื•ืืœื™ USB; ื”ืžืงืœื“ืช, ื”ืขื›ื‘ืจ ื•ืจื›ื™ื‘ื™ ืžืขืจื›ืช ืื—ืจื™ื ืžืกื•ืคืงื™ื ืขืœ ื™ื“ื™ ืจื›ื™ื‘ ื–ื” (ืžื ื”ืœื™ ื”ืชืงื ื™ื ืื—ืจื™ื ืžืฉืชืžืฉื™ื ื‘ื‘ืงืจ ืžืืจื— ื–ื” ื›ื“ื™ ืœืกืคืง ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืจื‘ื” ื™ื•ืชืจ.
  • ืื•ื“ื™ื• - ืžื ื”ืœ ื”ืชืงืŸ ืขื‘ื•ืจ ืžืžืฉืง ื”ืื•ื“ื™ื• T2, ืชื•ืžืš ื›ืจื’ืข ืจืง ื‘ืคืœื˜ ืื•ื“ื™ื• ื“ืจืš ื”ืจืžืงื•ืœื™ื ื”ืžื•ื‘ื ื™ื ืฉืœ ื”-MacBook


ื”ืคืจื•ื™ืงื˜ ื”ืฉื ื™ ื ืงืจื ืžื ื”ืœ ื”ืชืงืŸ macbook12-spi, ื•ื”ื•ื ืžื™ื™ืฉื ืืช ื”ื™ื›ื•ืœืช ืœื”ืคืขื™ืœ ืžื ื”ืœ ื”ืชืงืŸ ืงืœื˜ ืขื‘ื•ืจ ื”ืžืงืœื“ืช, ืžืฉื˜ื— ื”ืขืงื™ื‘ื” SPI ื•ืกืจื’ืœ ื”ืžื’ืข ืขื‘ื•ืจ MacBook Pro Late 2016 ื•ืื™ืœืš. ื›ืžื” ืžื ื”ืœื™ ื”ืชืงื ื™ื ืœืžืงืœื“ืช/ืžืฉื˜ื— ื”ืขืงื™ื‘ื” ื›ืœื•ืœื™ื ื›ืขืช ื‘ืงืจื ืœ, ื”ื—ืœ ืžื’ืจืกื” 5.3.

ืชืžื™ื›ื” ื‘ืžื›ืฉื™ืจื™ื ื›ื’ื•ืŸ Wi-Fi, ืžืฉื˜ื— ืžื’ืข ื•ื›ื•' ื™ื•ืฉืžื” ื’ื ื‘ืืžืฆืขื•ืช ืชื™ืงื•ื ื™ ืœื™ื‘ื”. ื’ืจืกืช ื”ืงืจื ืœ ื”ื ื•ื›ื—ื™ืช 5.3.5-1

ืžื” ืขื•ื‘ื“ ื›ืจื’ืข

  1. NVMe
  2. ืžืงืœื“ืช
  3. USB-C (Thunderbolt ืœื ื ื‘ื“ืง; ื›ืืฉืจ ื”ืžื•ื“ื•ืœ ื ื˜ืขืŸ ืื•ื˜ื•ืžื˜ื™ืช, ื”ื•ื ืžืงืคื™ื ืืช ื”ืžืขืจื›ืช)
  4. ืกืจื’ืœ ืžื’ืข (ืขื ื”ื™ื›ื•ืœืช ืœื”ืคืขื™ืœ ืืช ืžืงืฉื™ Fn, ืชืื•ืจื” ืื—ื•ืจื™ืช, ESC ื•ื›ื•')
  5. ืกืื•ื ื“ (ืจืง ืจืžืงื•ืœื™ื ืžื•ื‘ื ื™ื)
  6. ืžื•ื“ื•ืœ Wi-Fi (ื“ืจืš brcmfmac ื•ืจืง ื“ืจืš iw)
  7. DisplayPort ื“ืจืš USB-C
  8. ื—ื™ื™ืฉื ื™ื
  9. ื”ืฉืขื™ื”/ื”ืžืฉืš (ื—ืœืงื™ืช)
  10. ื•ื›ื™ื•ืฆื ื‘ื–ื”..

ืžื“ืจื™ืš ื–ื” ื™ืฉื™ื ืขื‘ื•ืจ macbookpro15,1 ื•-macbookpro15,2. ื”ืžืืžืจ ื ืœืงื— ื›ื‘ืกื™ืก ืž-Github ื‘ืื ื’ืœื™ืช. ืžื›ืืŸ. ืœื ื”ื›ืœ ื‘ืžืืžืจ ื”ื–ื” ืขื‘ื“, ืื– ื”ื™ื™ืชื™ ืฆืจื™ืš ืœืžืฆื•ื ืคืชืจื•ืŸ ื‘ืขืฆืžื™.

ืžื” ืืชื” ืฆืจื™ืš ืœื”ืชืงื™ืŸ

  • ืžืชืื ืขื’ื™ื ื” USB-C ืœ-USB (ืœืคื—ื•ืช ืฉืœื•ืฉ ื›ื ื™ืกื•ืช USB ืœื—ื™ื‘ื•ืจ ืขื›ื‘ืจ, ืžืงืœื“ืช, ืžื•ื“ื USB ืื• ื˜ืœืคื•ืŸ ื‘ืžืฆื‘ ืงืฉื™ืจื”). ื–ื” ื ื—ื•ืฅ ืจืง ื‘ืฉืœื‘ื™ื ื”ืจืืฉื•ื ื™ื ืฉืœ ื”ื”ืชืงื ื”
  • ืžืงืœื“ืช USB
  • ื›ื•ื ืŸ ื”ื‘ื–ืง ืžืกื•ื’ USB/USB-C ืžื™ื ื™ืžื•ื 4GB

1. ื”ืฉื‘ืช ืืช ื”ืื™ืกื•ืจ ืขืœ ืืชื—ื•ืœ ืžืžื“ื™ื” ื—ื™ืฆื•ื ื™ืช

https://support.apple.com/en-us/HT208330
https://www.ninjastik.com/support/2018-macbook-pro-boot-from-usb/

2. ื”ืงืฆื• ืžืงื•ื ืคื ื•ื™ ื‘ืืžืฆืขื•ืช ื›ืœื™ ื”ืฉื™ืจื•ืช ื“ื™ืกืง

ืžื˜ืขืžื™ ื ื•ื—ื•ืช ื”ืงืฆืชื™ ืžื™ื“ 30GB ืœื“ื™ืกืง, ืคื•ืจืžื˜ ืื•ืชื• ื‘-exfat ื‘-Disk Utility ืขืฆืžื•. ื—ืœื•ืงืช ื›ืœื™ ืขื–ืจ ืœื“ื™ืกืง ืคื™ื–ื™.

3. ืฆื•ืจ ืชืžื•ื ืช ISO

ืืคืฉืจื•ื™ื•ืช:

  1. ืืชื” ื™ื›ื•ืœ ืœืœื›ืช ื‘ื“ืจืš ื”ืคืฉื•ื˜ื” ื•ืœื”ื•ืจื™ื“ ืชืžื•ื ื” ืžื•ื›ื ื” ืขื ืงืจื ืœ 5.3.5-1 ื•ืชื™ืงื•ื ื™ื ืž- aunali1 ืงื™ืฉื•ืจ ืœืชืžื•ื ื” ื”ืžื•ื’ืžืจืช
  2. ืฆื•ืจ ืชืžื•ื ื” ื‘ืขืฆืžืš ื“ืจืš 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

ื”ืชืงื ืช ืžื•ื“ื•ืœื™ ืœื™ื‘ื” ืขื‘ื•ืจ ื”ืžืงืœื“ืช. ื‘ืžืื’ืจ anuali1 ื™ืฉ ื—ื‘ื™ืœื” ืžื•ื›ื ื”, ื–ื” ื ืงืจื apple-bce-dkms-git. ื›ื“ื™ ืœื”ืชืงื™ืŸ ืื•ืชื•, ื›ืชื•ื‘ ื‘ืงื•ื ืกื•ืœื”:

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.

  1. ืจื•ืฅ
    bootctl --path=/boot install

    ื•ืื ื—ื ื• ื ื›ื ืกื™ื ืœืคืื ื™ืงืช ื’ืจืขื™ื ื™ื. ื›ื‘ื” ืืช ื”-MacBook, ื”ืคืขืœ ืื•ืชื• ืฉื•ื‘, ืœื—ืฅ ืขืœ ืืคืฉืจื•ื™ื•ืช (ืืœ ืชื›ื‘ื” ืืช ืจื›ื–ืช USB-C ืขื ืžืงืœื“ืช)

  2. ืื ื• ื‘ื•ื“ืงื™ื ืฉื”ื•ืคื™ืขื” ืขืจืš EFI BOOT ื—ื“ืฉ ื‘ื ื•ืกืฃ ืœืžื›ืฉื™ืจ ื”ื—ื™ืฆื•ื ื™
  3. ืื ื• ื‘ื•ื—ืจื™ื ืœืืชื—ืœ ืžื›ื•ื ืŸ USB ื—ื™ืฆื•ื ื™, ื›ืžื• ื‘ืžื”ืœืš ื”ื”ืชืงื ื” ื”ืจืืฉื•ื ื” (ืืœ ืชืฉื›ื— ืœืฆื™ื™ืŸ module_blacklist=thunderbolt)
  4. ืื ื—ื ื• ืžืขืœื™ื ืืช ื”ื“ื™ืกืง ืฉืœื ื• ื•ื ื›ื ืกื™ื ืœืกื‘ื™ื‘ื” ื‘ืืžืฆืขื•ืช 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 ื‘ืืžืฆืขื•ืช iwctl

ืชืฉื•ืžืช ื”ืœื‘. ื“ืจืš 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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”