반응형
Vainilla Kernel Source가 아닌 Ubuntu Kernel Source로 Kernel Compile 만들기 방법에 대해 소개합니다.
아래 방법은 Ubuntu 20.04 및 22.04에서 동작합니다.
1. Ubuntu Kernel Source Repository 설정
$ sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
$ sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
$ sudo apt-get update
2. Compile에 필요한 Tool 설치
# Kernel Build Tool 설치
$ sudo apt build-dep linux linux-image-$(uname -r)
- build-dep 오류가 발생하는 경우
- 참고: https://askubuntu.com/questions/1454817/linux-generate-not-installable
# builddeps:linux-signed 오류 나는 경우
$ sudo apt build-dep linux linux-image-generic
- 기타 필요한 Tool 설치
sudo apt install git libncurses-dev gawk flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf llvm build-essential libncurses5-dev gcc bc dwarves
3. Ubuntu Kernel 받기
# switch to root
$ sudo su
# get the current kernel source downloaded and extracted (ignore the end user warning)
apt source linux-image-unsigned-$(uname -r)
$ cd ./linux-<version>/
# Give all user execution permissions to scripts
# (Important, otherwise error will be thrown even if you are running them as root)
$ chmod a+x debian/scripts/*
$ chmod a+x -R ./scripts
4. Kenel Compile
# 현재 Kernel Configuration을 내려받은 커널 소스에 적용
$ cp /boot/config-$(uname -r) ./.config
$ make oldconfig
- certificate error 발생하는 경우
- 참고: https://stackoverflow.com/questions/67670169/compiling-kernel-gives-error-no-rule-to-make-target-debian-certs-debian-uefi-ce
sudo scripts/config --disable SYSTEM_TRUSTED_KEYS
sudo scripts/config --disable SYSTEM_REVOCATION_KEYS
- Kernel Compile
# Kernel Compile
$ make -j$(nproc) deb-pkg LOCALVERSION=-custom
- deb-pkg 오류 발생하는 경우
- 참고: https://unix.stackexchange.com/questions/603365/building-a-custom-kernel-in-debian
# deb-pkq 오류 나는 경우
$ make -j$(nproc) bindeb-pkg LOCALVERSION=-custom
5. Kernel 설치
# Kernel 설치
$ cd ..
$ dpkg -i *.deb
$ update-grub
# Reboot하고 Grub Menu에서 Kernel 선택
$ reboot
# Reboot 완료 후 Kernel 버전 확인
# LOCALVERSION에 -custom을 붙였으니 uname -r의 결과 확인
$ uname -r
반응형
'【Fundamental Tech】 > Ubuntu' 카테고리의 다른 글
[Ubuntu] apt-get update Hash sum mismatch (0) | 2024.10.25 |
---|---|
[Ubuntu] Mainline Kernel 설치 (1) | 2024.10.13 |
[Ubuntu] Ubuntu Linux Release Schedule (0) | 2024.09.04 |
[Ubuntu] 의존성 포함 deb 패키지 다운로드 (0) | 2024.09.04 |
[Ubuntu 22.04] XRDP 연결 및 설정 (0) | 2024.08.27 |