※ 해당 문서는 하모니카 3.0를 기준으로 작성되었습니다.
※ 커널 변경 전 Timeshift 를 이용하여 백업한 뒤 진행하는 것을 권장 드립니다.
※ 순서대로 진행하지 않는 경우 에러가 발생하여 장치에 이상이 생길 수 있습니다. 주의하시기 바랍니다.
개요
하모니카에서 지원하는 커널 버전보다 상위 버전의 커널을 사용할 수 있는 방법을 설명합니다.
커널이란
리눅스 커널은 운영체제에서 가장 중요한 부분이다.
프로세서와 시스템 메모리에 상주하면서 디바이스나 메모리 같은 하드웨어 자원을 관리하고,
프로세스의 스케줄을 관리하여 다중 프로세스를 구현하고, 시스템에 연결된 입출력을 처리하는 운영체제의 핵심 역할을 수행한다.
커널 종류
linux-image-4.18.0 을 기준으로 커널을 확인해 보면 아래와 같은 목록을 확인할 수 있다
linux-image-4.18.0-1004-gcp linux-image-4.18.0-1013-azure linux-image-4.18.0-15-generic
linux-image-4.18.0-1005-gcp linux-image-4.18.0-1013-gcp linux-image-4.18.0-15-lowlatency
linux-image-4.18.0-1006-aws linux-image-4.18.0-1014-azure linux-image-4.18.0-16-generic
linux-image-4.18.0-1006-azure linux-image-4.18.0-1015-gcp linux-image-4.18.0-16-lowlatency
linux-image-4.18.0-1006-gcp linux-image-4.18.0-1016-aws linux-image-4.18.0-17-generic
linux-image-4.18.0-1007-aws linux-image-4.18.0-1017-aws linux-image-4.18.0-17-lowlatency
linux-image-4.18.0-1007-azure linux-image-4.18.0-1018-aws linux-image-4.18.0-18-generic
linux-image-4.18.0-1007-gcp linux-image-4.18.0-1018-azure linux-image-4.18.0-18-lowlatency
linux-image-4.18.0-1008-aws linux-image-4.18.0-1019-azure linux-image-4.18.0-20-generic
linux-image-4.18.0-1008-azure linux-image-4.18.0-1020-aws linux-image-4.18.0-20-lowlatency
linux-image-4.18.0-1008-gcp linux-image-4.18.0-1020-azure linux-image-4.18.0-21-generic
linux-image-4.18.0-1009-gcp linux-image-4.18.0-1023-azure linux-image-4.18.0-21-lowlatency
linux-image-4.18.0-1011-aws linux-image-4.18.0-1024-azure linux-image-4.18.0-22-generic
linux-image-4.18.0-1011-azure linux-image-4.18.0-1025-azure linux-image-4.18.0-22-lowlatency
linux-image-4.18.0-1011-gcp linux-image-4.18.0-13-generic linux-image-4.18.0-24-generic
linux-image-4.18.0-1012-aws linux-image-4.18.0-13-lowlatency linux-image-4.18.0-24-lowlatency
linux-image-4.18.0-1012-gcp linux-image-4.18.0-14-generic linux-image-4.18.0-25-generic
linux-image-4.18.0-1013-aws linux-image-4.18.0-14-lowlatency linux-image-4.18.0-25-lowlatency
|
목록을 보면 크게 5종류로 나뉘는 것을 확인 할 수 있다
- gcp : Google Cloud Platform 구글 클라우드 플랫폼 지원 버전
- aws : Amazon Web Services 아마존 웹 서비스 지원 버전
- azure : Microsoft Azure 지원 버전
- generic : 일반적인 버전
- lowlatency : 대기시간이 짧은 버전으로 일반 커널에 비해 성능이 약간 낮고 베터리 수명이 짧다
커널 확인 방법
uname -a
Linux hamo 4.15.0-20-generic
Linux nhis-X556UAK 4.15.0-54-generic
|
설치된 커널 패키지 확인
dpkg -l | grep 4.15.0-54
ii linux-headers-4.15.0-54 4.15.0-54.58 all Header files related to Linux kernel version 4.15.0
ii linux-headers-4.15.0-54-generic 4.15.0-54.58 amd64 Linux kernel headers for version 4.15.0 on 64 bit x86 SMP
ii linux-image-4.15.0-54-generic 4.15.0-54.58 amd64 Signed kernel image generic
ii linux-kernel-generic 4.15.0-54 all The Linux kernel.
ii linux-modules-4.15.0-54-generic 4.15.0-54.58 amd64 Linux kernel extra modules for version 4.15.0 on 64 bit x86 SMP
ii linux-modules-extra-4.15.0-54-generic 4.15.0-54.58 amd64 Linux kernel extra modules for version 4.15.0 on 64 bit x86 SMP
|
linux-kernel-generic
릴리스 커널을 가리키는 메타 패키지(메타 패키지?)로 LinuxMint 에서 제공하는 패키지 이며
커널과 관련된 패키지를 그룹화 하여 일괄적으로 업데이트 할 수 있도록 지원해 준다.
LinuxMint 에선 4.15.0-54 버전 이후 5.0.0-32 버전을 지원하고 있으며
다른 버전의 커널을 설치하고 싶다면 linux-kernel-generic 을 무시하고 수동으로 다른 버전의 커널을 설치 해야 한다.
linux-headers , linux-headers-generic
헤더는 내부 커널 구성 요소간 및 사용자 공간과 커널간 인터페이스 역활을 하며, 소스 파일의 함수가 정의되는 방식을 지정합니다.
C에서는 함수를 사용하기 전에 함수를 선언해야 합니다. 즉, 함수에 대한 설명, 매개 변수 및 반환되는 데이터 종류의 선언을 header 라는 단일 파일에 넣는 것이 일반적입니다.
linux-headers 는 리눅스 커널이 제공하는 기능을 포함하는 모든 파일입니다.
linux-image-generic
일반적인 리눅스 커널 이미지
linux-modules-generic , linux-modules-extra-generic
패키저가 빌드 한 모듈 및 업데이트 후 시스템을 부팅 할 수없는 상태로 두지 않도록하는 스크립트를 포함합니다.
커널 설치
sudo apt-get install -y linux-image-4.18.0-25-generic
sudo apt-get install -y linux-headers-4.18.0-25-generic
sudo apt-get install -y linux-modules-extra-4.18.0-25-generic
reboot
|
※ 부팅시 shift 키를 누르고 있으면 grub 모드로 접속이 가능하며 'HamoniKR용 고급 설정' 메뉴에서 설치된 커널을 선택하여 부팅이 가능하다.
설치 확인
dpkg -l *4.18.0-25*
희망상태=알수없음(U)/설치(I)/지우기(R)/깨끗이(P)/고정(H)
| 상태=아님(N)/설치(I)/설정(C)/풀림(U)/절반설정(F)/일부설치(H)/트리거대기(W)/
| / 트리거밀림(T)
|/ 오류?=(없음)/다시설치필요(R) (상태, 오류가 대문자=불량)
||/ 이름 버전 Architecture 설명
+++-=========================================-=========================-=========================-=======================================================================================
ii linux-headers-4.18.0-25 4.18.0-25.26~18.04.1 all Header files related to Linux kernel version 4.18.0
ii linux-headers-4.18.0-25-generic 4.18.0-25.26~18.04.1 amd64 Linux kernel headers for version 4.18.0 on 64 bit x86 SMP
ii linux-image-4.18.0-25-generic 4.18.0-25.26~18.04.1 amd64 Signed kernel image generic
un linux-image-unsigned-4.18.0-25-generic <none> <none> (설명 없음)
ii linux-modules-4.18.0-25-generic 4.18.0-25.26~18.04.1 amd64 Linux kernel extra modules for version 4.18.0 on 64 bit x86 SMP
ii linux-modules-extra-4.18.0-25-generic 4.18.0-25.26~18.04.1 amd64 Linux kernel extra modules for version 4.18.0 on 64 bit x86 SMP
|
커널 삭제
아래와 같이 삭제 하지 않는 경우 OS 일부 기능이 정상적으로 동작하지 않을 수 있습니다. (ex 터치패드, 네트워크 등의 장비 제어)
sudo apt-get --purge remove -y linux-image-4.15.0-54-generic
sudo apt-get --purge remove -y linux-image-unsigned-4.15.0-54-generic
sudo apt-get --purge remove -y linux-headers-4.15.0-54-generic
sudo apt-get --purge remove -y linux-headers-4.15.0-54
sudo apt-get --purge remove -y linux-modules-4.15.0-54-generic
sudo apt-get --purge remove -y linux-modules-extra-4.15.0-54-generic
reboot
|
뻘글인데... LMDE3도 나쁘지 않은 것 같아요. 커널이든 SW든 이미 안정적이라 우분투/민트처럼 업그레이드가 빈번하거나 old 커널이 쌓이는 일이 없어요... 이미 안정화 된 상황이라 진짜 심심하도록 업그레이드가 없습니다... 가끔 보면 firefox-esr 업데이트 하라고 이거 하나 뜹니다...
다만 시나몬 DE가 민트 전에 LMDE 부터 적용되서 테스트 되는 부분만 조심한다면 (레포 따로 빼서 안정 버젼으로 관리) 기업에서 사용하기엔 오히려 LMDE가 괜찮지 않나 싶어요... 근데 하모니카를 민트 기반, LMDE 기반 따로 개발하려면 시간과 비용이 오바되서 힘들겠군요.
우분투는 snap 기반으로 apt install까지 손대는거 진짜 ㅡㅡ^
한글 떠나서 apt-get 패키징으로 설치한게 정말 가장 안정적입니다.
민트에서 걸러 줘서 다행이에요.