![ARM 보드용 Linux 커널을 컴파일할 수 없습니다. [닫기]](https://linux55.com/image/85282/ARM%20%EB%B3%B4%EB%93%9C%EC%9A%A9%20Linux%20%EC%BB%A4%EB%84%90%EC%9D%84%20%EC%BB%B4%ED%8C%8C%EC%9D%BC%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4.%20%5B%EB%8B%AB%EA%B8%B0%5D.png)
저는 ARM 보드(versatilepb)용 Linux 커널(2.6.32.70)을 컴파일하려고 합니다. 이것이 임베디드 Linux에서의 첫 번째 단계입니다.
컴파일이 끝나면 2개의 압축된 커널 이미지가 가 아닌 /arch/x86/boot
및 디렉토리에 생성되므로 ARM 게스트에 대해 컴파일할 수 없는 것처럼 보입니다./arch/i386/boot
/arch/arm/boot
먼저 make versatile_defconfig
기본 구성 파일을 생성하기 위해 호출합니다. 또한 make menuconfig
옵션을 활성화하기 위해 입력했습니다 Use the ARM EABI to compile the kernel
. 그런 다음 make V=1
루트 권한으로 컴파일했습니다(루트 권한이 없으면 작동하지 않습니다). 내 환경에서는 이 두 변수가 $ARCH=arm
및 로 정의됩니다 $CROSS_COMPILE=arm-linux-gnueabi-
.
설정 파일을 생성한 후에도 컴파일 과정에서 문제가 많이 발생하는 것은 정상인가요? 문제는 커널 압축 모드, 프로세서 제품군에 관한 것입니다. 마지막 문제의 경우 비슷한 CPU인 x86만이 답인 것 같습니다!
답변1
마침내 작동했습니다. 내 커널 디렉토리가 make clean && make mrproper
.
아카이브에서 추출한 커널 소스로 재부팅한 후에는 make V=1
루트 없이도 재부팅할 수 있으며 문제가 발생하지 않습니다. 이 디렉토리에는 /arch/arm/boot
압축된 커널의 이미지(zImage)도 포함되어 있습니다.