티스토리 뷰

반응형


설치 환경


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 이름이 나오네요.


커널 업그레이드가 참 어렵게만 생각했었는데 막상해보니 참 쉽네요.


항상 커널 업데이트시 주의사항은 현재 패키지와 제대로 의존이 되지 않을 수 있으니 조심하시길 바랍니다.


반응형
댓글
공지사항
최근에 올라온 글