floatFirstTOC: right
🖥️ 시작하며
지금 학교에서
start_kernel
스터디를 진행하고 있는데, 커널에 대한 궁금증이 늘어나기도 했고 직접 실습할 수 있는 환경이 있으면 좋겠다 싶어 컴파일을 하게 되었습니다.1. Ubuntu 설치
저는 Parallels로 진행했습니다.
기본 작업을 진행하겠습니다.
# 업데이트 sudo apt-get update && upgrade # 커널 버전 확인 uname -a
# 사용 가능한 헤더 파일 확인 sudo apt-cache search linux-headers-`uname -r` # 위에서 출력된 버전으로 설치 sudo apt-get install kmod linux-headers-5.15.0-76-generic
2. 커널 다운로드
해당 사이트에서 원하는 버전의 커널을 다운습니다. 지금 스터디에서는
6.8.1
버전으로 진행하고 있기에 해당 버전을 다운받았습니다.cd /usr/src/ # 다운로드 sudo wget https://mirrors.edge.kernel.org/pub/linux/kernel/v6.x/linux-6.8.1.tar.gz # 압축 해제 sudo tar -xzvf linux-6.8.1.tar.gz # config 파일 복사 sudo cp linux-headers-5.15.0-76-generic/.config linux-6.8.1
🔍 config
수정 (ssh로 수정하면 쉽습니다!)
ssh에서 권한 오류가 날 시,
sudo chown -R 계정명 .
하면 됩니다.cd linux-6.8.1/ # config 파일 수정 sudo nano .config # 아래 두 줄을 수정 CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem" -> CONFIG_SYSTEM_TRUSTED_KEYS="" CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-certs.pem" -> CONFIG_SYSTEM_REVOCATION_KEYS=""
🔍 필요 패키지 설치
sudo apt install build-essential libncurses5 libncurses5-dev bin86 kernel-package libssl-dev bison flex libelf-dev dwarves #필요 패키지 설치 # 이후 재부팅 sudo reboot
🔍 menuconfig
생성
cd /usr/src/linux-6.8.1/ sudo make menuconfig # 순서대로 load -> ok -> exit -> yes로 하면 됩니다.
(선택사항) 커널 이름 변경
sudo nano Makefile
3. 커널 컴파일
🔍 커널 수 확인
# 여기서 출력된 코어 수를 아래에서 사용 grep -c processor /proc/cpuinfo
sudo make -j2 # 코어 수를 뒤에 써주시면 됩니다. 저는 2가 나와서.. sudo make modules_install sudo make install
4. kernel 변경
🔍 Boot kernel 순서 확인
awk -F\' '/menuentry / {print $2}' /boot/grub/grub.cfg
parallels@ubuntu-linux-22-04-02-desktop$ awk -F\' '/menuentry / {print $2}' /boot/grub/grub.cfg Ubuntu ---->> 1 Ubuntu, with Linux 5.4.214.test ---->> 1>0 Ubuntu, with Linux 5.4.214.test (recovery mode) ---->> 1>1 Ubuntu, with Linux 5.4.0-162-generic ---->> 1>2 Ubuntu, with Linux 5.4.0-162-generic (recovery mode) ---->> 1>3
# grub 파일 수정 sudo nano /etc/default/grub
sudo update-grub sudo reboot
5. kernel 변경 확인
uname -a
하지만 계속 오류가 나서 실패!!!!!!! 왜 실패하는건지..
댓글