본문 바로가기
컴퓨터의 이모저모

macbook air m2에 리눅스 커널 컴파일 (make) 안되는 이유

by doodlie 2024. 4. 9.

이번 프로젝트 목표는 1) 리눅스 커널 환경을 설치하고, 2) 시스템콜을 사용해보는 것이다. 

맥북은 ARM 아키텍쳐라 보통의 환경설정과는 다른 접근으로 해야했다. UTM을 통해서 Ubuntu를 가지고 오는 것까지는 온라인에서 쉽게 볼 수 있다. 그치만 인텔이 아닌 M1이나 M2 노트북으로 linux kernel을 설치하는 것은 어디서도 볼 수 없다. 

 

중간에 계속 풀리지 않는 에러가 뜨고, 답이 없는 버그의 반복..

무모한 도전을 했다. 며칠 동안 밤을 새면서 만져봤지만 정말 쉽지 않았고, 다시는 하지 않을 것이다.

 

첫번째 문제, 

맥 OS에서 기본적으로 제일 자주 사용되는 Homebrew를 깔아보려고 했지만 "Homebrew on Linux is not supported on ARM processors."라니..

분명히 macos를 위한것이라 했는데, intel processor만 가능 한 것 같다. 

(https://docs.brew.sh/Homebrew-on-Linux)

 

우선 결론부터 말하자면 답이 없다.

이렇게 make 할때마다 error가 뜬다. 얘를 없애려면 brew가 있어야되는데, 내 노트북에는 안되기 때문.

그럼에도 불구하고 이 글을 적는 이유는 이 시행착오와 해결방법들을 기억하기 위해서다.

 

터미널을 켠다. 

sudo apt update
sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev git

 

리눅스 커널 소스 코드 다운받는 건 여러 방법이 있다. 나는 wget으로 리눅스 사이트에서 가져왔다. 

첫번째 라인은 소스 코드를 다운받는 것이고, 두번째 라인은 extract하는 것, 마지막은 디렉토리를 소스로 바꾸는 것. 

wget https://cdn.kernel.org/pub/linux/kernel/linux-5.9.6.tar.xz
tar -xvf linux-5.9.6.tar.xz
cd linux-5.9.6/

 

문제의 make 에러

make menuconfig

make -j4

 

코드들을 자세히 살펴보면 make할때마다 계속 에러가 뜨는 것을 알 수 있다. 

아무대로 이 부분은 어떻게 할 수 가 없는 듯 하다. 

 

이 뒤로도 마찬가지로 sudo make modules_install을 할 수가 없다. 

 

=> 윈도우 노트북을 사용하자.

 

system call을 위한 코드 파일 수정 단계 까지는 해볼 수 있으니, 다음 글에 정리해보겠다.