본문 바로가기
3 - 공부 기록

[Linux/Ubuntu] Kernel Compile

by seonshine-bibi 2022. 4. 12.
반응형

1. 현재 커널 버전 확인하기

 

uname -r

 

 

2. 커널 소스 다운로드

 

http://www.kernel.org/

 

The Linux Kernel Archives

 

www.kernel.org

 

원하는 버전의 커널을 다운로드 받는다.

특정 버전을 찾으려면 pub > linux > kernel > ... 순으로 들어가 찾으면 된다.

 

 

3. 커널 소스 파일 이동

 

mv linux-5.4.67.tar.gz /usr/src

 

다운로드한 파일을 /usr/src 로 이동시킨다.

 

 

4. 압축 해제

 

tar -xvzf linux-5.4.67.tar.gz

 

이제 /usr/src/linux-5.4.67 폴더가 생겼다. 커널의 루트 디렉토리이다.

 

 

5. 컴파일에 필요한 툴 설치

 

sudo apt-get install libncurses-dev flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf
sudo apt-get install ncurses-dev kernel-package

 

 

6. 커널 컴파일

 

sudo make modules
sudo make modules_install
sudo make 
sudo make install

 

각 make 단계 마다 상당한 시간이 걸린다.

 

이때 config 파일이 없다고 뜨면

make menuconfig 로 config 파일을 만들어주었다.

 

 

7. grub 설정

 

vi /boot/grub/grub.cfg

 

이 곳에서 Advanced options for Ubuntu submenu 아래에 menuentry 들이 있다.

부팅시 선택할 커널이 몇 번째 menuentry인지 확인한다.

 

vi /etc/default/grub

 

여기에서 grub 설정을 변경할 수 있다.

커널을 변경하는 submenu는 두번째 옵션에 해당하므로, 1로 쓴다.

원하는 menuentry가 5번째 entry 였다. 인덱스는 0부터 시작하므로 4로 쓴다.

 

GRUB_DEFAULT="1>4"

 

작성 후 저장한다.

 

sudo update-grub

 

변경 후에는 업데이트를 적용해야한다.

 

 

8. 재부팅 후 현재 커널 확인

 

sudo reboot

 

재부팅한다.

 

uname -r

 

커널이 변경된 것을 확인할 수 있다.

 

 

반응형