본문 바로가기
운영체제/리눅스(CentOS)

🐧 완전 초보도 가능한 리눅스 커널 컴파일 & 커스텀 설정 가이드

by 마루의 일상 2025. 4. 15.
728x90
반응형

👋 커널이란 무엇인가요?

리눅스 커널 컴파일을 시작하기 전에 먼저 "커널이 뭐야?" 라는 궁금증부터 풀고 가볼게요.

🧠 커널(Kernel)은 운영체제의 핵심(심장) 입니다!

운영체제(OS)는 크게 두 부분으로 나뉘어요:

  • 커널(Kernel): 하드웨어와 가장 가까이 있는 핵심 소프트웨어
  • 쉘(Shell) 또는 GUI: 사용자가 보는 터미널, 데스크탑 환경 등

📦 커널의 역할

역할설명
🖥️ 하드웨어 제어 CPU, 메모리, 저장장치, 네트워크, USB 등 제어
📲 프로그램 실행 관리 여러 프로그램이 동시에 잘 돌아가도록 스케줄링
🔐 보안과 권한 관리 누가 어떤 파일이나 장치를 쓸 수 있는지 결정
💬 소통 중개자 프로그램이 "프린터 써줘!"라고 하면, 커널이 프린터에게 전달

💡 비유로 이해하기

커널은 운영체제의 번역가이자 관리자예요.

사용자는 "이 파일 열어줘!"라고 요청하면,
커널이 하드웨어와 직접 대화해서 파일을 찾아주는 거죠.


🤔 왜 커널을 직접 컴파일하나요?

대부분의 리눅스 배포판은 이미 커널을 설치해줍니다.
그런데 직접 커널을 컴파일하면 이런 장점이 있어요:

  • 🎯 불필요한 기능 제거로 시스템을 가볍게!
  •  최적화된 성능 (내 CPU/장치에 맞는 커널 설정)
  • 🧪 최신 기능 사용 (공식 배포보다 더 새로운 버전 사용 가능)
  • 💻 리눅스를 더 깊이 이해할 수 있음

리눅스를 좀 더 내 입맛에 맞게, 가볍고 빠르게 만들 수 있는 방법 중 하나는 직접 커널을 컴파일하는 것입니다. 이 포스팅에서는 Ubuntu 기준으로, 리눅스 커널을 직접 다운로드하고, 설정하고, 컴파일해서 설치하는 전 과정을 아주 쉽게 알려드립니다.

✅ 1단계: 개발 도구 및 필요한 패키지 설치

커널을 컴파일하려면 먼저 빌드에 필요한 패키지를 설치해야 합니다.

sudo apt update
sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev bc
  • build-essential: gcc 컴파일러 등 필수 개발 툴
  • libncurses-dev: 커널 설정 화면(UI)을 구성하는 라이브러리
  • libssl-dev, libelf-dev: 보안 및 모듈 처리에 필요한 라이브러리
  • bc: 커널 컴파일 중 사용되는 계산기 프로그램

✅ 2단계: 커널 소스 다운로드

리눅스 커널은 https://kernel.org 에서 공식적으로 배포됩니다.

cd ~
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.8.1.tar.xz
tar -xf linux-6.8.1.tar.xz
cd linux-6.8.1

💡 최신 버전은 kernel.org에서 직접 확인하세요.

✅ 3단계: 기존 설정 파일 복사 (중요)

cp /boot/config-$(uname -r) .config

현재 사용하는 커널 설정을 복사하는 것입니다.

✅ 4단계: 커널 설정 (커스텀 설정)

make menuconfig

텍스트 기반의 설정 화면이 뜹니다.

  • Processor type and features: CPU 아키텍처나 멀티코어 설정
  • Device Drivers: USB, 사운드, 블루투스 등 드라이버 설정
  • File systems: ext4, Btrfs, NTFS 등 파일 시스템 선택
  • Networking support: 필요 없는 네트워크 비활성화

조작 방법:
🟡 스페이스바: ON/OFF
🟡 화살표 키: 이동
🟡 엔터: 하위 항목 진입
🟡 ESC 두 번: 이전 메뉴로
🟡 Exit → Save: 저장 후 나가기

💡 초보자 팁: 모르면 기본 설정 그대로 두세요!

✅ 5단계: 커널 컴파일 (시간이 오래 걸립니다)

make -j$(nproc)

CPU 코어 수만큼 병렬 빌드합니다. 예: 4코어라면 make -j4

⏱️ 10~40분 소요. 컴퓨터 사양에 따라 다름

✅ 6단계: 모듈 설치 및 커널 설치

sudo make modules_install
sudo make install

/boot 디렉토리에 아래 파일들이 생성됩니다:

  • vmlinuz-6.8.1
  • initrd.img-6.8.1
  • System.map-6.8.1

✅ 7단계: 부트로더 업데이트 및 재부팅

sudo update-grub
sudo reboot

부팅 후 커널 버전을 확인하세요:

uname -r

출력이 6.8.1이면 성공!

✅ 8단계: 부팅 실패 대비책

  • GRUB 화면에서 이전 커널 선택 가능하도록 유지
  • 부팅 실패 시 → GRUB에서 이전 커널 선택
  • 문제 해결 후 /boot에서 문제 커널 제거

💡 추가 팁: 최소 커널 만들기 (초보자 추천 X)

IoT/임베디드용으로 최소 커널을 빌드할 수도 있지만, 너무 많은 기능을 꺼두면 부팅이 안 될 수 있습니다.

✅ 정리 요약

단계 설명
1 필수 패키지 설치
2 커널 소스 다운로드
3 기존 커널 설정 복사
4 make menuconfig로 설정
5 make -j$(nproc)로 컴파일
6 make modules_install & make install
7 update-grub 후 재부팅
8 uname -r로 커널 버전 확인

🏁 마무리하며

커널을 직접 컴파일하면, 시스템에 대한 이해도도 높아지고, 내 입맛대로 커스터마이징할 수 있는 능력도 생깁니다.
처음엔 어렵게 느껴지지만, 직접 해보면 의외로 재미있고 뿌듯한 과정이 될 거예요 😊

필요하시면:

  • PDF 버전 제공
  • 설정값 백업 및 자동화 스크립트
  • 최소 커널 빌드 예제

 

 

 

 

728x90
반응형