라즈베리파이 커널을 크로스컴파일 하는 중.
빌드에서 이런 메세지가 뜨면서
어떻게 설정한건지에 대한 질문 메세지가 뜬다.
뭐가 뭔지 잘 모르겠어서 계속 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설정을 꼭 확인하자!
Memory Mapped IO (0) | 2024.03.12 |
---|---|
프로세스는 무엇일까?+Trace32로 ps명령어 제작 (0) | 2024.03.11 |
개발환경을 간단하게 공유한다, nfs(network file system)! (1) | 2024.02.01 |
SW개발에서 가상화가 가지는 힘 (0) | 2024.01.18 |
[프로그래머스 데브코스 리눅스&커널 전문가 과정] 데브코스 3개월차 회고록 (2) | 2024.01.14 |
댓글 영역