우분투 호스트에서 커널을 어떻게 교차 컴파일합니까?


16

커널 작동 방식에 대해 더 알고 싶습니다. 이것의 일부는 직접 컴파일하는 것입니다. Ubuntu 호스트에서 커널을 어떻게 크로스 컴파일합니까?

답변:


24

예비

먼저 필요한 필수 구성 요소를 설치해야합니다. sudo액세스 권한이 있다고 가정합니다 .

sudo apt-get install git ncurses-dev make gcc-arm-linux-gnueabi
  • git Linux 커널 팀에서 사용하는 버전 제어 시스템입니다.
  • ncurses빌드 콘솔 메뉴 용 라이브러리입니다. 에 필요합니다 menuconfig.
  • make 우리를 위해 컴파일을 실행합니다.
  • gcc-arm-linux-gnueabi 크로스 컴파일러입니다.

다음으로 소스를 검색해야합니다.

git clone https://github.com/raspberrypi/linux raspberrypi-linux
cd raspberrypi-linux

그러면 소스 코드가 호출 된 디렉토리로 복제 raspberrypi-linux되어 변경됩니다.

편집

먼저 다음을 실행하여 구성 파일을 이동해야합니다.

cp arch/arm/configs/bcmrpi_cutdown_defconfig .config

그런 다음 커널 빌드를 구성하십시오.

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- oldconfig

선택 사항 : menuconfig를 사용하여 빌드 사용자 정의

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- menuconfig

그런 다음 컴파일을 실행하십시오.

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
참고 문헌

1
crosstool-ng 사용에 대한 대안을 제공해 주셔서 감사합니다 .
earthmeLon

내 경우에는 CROSS_COMPILE은 접두사이므로 끝 부분에 gcc가 없어도 충분합니다. make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabi- -k
danger89


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.