본문 바로가기

리눅스

커널 컴파일 및 설치하는 방법

728x90

커널 컴파일 및 설치하는 방법

  1. 커널 소스 코드 다운로드
    • 공식 웹사이트인 https://www.kernel.org/에서 원하는 버전의 커널 소스 코드를 다운로드합니다.
  2.  커널 소스 코드 압축 해제
    • 다운로드한 소스 코드를 압축 해제합니다. tar -xf linux-x.x.x.tar.gz 명령어를 사용하여 압축을 해제합니다.
  3. 커널 설정
    • 커널 설정을 위해 커널 소스 코드 디렉토리로 이동합니다. cd linux-x.x.x 명령어를 사용하여 디렉토리로 이동합니다.
    • make mrproper 또는 make clean 명령어를 실행하여 이전 빌드 파일을 제거합니다.
    • make menuconfig 명령어를 실행하여 커널 설정을 편집합니다. 이 명령어는 텍스트 기반으로 설정을 제공합니다.
    • 필요한 기능, 모듈, 드라이버 등을 선택하고 설정을 저장합니다.
  4. 커널 컴파일
    • make bzImage 명령어를 실행하여 커널 이미지를 빌드합니다.
    • make modules 명령어를 실행하여 커널 모듈을 빌드합니다.
    • make modules_install 명령어를 실행하여 빌드한 커널 모듈을 설치합니다.
  5. 커널 설치
    • make install 명령어를 실행하여 커널 이미지 파일과 관련된 파일을 시스템에 설치합니다.
  6. 부팅 설정 업데이트
    • /boot/grub/grub.conf 파일을 수정하여 새로운 커널을 부팅 메뉴에 추가합니다. 기존 항목을 복사하여 커널 이미지 파일과 부팅 설정을 수정합니다.
  7. 시스템 재부팅
    • 커널을 변경했으므로 시스템을 재부팅하여 새로운 커널을 사용하도록 설정합니다.

이러한 단계를 따라가면 CentOS에서 커널을 컴파일하고 설치할 수 있습니다. 커널 컴파일은 고급 작업이므로 주의가 필요하며, 필요한 지식과 경험이 필요할 수 있습니다.

 

[root@ns2 ~]$ cd /usr/src/

[root@ns2 src]$ pwd
/usr/src
[root@ns2 src]$ tar xvfz linux-2.6.16.tar.gz

[root@ns2 src]$ ln -s linux-2.6.16.tar.gz linux
[root@ns2 linux]$ make rmprepro
make: gcc: Command not found
  HOSTCC  scripts/basic/fixdep
/bin/sh: gcc: command not found
make[2]: *** [scripts/basic/fixdep] Error 127
make[1]: *** [scripts_basic] Error 2
make: *** [include/config/auto.conf] Error 2

#error 해결방안 : gcc 설치한다
[root@ns2 linux]$
[root@ns2 src]$ rpm -qa | grep gcc
libgcc-3.4.6-10
[root@ns2 src]$
[root@ns2 src]$ yum -y install gcc 

[root@ns2 linux]$ make mrproper
scripts/kconfig/lxdialog/dialog.h:131: warning: array 'attributes' assumed to have one element
make[2]: *** [scripts/kconfig/lxdialog/checklist.o] Error 1
make[1]: *** [menuconfig] Error 2
make: *** [menuconfig] Error 2

#error 해결방안 : ncurses-devel 설치한다
[root@ns2 linux]$ yum list ncurses
Setting up repositories
Reading repository metadata in from local files
Installed Packages
ncurses.i386                             5.4-15.el4             installed
[root@ns2 linux]$ yum -y install ncurses-devel
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
....
생략
.....
Running Transaction
  Installing: ncurses-devel                ######################### [1/1]

Installed: ncurses-devel.i386 0:5.4-15.el4
Complete!
[root@ns2 linux]$ make mrproper
  CLEAN   scripts/basic
  CLEAN   scripts/kconfig
[root@ns2 linux]$ make menuconfig
[root@ns2 linux]$ make bzImage
...
생략 
...
 BUILD   arch/i386/boot/bzImage
Root device is (8, 3)
Boot sector 512 bytes.
Setup is 6991 bytes.
System is 1865 kB
Kernel: arch/i386/boot/bzImage is ready  (#1)
[root@ns2 linux]$ make modules
  CHK     include/linux/version.h
...
생략
...
[root@ns2 linux]$ make modules_install
[root@ns2 linux]$ make install
[root@ns2 linux]$ vi /etc/grub.conf


###[참고]
[root@ns2 src]$ make rmprepro
make: *** No rule to make target `rmprepro'.  Stop.
#make Stop : 현재 디렉토리가 커널이 있는 디렉토리에 위치해 있는지 확인해 본다.

 

728x90