이번 프로젝트 목표는 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을 위한 코드 파일 수정 단계 까지는 해볼 수 있으니, 다음 글에 정리해보겠다.
'컴퓨터의 이모저모' 카테고리의 다른 글
[인공지능] Uninformed Search란? (Blind Search, Search trees, State Space) (2) | 2024.03.30 |
---|---|
컴퓨터구조와 운영체제 기본 중의 기본 개념 파악하기 (What is OS?) (22) | 2024.03.29 |