티스토리 뷰
설치 환경
OS : Centos 6.2
Kernal : 2.6.32-220.e16.x84_64 -> 3.14
커널 업데이트를 설명하자면 간략적으로 이렇습니다.
1. 커널에 필요한 패키지 설치 및 업데이트
2. 커널 환경설정
3. 커널 적용
4. 재부팅 후 정상적으로 되는지 확인
1. 커널에 필요한 패키지 설치 및 패키지 업데이트 [설명]
현재 커널이 패키지에 맞을 수 있습니다.
단, 커널 업데이트하면 어긋날수도 있죠.
그렇기 때문에 yum update로 통해 모든 커널을 업데이트 합니다.
또한 커널 환경 설정 및 적용을 위해 패키지를 설치해야합니다.
커널 버전 확인
yum update
모든 패키지 업그레이드
yum install gcc* ncurses-devel
■ ncurses-devel란?
ncurses-devel은 텍스트 기반을 화면 처리해주는 라이브러리 같은 것입니다.
커널 환경설정할 때 make menuconfig 라는 명령어를 사용하게 되는데
이 때 화면들이 깨지지 않도록 해주기 위함입니다.
2. 커널 다운로드
커널 다운로드는 https://www.kernel.org/pub/linux/kernel/ 사이트를 통해서 얻을 수 있습니다.
저는 이번에 linux-3.14로 업그레이드하기 위해서
linux-3.14을 다운받으며 적용해보도록 하겠습니다.
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.14.tar.gz
linux-3.14 커널 다운로드
현재 경로는 /usr/local 입니다.
linux zxvf linux-3.14.tar.gz ::: 커널 압축 풀기
cd linux-3.14 ::; 압축해제된 커널 폴더로 이동
3. 커널 환경 설정
설치된 커널 폴더로 이동 후 다음과 같은 명령어를 입력합니다.
make mrproper
※ 기존에 설정되어있던 모든 의존관계를 제거
make clean
※ 컴파일 작업으로 생성된 파일 삭제
cp /boot/config-'당신의 커널 이름' ./.config
커널 이름은 uname -r으로 확인하실 수 있습니다.
또한 커널이 한개이면 Tab Key를 눌러 자동적으로 문자가 완성됩니다.
make menuconfig
※ 커널 환경설정
Ah.....................
너무 작네요 그쵸 ?
무튼 상관없습니다.. 제가 설명해드릴테니깐요.
맨 아래 하단에 보시면 다음과 같이 있습니다.
먼저 Load를 클릭 후 .config을 불러옵니다.
뭐 기본적으로 .config이 되어있기 때문에 Ok만 누르면 됩니다.
현재 적용되어있는 2.6.32 커널을 Load 한 것입니다.
다음은 새 커널 설정 내용을 현재 커널에 적용해야겠죠 ?
여러분들을 위해.. 일일히 캡쳐..
메뉴에 보시면 General setup 이라고 보입니다. 그 안으로 들어갑니다.
Enable deprecated sysfs features to support old userspace tools
이렇게 생긴 항목이 있는데 체크해줍니다.
왜 체크하는지에 대해 궁금하시죠 ?
저도 잘 몰라요.
그냥 체크..
아시는 분 있으면 알려주세요.
Local version - append to kernel release
이것은 Kernel release 이름을 정하는 것 같네요.
즉, 커널 뒤에 2.32-release 이런것을 다른것으로 바꿔주는 듯 싶습니다.
여기서 저는 seob으로 변경해보겠습니다.
클릭 후 seob 이라고 입력합니다.
그리고 Ok
참 쉽죠 ?
설정이 모두 끝났다면
여기에서 이번엔 Save를 클릭합니다.
다시 .config에 저장합니다.
뭐 설정이 저장되었다는 것 같네요.
그리고 나서 Exit로 나옵니다.
4. 커널 빌드
환경 설정만하고 .config 파일에 적용했을 뿐..
아직 적용을 하지 않았습니다.
적용을 하기 위해서는 다음과 같이 따라하시면 됩니다.
make all
make modules_install
※ 커널에서 사용할 모듈을 빌드, 커널 사용을 효율화 시키기 위해 사용
make install
※ 컴파일된 모듈을 설치
설치는 /lib/modules/ 폴더 하위에 설치되며 각 버전으로 설치됩니다.
5. 새 커널 적용하기
빌드된 커널을 새롭게 적용해야합니다.
물론 재부팅도 해야하죠
cat /boot/grub/menu.lst
라는 명령어로 보시면
title CentOS (3.14.0seob) 이라는 것이 보이실껍니다.
현재 3.14.0 커널이 제대로 적용되었다고 볼 수 있습니다.
아까 Local version - append to kernel release 에 넣었던 seob 이라는게 커널 버전 뒤에 나옵니다.
현재 이대로 재부팅하면 기본적으로 CentOS (2.6.32)를 가르키게 됩니다.
왜냐하면 default값이 1이기 때문이죠.
재부팅해도 3.14.0 커널로 적용하기 위해서는
vi /etc/grub.conf을 연 뒤 default값을 0으로 고쳐줍니다.
위에서부터 순서는 0. 1. 2. 이런순입니다.
default 값을 0으로 고친 뒤 재부팅해서 다시 커널 버전을 확인하시면
커널 버전과 release 이름이 나오네요.
커널 업그레이드가 참 어렵게만 생각했었는데 막상해보니 참 쉽네요.
항상 커널 업데이트시 주의사항은 현재 패키지와 제대로 의존이 되지 않을 수 있으니 조심하시길 바랍니다.
'리눅스 > 기본' 카테고리의 다른 글
Linux 설치 후 Ethernet이 설정 안되어있을 때 (0) | 2014.04.21 |
---|---|
일반 사용자 su 명령어 막기 & 특정 사용자 su 가능하게 하기 (8) | 2014.04.16 |
Vmware에서 랜카드 추가 장착하기 (2) | 2014.04.14 |
리눅스 데몬의 종류 (0) | 2014.04.04 |
리눅스 로그 종류 (0) | 2014.04.04 |