Hector Martin์ Apple M1 ARM ์นฉ์ด ์ฅ์ฐฉ๋ Mac ์ปดํจํฐ์ฉ Linux๋ฅผ ์ ์ฉํ๋ ์์ ์ ์งํ ์ค์ธ Asahi Linux ํ๋ก์ ํธ์์ ์ค๋นํ ์ฒซ ๋ฒ์งธ ํจ์น ์ธํธ๋ฅผ Linux ์ปค๋์ ํฌํจํ ๊ฒ์ ์ ์ํ์ต๋๋ค. ์ด๋ฌํ ํจ์น๋ ์ด๋ฏธ Linux SoC ๋ธ๋์น์ ๊ด๋ฆฌ์์ ์ํด ์น์ธ๋์์ผ๋ฉฐ 5.13 ์ปค๋์ ๊ธฐ๋ฅ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ Linux-next ์ฝ๋๋ฒ ์ด์ค์ ์น์ธ๋์์ต๋๋ค. ๊ธฐ์ ์ ์ผ๋ก Linus Torvalds๋ ์ ์๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ ๋ฌ์ ์ฐจ๋จํ ์ ์์ง๋ง ๊ทธ๋ฌํ ๊ฐ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
ํจ์น์๋ ์ธํฐ๋ฝํธ ์ปจํธ๋กค๋ฌ, ํ์ด๋จธ, UART, SMP, I/O ๊ธฐ๋ฅ ๋ฐ MMIO์ ๊ฐ์ M1 SoC์ ๋น GPU ๊ตฌ์ฑ ์์์ ๋ํ ์ง์์ด ํฌํจ๋ฉ๋๋ค. GPU ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง์ ์์ง ์๋ฃ๋์ง ์์์ต๋๋ค. ํจ์น๋ ์ถ๋ ฅ์ ์ํ ํ๋ ์ ๋ฒํผ ๋ฐ ์ง๋ ฌ ์ฝ์ ์ง์์ ์ ๊ณตํฉ๋๋ค. ์ด ์ฅ์น๋ Asahi Linux ํ๋ก์ ํธ์์ ์ฐธ์กฐ ํ๋ซํผ์ผ๋ก ์ฌ์ฉ๋๋ Apple Mac mini ์ปดํจํฐ๋ฅผ ์ง์ํ๋ค๊ณ ์ฃผ์ฅํฉ๋๋ค(์์ธํ ์ค์น ์ง์นจ ์ด์ฉ ๊ฐ๋ฅ).
์ด์ ๋ณ๋๋ก ์ง๋ ฌ ํฌํธ๋ฅผ ํตํ ์ฝ์ ์ฐ๊ฒฐ ๋ฐ ๋๋ฒ๊น ์ ๋จ์ํํ๋ ๊ฒ์ผ๋ก ์ธ์๋๋ ๊ฐ๋ฐฉํ ํ๋์จ์ด ์ด๋ํฐ๊ฐ ๊ฐ๋ฐ๋๊ณ ์์ต๋๋ค. ํ์ฌ ํํ์์๋ Apple์ด ์ฅ๋น์์ ๋นํ์ค USB-PD ๋ช ๋ น์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฝ์์ ์ก์ธ์คํ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ USB C ์ผ์ด๋ธ์ ์ฌ์ฉํ์ฌ Apple M1 ์นฉ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ค๋ฅธ ์ปดํจํฐ์ ์ฐ๊ฒฐํ๋ ๊ฒ์ ๋๋ค. Arduino ๋ง์ดํฌ๋ก ์ปจํธ๋กค๋ฌ, FUSB30 ์นฉ ๋ฐ UART-TTL ์ด๋ํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋์ปคํ๋ฌ๋ฅผ ๋ง๋๋ ๊ฒ์ ๋๋ค.
์ด ํ๋ก์ ํธ๋ ๋ํ Apple M1 CPU๊ฐ ์ฅ์ฐฉ๋ Mac ์ปดํจํฐ์ Linux ์ปค๋๊ณผ ์ต์ ์์คํ
ํ๊ฒฝ์ ๋ก๋ํ ์ ์๊ฒ ํด์ฃผ๋ m1n1 ๋ถํธ๋ก๋๋ ์ค๋นํ์ต๋๋ค. M1 CPU๊ฐ ์ฅ์ฐฉ๋ ์ปดํจํฐ์์ Apple์ ์ผ๋ฐ์ ์ผ๋ก ํ์ฅ ์์ด ๋์งํธ ์๋ช
๋์ง ์์ ์ปค๋์ ๋ก๋ํ๋ ๊ฒ์ ํ์ฉํฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฐ์๋ ์๋ก์ด XNU ์ปค๋์ ์คํํ ์ ์์ง๋ง Apple์ ์์ฒด ๋ถํ
ํ๋กํ ์ฝ๊ณผ ๋ค๋ฅธ ์ฅ์น ํธ๋ฆฌ ํ์์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์์คํ
์ ๋ถํ
ํ๋ ค๊ณ ํ ๋ ์ด๋ ค์์ด ๋ฐ์ํฉ๋๋ค. Asahi Linux ํ๋ก์ ํธ์์ ์ ์ํ m1n1 ๋ถํธ๋ก๋๋ ARM64์ฉ Linux ์ปค๋์์ ์ฌ์ฉ๋๋ ํ์ค Device Tree์ ํ์ค ๋ถํ
ํ๋กํ ์ฝ์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๋ ์ด์ด ์ญํ ์ ํฉ๋๋ค. ์์ผ๋ก m1n1์ U-Boot ๋ฐ GRUB๋ฅผ ํธ์ถํ์ฌ ๋ค๋ฅธ ARM64 ํ๋ซํผ์์ ์ฌ์ฉ๋๋ ๊ฒ๊ณผ ์ ์ฌํ ์ผ๋ฐ์ ์ธ ๋ถํ
ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๊ณํ์
๋๋ค.
์ถ์ฒ : opennet.ru