임베디드 리눅스 커널 컴파일부터 타겟 플랫폼 이미지 생성까지

임베디드 리눅스 커널 컴파일부터 타겟 플랫폼 이미지 생성까지

그래서 저는 최근 MIPS 명령어 세트를 실행하는 Ingenic SoC 기반 RS-97 게임을 구입했습니다. 공급업체는 대상 SoC용 Linux 커널을 컴파일하는 방법에 대해 모호한 지침을 제공합니다. 따라서 공급업체 지침과 온라인 검색에 따르면 이 플랫폼에 대한 임베디드 Linux 이미지를 얻으려면 다음이 필요합니다.

  1. 컴파일 도구 체인(Mips 기반 아키텍처용 mipsel)
  2. 툴체인을 사용하여 특정 드라이버/BSP를 사용하여 Linux 커널 컴파일
  3. 루트 파일 시스템 컴파일 - Busybox가 권장함(이유는 확실하지 않음)
  4. 대상 SoC에 대해 uBoot 컴파일
  5. 대상 특정 파티션 테이블을 사용하는 파티션 스토리지(예: sd)
  6. 전체 이미지를 SD로 플래시

그렇다면 문제는 왜 루트 파일 시스템이 커널 이미지와 분리되어 있느냐는 것입니다. 파일 시스템 생성에서 busybox는 어떤 역할을 합니까? 또한 Linux 이미지가 루트 파일 시스템 없이 컴파일된 경우 드라이버가 루트 파일 시스템의 /sys 디렉터리에 있도록 두 이미지를 어떻게 병합합니까?

답변1

이것은 매우 큰 질문이므로 간단히 요약해 보겠습니다.

루트 파일 시스템이 커널 이미지와 분리된 이유는 무엇입니까?

커널 이미지는 임베디드 Linux 프로젝트를 위한 프레임워크를 제공하는 kernel.org(원하는 경우 수정할 수 있지만 대부분의 사람들은 수정하지 않음)에서 제공하는 실행 파일입니다. 루트 파일 시스템은 코드와 구성이 있는 곳입니다. 커널은 루트 파일 시스템을 로드합니다.

파일 시스템 생성에서 busybox는 어떤 역할을 합니까?

Busybox는 명령줄 인터페이스, 파일 목록, 프로세스 목록, 파일 복사 등과 같은 많은 유용한 기능을 제공하는 응용 프로그램입니다. Busybox의 기능은 이름이 어떻게 지정되는지에 따라 변경됩니다. 즉, 앱의 이름을 바꾸면 앱이 다른 기능을 수행합니다. 이는 많은 수의 유틸리티를 작은 파일 시스템에 패키징하는 매우 효율적인 방법입니다.

또한 Linux 이미지가 루트 파일 시스템 없이 컴파일된 경우 드라이버가 루트 파일 시스템의 /sys 디렉터리에 있도록 두 이미지를 병합하려면 어떻게 해야 합니까?

커널에 몇 가지 매개변수를 제공하여 루트 파일 시스템을 찾을 위치를 알려줄 수 있습니다. 매개변수를 설정해야 합니다 root. 바라보다커널 명령줄 매개변수.

관련 정보