மேக்புக் ப்ரோ 2018 T2 ஐ ArchLinux உடன் வேலை செய்யும் (dualboot)

புதிய T2 சிப் புதிய 2018 மேக்புக்ஸில் டச்பார் மூலம் லினக்ஸை நிறுவுவதை சாத்தியமற்றதாக்கிவிடும் என்ற உண்மையைப் பற்றி சிறிது பரபரப்பு நிலவுகிறது. நேரம் கடந்துவிட்டது, 2019 இன் இறுதியில், மூன்றாம் தரப்பு டெவலப்பர்கள் T2 சிப்புடன் தொடர்புகொள்வதற்காக பல இயக்கிகள் மற்றும் கர்னல் இணைப்புகளை செயல்படுத்தினர். மேக்புக் மாடல்கள் 2018க்கான முக்கிய இயக்கி மற்றும் புதிய VHCI செயல்பாடு (டச்/கீபோர்டு/முதலிய செயல்பாடு), அத்துடன் ஒலி செயல்பாடு.

திட்டம் mbp2018-bridge-drv 3 முக்கிய கூறுகளாக பிரிக்கப்பட்டுள்ளது:

  • BCE (Buffer Copy Engine) - T2 உடன் முக்கிய தொடர்பு சேனலை நிறுவுகிறது. VHCI மற்றும் ஆடியோவிற்கு இந்தக் கூறு தேவை.
  • VHCI ஒரு USB மெய்நிகர் ஹோஸ்ட் கன்ட்ரோலர்; விசைப்பலகை, சுட்டி மற்றும் பிற கணினி கூறுகள் இந்த கூறு மூலம் வழங்கப்படுகின்றன (மற்ற இயக்கிகள் கூடுதல் செயல்பாட்டை வழங்க இந்த ஹோஸ்ட் கட்டுப்படுத்தியைப் பயன்படுத்துகின்றன.
  • ஆடியோ - டி2 ஆடியோ இடைமுகத்திற்கான இயக்கி, தற்போது மேக்புக்கின் உள்ளமைக்கப்பட்ட ஸ்பீக்கர்கள் மூலம் ஆடியோ வெளியீட்டை மட்டுமே ஆதரிக்கிறது


இரண்டாவது திட்டம் அழைக்கப்படுகிறது macbook12-spi-driver, மேலும் இது 2016 ஆம் ஆண்டின் பிற்பகுதியில் மற்றும் மேக்புக் ப்ரோஸிற்கான விசைப்பலகை, SPI டிராக்பேட் மற்றும் டச்பார் ஆகியவற்றிற்கான உள்ளீட்டு இயக்கியை இயக்கும் திறனை செயல்படுத்துகிறது. சில விசைப்பலகை/டிராக்பேட் இயக்கிகள் இப்போது பதிப்பு 5.3 இல் தொடங்கி கர்னலில் சேர்க்கப்பட்டுள்ளன.

Wi-Fi, டச்பேட் போன்ற சாதனங்களுக்கான ஆதரவும் கர்னல் இணைப்புகளைப் பயன்படுத்தி செயல்படுத்தப்பட்டது. தற்போதைய கர்னல் பதிப்பு 5.3.5-1

தற்போது என்ன வேலை செய்கிறது

  1. NVMe
  2. விசைப்பலகை
  3. USB-C (தண்டர்போல்ட் சோதனை செய்யப்படவில்லை; தொகுதி தானாக ஏற்றப்படும் போது, ​​அது கணினியை முடக்குகிறது)
  4. டச்பார் (Fn விசைகள், பின்னொளி, ESC போன்றவற்றை இயக்கும் திறனுடன்)
  5. ஒலி (உள்ளமைக்கப்பட்ட ஸ்பீக்கர்கள் மட்டும்)
  6. Wi-Fi தொகுதி (brcmfmac வழியாகவும் iw வழியாகவும் மட்டுமே)
  7. USB-C வழியாக டிஸ்ப்ளே போர்ட்
  8. சென்சார்கள்
  9. இடைநீக்கம்/மீண்டும் தொடங்கு (பகுதி)
  10. போன்றவை ..

இந்த பயிற்சி macbookpro15,1 மற்றும் macbookpro15,2 க்கு பொருந்தும். இக்கட்டுரை ஆங்கிலத்தில் கிதுப்பில் இருந்து எடுக்கப்பட்டது. இங்கிருந்து. இந்த கட்டுரையில் உள்ள அனைத்தும் வேலை செய்யவில்லை, எனவே நானே ஒரு தீர்வைக் கண்டுபிடிக்க வேண்டியிருந்தது.

நிறுவலுக்கு உங்களுக்கு என்ன தேவை

  • யூ.எஸ்.பி-சி டாக்கிங் அடாப்டர் யூ.எஸ்.பிக்கு (டெதரிங் பயன்முறையில் மவுஸ், கீபோர்டு, யூ.எஸ்.பி மோடம் அல்லது ஃபோனை இணைக்க குறைந்தது மூன்று யூ.எஸ்.பி உள்ளீடுகள்). நிறுவலின் முதல் கட்டங்களில் மட்டுமே இது அவசியம்
  • 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. வட்டு பயன்பாட்டைப் பயன்படுத்தி இலவச இடத்தை ஒதுக்கவும்

வசதிக்காக, நான் உடனடியாக 30 ஜிபியை வட்டுக்கு ஒதுக்கினேன், அதை டிஸ்க் யூட்டிலிட்டியிலேயே எக்ஸ்ஃபாட்டில் வடிவமைத்தேன். இயற்பியல் வட்டு வட்டு பயன்பாட்டைப் பிரித்தல்.

3. ஒரு ISO படத்தை உருவாக்கவும்

விருப்பங்கள்:

  1. நீங்கள் எளிய வழியில் சென்று, கர்னல் 5.3.5-1 மற்றும் இணைப்புகளுடன் கூடிய ஆயத்தப் படத்தைப் பதிவிறக்கலாம். அவுனலி1 முடிக்கப்பட்ட படத்திற்கான இணைப்பு
  2. 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-தலைப்புகளைச் சேர்க்கவும்

    ...
    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 ஐ அழுத்தவும், பின்னர் ஐசோ படத்தை யூ.எஸ்.பி ஃபிளாஷ் டிரைவில் எழுதவும்:

    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 இல் தண்டர்போல்ட் மற்றும் 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

விசைப்பலகைக்கான கர்னல் தொகுதிகளை நிறுவுதல். களஞ்சியத்தில் ஆண்டு1 ஒரு ஆயத்த தொகுப்பு உள்ளது, அது அழைக்கப்படுகிறது apple-bce-dkms-git. அதை நிறுவ, கன்சோலில் எழுதவும்:

pacman -S apple-bce-dkms-git

இந்த வழக்கில், கர்னல் தொகுதி அழைக்கப்படும் ஆப்பிள்-கிமு. சுய-அசெம்பிளின் விஷயத்தில், இது அழைக்கப்படுகிறது கிமு. அதன்படி, நீங்கள் 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 க்குள் நிறுவப்பட்டதும், நீங்கள் பூட்லோடரை நிறுவத் தொடங்கலாம்.

என்னால் க்ரப்பை வேலைக்குச் செல்ல முடியவில்லை. வெளிப்புற யூ.எஸ்.பி டிரைவிலிருந்து க்ரப் பூட்ஸ், ஆனால் நீங்கள் அதை nvme இல் பதிவு செய்ய முயற்சிக்கும்போது

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

கணினி கர்னல் பீதியில் சென்றது, மேலும் ஒரு புதிய உருப்படியை மறுதொடக்கம் செய்த பிறகு விருப்பங்கள் மூலம் தோன்றவில்லை. இந்தச் சிக்கலுக்கு தெளிவான தீர்வு எதையும் நான் காணவில்லை, எனவே systemd-boot ஐப் பயன்படுத்தி துவக்கத்தை செயல்படுத்த முயற்சிக்க முடிவு செய்தேன்.

  1. தொடங்கு
    bootctl --path=/boot install

    மற்றும் நாம் கர்னல் பீதிக்கு செல்கிறோம். மேக்புக்கை அணைத்து, மீண்டும் இயக்கவும், விருப்பங்களைக் கிளிக் செய்யவும் (விசைப்பலகை மூலம் USB-C ஹப்பை அணைக்க வேண்டாம்)

  2. வெளிப்புற சாதனத்துடன் கூடுதலாக ஒரு புதிய EFI BOOT உள்ளீடு தோன்றியுள்ளதா என்பதை நாங்கள் சரிபார்க்கிறோம்
  3. முதல் நிறுவலின் போது (module_blacklist=thunderbolt ஐக் குறிப்பிட மறக்காதீர்கள்) வெளிப்புற USB டிரைவிலிருந்து துவக்கத் தேர்ந்தெடுக்கிறோம்.
  4. நாங்கள் எங்கள் வட்டை ஏற்றி, ஆர்ச்-க்ரூட் வழியாக சுற்றுச்சூழலுக்குச் செல்கிறோம்


mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt

கணினி முழுமையாக ஏற்றப்படும் வரை விசைப்பலகை வேலை செய்ய வேண்டியது அவசியம் என்றால் (luks/dm-crypt encryption ஐப் பயன்படுத்தும் போது இது அவசியம்), பின்னர் அதை MODULES பிரிவில் உள்ள /etc/mkinicpio.conf கோப்பில் எழுதவும்:

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 கோப்புறையில் வைஃபை அடாப்டருக்கான ஃபார்ம்வேர் கோப்புகளை சேமிக்கிறது /usr/share/firmware/wifi , மற்றும் நீங்கள் அவற்றை அங்கிருந்து குமிழ் வடிவில் எடுத்து 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 இல்லையென்றால், உங்கள் மேக்புக் மாதிரிக்கு ஏற்ப இந்த கோப்பை மறுபெயரிட வேண்டும்.

ஆர்ச்சில் மீண்டும் துவக்கவும்.

ஃபிளாஷ் டிரைவிலிருந்து கோப்புகளை /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 மூலம் பிணைய இடைமுகம் தோன்றுவதை உறுதிசெய்கிறோம்.
வழியாக வைஃபை அமைக்கிறது iwctl

கவனம். netctl, nmcli, முதலியன வழியாக இடைமுகம் வேலை செய்யாது, iwd மூலம் மட்டுமே.

iwd ஐப் பயன்படுத்த NetworkManager-ஐ நாங்கள் கட்டாயப்படுத்துகிறோம். இதைச் செய்ய, /etc/NetworkManager/NetworkManager.conf கோப்பை உருவாக்கி எழுதவும்:

[device]
wifi.backend=iwd

NetworkManager சேவையைத் தொடங்கவும்


sudo systemctl start NetworkManager.service
sudo systemctl enable NetworkManager.service

7. ஒலி

ஒலி வேலை செய்ய, நீங்கள் பல்சோடியோவை நிறுவ வேண்டும்:


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

நீங்கள் anual1 களஞ்சியத்தில் இருந்து ஆயத்த ஆப்பிள்-பிசி தொகுதியை நிறுவியிருந்தால், நீங்கள் முதலில் அதை அகற்றிவிட்டு, சஸ்பெண்ட் பயன்முறை ஆதரவுடன் bce தொகுதியை அசெம்பிள் செய்து நிறுவ வேண்டும்.

மேலும், நீங்கள் applesmc தொகுதியை தடுப்புப்பட்டியலில் சேர்க்க வேண்டும் (இதற்கு முன்பு நீங்கள் இதைச் செய்யவில்லை என்றால்) மற்றும் /boot/loader/entries/arch.conf இல் விருப்பங்கள் வரிசையில் இறுதியில் அளவுரு சேர்க்கப்படுவதை உறுதிசெய்யவும். pcie_ports=compat.

தற்போது, ​​டச்பார் இயக்கி இடைநிறுத்தப் பயன்முறையில் நுழையும் போது செயலிழக்கிறது, மேலும் இடி மின்னல் இயக்கி சில நேரங்களில் கணினியை 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

கருத்தைச் சேர்