[RA] 리눅스 커널 컴파일

2927 단어 CRIUdockerRAlinuxCRIU

#Docker에서 제공하는 실험적인 Checkpoint/Restore 기능을 정상적으로 사용하기 위해는 커널 컴파일 과정이 필요하다.

커널이란, 운영체제에서 시스템의 제어 등을 하는 프로그램이다.
컴퓨터를 부팅 하면 자동으로 커널이 실행되어 메모리에 올라가게 된다.

커널은 여러 사용자의 사용 목적에 따라 다양한 정보를 담고 있다. 때문에 필요한 정보 보다는 불필요한 정보가 더 많이 담겨 된다.

http://kernel.org 에서 다운로드 받을 수 있으며 받은 소스를 본인에게 필요한 정보만 설정하여 더 최적화 된 커널을 빌드 하는 과정을 커널 컴파일 이라고 한다.
https://mirrors.edge.kernel.org/pub/linux/ 에서 더 다양한 버전의 리눅스 커널을 다운로드 할 수 있다.

Step 1. uname -r을 통해 현재 커널 버전을 확인한다.

Step 2. 커널 소스를 http://kernel.org 를 통해 다운로드 한다.

Step 3. 커널 컴파일을 하기위한 패키지 설치

$ sudo apt-get update
$ sudo apt-get install build-essential libncurses5 libncurses5-dev bin86 kernel-package libssl-dev bison flex libelf-dev

Step 4. 다운로드 받은 커널 압축 해제

본인은 linux-4.19.197.tar.xz 파일을 다운받아 커널 컴파일을 진행

$ sudo mv linux-4.19.197.tar.xz /usr/src/
$ cd /usr/src
$ sudo xz -d linux-4.19.197.tar.xz
$ sudo tar xf linux-4.19.197.tar
$ cd linux-4.19.197

Step 5. 현재 커널의 config 파일 복사
/boot/config-현재커널명 확인

$ sudo cp /boot/config-5.4.0-42-generic ./.config

Step 6. make menuconfig - 필요한 커널 정보 추가

$ sudo make menuconfig

https://criu.org/Linux_kernel
본인은 정상적으로 CRIU를 작동 시키기 위해 위 링크에서 필요한 커널 정보를 추가하였다.

Save 후 .config로 저장

Step 7. 커널 컴파일 진행

이제 커널을 컴파일 하여 설치 이미지를 생성 해야 한다.
커널 컴파일은 시간이 매우 오래 걸리므로 빠른 빌드를 위해 여러개의 CPU 코어를 사용하는 것이 좋음.

$ grep -c processor /proc/cpuinfo

해당 명령어를 통해 코어 개수를 확인 후 다음 명령어를 통해 커널 컴파일 진행
(--J # 은 멀티 코어 옵션이다. 본인은 코어가 2개이기 때문에 --J 2로 진행)

$ sudo make-kpkg --J # --initrd kernel_image

<커널 컴파일 진행 중>

<커널 컴파일 완료>

다음과 같이 ~_amd64.deb 파일이 생성되면 정상적으로 커널 컴파일이 완료 된 것이다.

Step 8. 커널 설치
커널 이미지가 있는 디렉토리(/usr/src) 에서 다음과 같은 명령어를 입력하여 설치를 진행.

$ sudo dpkg -i 커널이미지파일명

설치 후 재부팅을 통해 바뀐 커널로 부팅 되었는지 uname -r을 통해 확인한다.

좋은 웹페이지 즐겨찾기