우분투에서 커스텀 커널을 빌드하고 설치하는 방법

자신의 커널을 컴파일하는 생각은 새로운 리눅스 사용자에게 두려움을 줍니다. 시스템의 가장 중요한 부분을 처음부터 만드는 것은 무섭게 들립니다. 하지만 사실, 우분투에서 리눅스 커널을 빌드하는 것은 정말 쉽습니다.
리눅스 커널을 빌드하는 것은 프로그래밍을 필요로 하지 않습니다. 세계 최고의 프로그래머들이 이미 모든 코드를 작성했습니다. 당신은 원하는 기능을 선택하고 모든 것을 조합하기만 하면 됩니다. 여기서는 우분투에서 커스텀 커널을 빌드하고 설치하는 방법을 보여드리겠습니다.
목차
- 의존성 설치
- 우분투용 커널 소스 가져오기
- 빌드를 위한 설정
- 우분투 커널 구성
- 우분투용 커널 패키지 빌드
- 커널 설치
- 커스텀 바이너리 커널 설치
- 우분투에서 메인라인 설치
- 메인라인 사용하기
또한 읽어보세요: 리눅스에서 커널 다운그레이드하는 방법
의존성 설치
커널을 만지기 전에, 빌드할 수 있는 올바른 도구가 필요합니다. 아래 명령어를 사용하여 우분투의 저장소에서 다운로드하세요.
sudo apt install wget build-essential bison flex libncurses-dev libssl-dev libelf-dev우분투용 커널 소스 가져오기
이제 빌드할 소스를 가져올 수 있습니다. 모든 커널은 공식 리눅스 저장소에서 사용할 수 있습니다. 그들의 cdn 저장소에서 최신 릴리스를 확인할 수 있습니다. 이 문서 작성 시점에서 최신 버전은 5.16입니다. 다음 명령어를 사용하여 다운로드할 수 있습니다:
cd /home/$USER/
mkdir kernelbuild
cd kernelbuild
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.16.19.tar.xz
커널을 다운로드하는 데 시간이 걸리므로 인내심을 가지세요.
빌드를 위한 설정
커널 tar 파일의 압축을 푼 후, 기존 커널의 구성을 복사합니다.
tar xavf linux-5.16.19.tar.xz && cd ./linux-5.16.19
cp /boot/config-`uname -r` .config이제 이전 구성을 새 커널에 맞게 조정해야 합니다.
make oldconfig이 스크립트는 모든 새로운 기능에 대해 어떻게 할지를 물어봅니다. 기본값을 사용하려면 대신 make olddefconfig를 사용하세요.
또한 읽어보세요: 리눅스를 위한 새로운 PC 빌드하는 방법
우분투 커널 구성
구성을 그대로 두어도 괜찮겠지만, 커스텀 커널을 빌드할 이유가 없습니다. 구성을 사용자 정의하려면 다음을 실행하세요.
make menuconfig
파란색 메뉴가 열리며 카테고리 목록이 표시됩니다. 이러한 카테고리에는 커널에 빌드할 수 있는 기능이 포함되어 있습니다.

예를 들어, BTRFS 파일 시스템에 대한 지원을 커널에 직접 빌드하고 다른 기능을 활성화하려면 “파일 시스템 ->”로 이동합니다. 그런 다음 “Btrfs 파일 시스템 지원”이 보이는 곳으로 스크롤합니다. 원하는 옵션을 선택하고 스페이스 바를 누릅니다. 스페이스 바는 “M”, “*” 및 빈 옵션 사이를 순환합니다.
- “M”은 기능이 필요할 때 우분투가 시작될 때 로드되는 모듈로 빌드됨을 의미합니다.
- “*”는 기능이 커널에 빌드되어 항상 로드됨을 의미합니다.
스크립트는 최종 제품에 빈 옵션을 포함하지 않습니다. 설정이 끝나면 디렉토리를 정리하세요.
make clean이제 커널을 빌드할 준비가 되었습니다.
우분투용 커널 패키지 빌드
우분투에는 커널을 빌드하는 방법이 있지만, 이전 버전용으로 작성된 스크립트를 사용해야 합니다. 때때로 괜찮지만, 다른 경우에는 심각하게 망가질 수 있습니다. 그래서 일반적으로 GNU make를 사용하여 더 일반적인 리눅스 방법을 사용하는 것이 좋습니다.
make -j `getconf _NPROCESSORS_ONLN`
make deb-pkg LOCALVERSION=-custom이 줄은 시스템의 CPU 코어 수에 하나를 더하여 커널을 .deb 패키지로 컴파일합니다. 또한 패키지 버전 끝에 “custom”을 추가하여 다른 커널과 구별합니다.
참고: 커널을 컴파일하는 데 몇 시간이 걸릴 수 있습니다. 인내심을 가지세요.
커널 설치
새로운 커널 패키지는 한 디렉토리 위에서 찾을 수 있습니다. 버전 번호로 쉽게 식별할 수 있습니다. dpkg를 사용하여 설치할 수 있습니다.
cd ./../
sudo dpkg -i linux-firmware-image-5.16.19-custom_5.16.19-custom-1_amd64.deb
sudo dpkg -i linux-libc-dev_5.16.19-custom-1_amd64.deb
sudo dpkg -i linux-headers-5.16.19-custom_5.16.19-custom-1_amd64.deb
sudo dpkg -i linux-image-5.16.19-custom-dbg_5.16.19-custom-1_amd64.deb
sudo dpkg -i linux-image-5.16.19-custom_5.16.19-custom-1_amd64.deb설치가 완료되면 컴퓨터를 재부팅하세요. 우분투는 자동으로 새로운 커널로 부팅됩니다. 시작할 때 터미널에서 uname -r을 실행하여 확인할 수 있습니다.
커스텀 바이너리 커널 설치
우분투에서 커스텀 리눅스 커널을 사용하는 또 다른 방법은 미리 컴파일된 바이너리 버전을 설치하는 것입니다. 소스 기반 버전과 달리, 이는 이미 실행 중인 시스템 및 아키텍처에 대해 컴파일된 커널의 복사본입니다.

또한, 커스텀 바이너리 커널은 우분투 설치에서 커널 버전 간에 쉽게 전환할 수 있는 유연성을 제공합니다. 이는 하드웨어 호환성 문제로 인해 자신의 커널을 컴파일하고 싶지 않은 경우 특히 유용합니다.
그렇다면, 커스텀 바이너리 커널을 설치하는 가장 인기 있는 방법은 메인라인을 통해서입니다. 이는 bkw777이 개발한 GUI 프로그램으로, 리눅스 커널 설치 프로세스를 간소화하는 것을 목표로 합니다.

이 프로그램은 커널을 적절하게 다운로드하고 구성하는 데 필요한 모든 단계를 결합합니다. 예를 들어, 메인라인을 사용하면 설치할 커널 바이너리 및 헤더를 쉽게 선택할 수 있습니다. 그런 다음 이 버전을 캐시에 보관하여 필요할 때 쉽게 로드할 수 있습니다.
또한 읽어보세요: 커스텀 리눅스 배포판을 쉽게 만들기 위한 5가지 도구
우분투에서 메인라인 설치
그렇다면 메인라인 설치는 상대적으로 쉽습니다. 먼저, apt에 메인라인의 패키지 저장소를 포함하도록 지시해야 합니다. 이를 위해 터미널에서 다음 명령어를 실행할 수 있습니다:
sudo add-apt-repository ppa:cappelikan/ppa
여기서 우분투의 패키지 디렉토리를 업데이트해야 합니다. 이렇게 하면 apt가 방금 추가한 저장소에서 읽을 수 있게 되고, 결과적으로 메인라인을 다운로드할 수 있습니다:
sudo apt update이제 남은 것은 메인라인 자체를 설치하는 것입니다:
sudo apt install mainline
메인라인 사용하기
완료되면 애플리케이션 메뉴로 가서 메인라인을 검색하여 로드할 수 있습니다. 메인라인 프로그램이 로드되면 시스템에 설치할 수 있는 모든 커널 패키지가 표시됩니다.

거기서 시스템에 사용할 커널 버전을 선택하고 설치할 수 있습니다. 예를 들어, “Linux 5.16.19”를 선택하고 오른쪽 사이드바에서 설치를 클릭하여 이 커널 버전을 내 머신에 완전히 로드할 수 있습니다.

반면에, 더 이상 사용하고 싶지 않은 커널을 제거하기 위해 메인라인을 사용할 수도 있습니다. 예를 들어, “Linux 5.15”를 선택하고 같은 오른쪽 사이드바에서 제거를 클릭하여 이 커널을 시스템에서 제거할 수 있습니다.

이렇게 하면 해당 커널 버전과 연결된 모든 파일 및 바이너리를 깔끔하게 추가하거나 제거할 수 있습니다. 이는 커널 바이너리에 라이브러리, 헤더 및 펌웨어가 포함되어 있어 제대로 작동할 수 있게 해줍니다.
또한 읽어보세요: 윈도우 10에서 커널 보안 검사 실패 수정하는 방법
자주 묻는 질문
커스텀 커널을 실행할 때의 문제는 무엇인가요?
커스텀 커널을 실행할 때 가장 큰 문제 중 하나는 시스템의 중요한 부분을 정기 업데이트에서 제외하는 것입니다. 이는 이제부터 모든 커널 업데이트를 수동으로 설치해야 함을 의미합니다. 여기에는 추가 하드웨어 기능 및 중요한 보안 업데이트가 포함됩니다.
이는 최소한의 사용자 개입으로 실행되고 유지되는 시스템이 필요한 경우 문제가 될 수 있습니다. 따라서 커스텀 커널을 실행하는 것은 원하는 커널 기능을 아는 것뿐만 아니라 중요한 업데이트를 인식하는 것도 필요합니다.
커널 바이너리를 사용하는 데 단점이 있나요?
네. 커널 바이너리를 사용하는 주요 단점 중 하나는 내장된 기능에 대한 제어가 없다는 것입니다. 이는 소스 기반 커널과 달리, 커널 바이너리에는 하드웨어 특정 최적화 및 지원이 포함되지 않음을 의미합니다.
따라서 우분투와 함께 이국적인 하드웨어를 사용하려는 경우, 커널을 처음부터 컴파일해야 합니다.
커널 기능을 모듈로 컴파일하는 것이 좋나요, 아니면 내장으로 컴파일하는 것이 좋나요?
이는 주로 커널을 사용하려는 목적에 따라 다릅니다. 예를 들어, 기능을 내장으로 컴파일하면 커널이 메모리에 로드될 때 즉시 로드되도록 보장합니다. 그러나 이렇게 하면 최종 커널의 전체 크기가 증가합니다.
반면에, 기능을 모듈로 컴파일하면 기본 커널에서 제거됩니다. 대신, 이 모듈은 커널이 이미 메모리에 로드된 후에 로드됩니다. 이는 최종 커널의 파일 크기를 줄여 빠르고 안전하게 만듭니다.
이러한 점을 감안할 때, 커널 기능을 내장으로 컴파일하는 것이 좋습니다. 이는 시스템의 호환성 문제를 줄이는 데 도움이 됩니다. 그러나 너무 많은 기능을 포함하는 것에는 주의해야 합니다. 그렇게 하면 커널의 전체 크기가 크게 증가합니다.