Centos 7,
1. 현재 사용하는 커널의 버전 확인
$ uname -r
2. www.kernel.org/ 통해 커널 다운로드
만약 원하는 커널 버젼이 5.4.84일때
$ cd /usr/src/kernels
$ wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.4.84.tar.xz
$ tar xz -d linux-5.4.84.tar.xz
$ tar xf linux-5.4.84.tar
$ cd linux-5.4.84
3. 컴파일에 필요한 패키지 설치
$ yum install ncurses-devel make gcc bc openssl-devel elfutils-libelf-devel rpm-build
4. config 파일 수정
사용하는 시스템에 설치되어있는 하드웨어, 소프트웨어, 네트워크 특성에 맞게 커널을 구성하는 Configure 파일.
보통 자신이 사용하고있는 config 파일을 그대로 사용한다.
$ ls /boot/config*
사용하게되면 현재 설치되었던, 설치된 커널 버전마다의 config 파일이 존재함을 알 수있다.
따라서 현재 커널의 구성형식을 컴파일할 커널의 폴더로 복사한다.
$ cp /boot/config-4.14.78 ./.config
만약 커널구성에 대해 수정사항이 있다면
$ make menuconfig
명령어를 사용해 구성을 수정할 수있다.
5. 커널 컴파일
$ make -j CPU_개수 rpm-pkg
-j 옵션은 멀티 스레드를 사용해 병렬적으로 컴파일 한다는 뜻이다. 따라서 싱글 스레드비해 속도가 빠르다.
만약 자신이 사용하는 시스템의 CPU 스레드 개수를 모른다면
$ grep -c processor /proc/cpuinfo
사용하면 된다.
컴파일이 오류없이 정상적으로 컴파일이 완료되었다면
사용자 홈디렉토리에 rpmbuild 디렉토리가 생성되었을 것이다.
rpmbuild/RPMS/x86_64/ 디렉토리에 rpm 패키지가 생성된다.
6. 커널 설치
$ cd ~/rpmbuild/RPMS/x86_64/
$ ls
컴파일된 커널들의 목록이 나타난다.
보통 일반, devel(개발용), headers 커널 총 3개가 생성된다.
보통 일반커널을 사용하므로
$ yum install ./kernel-5.4.83-1.x86_64.rpm
통해 새로운 커널 rpm 패키지를 설치한다.
7. 부팅 순서 수정
# grub2-editenv list
명령어를 통해 현재 부팅될 커널 버전을 확인 할 수있다.
$ grep ^menuentry /boot/grub2/grub.cfg | cut -d "'" -f2
or
$ grep ^menuentry /boot/efi/EFI/centos/grub.cfg | cut -d "'" -f2
부팅 가능한 커널 목록을 볼 수있다.
만약 레거시를 사용하면 상단 명령어를 사용하고, UEFI를 사용하면 아래 명령어를 사용하면 된다.
$ grub2-set-default "CentOS Linux (5.4.83) 7 (Core)"
명령어를 사용해 5.4.83 버전으로 부팅하도록 설정한다.
$ reboot
리부팅해주시고 uname -r을 사용해 커널 버전이 바뀌었는지 확인하면 끝입니다.
'개인 공부 > 리눅스' 카테고리의 다른 글
Centos 7, gcc 버전 업데이트 (0) | 2021.03.16 |
---|---|
Centos 7, SPEC2006 설치 - 1 (0) | 2021.03.11 |
Ubuntu 라이브러리 생성 (0) | 2021.01.07 |
Ubuntu 시스템콜 추가 (2) | 2021.01.07 |
커널 컴파일(Ubuntu) (0) | 2020.12.18 |