하모니카 커널 변경 방법

※ 해당 문서는 하모니카 3.0를 기준으로 작성되었습니다.

※ 커널 변경 전 Timeshift 를 이용하여 백업한 뒤 진행하는 것을 권장 드립니다.

※ 순서대로 진행하지 않는 경우 에러가 발생하여 장치에 이상이 생길 수 있습니다. 주의하시기 바랍니다.

하모니카 3.0 지원 커널 목록

개요

협력업체에서 하모니카에서 지원하는 커널 버전 정보를 요청하였고 보다 상위 버전의 커널을 사용할 수 있는 방법에 대한 문의를 전달 받음

이와 관련된 기술 지원을 위한 안내 문서 작성 필요가 있음

커널이란

리눅스 커널은 운영체제에서 가장 중요한 부분이다.

프로세서와 시스템 메모리에 상주하면서 디바이스나 메모리 같은 하드웨어 자원을 관리하고,

프로세스의 스케줄을 관리하여 다중 프로세스를 구현하고, 시스템에 연결된 입출력을 처리하는 운영체제의 핵심 역할을 수행한다.

커널 종류

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
# 하모니카 1.4 커널 버전
Linux hamo 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
# 하모니카 3.0 커널 버전
Linux nhis-X556UAK 4.15.0-54-generic #58-Ubuntu SMP Mon Jun 24 10:55:24 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

설치된 커널 패키지 확인

# ex) dpkg -l | grep 커널버전
dpkg -l | grep 4.15.0-54
# output
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*
# output
희망상태=알수없음(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