서로 다른 아키텍처에는 서로 다른 Linux 커널이 있습니까?

서로 다른 아키텍처에는 서로 다른 Linux 커널이 있습니까?

ARM 아키텍처용 사용자 정의 커널을 구축하려면 다음이 필요합니다.

a) kernel.org에서 커널을 다운로드하고, 커널을 변경하고, 일부 크로스 컴파일러(소스 등)를 사용하여 빌드합니다.

b) 어딘가에서 ARM 특정 커널을 찾고, 일부 패치를 찾고, 일부 ARM 특정 도구를 사용하여 컴파일하시겠습니까?

ARM 아키텍처용으로 맞춤형 코어를 구축할 수 있습니까?

나는 일반적으로 커널에 대해 거의 알지 못합니다.

답변1

Linux 커널 소스 코드 tarball 및 git 리포지토리에는 지원되는 모든 아키텍처(예: ARM)에 대한 코드가 포함되어 있습니다.

이 하위 디렉토리에는 Documentation/arm/계속 진행하기 전에 확인해야 할 일부 ARM 관련 문서가 포함되어 있습니다.

ARM 관련 코드는 하위 디렉터리에 있습니다 arch/arm/. 일부 ARM 관련 드라이버는 drivers/*/하위 디렉터리에 있을 수 있습니다.

그러니 계속해서 kernel.org에서 일반 커널 타르볼을 다운로드하고 Documentation/arm/README다음과 같이 읽기 시작하세요.

커널 컴파일

ARM Linux용으로 컴파일하려면 GNU 확장을 사용하여 ARM ELF 코드를 생성할 수 있는 컴파일러가 필요합니다. GCC 3.3 알려진...

이 문서를 읽고 나면 많은 답변을 얻을 수 있을 것 같습니다(그리고 더 많은 질문이 있을 수도 있지만 주저하지 말고 질문하세요 :).

답변2

커널 소스 코드는 모든 아키텍처에서 동일합니다. 일부 아키텍처별 어셈블리를 사용하여 주로 C로 작성되었습니다.

ARM용으로 빌드하는 가장 쉬운 방법은 이미 ARM에서 실행하는 것입니다. 그런 다음 일반 컴파일 문서를 따르기만 하면 됩니다.

다른 아키텍처에서 빌드하려는 경우 이를 크로스 컴파일이라고 합니다. 나는 이 작업을 직접 해본 적이 없지만 이 작업을 수행하려면 크로스 컴파일 툴체인을 설정해야 한다는 것을 알고 있습니다.

이 가이드그러면 시작해야 합니다.

관련 정보