Google은 핵심 Linux 커널로 Pixel 10을 부팅하기 위한 장치 트리를 공개했습니다.

메인라인 Linux 커널에서 Pixel 10용 장치 트리 해독

Google이 최근 Pixel 10용 장치 트리를 출시하면서 메인라인 Linux 커널에서 이러한 장치를 부팅하는 새로운 시대가 열렸습니다. 이번 발표는 멀티코어 ARM Cortex X4, A725, A520 아키텍처를 기반으로 하고 강력한 Imagination DXT-48-1536 그래픽 유닛을 탑재한 강력한 Google Tensor G5 SoC를 탑재한 Pixel 10, Pixel 10 Pro, Pixel 10 Pro XL 스마트폰의 공개에 이은 것입니다. 하지만 임베디드 Linux 시스템 부팅에서 이러한 장치 트리의 역할은 정확히 무엇일까요? 기본적으로 장치 트리는 Linux 커널이 Pixel 10의 하드웨어를 정확하게 식별하고 구성하여 드라이버를 조정하고 전원 켜기 프로세스 시작부터 필요한 구성 요소를 초기화할 수 있도록 합니다. 따라서 기존의 모놀리식 방식(모놀리식 방식)을

하드웨어에 대한 모듈식 선언적 설명으로 대체합니다. 간단히 말해, 장치 트리는 DTS(장치 트리 소스)로 코딩된 파일로, 장치의 하드웨어 토폴로지(프로세서, 버스, 컨트롤러, 통합 장치, GPIO, 클럭 등)를 선언합니다. Linux 커널은 시작 시 이 파일을 읽고 그에 따라 동작을 조정합니다. 이 방법은 모듈성을 향상시키고 코드 유지 관리를 용이하게 하는데, 특히 Pixel 10은 복잡한 하드웨어 아키텍처를 사용하기 때문에 더욱 그렇습니다. Pixel 10용 이러한 파일 출시는 전략적으로 중요한데, 기존에는 자체 수정된 커널을 사용하는 Android가 주도해 온 스마트폰 환경에서 주요 Linux 커널의 광범위한 채택을 예고하기 때문입니다. 이러한 기기를 업스트림 커널로 부팅할 수 있게 됨으로써, 더욱 개방적이고 보편적인 소프트웨어 플랫폼에서 실행되는 대체 ROM과 혁신적인 활용 방안을 개발할 수 있는 길이 열립니다. 장치 트리의 역할:

부팅 시 하드웨어를 식별하고 구성합니다.

Pixel 10 아키텍처:

  • ARM 코어와 Imagination GPU를 탑재한 Tensor G5 SoC입니다. Google의 우선순위:
  • 주요 Linux 커널로 부팅을 지원합니다. 영향:
  • 모바일 Linux 개발 및 맞춤형 ROM을 용이하게 합니다. 과제:
  • DTS를 통해 Pixel 10의 하드웨어 사양에 적응합니다. Google이 Linux 환경에서 Pixel 10용 장치 트리를 통합하여 하드웨어 관리 및 시스템 성능을 개선하는 방법을 알아보세요.
  • Pixel 10 스마트폰에 메인라인 Linux 커널이 미치는 기술적 영향
Pixel 10의 시작 시점에 메인라인 Linux 커널(업스트림 커널이라고도 함)을 통합함으로써 모바일 임베디드 시스템 분야에 몇 가지 중요한 혁신이 이루어졌습니다. 첫째, 공식 커널은 Linux 커뮤니티에서 검증된 대부분의 수정 사항과 개선 사항을 통합하여 최적의 안정성과 더 나은 장기적인 하드웨어 호환성을 보장합니다.

예전부터 Android는 독점 또는 제조업체별 패치를 통합하는 맞춤형 버전의 커널을 사용해 왔습니다(Google이 그 예입니다). 이러한 변형의 확산은 코드 유지 관리를 복잡하게 만들고 개별 개발자가 하드웨어와 효과적으로 상호 작용하는 능력을 제한합니다. Pixel 10의 메인라인 Linux 커널에 장치 트리를 통합함으로써 다음과 같은 주요 이점을 얻을 수 있습니다.

향상된 호환성: 여러 모델에 단일 커널을 사용하여 코드 중복을 줄였습니다. 간편한 업데이트:

공식 Linux 채널을 통해 업데이트가 더 빠르고 안전해졌습니다.

대체 ROM에 대한 개방성:

  • 독점 부트로더 및 폐쇄형 블롭에 대한 의존도 감소. 드라이버 개선:
  • 커뮤니티 기여는 모든 사용자에게 도움이 됩니다.
  • 그러나 이러한 발전에는 여전히 몇 가지 장애물이 있습니다. 특히 이러한 패치는 아직 매우 초기 단계이며, LKML(Linux Kernel Mailing List) 토론에서 언급된 바와 같이 @mainline 커널을 실행하려면 Google에서 아직 출시하지 않은 부트로더가 필요합니다. 이 부팅 프로세스는 현재 initramfs의 간단한 UART 프롬프트로 제한되어 있습니다. 이는 완전한 시스템 작동을 보장하지는 않지만 유망한 경로를 열어주는 초기 단계입니다. 따라서 완전히 작동하는 시스템으로의 포팅은 아직 진행 중이지만, 이러한 접근 방식은 최신 모바일 기술을 지원하는 오픈소스 소프트웨어의 강력함과 유연성을 보여줍니다. 이러한 접근 방식은 더욱 투명하고 협력적인 미래를 위해 Android와 주요 Linux 배포판 간의 기반을 조화시키려는 노력의 일환입니다.
  • 현재 과제: 미공개 부트로더, 기능 제한

전망:

Pixel 10에서 전체 업스트림 커널 실행 장기적 이점: 아키텍처 및 기기에 대한 확장된 지원

  • Linux 커뮤니티: Tensor G5 드라이버 개발에 적극적으로 참여
  • Pixel 10에서 Linux 부팅과 관련된 부트로더의 역할 및 제약 사항 Pixel 10과 같은 스마트폰에서 Linux 시스템을 부팅하는 것은 단순히 장치 트리를 정의하는 것 이상의 구체적인 기술적 과제를 안고 있습니다. 이 프로세스의 핵심 구성 요소 중 하나는 하드웨어를 초기화하고 Linux 커널을 실행하는 매우 저수준 소프트웨어인 부트로더입니다.
  • 현재, 장치 트리를 활용하고 메인 Linux 커널 부팅을 활성화하는 데 필요한 부트로더는 아직 공개적으로 제공되지 않아 심각한 병목 현상을 야기합니다. 이 부트로더는 특히 다음을 수행해야 합니다. Linux 커널과 initramfs를 올바르게 로드합니다.
  • 하드웨어 및 보안 보호 기능을 구성합니다. 필수 주변 장치 인터페이스(UART, USB 등)를 초기화합니다.

디버깅을 위해 터미널(UART 프롬프트)을 통한 저수준 액세스를 지원합니다.

이 단계는 효율적인 부트로더가 하드웨어의 잠재력을 최대한 활용하여 커널이 오류 없이 부팅되고 전원이 켜질 때 모든 구성 요소와 상호 작용할 수 있도록 보장하므로 매우 중요합니다. 예를 들어, 메모리 컨트롤러와 시스템 클록을 구성해야 하는데, 이는 Pixel 10 시리즈에 사용되는 Google Tensor G5 SoC에 매우 특화된 작업입니다. Pixel 10의 경우, 장치 트리는 이미 제공되지만 아직 배포되지 않은 이 부트로더를 통해서만 완벽하게 작동할 수 있습니다. 이 부트로더는 운영 체제가 스마트폰을 완전히 관리하기 전에 초기 펌웨어에서 Linux 커널로의 전환을 관리합니다.이러한 접근 방식은 주요 Linux 커널과 호환되는 원활한 부팅 프로세스를 위해 특정 부트로더 작업이 매우 중요한

Asahi Linux를 Apple Silicon으로 포팅한 프로젝트와 유사하다는 점에 유의해야 합니다.

  • 부트로더의 주요 기능:
  • 부팅, 디버깅, 하드웨어 초기화
  • 현재 제한 사항:
  • 독점적이고 공개되지 않은 부트로더

유사한 예:

Apple M3에서 Asahi Linux 개발

영향: 주요 커널의 완전한 사용 지연

  • Google이 Linux 기반 Pixel 10용 주변 장치 트리를 공개하여 하드웨어 드라이버의 개발 및 호환성을 촉진하는 방법을 알아보세요. 고급 모바일 기기에 대한 메인라인 Linux 지원의 과제와 전망
  • Pixel 10과 같은 모바일 기기에 메인라인 Linux를 포팅하는 것은 모바일 및 데스크톱 생태계의 융합에 있어 중요한 전환점을 나타냅니다. 수년 동안 Android와 표준 Linux 간의 커널 파편화로 인해 스마트폰에서 GNU/Linux 배포판의 광범위한 채택이 저해되었습니다. 그러나 Google이 적합한 기기 트리를 제공하면서 이러한 연결 고리가 구축되기 시작했습니다.
  • 이러한 지원의 주요 이점은 다음과 같습니다. 소프트웨어 일관성:
  • 업데이트 및 유지 관리를 위한 단일 기반 개방성:
오픈소스 소프트웨어 및 사용자 정의에 대한 간편한 접근

보안:

공식 커널 및 유럽 보안 패치의 모범 사례 적용

커뮤니티:

  • 하드웨어 지원의 지속적인 개선을 보장하는 협력적 역학 이러한 발전은 모바일 기기의 특정 제약 조건에 적응하도록 설계된 미니멀리스트 도구 및 배포판의 등장과 일치하며,
  • 미니멀리스트 Linux 배포판 과 같은 자료에서 설명된 원칙을 따릅니다. 궁극적으로 이는 폐쇄형 구성 요소에 의존하지 않고 안전하고 유연한 시스템을 제공하는 안드로이드에 대한 신뢰할 수 있는 대안으로의 문을 열어줍니다. 더 나아가, 이러한 개발은 데비안 LAMP 기반 경량 서버 환경과 고급 임베디드 시스템 설계에 직접적인 영향을 미쳐 모바일부터 기존 인프라까지 모든 영역에서 리눅스 커널의 다재다능함을 보여줍니다.
  • 기대되는 혁신: 모바일 리눅스 시스템에 대한 완벽한 지원
  • 자유 소프트웨어에 대한 영향: 독점적인 종속성 감소

더 폭넓은 채택: 라즈베리 파이, 서버 및 노트북에 미치는 영향쉬운 통합:

모바일 기기에서 안전한 원격 연결을 지원합니다.

  • Linux 개발에 Pixel 10의 디바이스 트리를 실질적으로 활용하는 방법 Linux 개발자와 마니아들에게 이러한 디바이스 트리 출시는 메인 커널을 통해 Pixel 10의 부팅 프로세스를 탐색하고 맞춤 설정할 수 있는 절호의 기회를 제공합니다. 이는 부팅 프로세스의 각 단계에서 하드웨어 호환성을 수정, 테스트 및 개선할 수 있는 첫 번째 기술적 이정표입니다.
  • 이 개발에 참여하려는 분들을 위한 몇 가지 구체적인 단계는 다음과 같습니다.
  • 패치 다운로드: LKML 토론 스레드에서 다운로드할 수 있으며, 해당 패치에는 적절한 DTS 파일이 포함되어 있습니다.
  • 구조 분석: 트리의 노드와 속성을 이해하고 하드웨어와 어떻게 대응하는지 파악합니다. 커널 구성: 디바이스 트리를 커널 컴파일에 통합합니다.

initramfs 준비:

커널 부팅에 필요한 최소 환경으로 초기 테스트를 용이하게 합니다. 부팅 프로세스 테스트: 적절한 부트로더를 사용하여 UART 프롬프트가 나타날 때까지 Pixel 10에서 메인 Linux 커널을 실행합니다.

더 자세히 알아보려면 수많은 온라인 튜토리얼에서 Linux 부팅 프로세스를 사용자 지정하고 최적화하는 방법, 그리고 시스템과 상호 작용하는 데 필요한 필수 명령을 사용하는 방법을 설명합니다. 여기에는 디버깅, 커널 모듈 관리 및 부팅 오류 진단을 위한 고급 방법 사용 등이 포함됩니다.

  1. 이러한 전문 지식은 특히 맞춤형 ROM을 구축하거나 Linux 기반 임베디드 시스템을 개발하는 데 매우 중요합니다. 이러한 시스템에서는 마이크로초 단위의 성능과 메모리 사용량이 매우 중요합니다.
  2. 주요 단계: 패치, 컴파일, initramfs, 부트로더
  3. 권장 도구: 크로스 컴파일 도구, LKML, Linux 환경
  4. 참고 자료:
  5. 장치 트리 문서, 일시 중단된 작업 관리 튜토리얼

이점:하드웨어 및 부팅 프로세스에 대한 심층적인 이해

Google은 Linux에서 Pixel 10용 주변 장치 트리를 공개하여 하드웨어 드라이버의 개발 및 호환성을 용이하게 했습니다.