상세 컨텐츠

본문 제목

커널빌드할때 뭐 설정할건지 뭉탱이로 떠요(커널 deconfig설정 불일치로 인한 오류)

CS지식 학습

by Tabris4547 2024. 3. 10. 18:15

본문

728x90

사건의 발단

라즈베리파이 커널을 크로스컴파일 하는 중.

빌드에서 이런 메세지가 뜨면서

어떻게 설정한건지에 대한 질문 메세지가 뜬다.

뭐가 뭔지 잘 모르겠어서 계속 y를 누르기를 반복.

하지만 질문 메세지는 네버엔딩.

결국 엔터키를 꾹 눌러서 다 넘기는 방법을 택했다.

 

이유가 뭘까??

전문가 분께 왜 저런 메시지가 뜨는지 여쭤봤다.

그 이유는 deconfig를 했을때의 설정과

빌드했을때의 설정이 서로 다르기 때문.

빨간색 동그라미 친 부분을 보면

defconfig부분은 ARCH=arm인데

modules 부분은 ARCH=arm64이다.

빨간줄을 보면 크로스 컴파일 설정도 각각 다름을 알 수 있다.

 

 

원래는 커널 config를 설정할 때, 하나하나 전부 다 설정해야한다.

그런데 일반적인 사용자입장에서는 모든 옵션을 전부 다 기억할 수 없고

안다하더라도 하나하나 전부 입력하는 건 너무 힘들고 귀찮다.

그래서 defconfig, 즉 default config를 사용한다.

이렇게 되면 굳이 일일이 다 config를 체크할 필요가 없어진다.

그런데, 나는 위에서 아키텍쳐가 arm일때의 경우에 대한 defconfig를 했다.

(찾아보니 32비트인 케이스)

그런데 모듈은 64비트인 케이스를 했으니 당연히 defconfig설정이 되어있지 않아

커널 입장에서는 '커널 설정 새로 입력해주세요'가 되버린 것이다.

 

해결

 

https://www.raspberrypi.com/documentation/computers/linux_kernel.html#cross-compiling-the-kernel

 

 

공식문서에 가면 어떻게 빌드를 하는지 친절하게 나와있다.

내가 처음에 defconfig한 설정은 라파 2,3,3+ 인 32비트고

그거에 맞게 빌드해주면 된다.

다시 빌드하면 defconfig 설정 명령어없이 빌드가 되고

이후 최종목표인 vmlinux가 생성됨을 볼 수 있다.

빌드할 때 defconfig설정을 꼭 확인하자!

728x90

관련글 더보기

댓글 영역