SD카드 / NVMe / eMMC 멀티부트 메뉴 구현 관련 문의

안녕하세요, TOPST D3-G를 활용해 개인 프로젝트를 진행 중인 사용자입니다.

보드를 사용하면서 한 가지 기능을 구현해보고 싶어 커뮤니티에 도움을 요청드립니다.

구현하고 싶은 것

하드커널의 ODROID-M1의 petitboot처럼, 부팅 시 저장 장치를 선택할 수 있는 메뉴를 TOPST D3-G에서도 사용하고 싶습니다.

선택 대상으로 생각하고 있는 것:

  • eMMC (기본 Ubuntu)
  • SD카드 (Ubuntu 복제본, 레트로 게임 OS 등 다양하게 활용)
  • NVMe SSD

현재 검토 중인 접근 방식

TCC 부트로더가 eMMC 고정 부팅 구조(Single Boot)이고 SD 부팅을 공식 지원하지 않아, petitboot와 동일한 원리인 kexec를 활용하는 방향을 검토하고 있습니다.

[TCC 부트로더] → [eMMC Ubuntu] → [부팅 메뉴 스크립트] → kexec → [선택한 OS]
  1. eMMC로 항상 먼저 부팅 (현재 구조상 불가피)
  2. 부팅 초반 systemd 서비스에서 메뉴 표시
  3. 선택한 장치의 커널+rootfs를 kexec로 로드해 전환

커널은 CONFIG_KEXEC=y로 재빌드가 필요한데, topst-development/kernel-5.10 소스가 공개되어 있어 이 부분은 직접 진행할 수 있을 것 같습니다.

문의 드리는 내용

부트로더 관련해서 GitHub를 살펴보니 아래 두 레포지토리가 있었습니다:

현재 두 레포 모두 README만 있고 소스 코드는 올라와 있지 않은 상태인데, 혹시 아래 사항들을 여쭤봐도 될까요?

  1. 부트로더 소스 공개 계획이 있으신지요?
    U-Boot는 GPL v2 라이선스로, 바이너리 배포 시 소스 제공 의무가 있어 여쭤봅니다. TOPST D3-G 부트로더가 U-Boot 기반이라면 소스를 공개해 주실 수 있는지 궁금합니다.

  2. 소스 공개가 어렵다면, 부트로더 관련 문서라도 제공해 주실 수 있는지요?
    아래 내용만 문서화되어 있어도 커뮤니티 활용도가 크게 높아질 것 같습니다:

    • 부팅 순서 및 파티션 구조
    • 커널 커맨드라인 파라미터 수정 방법
    • SD카드, NVMe 등 대체 부팅 소스 활성화 가능 여부

환경 정보

  • 보드: TOPST D3-G (TCC8050, Cortex-A72 × 4, 6.9 GB RAM)
  • 현재 OS: Ubuntu 22.04.5 LTS (eMMC)
  • 커널: 5.10.205-tcc (CONFIG_KEXEC 현재 비활성화 확인)
  • 부팅 파티션 (mmcblk0p2): Android boot image 포맷

구현에 성공하면 과정과 결과를 커뮤니티에 공유할 예정입니다.
바쁘신 중에 읽어주셔서 감사합니다. 어떤 형태로든 답변 주시면 큰 도움이 될 것 같습니다.