Pakave nekamwe hype nezve chokwadi chekuti itsva T2 chip ichaita kuti zvisaite kuisa Linux pane itsva 2018 MacBooks ine touchbar. Nguva yakapfuura, uye pakupera kwa2019, vagadziri vebato rechitatu vakaisa akati wandei madhiraivha uye kernel zvigamba zvekudyidzana neT2 chip. Mutyairi mukuru weMacBook modhi 2018 uye itsva zvishandiso VHCI kushanda (touch/keyboard/etc. operation), pamwe nekuita ruzha.
Iyo purojekiti
- BCE (Buffer Copy Engine) - inogadza nzira huru yekukurukurirana neT2. VHCI uye Audio inoda chikamu ichi.
- VHCI ndeye USB Virtual Host Controller; iyo keyboard, mbeva uye zvimwe zvikamu zvehurongwa zvinopihwa nechikamu ichi (mamwe madhiraivha anoshandisa iyi host controller kupa mamwe maitiro.
- Odhiyo - mutyairi weiyo T2 odhiyo interface, parizvino inotsigira odhiyo kubuda kuburikidza neMacBook's akavakirwa-mukati matauri
Chirongwa chechipiri chinonzi
Tsigiro yemidziyo yakaita sewi-fi, touchpad, nezvimwe yakaitwa zvakare uchishandisa kernel zvigamba. Yazvino kernel vhezheni
Chii chiri kushanda panguva ino
- NVMe
- Keyboard
- USB-C (Kutinhira hakuna kuedzwa; kana module inotakurwa otomatiki, inoomesa sisitimu)
- Touchbar (nekukwanisa kubatidza makiyi eFn, backlight, ESC, nezvimwewo)
- Ruzha (vakavakwa-mukati chete vatauri)
- Wi-Fi module (kuburikidza nebrcmfmac uye chete kuburikidza iw)
- DisplayPort pamusoro pe USB-C
- Sensors
- Misa / Tangazve (zvishoma)
- nezvimwewo ..
Ichi chidzidzo chinoshanda kune macbookpro15,1 uye macbookpro15,2. Chinyorwa chakatorwa sehwaro kubva kuGithub muChirungu.
Zvaunoda pakuisa
- USB-C docking adapta ku USB (angangoita matatu ma USB ekubatanidza mbeva, keyboard, USB modem kana foni mune tethering mode). Izvi zvinongodiwa chete pamatanho ekutanga ekuiswa
- USB keyboard
- USB/USB-C flash drive shoma 4GB
1. Dzima kurambidzwa kwebhoti kubva kunze media
2. Govera nzvimbo yemahara uchishandisa Disk Utility
Kuti zvive nyore, ini ndakabva ndagovera 30GB kune diski, ndichiigadzira mu exfat muDisk Utility pachayo.
3. Gadzira mufananidzo weISO
Sarudzo:
- Unogona kuenda nenzira iri nyore uye kurodha mufananidzo wakagadzirwa une kernel 5.3.5-1 uye zvigamba kubva.
aunali1 link kumufananidzo wapera - Gadzira mufananidzo wega kuburikidza ne archlive (system ine Archa kugovera inodiwa)
Install
archiso pacman -S archiso
cp -r /usr/share/archiso/configs/releng/ archlive cd archlive
Wedzera iyo repository kune pacman.conf:
[mbp] Server = https://packages.aunali1.com/archlinux/$repo/$arch
Isu tinoregeredza iyo yekutanga kernel mu pacman.conf:
IgnorePkg = linux linux-headers
Wedzera mapakeji anodiwa, kumagumo wedzera iyo linux-mbp kernel uye linux-mbp-misoro.
... wvdial xl2tpd linux-mbp linux-mbp-headers
Isu tinoshandura script kuti ishande mune inopindirana modhi (tsiva pacstrap -C ne 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!" }
Kugadzira mufananidzo:
sudo ./build.sh -v
Dzvanya Y kuti usvetuke mapakeji asina kufuratirwa, wobva wanyora iyo iso mufananidzo kune usb flash drive:
sudo dd if=out/archlinux*.iso of=/dev/sdb bs=1M
4. Bhutsu yekutanga
Reboot ne flash drive uye keyboard yakaiswa. Dzvanya sarudzo kana apuro raonekwa, sarudza EFI BOOT.
Tevere, iwe unofanirwa kudzvanya kiyi "e" uye pinda pamagumo emutsara wekuraira module_blacklist= thunderbolt. Kana izvi zvikasaitwa, sisitimu inogona kusabhowa uye Thunderbolt ICM Kanganiso ichaonekwa.
Tichishandisa fdisk/cfdisk tinowana chikamu chedu (kwandiri nvme0n1p4), chifomete uye isa dura. Unogona kushandisa
Isu hatisi kugadzira chikamu chebhoti; isu tichanyora iyo bootloader mukati /dev/nvme0n1p1
Mushure mekunge nharaunda mu / mnt yanyatsoumbwa uye usati waenda kune arch-chroot, nyora:
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt /bin/bash
Wedzera ku /etc/pacman.conf:
[mbp]
Server = https://packages.aunali1.com/archlinux/$repo/$arch
Isa kernel:
sudo pacman -S linux-mbp linux-mbp-headers
sudo mkinitcpio -p linux-mbp
Isu tinonyoresa thunderbolt uye applesmc mukati /etc/modprobe.d/blacklist.conf
blacklist thunderbolt
blacklist applesmc
Keyboard, touchbar, nezvimwe
Install yay:
sudo pacman -S git gcc make fakeroot binutils
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
Kuisa modules kuti touchbar ishande:
git clone --branch mbp15 https://github.com/roadrunner2/macbook12-spi-driver.git
cd macbook12-spi-driver
make install
Wedzera ma module ekutanga: /etc/modules-load.d/apple.conf
industrialio_triggered_buffer
apple-ibridge
apple-ib-tb
apple-ib-als
Kuisa kernel modules yekhibhodi. Munzvimbo inochengeterwa zvinhu
pacman -S apple-bce-dkms-git
Muchiitiko ichi, iyo kernel module ichadaidzwa apple-bce. Panyaya yekuzvibatanidza, inonzi ecb. Saizvozvo, kana iwe uchida kunyoresa module muMODULES chikamu chemkinicpio.conf faira, saka usakanganwa kuti ndeipi module yawakaisa.
Manual assembly:
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
Wedzera iyo bce kana apuro-bce module kuti utange: /etc/modules-load.d/bce.conf
bce
Kana uchida kushandisa mabhatani eFn nekusingaperi, wobva wanyora mukati /etc/modprobe.d/apple-tb.conf faira:
options apple-ib-tb fnmode=2
Kugadziridza kernel uye initramfs.
mkinitcpio -p linux-mbp
Isa iwd:
sudo pacman -S networkmanager iwd
5. Loader
Kana ese makuru mapakeji akaiswa mukati mechroot, unogona kutanga kuisa iyo bootloader.
Handina kukwanisa kuwana grub kushanda. Grub bhutsu kubva kune yekunze USB drive, asi paunoyedza kuinyoresa mu nvme kuburikidza
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
iyo sisitimu yakapinda kernel panic, uye mushure mekutangazve chinhu chitsva kuburikidza nesarudzo haina kuoneka. Ini handina kuwana mhinduro yakajeka padambudziko iri uye saka ndakafunga kuyedza kuita booting uchishandisa systemd-boot.
- Kutanga
bootctl --path=/boot install
uye tinopinda mukuvhunduka kwe kernel. Dzima MacBook, ibatidze zvakare, tinya sarudzo (usadzima USB-C hub nekhibhodi)
- Isu tinotarisa kuti nyowani EFI BOOT yekupinda yakaonekwa mukuwedzera kune yekunze mudziyo
- Isu tinosarudza boot kubva kune yekunze USB drive, sepanguva yekutanga kuisirwa (usakanganwa kutsanangura module_blacklist = thunderbolt)
- Isu tinokwira dhisiki yedu uye tinoenda munharaunda kuburikidza nearch-chroot
mount /dev/nvme0n1p4 /mnt
mount /dev/nvme0n1p1 /mnt/boot
arch-chroot /mnt
Kana zvichidikanwa kuti keyboard ishande kusvika sisitimu yazara zvizere (izvi zvinodiwa kana uchishandisa luks/dm-crypt encryption), wobva wanyora mu /etc/mkinicpio.conf faira muchikamu cheMODULES:
MODULES=(ext4 applespi intel_lpss_pci spi_pxa2xx_platform bce)
Kugadziridza kernel uye initramfs.
mkinicpio -p linux-mbp
Kugadzika systemd-boot
Isu tinogadzirisa iyo /boot/loader/loader.conf faira, bvisa zvese zviri mukati, uye wedzera zvinotevera:
default arch
timeout 5
editor 1
Enda ku /boot/loader/entries folda, gadzira iyo arch.conf faira uye nyora:
title arch
linux /vmlinuz-linux-mbp
initrd /initramfs-linux-mbp.img
options root=/dev/<b>nvme0n1p4</b> rw pcie_ports=compat
Kana iwe wakashandisa luks uye lvm, ipapo
options cryptdevice=/dev/<b>nvme0n1p4</b>:luks root=/dev/mapper/vz0-root rw pcie_ports=compat
Reboot muMacOS.
6. Wi-Fi setup
Sezvazvakazoitika pakupedzisira, MacOS inochengeta mafaera e firmware eiyo wi-fi adapta mufolda /usr/share/firmware/wifi , uye iwe unogona kuvatora kubva ipapo muchimiro chemablobs uye wovadyisa kune bcmfmac kernel module. Kuti uwane kuti ndeapi mafaera anoshandisa adapta yako, vhura terminal muMacOS uye nyora:
ioreg -l | grep C-4364
Tinowana runyora rurefu. Tinongoda mafaira kubva muchikamu 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>"})
Muchiitiko chako, mazita emafaira anogona kusiyana. Kopa iwo kubva ku /usr/share/firmware/wifi folda kune flash drive uye uvape zita sezvizvi:
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>
Muchiitiko ichi, faira rekupedzisira rine mazita emuenzaniso; kana modhi yako isiri macbookpro15,2, saka unofanirwa kupa zita refaira iri zvinoenderana neMacBook modhi yako.
Reboot muArch.
Kopa mafaira kubva ku flash drive kuenda ku /lib/firmware/brcm/ folda
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/
Kuongorora kushanda kweiyo module:
rmmod brcmfmac
modprobe brcmfmac
Isu tinoita shuwa kuti network interface inoonekwa kuburikidza ifconfig/ip.
Kuisa wifi kuburikidza
Attention. Via netctl, nmcli, nezvimwe. Iyo interface haishande, chete kuburikidza ne iwd.
Isu tinomanikidza NetworkManager kushandisa iwd. Kuti uite izvi, gadzira iyo faira /etc/NetworkManager/NetworkManager.conf uye nyora:
[device]
wifi.backend=iwd
Tanga iyo NetworkManager sevhisi
sudo systemctl start NetworkManager.service
sudo systemctl enable NetworkManager.service
7. Inzwi
Kuti ruzha rushande, unofanirwa kuisa pulseaudio:
sudo pacman -S pulseaudio
Dhaunirodha mafaera matatu:
Ngativafambise:
/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. Kumisa / Tangazve
Panguva ino 16.10.2019 iwe unofanirwa kusarudza chero ruzha kana kumisa / kutangazve. Isu takamirira munyori we bce module kuti apedze kushanda.
Kuvaka module ine yakamiswa / kutangazve rutsigiro, iwe unofanirwa kuita zvinotevera:
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
Kana iwe ukaisa iyo yakagadzirira-yakagadzirwa apuro-bce module kubva kune anuali1 repository, saka iwe unofanirwa kutanga waibvisa uye chete wozounganidza uye nekuisa iyo bce module ine suspend mode rutsigiro.
Uyezve, unoda kuwedzera applesmc module kune blacklist (kana usati waita izvi kare) uye iva nechokwadi chokuti mu /boot/loader/entries/arch.conf mumutsara wekusarudza pamagumo parameter inowedzerwa. pcie_ports=compati.
Parizvino, mutyairi wekubata bata anorovera kana achipinda yekumisa modhi, uye mutyairi webhanhire dzimwe nguva anoomesa sisitimu kweanopfuura masekondi makumi matatu, uye kwemaminetsi akati wandei kana uchitangazve. Izvi zvinogona kugadziriswa nekuburitsa otomatiki mamodule anonetsa.
Gadzira chinyorwa /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
Ita kuti iite executable:
sudo chmod +x /lib/systemd/system-sleep/rmmod.sh
Ndizvo zvose ikozvino. Mhedzisiro iyi inonyatso shanda sisitimu, kunze kwemamwe nuances nekumisa / kutangazve. Hapana kuparara kana kernel panics yakaonekwa mukati memazuva akati wandei enguva yekukwira. Ndinovimba kuti munguva pfupi iri kutevera munyori we bce module achaipedza, uye isu tichawana rutsigiro rwakazara rwekumisa / kutangazve uye ruzha.
Source: www.habr.com