안녕하세요.

제 블로그에 유입량이 가장 많은 포스팅이 리눅스 커널 컴파일 (http://harryp.tistory.com/9 http://harryp.tistory.com/839) 인데요.

둘 다 우분투에서 커널 컴파일 한 내용이라...

이번 포스팅에서는 페도라, CentOS 등의 레드햇 계열에서 커널 컴파일 하는 방법을 적어 볼까 합니다.

 

기본적인 내용은 위에 링크한 이전 커널컴파일 포스팅을 참조하시면 될 것 같습니다.

필수 설치 패키지, 마지막에 빌드 방법 들만 다르고 우분투와 거의 유사합니다.

 

* 캡쳐 화면은 우분투 것을 그대로 사용하였습니다.

* CentOS 7 기준으로 작성하였습니다.

 

1. 현재 커널 버전 확인

# uname -r

2. 커널 소스 다운로드

커널 소스는 http://kernel.org 에서 받으시면 됩니다.

3. 필수 패키지 설치

다음 명령어를 이용해 필수 패키지 들을 설치해 줍니다.

# sudo yum install ncurses-devel make gcc bc openssl-devel elfutils-libelf-devel rpm-build

4. 다운로드 받은 커널 소스 이동 및 압축 해제

다운로드 받은 커널 소스를 '/usr/src/kernels' 디렉토리로 이동시켜 줍니다.

그리고 해당 디렉토리로 이동하여 압축을 풀어 줍니다.

# sudo mv 커널소스파일명 /usr/src/kernels

# cd /usr/src/kernels

# sudo tar xz -d 커널소스파일명.tar.xz

# sudo tar xf 커널소스파일명.tar

# cd 커널소스디렉토리

 

5. 현재 커널의 config 파일 복사

현재 커널의 configuration현재 커널의 configuration 파일을 복사 합니다.

현재 커널 설정을 그대로 가져갈 경우 별다른 수정 없이 사용할 수 있습니다.

먼저 현재 커널의 버전을 'uname -a' 명령어로 확인합니다.

그리고 현재 커널의 configuration 파일을 복사합니다.

파일 경로 및 파일 명은

/boot/config-현재커널명

입니다.

커널 소스 디렉토리에 '.config' 라는 이름의 파일로 복사해 줍니다.

# sudo cp /boot/config-현재커널명 ./.config

현재 커널 버전이 4.15.0-36-generic일 경우, 

# sudo cp /boot/config-4.15.0-36-generic ./.config

명령어를 사용하였습니다.

(원본 파일명을 치실 때 'tab' 키를 활용하시면 좀 더 편하게 사용하실 수 있습니다.

6. 커널 컴파일 (커널 설치 이미지 생성)

이제 커널 컴파일을 하여 설치 이미지를 생성하면 됩니다.

빠른 빌드를 위해 CPU 코어 개수를 확인 합니다.

# grep -c processor /proc/cpuinfo

해당 명령어를 입력하시면 코어 개수가 출력 됩니다.

그리고 다음 명령어로 커널 컴파일을 진행 합니다.

# sudo make -j CPU개수 rpm-pkg

-j 옵션은 멀티 코어 옵션으로 여러 개의 cpu 코어를 사용해서 컴파일을 빠르게 해줍니다.

CPU 코어 개수가 4개라면

sudo make -j 8 rpm-pkg

를 입력하시면 됩니다.

컴파일이 정상적으로 완료 된다면

홈 디렉토리의 rpmbuild/RPMS/x86_64 디렉토리에 rpm 이미지가 생성됩니다.

 

7. 새로운 커널 설치

커널 이미지가 생성된 위치로 이동합니다.

그리고 해당 디렉토리에 생성된 커널 rpm 패키지를 설치 합니다.

# cd ~/rpmbuild/RPMS/x86_64

# yum install ./커널설치패키지명.rpm

보통 커널 이미지는 일반커널, header, devel (개발자용) 세개가 생성 됩니다.

kernel-커널버전명-플랫폼.rpm (kernel-4.14.10.x86_64.rpm 등의 이름) 패키지를 설치해 주시면 됩니다.

 

8. 새로 설치 된 커널로 부팅

새로 설치 된 커널로 부팅하여 uname -r 명령어를 사용하시면 새로운 커널로 부팅이 된 것을 확인하실 수 있습니다.

만약 default 커널을 변경하고 싶으시면 grub 설정을 변경하시면 됩니다.

https://harryp.tistory.com/752 포스팅의 제일 마지막 부분을 확인해 주세요.

Posted by 해리팍

댓글을 달아주세요


BLOG main image

Chanhyun Park (해리팍)
Software Engineer
PADI IDC Staff Instructor

Contact Info.
parkch0708@hanmail.net
chanhyun0708@gmail.com
chanhyun.park@sk.com
Kakao Talk : parkch0708

카테고리

All (791)
Park's Life (121)
Computer (194)
IT Info. (134)
Scuba Diving (122)
Traveling (161)
자격증 (18)
Pokemon Go (37)
etc... (4)