Lobsters

Nura (postmarketOS): The road to daily-drivable mainline phones

Nura(postmarketOS): 메인라인 리눅스폰을 일상적으로 쓰기까지

Nura가 메인라인 리눅스 기기를 일상적으로 쓸 수 있게 만드는 새 ‘main’ 기기 범주와 편입 기준을 정했습니다. 업스트림 커널, 하드웨어 CI, 최소 5명의 유지보수팀을 요구하며, 첫 후보 기기 세 대를 중심으로 팀을 꾸립니다.

AI 요약

스마트폰에서 메인라인 리눅스를 실행하는 수준을 넘어, 일반 사용자도 일상적으로 쓸 수 있는 기기로 만드는 과정은 아직 남아 있습니다. Nura 팀은 이를 위해 Duranium, Hardware CI, 레퍼런스 기기라는 세 축을 추진합니다. 이번 글은 그중 레퍼런스 기기와 새 ‘main’ 범주를 설명합니다. 팀원들은 Nura가 지원하는 기기 가운데 세 대를 골라 유지보수팀을 만들고, 일상 사용에 적합한 상태까지 끌어올릴 계획입니다.

‘main’ 범주의 기준

postmarketOS는 기기를 ‘main’, ‘community’, ‘testing’, ‘downstream’, ‘archived’로 분류합니다. v24.12 릴리스에서 ‘main’ 범주가 비워진 뒤, PMCR-0009 논의를 거쳐 범주의 목적과 요건을 다시 정했습니다. 이제 ‘main’은 기능이 더 많이 작동하는 기기만 가리키지 않습니다. Nura 팀이 장기간 기기를 관리하는 데 책임을 지고, 하드웨어 CI로 충분히 검증된 포트를 유지한다는 뜻도 담습니다. 다른 범주의 기기 유지보수자도 새 기준을 참고해 신뢰성과 관리 체계를 높일 수 있습니다.

업스트림 중심의 포트

‘main’ 기기는 UEFI로 부팅해야 합니다. 휴대전화에서는 2단계 부트로더를 거치는 방식도 가능합니다. 커널은 업스트림 버전을 사용하고, 패치는 엄격하게 최소화해야 합니다. 기기별로 갈라진 패키지에 의존하지 않아야 하며, 대상 아키텍처에 맞는 범용 기기 패키지를 사용해야 합니다.

이 기준을 충족하면 포트가 사실상 메인라인에 가까워집니다. Nura뿐 아니라 다른 리눅스 배포판에서도 비교적 쉽게 활용할 수 있습니다. ‘main’ 범주의 aarch64 기기에는 UI별 이미지를 하나씩 제공해 여러 기기에 같은 이미지를 플래시하도록 할 계획입니다. 커널 보안 패치도 범용 커널 패키지를 한 번 갱신한 뒤 ‘main’ 기기 전체에 적용하는 방식으로 처리합니다. PMCR 병합 요청에는 댓글 151개가 달렸으며, 이 논의를 거쳐 기준을 마련했습니다.

일상 사용에 필요한 기능

기기는 흔한 사용 상황을 감당할 만큼 기능이 작동해야 합니다. 휴대전화라면 통화, SMS, 모바일 데이터, Wi-Fi, 오디오, 충전, Bluetooth, 카메라가 대표 항목입니다. 지문 인식기처럼 드라이버가 없어 작동하지 않는 기능은 예외로 둘 수 있습니다. 다만 예외 사유는 기기 유지보수팀이 설명해야 하며, Nura 팀이 전체 기능 목록을 바탕으로 ‘main’ 편입에 충분한지 판단합니다.

유지보수팀의 역할

기기마다 유지보수자 최소 5명으로 팀을 구성하고, 구성원 과반은 Nura 팀 소속으로 두는 것이 목표입니다. 초기에는 인원과 담당 범위를 줄여 시작해도 됩니다. 팀은 정기 회의를 열고 장기적으로 기기를 관리해야 합니다. 커널 회귀 문제와 새 커널 개발을 맡고, 커뮤니티 제보와 하드웨어 CI 회귀를 분류합니다. 기기 문서를 관리하고, CI에 필요한 배선과 준비 상태를 확인하며, 필요한 경우 수동 테스트도 진행합니다.

기기를 ‘main’으로 옮기는 절차

관심 있는 사람은 new-device-teams 프로젝트의 기존 이슈에 댓글을 달아 팀에 합류하거나, 새 이슈를 열어 팀을 만들 수 있습니다. 새 이슈가 생기면 Nura 인프라팀이 Matrix와 IRC 채널을 연결하고 pmaports 라벨을 만듭니다. 수동 절차이므로 일주일 안에 진행되지 않으면 개발자 채팅방에 문의해 달라고 안내합니다.

잠재 팀원이 두 명 이상 모이면 모두가 참석할 수 있는 회의 시간을 정하고 정기 회의를 시작합니다. 회의에서 ‘main’ 요건을 기기에 적용할 방법을 논의합니다. 모든 기준을 충족한 뒤 병합 요청을 보내 범주 이동을 신청합니다. 이 과정은 오래 걸릴 수 있지만, 편입 준비를 하는 동안에도 기기 포트의 상태는 개선될 것으로 기대합니다.

첫 후보와 참여 방법

첫 후보 세 대는 모두 SM7325 SoC를 사용합니다. Nura는 이 칩의 메인라인 지원이 상당히 진행돼 기준을 충족할 가능성이 있다고 봅니다. 세 기기 모두 UART를 사용할 수 있습니다. Radxa Dragon Q6A는 싱글보드 컴퓨터라 실제 휴대전화보다 먼저 ‘main’에 들어가기 쉬울 것으로 봅니다. Fairphone은 프로젝트 가치와 방향이 잘 맞는 제조사로 언급했고, Motorola Edge 30은 일부 지역에서 구하기 쉬운 저렴한 휴대전화 후보입니다.

프로젝트 작업은 대부분 자원봉사에 의존해 일정을 약속하기 어렵습니다. 기부금은 개발과 하드웨어 CI 장비 구매에 쓰이며, 일부 상황에서는 q6voice(d) 같은 개발 작업을 직접 지원할 수도 있습니다. 보조금 신청도 진행 중입니다. 코딩 외에도 테스트, 일정 조율, 이슈 분류처럼 팀을 돕는 일이 있습니다. 다른 기기 포트에 관심이 있다면 기존 이슈를 확인하거나 새 이슈를 열어 유지보수팀을 꾸릴 수 있습니다.

Lobsters 반응

  • @valpackett — Motorola Edge 30이라니, 저도 그 기기와 관련해 한 일이 있습니다. :)
  • @fazalmajid — 아쉽게도 4년보다 최신인 지원 휴대전화는 없는 것 같네요. Pinephone도 마찬가지고요.
    • @gnafuthegreat — 좋은 점은 새 기준을 어떻게 바꾸면 되는지 제시했다는 거예요! 새 기준 일부를 충족하는 기기가 많아서 기대 수준을 유지하면서 목록을 꽤 늘릴 여지가 있습니다. 수정: 아, ‘4년보다 최신’이라는 뜻이군요. 그러려면 기기 제조사에 연락해서 불필요한 어려움을 만들지 말라고 해야겠네요.
    • @singpolyma — 지난 4년 동안 언급할 만한 발전이 있었나요?

원문: postmarketOS / 번역·요약: Trawling