เบเบฒเบ™เป€เบฎเบฑเบ”เปƒเบซเป‰ MacBook Pro T2 2018 เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš ArchLinux (เบšเบนเบ”เบ„เบนเปˆ)

เป„เบ”เป‰เบกเบตเบเบฒเบ™ hype เป€เบฅเบฑเบเบ™เป‰เบญเบเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบŠเบดเบš T2 เปƒเบซเบกเปˆเบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Linux เปƒเบ™ MacBooks 2018 เปƒเบซเบกเปˆเบ”เป‰เบงเบ touchbar. เป€เบงเบฅเบฒเบœเปˆเบฒเบ™เป„เบ›, เปเบฅเบฐเปƒเบ™เบ—เป‰เบฒเบเบ›เบต 2019, เบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเบชเบฒเบกเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบ‚เบฑเบšเบ‚เบตเปˆเบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เปเบฅเบฐ kernel patches เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฑเบšเบŠเบดเบš T2. เป„เบ”เป€เบงเบตเบ•เบปเป‰เบ™เบ•เปเบชเปเบฒเบฅเบฑเบš MacBook เบฎเบธเปˆเบ™ 2018 เปเบฅเบฐเปƒเบซเบกเปˆเบเบงเปˆเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™ VHCI (เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบชเปเบฒเบœเบฑเบ” / เปเบ›เป‰เบ™เบžเบดเบก / เปเบฅเบฐเบญเบทเปˆเบ™เป†), เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบชเบฝเบ‡.

เป‚เบ„เบ‡เบเบฒเบ™ mbp2018-bridge-drv เปเบšเปˆเบ‡โ€‹เบญเบญเบโ€‹เป€เบ›เบฑเบ™ 3 เบญเบปเบ‡โ€‹เบ›เบฐโ€‹เบเบญเบšโ€‹เบ•เบปเป‰เบ™โ€‹เบ•เปโ€‹:

  • BCE (Buffer Copy Engine) - เบชเป‰เบฒเบ‡เบ•เบฑเป‰เบ‡เบŠเปˆเบญเบ‡เบ—เบฒเบ‡เบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เบ•เบปเป‰เบ™เบ•เปเบเบฑเบš T2. VHCI เปเบฅเบฐเบชเบฝเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ™เบตเป‰.
  • VHCI เป€เบ›เบฑเบ™ USB Virtual Host Controller; เปเบ›เป‰เบ™เบžเบดเบก, เป€เบกเบปเป‰เบฒ เปเบฅเบฐเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบญเบทเปˆเบ™เป†เปเบกเปˆเบ™เบชเบฐเปœเบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ™เบตเป‰ (เป„เบ”เป€เบงเบตเบญเบทเปˆเบ™เปƒเบŠเป‰เบ•เบปเบงเบ„เบงเบšเบ„เบธเบกเป‚เบฎเบ”เบ™เบตเป‰เป€เบžเบทเปˆเบญเปƒเบซเป‰เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบซเบผเบฒเบเบ‚เบถเป‰เบ™.
  • เบชเบฝเบ‡ - เป„เบ”เป€เบงเบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบชเบฝเบ‡ T2, เบ›เบฐเบˆเบธเบšเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบชเบฝเบ‡เบœเปˆเบฒเบ™เบฅเปเบฒเป‚เบžเบ‡เบ‚เบญเบ‡ MacBook


เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเบชเบญเบ‡เป€เบญเบตเป‰เบ™เบงเปˆเบฒ macbook12-spi-driver, เปเบฅเบฐโ€‹เบกเบฑเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™ input driver เบชเปเบฒโ€‹เบฅเบฑเบš keyboard เป„เบ”เป‰โ€‹, SPI trackpadโ€‹, เปเบฅเบฐ touchbar เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เป‰เบฒเบโ€‹เบ›เบต 2016 เปเบฅเบฐ MacBook Pros เบ•เปเปˆโ€‹เบกเบฒโ€‹. เบšเบฒเบ‡เป„เบ”เป€เบงเบตเปเบ›เป‰เบ™เบžเบดเบก/เปเบ—เบฃเบฑเบpad เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบฅเบงเบกเบขเบนเปˆเปƒเบ™ kernel, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบชเบฐเบšเบฑเบš 5.3.

เบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบšเบญเบธเบ›เบฐเบเบญเบ™เป€เบŠเบฑเปˆเบ™: wi-fi, touchpad, เปเบฅเบฐเบญเบทเปˆเบ™เป†เปเบกเปˆเบ™เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบเปƒเบŠเป‰ kernel patches. เบฅเบธเป‰เบ™ kernel เบ›เบฐเบˆเบธเบšเบฑเบ™ 5.3.5โ€‹-1

เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™

  1. NVMe
  2. เบ„เบตเบšเบญเบ”
  3. USB-C (Thunderbolt เบเบฑเบ‡โ€‹เบšเปเปˆโ€‹เบ—เบฑเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบš; เปƒเบ™โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เป‚เบกโ€‹เบ”เบนเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เป‚เบซเบผเบ”โ€‹เบญเบฑเบ”โ€‹เบ•เบฐโ€‹เป‚เบ™โ€‹เบกเบฑเบ”โ€‹, เบกเบฑเบ™ freezes เบฅเบฐโ€‹เบšเบปเบšโ€‹)
  4. เปเบ–เบšเบชเปเบฒเบœเบฑเบ” (เบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เป€เบ›เบตเบ”เบ›เบธเปˆเบก Fn, backlight, ESC, เปเบฅเบฐเบญเบทเปˆเบ™เป†)
  5. เบชเบฝเบ‡ (เบฅเปเบฒเป‚เบžเบ‡เปƒเบ™เบ•เบปเบงเป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
  6. เป‚เบกเบ”เบนเบ™ Wi-Fi (เบœเปˆเบฒเบ™ brcmfmac เปเบฅเบฐเบœเปˆเบฒเบ™ iw เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™)
  7. DisplayPort เบœเปˆเบฒเบ™ USB-C
  8. เป€เบŠเบฑเบ™เป€เบŠเบต
  9. เป‚เบˆเบฐ/เบชเบทเบšเบ•เปเปˆ (เบšเบฒเบ‡เบชเปˆเบงเบ™)
  10. เปเบฅเบฐเบญเบทเปˆเบ™เป† ..

เบเบฒเบ™เบชเบญเบ™เบ™เบตเป‰เปเบกเปˆเบ™เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบš macbookpro15,1 เปเบฅเบฐ macbookpro15,2. เบšเบปเบ”เบ„เบงเบฒเบกเบ–เบทเบเป€เบญเบปเบฒเป€เบ›เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบˆเบฒเบ Github เปƒเบ™เบžเบฒเบชเบฒเบญเบฑเบ‡เบเบดเบ”. เบˆเบฒเบเบ™เบตเป‰. เบšเปเปˆเปเบกเปˆเบ™เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบ, เบชเบฐเบ™เบฑเป‰เบ™เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบŠเบญเบเบซเบฒเบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡.

เบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡

  • เบญเบฐเปเบ”เบฑเบšเป€เบ•เบต USB-C docking เบเบฑเบš USB (เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบชเบฒเบก USB inputs เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบซเบ™เบน, keyboard, เป‚เบกเป€เบ”เบฑเบก USB เบซเบผเบทเป‚เบ—เบฅเบฐเบชเบฑเบšเปƒเบ™เป‚เบซเบกเบ”เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ). เบ™เบตเป‰เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เป„เบฅเบเบฐเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡
  • เปเบ›เป‰เบ™เบžเบดเบก USB
  • USB/USB-C flash drive เบ‚เบฑเป‰เบ™เบ•เปˆเบณ 4GB

1. เบ›เบดเบ”เบเบฒเบ™เบซเป‰เบฒเบกเบเบฒเบ™เบšเบนเบ”เบˆเบฒเบเบชเบทเปˆเบžเบฒเบเบ™เบญเบ

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

2. เบˆเบฑเบ”เบชเบฑเบ™เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบงเปˆเบฒเบ‡เป‚เบ”เบเปƒเบŠเป‰ Disk Utility

เป€เบžเบทเปˆเบญเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบ, เบ‚เป‰เบญเบเป„เบ”เป‰เบˆเบฑเบ”เบชเบฑเบ™ 30GB เปƒเบซเป‰เบเบฑเบšเปเบœเปˆเบ™เบ—เบฑเบ™เบ—เบต, เบˆเบฑเบ”เบฎเบนเบšเปเบšเบšเปƒเบ™ exfat เปƒเบ™ Disk Utility เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡. เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™เป€เบ„เบทเปˆเบญเบ‡เปƒเบŠเป‰ Disk เบŸเบตเบŠเบดเบ.

3. เบชเป‰เบฒเบ‡เบฎเบนเบšเบžเบฒเบš ISO

เบ—เบฒเบ‡เป€เบฅเบทเบญเบ:

  1. เบ—เปˆเบฒเบ™โ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป„เบ›โ€‹เบ•เบฒเบกโ€‹เป€เบชเบฑเป‰เบ™โ€‹เบ—เบฒเบ‡โ€‹เบ—เบตเปˆโ€‹เบ‡เปˆเบฒเบโ€‹เบ”เบฒเบโ€‹เปเบฅเบฐโ€‹เบ”เบฒเบงโ€‹เบ™โ€‹เปŒโ€‹เป‚เบซเบฅเบ”โ€‹เบฎเบนเบšโ€‹เบžเบฒเบšโ€‹เบ—เบตเปˆโ€‹เบเบฝเบกโ€‹เบžเป‰เบญเบกโ€‹เบ—เบตเปˆโ€‹เบกเบต kernel 5.3.5-1 เปเบฅเบฐ patches เบˆเบฒเบ เบญเบธเบ™เบฒเบฅเบต1 เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบฎเบนเบšเบžเบฒเบšเบชเปเบฒเป€เบฅเบฑเบ”เบฎเบนเบš
  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
    

    เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบชเบปเบ™เปƒเบˆ kernel เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเปƒเบ™ pacman.conf:

    IgnorePkg   = linux linux-headers
    

    เบ•เบทเปˆเบกเบเบฒเบ™เบซเบธเป‰เบกเบซเปเปˆเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™, เปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡ linux-mbp kernel เปเบฅเบฐ 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 flash drive:

    sudo dd if=out/archlinux*.iso of=/dev/sdb bs=1M

4. เป€เบเบตเบšเบ—เปเบฒเบญเบดเบ”

เบฃเบตเบšเบนเบ”เบ”เป‰เบงเบเบเบฒเบ™เปƒเบชเปˆเปเบŸเบฅเบ”เป„เบ” เปเบฅเบฐเปเบ›เป‰เบ™เบžเบดเบก. เบเบปเบ”เบ—เบฒเบ‡เป€เบฅเบทเบญเบเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบซเบกเบฒเบเป‚เบ›เบกเบ›เบฒเบเบปเบ”, เป€เบฅเบทเบญเบ EFI BOOT.

เบ•เปเปˆเป„เบ›, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเบปเบ”เบ›เบธเปˆเบก "e" เปเบฅเบฐเปƒเบชเปˆเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เป€เบชเบฑเป‰เบ™เบ„เปเบฒเบชเบฑเปˆเบ‡ module_blacklist=thunderbolt. เบ–เป‰เบฒเบญเบฑเบ™เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”, เบฅเบฐเบšเบปเบšเบญเบฒเบ”เบˆเบฐเบšเปเปˆเป€เบ›เบตเบ”เป€เบ„เบทเปˆเบญเบ‡ เปเบฅเบฐ Thunderbolt ICM Error เบˆเบฐเบ›เบฒเบเบปเบ”เบ‚เบถเป‰เบ™.

เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ fdisk / cfdisk เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบŠเบญเบโ€‹เบซเบฒโ€‹เบเบฒเบ™โ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบ‚เบญเบ‡โ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒ (เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบกเบฑเบ™โ€‹เปเบกเปˆเบ™ nvme0n1p4โ€‹)โ€‹, เบŸเปโ€‹เปเบกเบฑเบ”โ€‹เบกเบฑเบ™โ€‹เปเบฅเบฐโ€‹เบ•เบดเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบฎเบงเบšโ€‹เบฎเบงเบกโ€‹. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒเบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™ เบซเบผเบท เบ‚เป‰เบฒเบ‡.

เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เบชเป‰เบฒเบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™ boot; /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

เบ•เบดเบ”เบ•เบฑเป‰เบ‡ kernel:


sudo pacman -S linux-mbp linux-mbp-headers
sudo mkinitcpio -p linux-mbp

เบžเบงเบเป€เบฎเบปเบฒเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ thunderbolt เปเบฅเบฐ applesmc เปƒเบ™ /etc/modprobe.d/blacklist.conf

blacklist thunderbolt
blacklist applesmc

เปเบ›เป‰เบ™เบžเบดเบก, touchbar, เปเบฅเบฐเบญเบทเปˆเบ™เป†

เบ•เบดเบ”เบ•เบฑเป‰เบ‡ 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

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เป‚เบกเบ”เบนเบ™ kernel เบชเปเบฒเบฅเบฑเบšเปเบ›เป‰เบ™เบžเบดเบก. เปƒเบ™ repository anuali1 เบกเบตเบŠเบธเบ”เบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบก, เบกเบฑเบ™เบ–เบทเบเป€เบญเบตเป‰เบ™เบงเปˆเบฒ apple-bce-dkms-git. เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบกเบฑเบ™, เบ‚เบฝเบ™เปƒเบ™ console:

pacman -S apple-bce-dkms-git

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เป‚เบกเบ”เบนเบ™ kernel เบˆเบฐเบ–เบทเบเป€เบญเบตเป‰เบ™ 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

เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ kernel เปเบฅเบฐ initramfs.


mkinitcpio -p linux-mbp

เบ•เบดเบ”เบ•เบฑเป‰เบ‡ iwd:

sudo pacman -S networkmanager iwd

5. Loader

เป€เบกเบทเปˆเบญเบ—เบธเบเปเบžเบฑเบเป€เบเบฑเบ”เบ•เบปเป‰เบ™เบ•เปเบ–เบทเบเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™ chroot, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ bootloader เป„เบ”เป‰.

เบ‚เป‰เบญเบเบšเปเปˆเบชเบฒเบกเบฒเบ”เป„เบ›เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰. Grub boots เบˆเบฒเบเป„เบ” USB เบžเบฒเบเบ™เบญเบ, เปเบ•เปˆเป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เบžเบฐเบเบฒเบเบฒเบกเบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบกเบฑเบ™เปƒเบ™ nvme เบœเปˆเบฒเบ™

grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub

เบฅเบฐเบšเบปเบšเป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบ„เบงเบฒเบกเบขเป‰เบฒเบ™เบเบปเบงเบ‚เบญเบ‡เปเบเปˆเบ™, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบ rebooting เบฅเบฒเบเบเบฒเบ™เปƒเบซเบกเปˆเป‚เบ”เบเบœเปˆเบฒเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบšเปเปˆเบ›เบฒเบเบปเบ”. เบ‚เป‰เบญเบเบšเปเปˆเบžเบปเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบชเปเบฒเบฅเบฑเบšเบšเบฑเบ™เบซเบฒเบ™เบตเป‰เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเบžเบฐเบเบฒเบเบฒเบกเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบšเบนเบ”เป‚เบ”เบเปƒเบŠเป‰ systemd-boot.

  1. เป€เบ›เบตเบ”เบ•เบปเบง
    bootctl --path=/boot install

    เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ panic เปเบเปˆเบ™. เบ›เบดเบ” MacBook, เป€เบ›เบตเบ”เบกเบฑเบ™เบญเบตเบเบ„เบฑเป‰เบ‡, เบ„เบฅเบดเบเบ•เบปเบงเป€เบฅเบทเบญเบ (เบขเปˆเบฒเบ›เบดเบ” USB-C Hub เบ”เป‰เบงเบเปเบ›เป‰เบ™เบžเบดเบก)

  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 encryption), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ‚เบฝเบ™เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒ /etc/mkinicpio.conf เปƒเบ™เบชเปˆเบงเบ™ MODULES:

MODULES=(ext4 applespi intel_lpss_pci spi_pxa2xx_platform bce)

เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ kernel เปเบฅเบฐ 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

reboot เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ MacOS.

6. เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡ Wi-Fi

เป€เบกเบทเปˆเบญเบกเบฑเบ™เบญเบญเบเบกเบฒเปƒเบ™เบ—เบตเปˆเบชเบธเบ”, MacOS เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบŸเบฅเปŒเป€เบŸเบตเบกเปเบงเบชเปเบฒเบฅเบฑเบšเบญเบฐเปเบ”เบšเป€เบ•เบต wi-fi เบขเบนเปˆเปƒเบ™เป‚เบŸเบ™เป€เบ”เบต /usr/share/firmware/wifi , เปเบฅเบฐเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบญเบปเบฒเบžเบงเบเบกเบฑเบ™เป„เบ›เบˆเบฒเบเบšเปˆเบญเบ™เบ™เบฑเป‰เบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡ blobs เปเบฅเบฐเปƒเบซเป‰เบญเบฒเบซเบฒเบ™เบžเบงเบเบกเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เป‚เบกเบ”เบนเบ™เป€เบกเบฑเบ” brcmfmac. เป€เบžเบทเปˆเบญเบŠเบญเบเบซเบฒเป„เบŸเบฅเปŒเปƒเบ”เบ—เบตเปˆเบญเบฐเปเบ”เบšเป€เบ•เบตเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเปƒเบŠเป‰, เป€เบ›เบตเบ” terminal เปƒเบ™ 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 เป„เบ›เบ—เบตเปˆ flash drive เปเบฅเบฐเบ›เปˆเบฝเบ™เบŠเบทเปˆเปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

    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>

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เป„เบŸเบฅเปŒเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบธเบ”เบ—เป‰เบฒเบเบกเบตเบŠเบทเปˆเบ•เบปเบงเปเบšเบš;

reboot เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ Arch.

เบ„เบฑเบ”เบฅเบญเบเป„เบŸเบฅเปŒเบˆเบฒเบ flash drive เป„เบ›เปƒเบชเปˆเป‚เบŸเบ™เป€เบ”เบต /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. เบชเบฝเบ‡

เป€เบžเบทเปˆเบญเปƒเบซเป‰เบชเบฝเบ‡เป€เบฎเบฑเบ”เบงเบฝเบ, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ•เบดเบ”เบ•เบฑเป‰เบ‡ 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.rules

8. Suspend/Resume

เปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰ 16.10.2019 เบ—เปˆเบฒเบ™โ€‹เบกเบตโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบฅเบทเบญเบโ€‹เป€เบญเบปเบฒโ€‹เบ—เบฑเบ‡โ€‹เบชเบฝเบ‡โ€‹เบซเบผเบท suspend / resumeโ€‹. เบžเบงเบเป€เบฎเบปเบฒเบฅเปเบ–เป‰เบฒเบœเบนเป‰เบ‚เบฝเบ™เบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™ 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 เบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเบˆเบฒเบ repository anuali1, เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ” เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เป€เบญเบปเบฒเบกเบฑเบ™เบญเบญเบเปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบ›เบฐเบเบญเบšเปเบฅเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡เป‚เบกเบ”เบนเบ™ bce เบ”เป‰เบงเบเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบซเบกเบ” suspend.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบกเป‚เบกเบ”เบนเบ™ applesmc เป€เบ‚เบปเป‰เบฒเปƒเบ™เบšเบฑเบ™เบŠเบตเบ”เปเบฒ (เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเป„เบ”เป‰เป€เบฎเบฑเบ”เบญเบฑเบ™เบ™เบตเป‰เบเปˆเบญเบ™) เปเบฅเบฐเปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเปƒเบ™ /boot/loader/entries/arch.conf เปƒเบ™เปเบ–เบงเบ•เบปเบงเป€เบฅเบทเบญเบเปƒเบ™เบ•เบญเบ™เบ—เป‰เบฒเบเบ‚เบญเบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบˆเบฐเบ–เบทเบเป€เบžเบตเปˆเบก. pcie_ports=compat.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เป„เบ”เป€เบงเบตเปเบ–เบšเบชเปเบฒเบœเบฑเบ”เบ‚เบฑเบ”เบ‚เป‰เบญเบ‡เป€เบกเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเบชเบนเปˆเป‚เบซเบกเบ”เป‚เบˆเบฐ, เปเบฅเบฐเบšเบฒเบ‡เบ„เบฑเป‰เบ‡เป„เบ”เป€เบงเบต 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

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเปเบฒเบฅเบฑเบšเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™. เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เป€เบ›เบฑเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™, เบเบปเบเป€เบงเบฑเป‰เบ™เบšเบฒเบ‡ nuances เบเบฑเบš suspend / เบŠเบตเบงเบฐเบ›เบฐเบซเบงเบฑเบ”. เบšเปเปˆเบžเบปเบšเบเบฒเบ™เบ‚เบฑเบ”เบ‚เป‰เบญเบ‡ เบซเบผเบท เบ„เบงเบฒเบกเบ•เบทเปˆเบ™เบ•เบปเบเปƒเบˆเบ‚เบญเบ‡ kernel เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เป€เบงเบฅเบฒเบซเบผเบฒเบเป†เบกเบทเป‰. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบซเบงเบฑเบ‡เบงเปˆเบฒเบœเบนเป‰เบ‚เบฝเบ™เบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™ bce เบˆเบฐเบชเปเบฒเป€เบฅเบฑเบ”เบกเบฑเบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบญเบฑเบ™เปƒเบเป‰เบ™เบตเป‰, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ suspend / resume เปเบฅเบฐเบชเบฝเบ‡.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เบŠเบทเป‰เป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡ DDoS, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ VPS VDS ๐Ÿ”ฅ เบŠเบทเป‰เป€เบงเบฑเบšเป„เบŠเบ—เปŒเป‚เบฎเบ”เบ•เบดเป‰เบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ”เป‰เบงเบเบเบฒเบ™เบ›เป‰เบญเบ‡เบเบฑเบ™ DDoS, เป€เบŠเบตเบšเป€เบงเบต VPS VDS | ProHoster