elsa in mac

Asahi Linux : M4/M5 지원을 워한 준비.... 본문

Linux/Asahi Linux

Asahi Linux : M4/M5 지원을 워한 준비....

elsa in mac 2026. 5. 11. 21:56

 

2026년 5월 9일, Asahi Linux의 m1n1 GitHub 저장소에 앞으로의 Apple Silicon 지원 방향을 짐작하게 만드는 흥미로운 PR 하나가 올라왔습니다.  제목은 `pmgr: support M4 Pro/Max / A18 Pro / M5`입니다. 

 

제목에서 알 수 있듯, 이 PR은 Apple Silicon의 새로운 세대에 맞춰 m1n1 내부의 pmgr 처리 방식을 손보는 작업입니다. 내용을 살펴보면, m1n1의 pmgr 코드가 M4 Pro/Max, A18 Pro(Macbook Neo Soc), 그리고 M5 계열에서 쓰이는 장치 트리 형식에 맞게 주소 계산 방식을 확장했다는 것으로 M4 Pro 환경에서 실제 동작이 확인되었다는 점이 특히 눈에 띕니다.

우선, 이 PR의 의미를 제대로 이해하려면 먼저 m1n1이 무엇인지부터 짚어야 합니다.
m1n1은 Apple Silicon Mac에서 Linux를 부팅할 수 있게 도와주는 부트로더입니다. 하지만 단순히 부팅만 대신해 주는 도구라고 보기에는 역할이 훨씬 넓습니다. 개발용 proxy 역할도 수행하고, 경우에 따라서는 얇은 하이퍼바이저처럼 동작하면서 하드웨어 접근을 관찰하는 실험용 도구로도 쓰입니다. 다시 말해 m1n1은 Apple Silicon의 독특한 부팅 구조를 Linux가 이해할 수 있는 방식으로 연결해 주는 통역사 역할을 하는 중간 계층이라고 보면 됩니다. 

일반적인 X86 계열의 PC에서는 운영체제가 부팅될 때 하드웨어 구성을 알아내는 것이 그리 어렵지 않습니다. x86 계열 PC에서는 BIOS나 UEFI가 그 역할을 맡고, Linux 커널은 그로부터 필요한 정보를 전달받습니다. 커널은 그 정보를 바탕으로 “아~ 이 기기에는 어떤 장치들이 있구나, 그럼 그 장치들은 이렇게 제어해야겠네~”하는 것들을 파악한 뒤 드라이버를 올립니다. 하지만, Apple Silicon Mac은 사정이 다릅니다. Linux가 곧바로 이해할 수 있는 형태로 공개된 하드웨어 정보가 없기 때문에, 그 정보를 읽어 들여 Linux가 이해할 수 있는 언어로 바꾸어 줄 중간 주체가 필요합니다. Asahi Linux에서 그 역할을 맡는 것이 바로 m1n1입니다.

m1n1은 공식적으로 이름의 의미가 딱 잘라 정의된 적은 없지만, Asahi Linux 초기 문서들을 따라가 보면 그 뿌리가 Nintendo Wii용으로 개발된 mini라는 bare-metal 환경에 닿아 있습니다. Asahi Linux의 프로젝트를 시작한 초기 리더인 Hector Martin은 원래 Wii 관련 하드웨어 연구와 Will에 리눅스를 포팅한 인물인데, 그 과정에서 Wii의 보안 CPU에서 동작하는 작은 실험용 환경인 mini를 만든 바 있습니다. 이 mini를 AArch64와 Apple Silicon 환경에 맞게 옮기고 발전시킨 것이 현재의 m1n1이라고 알려져 있습니다. 실제로 공식 문서에서도 m1n1의 과거가 mini에 있다고 언급했었습니다. 

m1n1의 실제 역할을 조금 더 세분화해서 보면 세 가지 층위로 이해할 수 있습니다.
첫 번째는 Bootloader로서의 역할입니다. Apple의 부팅 과정에서 전달되는 ADT(Apple Device Tree)를 읽어 Linux가 이해할 수 있는 FDT(Flattened Device Tree)로 바꾼 뒤 다음 단계로 넘겨줍니다. 이 작업은 Apple의 부팅 체계와 Linux의 부팅 체계를 연결하는 것으로 페쇄적인 Apple H/W를 Linux가 이해할 수 있는 표준적인 환경으로 추상화해주는 역할 입니다. Apple 쪽에서는 Apple 방식의 하드웨어 설명이 있고, Linux 쪽에서는 Linux가 이해하는 하드웨어 설명이 따로 있기 때문에 그 사이를 번역해 주는 다리가 필요한데 m1n1이 바로 그 교두보 역할을 담당합니다.

두 번째는 proxy 기능입니다. 개발용 컴퓨터가 타깃 Mac과 USB로 연결된 상태에서 m1n1을 통해 레지스터를 직접 읽거나 장치를 초기화하고, 커널 이미지를 올리는 식의 원격 조작이 가능합니다. 이 기능은 하드웨어를 실제로 붙잡고 실험해야 하는 개발자에게 매우 중요합니다. 단순히 부팅만 하는 것이 아니라, 부팅 중인 기기 내부를 들여다보고 장치를 하나씩 확인할 수 있게 해 주기 때문입니다. Asahi Linux가 하드웨어 지원을 넓혀 가는 과정에서 이 proxy 기능은 핵심적인 도구입니다.

세 번째는 Hypervisor로서의 성격입니다. m1n1은 아주 얇은 하이퍼바이저처럼 동작하면서 Linux나 macOS가 하드웨어에 접근하는 과정을 관찰할 수 있게 해 줍니다. 여기서 중요한 점은, m1n1이 거대한 가상화 솔루션처럼 복잡하게 움직이는 것이 아니라, 필요한 순간에 하드웨어 접근을 가로채거나 관찰할 수 있을 만큼만 얇게 개입한다는 점입니다. 그래서 Apple Silicon의 동작을 분석하거나 새로운 장치 지원을 준비할 때 매우 유용합니다. 운영체제가 칩과 나누는 대화를 옆에서 지켜보며 분석하는 통역가이자 감시자라고 생각하면 이해하기 쉽습니다.

Mac에 전원이 들어오면 가장 먼저 Apple의 Boot ROM이 실행되고, 이어서 iBoot의 stage 1과 stage 2가 차례로 동작합니다. 이 과정에서 장치 초기화와 부팅 정보 준비가 이루어지고, 본래라면 마지막에는 macOS 커널이 로드됩니다. 그런데 Asahi Linux는 이 흐름 사이에 m1n1을 끼워 넣는 방식을 택합니다. 즉, Apple의 부팅 체인 안에서 m1n1이 먼저 실행되도록 만들고, m1n1이 다음 단계를 받아서 Linux가 이해할 수 있는 형태로 하드웨어 정보를 정리해 주는 것입니다. 

m1n1 역시 stage 1과 stage 2의 두 단계로 나뉘어 동작합니다. stage 1은 Apple의 부팅 흐름 안에서 처음 실행되는 진입점 역할을 하고, stage 2는 EFI System Partition에서 이어서 불러오는 단계입니다. 이 두 단계가 함께 하드웨어 초기화와 부팅 준비를 담당합니다. 결과적으로 부팅은 macOS 커널로 이어지지 않고, m1n1이 준비한 뒤 U-Boot와 Linux 커널 쪽으로 진행됩니다. 즉, Asahi Linux는 Apple의 부팅 구조 위에 m1n1을 올려서, macOS 대신 Linux가 시작되도록 만드는 셈입니다. 정리하면  부팅 프로세스는 Boot ROM -> iBoot -> m1n1 stage 1 -> m1n1 stage 2 -> U-Boot -> Linux kernel의 순서로 진행되게 됩니다.

그렇다면 이번 PR의 의미는 무엇일까? 
궁극적으로 M4 세대 이후의 Mac에서 Asahi Linux를 안정적으로 구동하려면, m1n1이 단순한 부트로더를 넘어서 우선은 하드웨어 초기화와 분석을 돕는 개발용 계층으로서 정상적으로 동작해야 합니다. 이를 위해서는 먼저, 해당 플랫폼의 장치 트리와 제어 방식을 정확히 파악하는 것이 우선 필요하고, 그 과정에서 m1n1이 해당 하드웨어 위에서 제대로 실행되어야 합니다. 다시 말해, 새 세대 Mac을 분석하고 지원하기 위한 첫 번째 조건은 m1n1이 그 기기에서 제대로 떠야 한다는 점입니다.

이번 PR의 구체적인 성과는 pmgr 코드를 수정하여 device-mode USB가 동작하도록 만든 데 있습니다. 이 말은 개발 컴퓨터가 USB를 통해 타깃 Mac에 연결될 수 있는 상태가 되었다는 뜻이고, 그 결과 m1n1의 proxy 기능을 온전히 사용할 수 있는 단계로 진입했다는 의미로 이해될 수 있습니다. 개발자는 이 경로를 통해 타깃 Mac의 내부 구성을 확인하고, 어떤 레지스터와 제어 경로를 사용해야 하는지 조사할 수 있습니다. PR 코멘트에서 M4 Pro에서 실제 연결과 동작이 확인되었다는 점도 중요합니다. 그리고 제목에 M4 Pro/Max, A18 Pro, M5가 함께 적혀 있다는 점을 보면, 작성자는 이 수정이 해당 계열 전체에 적용될 수 있다고 판단한 것으로 보입니다.

- - - - - - - - - -


결국 이 PR은 단순히 코드 몇 줄을 바꾼 것이 아닙니다. Apple Silicon의 최신 세대에서 m1n1이 다시 한번 발판을 얻었고, 그 위에서 Asahi Linux가 하드웨어를 더 깊이 이해하고 다룰 수 있는 통로가 열린 것입니다. 새 칩이 나올 때마다 부팅 체인과 장치 정보 형식이 조금씩 바뀌는데, 이런 저수준 수정은 그 변화에 맞춰 Linux 생태계가 계속 따라갈 수 있게 만드는 기반 작업입니다. 이번 PR은 바로 그 기반을 새 세대 하드웨어에 맞게 다시 세우게 되었다고 볼 수 있으며, M4 이후의 mac에 Asahi Linux를 포팅할 수 있는 출발선이 마련되었다고 볼 수 있을 것 같습니다. 

공유하기 링크
Comments