본문 바로가기

STUDY/SYSTEM

01) Kernel Compile

사전지식


  • 커널(Kernel)
    - 운영체제의 코어에 해당하는 부분으로, 시스템 제어 등을 담당한다. 
    - 컴퓨터를 부팅하면 자동으로 실행되어 메모리 상에 올라가게 된다.
  • 커널 컴파일(Kernel Compile)
    - 운영체제를 설치하면 커널도 자동으로 설치되게 되는데 커널을 내가 원하는 버전으로 바꿔주고 싶을 때 사용하는 방식이다. 
  • 루트(root) 권한 주기
    - 우분투 작업할 때 루트 권한을 주고 시작하면 편하다. 루트 권한을 주기위한 명령은 다음과 같다. 
    - $ sudo su

현재 커널 버전 확인


$ uname -r

새로운 커널 소스 다운로드


커널 소스는 http://kernel.org에서 다운받거나, 명령을 통해 다운받을 수 있다. 

나는 명령을 통해 다운받는 방식을 선택하였다. 명령어는 아래와 같다.

이 때, 4.18 대신 원하는 버전을 적어주면 된다. 또한 만약 버전이 4대가 아닌 다른 버전으라면, v4부분도 버전에 맞춰 바꿔줘야한다.

 

$ mkdir /usr/src/kernels

$ cd /usr/src/kernels

$ wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.18.tar.x 

$ tar -xvf linux-4.18.tar.xz

$ cd linux-4.18

 

리눅스 커널 컴파일을 위한 패키지 설치


$ apt-get update
$ apt-get install build-essential libncurses5 libncurses5-dev bin86 kernel-package libssl-dev -y

configuration 파일 복사 및 설정

XXX는 현재 커널의 버전을 적으면 되는데, 커널의 버전은 위에서 언급한 바와 같이 'uname -r'로 확인할 수 있다.

 

$ cp /boot/config-XXX ./.config

$ make menuconfig

 

make를 하는 과정에서 오류가 발생할 수 있는데 이는 bison과 flex가 설치되어있지 않기 때문이다.

오류가 나는 경우 다음과 같은 명령어를 실행한다.

 

$ apt-get install bison

$ apt-get install flex

 

make가 정상적으로 수행되고 나면 설정화면이 뜨는데,

64-bit kernel을 선택한 후 Load > OK > Save > Exit 해주면 된다.

 

커널 컴파일하기


커널 컴파일은 시간이 많이 걸린다.

컴파일 도중 'libelf-dev'을 설치했으면 좋겠다는 메세지가 떠서 컴파일이 끝나고 설치해주었다.

새로운 커널을 설치하여 재부팅하면 끝난다.

 

$ nice --20 make -j8; nice --20 make -j8 modules; make modules_install;

$ apt-get install libelf-dev

$ reboot

'STUDY > SYSTEM' 카테고리의 다른 글

[Linux] LVM 삭제  (0) 2020.08.17