د دې حقیقت په اړه یو څه ډیر څه شتون لري چې نوی T2 چپ به د ټچ بار سره په نوي 2018 ماک بوکس کې د لینکس نصب کول ناممکن کړي. وخت تیر شو، او د 2019 په پای کې، د دریمې ډلې پراختیا کونکو د T2 چپ سره د تعامل لپاره یو شمیر ډرایورونه او د کرنل پیچ پلي کړل. د MacBook ماډلونو 2018 لپاره اصلي چلوونکی او نوي پلي کوي د VHCI عملیات (ټچ/کیبورډ/وغیر عملیات)، او همدارنګه د غږ عملیات.
پروژه
- BCE (د بفر کاپي انجن) - د T2 سره د ارتباط اصلي چینل رامینځته کوي. VHCI او آډیو دې برخې ته اړتیا لري.
- VHCI د USB مجازی کوربه کنټرولر دی؛ کیبورډ، موږک او د سیسټم نورې برخې د دې برخې لخوا چمتو شوي (نور چلوونکي دا کوربه کنټرولر کاروي ترڅو نور فعالیت چمتو کړي.
- آډیو - د T2 آډیو انٹرفیس لپاره ډرایور، دا مهال یوازې د MacBook جوړ شوي سپیکرې له لارې د آډیو محصول ملاتړ کوي
دویمه پروژه نومیږي
د وسیلو لپاره ملاتړ لکه وائی فای، ټچ پیډ، او نور هم د کرنل پیچونو په کارولو سره پلي شوي. د کرنل اوسنی نسخه
دا مهال څه کار کوي
- NVMe
- کیلي
- USB-C (د تندربولټ ازموینه نه ده شوې؛ کله چې ماډل په اوتومات ډول بار شي ، دا سیسټم کنګل کوي)
- ټچ بار (د Fn کیلي ، بیک لایټ ، ESC ، او داسې نورو فعالولو وړتیا سره)
- غږ (یوازې جوړ شوي سپیکرې)
- د وای فای ماډل (د brcmfmac له لارې او یوازې د iw له لارې)
- د USB-C له لارې ډیسپلی پورټ
- سینسرونه
- تعلیق/بیا پیل کړئ (په جزوي توګه)
- نور ..
دا ټیوټوریل د macbookpro15,1 او macbookpro15,2 لپاره د تطبیق وړ دی. مقاله په انګلیسي کې د ګیتوب څخه د اساس په توګه اخیستل شوې.
هغه څه چې تاسو یې نصبولو ته اړتیا لرئ
- USB ته د USB-C ډاکینګ اډاپټر (لږترلږه د ماوس، کیبورډ، USB موډیم یا تلیفون په ټیټرینګ حالت کې د نښلولو لپاره درې USB ان پټونه). دا یوازې د نصب کولو په لومړیو مرحلو کې اړین دی
- د USB کیبورډ
- USB/USB-C فلش ډرایو لږترلږه 4GB
1. د بهرنیو رسنیو څخه د بوټ کولو بندیز غیر فعال کړئ
2. د ډیسک یوټیلیټ په کارولو سره وړیا ځای تخصیص کړئ
د اسانتیا لپاره ، ما سمدلاسه ډیسک ته 30GB تخصیص کړ ، دا پخپله د ډیسک یوټیلیټ کې په exfat کې فارمیټ کول.
3. د ISO انځور جوړ کړئ
انتخابونه:
- تاسو کولی شئ ساده لارې ته لاړ شئ او د کرنل 5.3.5-1 او پیچونو سره یو چمتو شوی عکس ډاونلوډ کړئ
aunali1 بشپړ شوي عکس ته لینک - د آرشیف له لارې پخپله یو عکس جوړ کړئ (د آرچا توزیع سره سیسټم اړین دی)
ولګوه
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 بوټ غوره کړئ.
بیا ، تاسو اړتیا لرئ د "e" کیلي فشار ورکړئ او د کمانډ لاین په پای کې دننه شئ module_blacklist= تندربولټ. که دا ترسره نه شي، سیسټم ممکن بوټ ونه کړي او د تندربولټ ICM تېروتنه به ښکاره شي.
د fdisk/cfdisk په کارولو سره موږ خپله برخه پیدا کوو (زما لپاره دا nvme0n1p4 دی) ، فارمیټ یې کړئ او آرشیف یې نصب کړئ. تاسو کولی شئ کار واخلئ
موږ د بوټ ویش نه جوړوو؛ موږ به بوټلوډر په کې لیکو /dev/nvme0n1p1
وروسته له دې چې په /mnt کې چاپیریال په بشپړ ډول جوړ شي او مخکې له دې چې آرچ کروټ ته لاړ شي، ولیکئ:
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 کې تندربولټ او ایپل ایم سی راجستر کوو
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
د کیبورډ لپاره د کرنل ماډلونو نصب کول. په ذخیره کې
pacman -S apple-bce-dkms-git
په دې حالت کې، د کرنل ماډل به ویل کیږي مڼه - bce. د ځان مجلس په حالت کې، دا ویل کیږي د. په دې اساس، که تاسو غواړئ د 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. لوډر
یوځل چې ټول اصلي کڅوړې د کروټ دننه نصب شي ، تاسو کولی شئ د بوټلوډر نصب کول پیل کړئ.
زه نه یم توانیدلی چې کار ته لاړ شم. د بهرني USB ډرایو څخه ګروب بوټونه ، مګر کله چې تاسو هڅه وکړئ دا په nvme کې راجستر کړئ
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
سیسټم د کرنل ویره کې لاړ ، او د اختیارونو له لارې د نوي توکي ریبوټ کولو وروسته څرګند نه شو. ما د دې ستونزې لپاره هیڅ روښانه حل ونه موند او له همدې امله پریکړه وکړه چې د سیسټمډ بوټ په کارولو سره د بوټ کولو پلي کولو هڅه وکړم.
- لانچ
bootctl --path=/boot install
او موږ د کرنل ډار ته ځو. ماک بوک بند کړئ ، بیا یې چالان کړئ ، په اختیارونو کلیک وکړئ (د کیبورډ سره د USB-C مرکز مه بندوئ)
- موږ ګورو چې د بهرني وسیلې سربیره د EFI BOOT نوې ننوتل څرګند شوي
- موږ د بهرني USB ډرایو څخه بوټ کول غوره کوو ، لکه څنګه چې د لومړي نصب په جریان کې (د ماډل_blacklist=thunderbolt مشخص کول مه هیروئ)
- موږ خپل ډیسک نصب کوو او د آرچ کروټ له لارې چاپیریال ته ځو
mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt
که چیرې دا اړینه وي چې د کیبورډ کار وکړي تر هغه چې سیسټم په بشپړ ډول بار شوی وي (دا اړینه ده کله چې د luks/dm-crypt انکرپشن کاروئ) نو بیا یې د ماډلونو برخه کې /etc/mkinicpio.conf فایل کې ولیکئ:
MODULES=(ext4 applespi intel_lpss_pci spi_pxa2xx_platform bce)
د کرنل او initramfs تازه کول.
mkinicpio -p linux-mbp
د سیسټمډ بوټ تنظیم کول
موږ د /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
که تاسو لوک او 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 نه وي، نو تاسو اړتیا لرئ چې دا فایل د خپل MacBook ماډل سره سم بدل کړئ.
په آرچ کې ریبوټ کړئ.
د فلش ډرایو څخه فایلونه /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 له لارې څرګندیږي.
د وائی فای له لارې تنظیم کول
پاملرنه. د netctl، nmcli او نورو له لارې. انٹرفیس کار نه کوي، یوازې د iwd له لارې.
موږ د شبکې مدیر مجبور کوو چې iwd وکاروي. د دې کولو لپاره، فایل جوړ کړئ /etc/NetworkManager/NetworkManager.conf او ولیکئ:
[device]
wifi.backend=iwd
د شبکې مدیر خدمت پیل کړئ
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
که تاسو د anuali1 ذخیره څخه چمتو شوي اپل-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