작성일: 2026년 3월 5일
Linux kernel source code를 다운로드하기
git clone --depth 1 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
위 git 명령은 최신 mainline 코드를 가져온다.
방금 다운로드한 kernel version을 확인하려면, Makefile을 열어서 파일 내용의 위 5줄을 읽어야 한다.
$ cat Makefile
VERSION = 7
PATCHLEVEL = 0
SUBLEVEL = 0
EXTRAVERSION = -rc2
NAME = Baby Opossum Posse
... 중간 생략 ...
만약 특정 version의 kernel source code를 가져와서 build하고 싶다면, 아래 예시와 같이 `git fetch` 명령을 실행해야 한다.
$ git fetch origin tag v6.19 --no-tags
$ git checkout v6.19
## 또는 아래와 같이 처음부터 `git clone`할 때, 특정 tag를 지정해서 가져온다.
$ git clone --depth 1 --branch v6.19 https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git linux-6.19
Kernel source code를 build하기 위해 필요한 utility program을 설치하기
sudo apt install -y build-essential libncurses-dev bison flex libssl-dev libelf-dev libdw-dev dwarves bc pkg-config rsync cpio zstd
Kernel source code를 Compile하기
`make menuconfig` 명령을 실행하여 필요한 빌드 옵션을 On/Off 설정한다.
`make munuconfig` 화면에서 build option을 설정했으면, Signature 체크용 인증서 정보를 삭제한다. (아래 명령을 참고)
./scripts/config --set-str SYSTEM_TRUSTED_KEYS "" --set-str SYSTEM_REVOCATION_KEYS ""
`make` 명령을 수행한다.
source code 분량이 많기 때문에 -j 옵션을 추가하여 make 명령을 수행해야 한다.
-j 옵션이 없는 상태로 compile하면, 하루 종일 build해야 한다.
make -j$(nproc)
또는
make -j2
Tip: 참고할 내용
Kernel source code Build에 걸리는 시간:
[ CPU 8 Core를 사용할 때 ]
- HW 사양: Intel i7-11700 @ 2.50GHz
- Build time: 32분 걸림
[ CPU 1 Core를 사용할 때 ]
- HW 사양: Intel i7-11700 @ 2.50GHz
- Build time: 3시간 40분 걸림
Build된 kernel binary file을 Machine에 적용하는 방법
1. Module 설치
sudo make modules_install
위 명령은 .ko module file을 /lib/modules/6.19.0/ 같은 directory에 복사한다.
2. Kernel 설치 (Kernel image 복사, Grub 설정 변경)
sudo make install
위 명령은 bzImage 파일과 System.map 파일을 /boot directory에 복사하고
Ubuntu/Debian 같은 배포판 리눅스에서는 /sbin/installkernel 스크립트를 이용하여 initramfs 파일을 생성하고 update-grub 절차까지 수행한다.
3. Reboot 후 새 kernel 선택
sudo reboot
컴퓨터가 reboot되면서, GRUB 화면이 보일 것이다.
이때 [ Advanced options ] - [ Linux 6.19.0 ] 을 선택하고, OS booting 과정을 진행하면 된다.
4. 새 kernel 적용 여부 확인
$ uname -r
6.19.0-11-generic
내가 build한 kernel version과 같은지 확인한다.
'Ubuntu' 카테고리의 다른 글
| Linux OS Network Traffic Processing (0) | 2026.03.05 |
|---|---|
| Linux에서 큰 파일을 복사할 때 진행률 확인하기 (0) | 2026.03.05 |
| Ubuntu OS가 Suspend mode에서 깨어날 때 Network Port 인식 못 하는 문제 해결 방법 (0) | 2025.11.25 |
| Ubuntu 24.04를 macOS Tahoe처럼 보이도록 설정하기 (0) | 2025.10.31 |
| Ubuntu OS 설치 후 해야 할 초기 설정 작업 (0) | 2025.04.01 |

