m1 맥북에 ubuntu linux 설치 및 kernel compile
이번 학기에 ubuntu kernel을 써야할 일이 많이 생겼다.
솔직히 원래 공부해보고 싶은 분야였으나, 어려운 난이도에 쉽게 시도 하지 못하였다.
운영체제론 실습을 ubuntu에 진행 하면서, 제대로 공부해 보고 싶었고 학교 학회 스터디와 교수님이 추천해주신 국비 교육을 신청했다.
국비 교육 링크
https://school.programmers.co.kr/learn/courses/16210/16210-1%EA%B8%B0-k-digital-training-%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EB%B0%8F-%EC%BB%A4%EB%84%90-%EC%A0%84%EB%AC%B8%EA%B0%80
[1기] K-Digital Training: 리눅스 시스템 및 커널 전문가
K-Digital Training 100% 국비지원 프로그래머스 데브코스 : 리눅스 시스템 및 커널 전문가 국내 최고 학계/산업계 전문가에게 배우는 실습 프로젝트 중심의 교육 과정 사전 알림 신청하기 모집기간~ 3
school.programmers.co.kr

확실히 m1 맥북을 가진 사용자는 리눅스에는 접근성이 높지만, 가상머신과 우분투 리눅스에 대한 접근성이 낮은 거 같다.
1년 전에 시도 했을 때는, 가상머신을 운용할 앱도 불안정해서 유료 버전인 https://www.parallels.com/kr/ 만 있었다.
이때도 무료 방법의 해결책을 계속 찾아 보다가 윈도우 컴퓨터에서 버철머신을 깔아 해결했던 것으로 기억한다.
그러나 이번에는 꼭 성공 해 보겠다. m2 까지 나온 시점에 맥 CPU에서 돌아가는 방법은 다른 개발자가 알아 두지 않았을까..?
일단, UTM으로 리눅스가 깔려 있어서 그걸로 했다. 당연히 우분투 패치는 조교님의 슬라이드에 있는 18.04로 하려 했으나, 실패. 그래서 가장 최신 버전인 22.04를 다운 받았다.
sudo apt update
sudo apt install tasksel
sudo apt install ubuntu-desktop
sudo reboot를 통해 우분투를 설치했다.
22.04버전의 우분투는 firefox도 없고 kernel의 버전도 너무 높아서 20.04버전의 우분투로 다시 시도해 보았다.
근데 이 커널 컴파일은 뭔데 이렇게 오래 걸리는 것일까..
wget https://cdn.kernel.org ...
tar xvf linux-3.10.8.tar.xz
cd linux-3.10.8
cp -v /boot/linux-$(uname -r)
sudo install bison flex ...
make menuconfig
vi .config -> 에서 오류 코드 지우기
make -j $(nproc) 도 외울 정도로 많이 따라했는데 안된다.
자꾸 오류가 뜬다.
이게 악질인게 2시간동안 컴파일 되다가 오류가 발생한다.
혹시나 UTM이 이상 한가 하고 VMware Fusion 13도 깔아서 시도 해보았다.
BTF: .tmp_vmlinux.btf: pahole (pahole) is not available
Failed to generate BTF for vmlinux
Try to disable CONFIG_DEBUG_INFO_BTF
make: *** [Makefile:1170: vmlinux] Error 1
의 에러가 나서
스택오버 플로우에서 제시한 해결책을 시도 한 뒤 다시 도전해 보았다.
soyeon@os:~/linux-5.10.8$ sudo apt install dwarves
이런 ... ㅎㅎ 오류가 더 크게 발생한다. ㅅㅂ..ㅋㅋㅋ
/bin/sh: 1: printf: printf: I/O error
ld: final link failed: No space left on device
make[2]: *** [scripts/Makefile.modfinal:40: drivers/media/dvb-frontends/dib3000mc.ko] Error 1
make[2]: *** Deleting file 'drivers/media/dvb-frontends/dib3000mc.ko'
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [scripts/Makefile.modfinal:40: drivers/media/dvb-frontends/dib7000m.ko] Error 1
ld: final link failed: No space left on device
make[2]: *** [scripts/Makefile.modfinal:40: drivers/media/dvb-frontends/dib8000.ko] Error 1
make[1]: *** [scripts/Makefile.modpost:117: __modpost] Error 2
make: *** [Makefile:1396: modules] Error 2
이제는 더 이상 조교의 자료를 따르지 않고 검색으로 내 버전에 맞게 수정 하지 않을 거다.
처음부터 외국인 아저씨를 따라할 거다.
성공하면 외국인 아저씨 링크와 함께 돌아 오겠다.