반응형

안녕하세요.

제 블로그에 유입량이 가장 많은 포스팅이 리눅스 커널 컴파일 (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 @ SK hynix

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

카테고리

All (1509)
Profile (2)
Park's Life (600)
Smart Home (IoT) (1)
Computer System (165)
Computer Programming (39)
Computer Study (54)
Computer Etc. (189)
Scuba Diving (137)
Golf (8)
Traveling (250)
생활 정보 (13)
Pokemon GO (50)