Nagpakita ang Corellium ng isang bersyon ng inangkop sa Linux upang tumakbo sa mas bagong mga computer ng Apple na nilagyan ng maliit na tilad M1, ang variant ng Linux kernel na katugma sa Apple M1 chip ay inilabas sa ilalim ng lisensya ng GPLv2, at ang mga patch ay naipadala para isama sa pangunahing kernel.
Ang Corellium ay may malawak na karanasan sa paglipat mula sa Linux patungong Apple chips ginamit sa mga mobile device tulad ng iPhone. Sa maagang yugto ng paglipat, hinimok ang mga tagasubok na marami sa mga bahagi ng Apple M1 ay batay sa mga teknolohiyang ginamit na ng Apple sa iba pang mga SoC.
Ngunit sa proseso ng pagsulat ng mga driver, naging malinaw na hindi lahat ay ganoong simple at ang Apple M1 chip ay may kasamang maraming mga hindi karaniwang solusyon. Ang suporta ng Linux para sa ARM 64-bit SoCs ay batay sa mga karaniwang bloke at mga interface ng firmware, ngunit ang Apple M1 ay halos hindi gumagamit ng mga tipikal na solusyon.
Halimbawa, sa maginoo na ARM SoCs, ang pagsasaaktibo ng mga core ng CPU ay ginagawa sa pamamagitan ng PSCI (Power State Coordination Interface) na ibinigay ng firmware at sa Apple M1 nangangailangan ito ng pagmamanipula ng rehistro ng MMIO.
Sa yugtong ito, Nauna ang mga developer ng Corellium sa proyekto ng Asahi Linux, itinatag ni Héctor Martin sa port Linux sa mga system na may Apple M1 chip, na hanggang ngayon ay nalimitahan upang baligtarin ang engineering at mag-eksperimento sa isang bootloader. Gayunpaman, ang pangunahing layunin ng Asahi Linux ay hindi lamang upang mai-boot ang Linux, ngunit upang magbigay ng buong suporta para sa mga mekanismo ng pamamahala ng kuryente at gamitin ang mga kakayahan ng Apple M1 GPU, na gumagamit ng isang tukoy na hanay ng mga tagubilin.
Ang mga patch ng Corellium ay limitado sa pagbibigay ng boot at suporta para sa mga tukoy na tampok ng M1 chips na nauugnay sa SMP mode, timer, interrupts, idle state handling at initialization.
Los Tinanggap ng mga kinatawan ng Asahi Linux ang pagpapalabas ng mga patch ng Corellium at ipinahayag ang pagpayag na magbigay ng tulong sa pagsusuri ng kapwa upang mapabilis ang pangunahing pag-aampon ng kernel ng Linux.
Bilang karagdagan, si Alyssa Rosenzweig (mula sa Collabora na bumubuo ng driver ng Panfrost GPU Mali) ay sinasabing naglathala ng pangalawang ulat tungkol sa reverse engineering at pagbuo ng mga open source driver para sa Apple M1 GPU.
Sa kasalukuyang yugto, ang isang paunang prototype ng controller ay handa, na maaaring gumuhit ng mga triangles gamit ang GPU. Para sa M1 GPUs, ang unang vertex at fragment shader ay naka-code din sa kamay. Ang driver ng kernel na IOKit ay ginagamit upang makipag-ugnay sa GPU.
Gumagamit din ang Apple M1 ng sarili nitong AIC interrupt controller (Apple Interrupt Controller), kung saan para sa pinaka-bahagi ito ay hindi tugma sa mga karaniwang ARM GIC at isang iba't ibang mga mekanismo para sa umiiral na nakakagambala mula sa isang timer. Bilang karagdagan, upang ayusin ang pakikipag-ugnayan sa pagitan ng maraming mga processor, ginagamit ang magkakahiwalay na rehistro upang makontrol ang IPI (inter-processor interrupts).
Upang mag-boot sa isang Mac Mini M1 computer na may isang Apple M1 chip, isang handa nang gamiting imahe ng rootfs ay inihanda, na itinayo batay sa pagbuo ng Ubuntu para sa Raspberry Pi.
Upang mai-install, ang imahe ay dapat makopya sa isang drive USB, ikonekta ang yunit na ito sa USB-C port at simulan ang computer sa 1TR mode (Recovery OS) sa pamamagitan ng pagpindot at pagpindot sa pindutan ng Power habang nag-boot. Matapos lumitaw ang linya ng utos, kailangan mong patakbuhin ang linuxsetup.sh script, na mai-install ang kernel at mai-configure ang kapaligiran.
Ito ay kung kailan magsisimulang tumakbo ang Linux, samantalang upang ibalik ang macOS, dapat mong patakbuhin ang utos na "bputil -n" sa 1TR mode.
Sinusuportahan ng handa na build ang USB, I2C at DART, iminungkahi na gumamit ng panlabas na USB adapter para sa network, habang ang graphics acceleration ng hardware at pinalawak na mga peripheral ay hindi pa sinusuportahan. Ang suporta sa Bluetooth ay nangangailangan ng pagsusulat ng isang bagong driver dahil sa paggamit ng isang hindi karaniwang pamantayan na batay sa PCIe.
Fuente: https://corellium.com