elsa in mac

Asahi Linux, Linux 6.19 진행보고서가 올라 왔습니다. 본문

Linux/Asahi Linux

Asahi Linux, Linux 6.19 진행보고서가 올라 왔습니다.

elsa in mac 2026. 2. 18. 21:33

 

2026년 2월 18일.

Asahi Linux 6.19 진행 보고서가 공식 블로그에 올라왔습니다. 
진행 보고서란 현재 작업 중인 커널 6.19에 대해 어떤 작업들이 이뤄지고 있고, 어떤 기능들이 새롭게 추가될 것인지를 사용자들과 공유하는 리포트입니다. 제가 굳이 이렇게 포스팅을 하는 이유는, 이 복잡한 기술적 이야기들을 조금이라도 더 쉽게 풀어서 설명해보고 싶기 때문입니다. ^^

보고서에서 첫 번째로 언급하고 있는 것은 dp-alt(DisplayPort Alternative) mode 즉, USB-C 포트를 통해 비디오 신호를 직접 모니터에 전달하는 기술 구현과 관련된 부분으로, 이는 궁극적으로 별도의 변환기 없이 USB-C 케이블 하나로 모니터 연결, 데이터 전송, 전력 공급(Power Delivery, PD)을 동시에 해결하는 것입니다. 최근 Asahi Team은 Linux GitHub를 통해 dp-alt mode를 지원하는 Fairydust 브랜치를 릴리스했습니다. 아직 부족한 부분도 많고, 문제점들이 내포되어 있지만 Asahi Linux가 USB-C를 통해 외장 모니터를 연결할 수 있다는 가능성을 보여주는 중요한 이정표입니다. 이 브랜치는 일종의 Experimental Kernel의 성격이기 때문에 해당 브랜치에 대한 사용자들의 요청과 지원을 하지는 않는다는 점을 분명히 하고 있습니다. 

일반적으로 USB-C 포트는 고속 데이터 전송 규격인 Thunderbolt를 지원해야 하고, 보통은 Thunderbolt 지원 안에 dp-alt mode가 포함되곤 합니다. 하지만 현재 Asahi Linux는 dp-alt mode를 먼저 구현했을 뿐, 아직 Thunderbolt를 완벽히 지원하는 단계는 아닙니다. 어떻게 보면 반쪽짜리인 셈이죠. 워낙 사용자들의 요청이 많았던 기능이라 별도 브랜치로 먼저 제공하게 된 것 같은데, Thunderbolt까지 완벽하게 지원하기 전까지는 공식 릴리스에 포함하지 않을 것으로 보입니다. 그래도 오랫동안 이 기능을 기다려온 분들에게는 USB-C로 모니터를 쓸 수 있다는 것만으로도 큰 축복이 아닐까 싶네요.

두 번째로 언급하고 있는 것은 Apple Silicon M3와 관련된 것으로 m1n1에 대한 디바이스 트리와 Linux Kernel Patch에 대한 것입니다. 기본적으로는 NVMe, Wi-Fi, USB3 등 기본적인 동작과 관련된 부분들에서 성공적인 작업이 수행되고 있으며 조만간 M3를 지원하는 공식적인 릴리즈가 나올 수도 있음을 암시합니다. 그러나, M3 GPU 구조가 이전 M1/M2 세대와 많이 다르기 때문에 이를 하드웨어적으로 제어하기 위한 리버스 엔지니어링이 진행 중으로, 현재 M3 지원에서는 GPU 가속 기능을 사용할 수 없고 소프트웨어 방식의 렌더링만 지원하고 있습니다. 따라서 M3에 대한 공식적인 지원이 언제 발표될 것인지는 알 수 없다고 합니다. "사용이 가능하다"와 "공개가 준비가 되었다"는 것은 다른 차원의 문제이기 때문입니다. 일반 응용 프로그램의 수준이라면 사용이 가능한 상태에서도 릴리스를 할 수 있겠으나, Linux Kernel이 갖는 무게감과 중요성은 단지 가능하다는 수준으로는 릴리스를 할 수 없습니다. 그래도 다행인 점은 그리 오래 걸리지는 않을 것이라고 하네요. 

세 번째 주제는 MacBook Pro 14/16에서의 120Hz 지원입니다. 이것은 이전 포스트에서도 알려 드렸지요. 120Hz 주사율 지원을 Apple에서는 ProMotion이라는 비즈니스 용어로 사용하지만, 일반적으로는 그냥 VRR(Variable Refresh Rate, 가변 주사율)라고 부릅니다. 가변 주사율을 엔드 유저(End User)가 사용하기 위해서는 H/W적으로 지원해야 함은 물론, 화면을 구성하고 이를 VRR 타이밍에 맞춰 모니터로 뿌려주는 Compositor(합성기)가 이를 지원해야 합니다. 일단 Asahi Team에서는 120Hz 고정 주사율을 지원하는 것으로 시작한 것 같습니다. 

네 번째 주제는 Linux DCP(Display CoProcessor | Display Control Processor) 드라이버의 리팩토링과 관련된 것입니다. DCP는 단순한 하드웨어 컨트롤러가 아니라 RTOS(Real Time OS, 실시간 운영체제)와 9MB에 달하는 대용량 펌웨어를 가지고 독립적으로 구동되는 보조 프로세서입니다. 주 프로세서가 화면에 그릴 내용을 넘겨주면, 이를 받아 실제 디스플레이 패널에 맞게 변환하고 송출하는 복잡한 과정을 DCP가 담당하고 있죠. DCP는 구체적으로 여러 레이어(layer)를 하나로 합쳐서 화면에 표시해주는 기능을 수행하며, 감마 보정, 색 공간 변환 및 색온도 제어 등을 처리합니다. 화면의 주사율을 제어하고 백라이트의 밝기 및 전력 효율을 제어합니다. 내장 패널인 eDP, 외부 출력인 HDMI, DisplayPort와의 통신도 DCP가 담당합니다. 

Asahi Team에서 DCP를 다루기 힘든 이유는 이 DCP가 macOS에 최적화된 독자적인 통신 프로토콜을 사용하고 있기 때문입니다. 독자 프로토콜이기 때문에 기술 문서가 공개되어 있지 않고, 따라서 이를 리버스 엔지니어링(Reverse Engineering)해야 합니다. 더욱이 macOS의 버전이 업그레이드될 때마다 DCP 펌웨어의 구조나 통신 방식이 바뀌기도 하기 때문에 더욱 어려운 분야라고 할 수 있습니다. 

Wayland Compositor를 구현하고 있는 필자 입장에서도 초기에 Asahi Linux가 "마우스 포인터에 대한 H/W 지원"을 하지 않는다는 것을 알았습니다. 전통적으로 GPU는 3가지 유형의 플레인(plane)을 제공합니다. 일반적으로 윈도우나 배경 화면 등을 표시하는 프라이머리 플레인(Primary plane)과 커서를 표시하기 위한 커서 플레인(Cursor plane)이 있고, 그 밖에 다른 특별한 목적으로 사용하기 위한 오버레이 플레인(Overlay plane)이 있습니다. Apple Silicon 하드웨어는 리눅스 표준 인터페이스에서 바로 쓸 수 있는 형태의 커서 플레인을 노출하지 않습니다. 그래서 Linux에서는 마우스 포인터를 프라이머리 플레인에 소프트웨어적으로 렌더링 하여 합성하여 표시합니다. 이것은 기술적으로만 보면, 굉장히 불합리적인 결과를 초래하게 됩니다. 실제적인 화면의 변화는 없는데, 단지 마우스 포인터가 이동했다는 이유로 전체 화면을 다시 합성하여 뿌려 주어야 하기 때문입니다. 만일 커서 플레인이 별도로 존재한다면, 프라이머리 플레인은 그대로 이전 장면을 사용하고 물리적으로 분리된 커서 플레인만 리프레시(refresh)해서 둘을 오버레이 해서 뿌려 주면 됩니다. 즉, 현재 Asahi Linux에서는 커서 플레인이 없기 때문에 어쩔 수 없이 마우스 포인터가 움직이는 족족 다시 합성을 해야 합니다. 

필자는 wlroots라는 라이브러리를 커스텀해서 Asahi Linux의 남은 오버레이 플레인을 커서 플레인으로 사용하고 있기는 하지만, 이는 오버레이 플레인을 낭비하는 결과를 초래합니다. 다행히도 지금은 비디오 H/W 가속 디코딩(decoding) 기능이 아직 Asahi Linux에 구현되어 있지 않기 때문에 오버레이 플레인을 커서용으로 전용하여 사용하고 있지만, 이 기능이 구현되어 Asahi Linux가 오버레이 플레인을 비디오 출력에 사용한다면 그때는 또 Compositor와 관련된 로직을 변경해야 합니다. (전체는 아니더라도 부분적으로라도...)

결국 지금까지 M1/M2에서 GPU 가속을 구현한 것이 1차적인 성과였다면, 앞서 언급한 DCP의 수많은 기능을 온전히 구현해내는 것이 2차 구현이자 완성판으로 가는 길일 것입니다. 지금 그들은 그 길을 묵묵히 걷고 있는 것 같습니다. 궁극적으로 지금까지 미진했던 디스플레이관련 기능들, 성능 최적화 및 비디오 하드웨어 디코딩이나 웹캠 처리 같은 목표를 향해서 말이죠.

- - - - - - - - - 

필자도 각 분야에 대한 기술적인 이해도는 깊지 않습니다. 너무나 전문적인 분야들이기 때문에 실제적으로 Asahi Team이 이뤄 나가는 일들이 얼마나 중요하고 어려운지 가늠하기 어렵습니다. 그들이 수년에 걸친 노력으로 얻어낸 결과물은 단 몇 줄로 사용자들에게 공개될 뿐입니다. 그래서 일반 사용자들은 그 기술적 깊이와 구현의 난이도를 쉽게 이해할 수 없습니다. 관련된 일을 하거나 전공을 하거나 기술을 이해하고 있는 분들이라면 그 성과가 얼마나 큰 것인지를 알 수 있겠지요. 

결론적으로 그들은 잘 해나가고 있고, 느리지만 사용자들이 원하는 것들을 하나하나 만들어 내놓고 있습니다. 그리고 그 속도는 점점 빨라지고 있는 것 같습니다. 이 소중한 결과물을 누리고 있는 한명의 사용자로서 늘 그들을 응원하고 감사한 마음을 전하고 싶습니다. 

공유하기 링크
Comments