MacBook Pro 2018 T2 ArchLinux සමඟ වැඩ කිරීම (dualboot)

නව T2 චිපය නව 2018 MacBooks මත ස්පර්ශක තීරුවක් සමඟ ලිනක්ස් ස්ථාපනය කිරීමට නොහැකි වනු ඇත යන කාරනය ගැන තරමක් උද්දීපනය වී ඇත. කාලය ගෙවී ගිය අතර, 2019 අවසානයේ, තෙවන පාර්ශවීය සංවර්ධකයින් T2 චිපය සමඟ අන්තර්ක්‍රියා කිරීම සඳහා ධාවක සහ කර්නල් පැච් ගණනාවක් ක්‍රියාත්මක කළහ. MacBook මාදිලි 2018 සඳහා ප්‍රධාන ධාවකය සහ නවතම ක්‍රියාත්මක VHCI මෙහෙයුම (ස්පර්ශ/යතුරු පුවරුව/ආදිය ක්‍රියා කිරීම), මෙන්ම ශබ්ද ක්‍රියාකාරිත්වය.

ව්යාපෘති mbp2018-bridge-drv ප්රධාන සංරචක 3 කට බෙදා ඇත:

  • BCE (Buffer Copy Engine) - T2 සමඟ ප්‍රධාන සන්නිවේදන නාලිකාව ස්ථාපිත කරයි. VHCI සහ Audio සඳහා මෙම සංරචකය අවශ්‍ය වේ.
  • VHCI යනු USB අතථ්‍ය ධාරක පාලකයකි; යතුරුපුවරුව, මූසිකය සහ අනෙකුත් පද්ධති සංරචක මෙම සංරචකය මඟින් සපයනු ලැබේ (අනෙකුත් ධාවකයන් වැඩි ක්‍රියාකාරීත්වයක් ලබා දීමට මෙම සත්කාරක පාලකය භාවිතා කරයි.
  • ශ්‍රව්‍ය - T2 ශ්‍රව්‍ය අතුරුමුහුණත සඳහා ධාවකය, දැනට MacBook හි ඇති ස්පීකර් හරහා පමණක් ශ්‍රව්‍ය ප්‍රතිදානය සඳහා සහය දක්වයි


දෙවන ව්යාපෘතිය ලෙස හැඳින්වේ macbook12-spi-driver, සහ එය MacBook Pro Late 2016 සහ පසුව සඳහා යතුරුපුවරුව, SPI ට්‍රැක්පෑඩ් සහ ස්පර්ශ තීරුව සඳහා ආදාන ධාවකයක් ක්‍රියාත්මක කිරීමේ හැකියාව ක්‍රියාත්මක කරයි. සමහර යතුරුපුවරු/ට්‍රැක්පෑඩ් ධාවක දැන් 5.3 අනුවාදයෙන් ආරම්භ වන කර්නලයට ඇතුළත් කර ඇත.

wi-fi, touchpad වැනි උපාංග සඳහා සහය ද කර්නල් පැච් භාවිතයෙන් ක්‍රියාත්මක කරන ලදී. වත්මන් කර්නල් අනුවාදය 5.3.5-1

මේ මොහොතේ වැඩ කරන දේ

  1. NVMe
  2. යතුරු පුවරුව
  3. USB-C (Thunderbolt පරීක්‍ෂා කර නැත; මොඩියුලය ස්වයංක්‍රීයව පූරණය වූ විට, එය පද්ධතිය කැටි කරයි)
  4. ස්පර්ශ තීරුව (Fn යතුරු, පසුබිම් ආලෝකය, ESC යනාදිය සක්‍රිය කිරීමේ හැකියාව සමඟ)
  5. ශබ්දය (බිල්ට් ස්පීකර් පමණි)
  6. Wi-Fi මොඩියුලය (brcmfmac හරහා සහ iw හරහා පමණි)
  7. USB-C හරහා DisplayPort
  8. සංවේදක
  9. අත්හිටුවීම/නැවත ආරම්භ කිරීම (අර්ධ වශයෙන්)
  10. ආදිය ..

මෙම නිබන්ධනය macbookpro15,1 සහ macbookpro15,2 සඳහා අදාළ වේ. ලිපිය ඉංග්‍රීසියෙන් Github වෙතින් පාදක කර ගන්නා ලදී. මෙතනින්. මෙම ලිපියේ ඇති සියල්ල ක්‍රියාත්මක නොවූ නිසා මටම විසඳුමක් සොයා ගැනීමට සිදු විය.

ඔබට සවි කිරීමට අවශ්‍ය දේ

  • USB-C ඩොකින් ඇඩැප්ටරය USB වෙත (මූසිකයක්, යතුරුපුවරුවක්, USB මොඩමයක් හෝ දුරකථනයක් ටෙදරින් ආකාරයෙන් සම්බන්ධ කිරීම සඳහා අවම වශයෙන් 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 වෙන් කළෙමි, එය Disk Utility තුළම exfat ලෙස හැඩසවිමි. භෞතික තැටි තැටි උපයෝගිතා කොටස් කිරීම.

3. ISO රූපයක් සාදන්න

විකල්ප:

  1. ඔබට සරල මාර්ගයට ගොස් කර්නලය 5.3.5-1 සහ පැච් සහිත සූදානම් කළ රූපයක් බාගත කළ හැකිය. අවුනලි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
    

    අපි 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 ඔබන්න, පසුව iso රූපය usb ෆ්ලෑෂ් ධාවකය වෙත ලියන්න:

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

4. පළමු ඇරඹුම

ෆ්ලෑෂ් ධාවකය සහ යතුරුපුවරුව ඇතුළු කර නැවත ආරම්භ කරන්න. ඇපල් දිස්වන විට විකල්ප ඔබන්න, EFI BOOT තෝරන්න.

මීලඟට, ඔබට "e" යතුර එබීම සහ විධාන රේඛාව අවසානයේ ඇතුල් කරන්න module_blacklist=අකුණු සැර. මෙය සිදු නොකළහොත්, පද්ධතිය ආරම්භ නොවිය හැකි අතර Thunderbolt ICM දෝෂයක් දිස්වනු ඇත.

fdisk/cfdisk භාවිතයෙන් අපි අපගේ කොටස සොයා ගනිමු (මට එය nvme0n1p4), එය සංයුති කර සංරක්ෂිතය ස්ථාපනය කරන්න. ඔයාට පාවිච්චි කරන්න පුළුවන් නිල උපදෙස් හෝ පැත්තකට.

අපි boot partition එකක් හදන්නේ නැහැ, අපි bootloader එක ලියන්නම් /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 හි thunderbolt සහ applesmc ලියාපදිංචි කරමු

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

යතුරුපුවරුව සඳහා කර්නල් මොඩියුල ස්ථාපනය කිරීම. ගබඩාවේ වාර්ෂික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 තුළ ස්ථාපනය කළ පසු, ඔබට ඇරඹුම් කාරකය ස්ථාපනය කිරීම ආරම්භ කළ හැක.

මට ග්‍රබ්ව වැඩට ගන්න බැරි වුනා. බාහිර USB ධාවකයකින් Grub boots, නමුත් ඔබ එය nvme හරහා ලියාපදිංචි කිරීමට උත්සාහ කරන විට

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 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 ෆෝල්ඩරයේ wi-fi ඇඩැප්ටරය සඳහා ස්ථිරාංග ගොනු ගබඩා කරයි. /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 නොවේ නම්, ඔබ ඔබේ 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. ශබ්දය

ශබ්දය ක්‍රියා කිරීම සඳහා, ඔබ pulseudio ස්ථාපනය කළ යුතුය:


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 ගබඩාවෙන් සූදානම් කළ apple-bce මොඩියුලය ස්ථාපනය කළේ නම්, ඔබ මුලින්ම එය ඉවත් කළ යුතු අතර පසුව පමණක් අත්හිටුවීමේ මාදිලියේ සහාය ඇතිව 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

අදහස් එක් කරන්න