내 커널을 컴파일하려고 하는데 이해하는 데 몇 가지 문제가 있습니다.
나는 kernel.org에서 사용 가능한 최신 커널을 사용하고 있습니다.
현재 문제는 이 커널이 armv7(armhf) 아키텍처에 적합한지 확인하기 위해 어떤 옵션이 필요한지에 대한 단서가 없다는 것입니다. arm7용 커널을 컴파일하는 데 도움이 될 수 있는 다른 소스의 목록이나 링크가 있는 사람이 있습니까? 예, 이전에 검색해 봤지만 도움이 될 것 같은 내용은 찾지 못했습니다. 이 커널을 실행하려는 동일한 아키텍처에서 컴파일했습니다(중요한 경우).
답변1
실행 중인 armv7hf 시스템에서 컴파일하면 자동으로 armv7hf 커널이 생성됩니다. 이것을 시도해
file <kernel-binary>
보면 어떤 유형의 커널인지 알려줄 것입니다. 내 기억이 맞다면 하드 로드(hf)는 "Target Architecture" 하위 트리 어딘가에서 선택됩니다.
이 외에도 다양한 아키텍처를 사용하는 호스트에서 자체 툴체인(교차 컴파일)을 구축하고 해당 툴체인을 사용하여 이 대상에 대한 커널 및 애플리케이션을 생성할 수 있는 옵션이 있습니다.
옵션 2를 사용하려면 "buildroot" 또는 기타 내장 배포판을 살펴보는 것이 좋습니다. buildroot에서 커널을 구성하고 빌드합니다. 사용하려는 올바른 컴파일러와 올바른 대상 아키텍처를 선택하십시오. 빌드 프로세스 후, buildroot 프로세스의 출력(output/ 또는 유사한 디렉토리에 있음)은 현재 생성된 커널/abi에 대한 커널, ramimmage, 컴파일러 및 모든 바이너리를 저장합니다.
행운을 빌어요!
답변2
일반적으로 마더보드/SoC 제조업체는 필요한 패치(예: 비디오 가속용)가 포함된 Linux 소스 트리의 자체 포크를 배포합니다. 즉, 수정 없이는 기본 커널이 장치에서 부팅될 가능성이 없습니다. 제조업체의 위키/포럼 사이트를 방문하면 커널 소스 코드에 대한 링크와 소스에서 사용자 정의 커널을 컴파일하는 방법을 설명하는 간단한 설명을 볼 수 있습니다.
예:
http://odroid.com/dokuwiki/doku.php
http://wiki.solid-run.com/doku.php?id=products:imx6:software:development:kernel