본문 바로가기

linux 커널

ubuntu 22.04 커널 빌드

안녕하세요 

오늘은 ubuntu 22.04.3 버전에서 커널 빌드 방법을 포스팅했습니다.

빌드 환경 : virtualbox, ubuntu 22.04.3 버전

필요한 패키지

sudo apt update
sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev fakeroot

 

1.현재 커널버전

우선 현재 ubuntu 22.04.3버전의 커널을 확인해줍니다.

 

 1-1. 커널 버전 확인 방법

 uname -r

kernel 버전

1-2. 커널 버전 읽는법

커널 버전을 볼때 아래 그림을 생각하면 보면 좀 더 자세하게 알 수 있습니다.

커널 버전

2. 커널 설치

minor 버전이 같은 커널버전을 다운 받을 생각입니다.

 

2-1. 커널 site

https://www.kernel.org/

wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.2.16.tar.gz
tar -xvf linux-6.2.16.tar.gz

해당 커널 버전은 longterm 버전이 아니라 최신 버전은 5월이 마지막이다.

 

3. 빌드

3-1. 현재 OS에서 사용하는 커널 설정을 불러온다.

cd linux-6.2.16
cp -v /boot/config-$(uname -r) .config

3-2.  로드된 모듈에 필요하지 않은 모듈 옵션을 비활성화 해줍니다.

make localmodconfig

3-3. 추가 옵션

make: *** [Makefile:2021: .] Error 2

위 Error가 나오지 않게 아래 옵션을 추가해준다.

scripts/config --disable SYSTEM_TRUSTED_KEYS
scripts/config --disable SYSTEM_REVOCATION_KEYS
scripts/config --set-str CONFIG_SYSTEM_TRUSTED_KEYS ""
scripts/config --set-str CONFIG_SYSTEM_REVOCATION_KEYS ""

 

3-4. cpu 수 확인 및 빌드 

nproc 
fakeroot make -j$(nproc)

nproc는 CPU Core의 개수를 확인 할 수 있습니다.

make의 -j옵션은 빌드중 사용할 core의 개수를 지정할 수 있습니다.

실제 root권한을 부여하지 않고 가상의 root권한을 부여하고, 빌드 과정에서 생성되는 파일들의 소유권 및 권한 정보를 조작도와줍니다. 

3-5. 설치

sudo make modules
sudo make modules_install
sudo make install

이후 커널 설치가 완료되면

재부팅해주면 됩니다.

 

재부팅 후 uname -r 로 커널버전을 확인해줍니다.

커널 빌드 후

 

 

감사합니다.

'linux 커널' 카테고리의 다른 글

netfilter hook을 이용한 fw 만들기 - 2  (2) 2023.12.30
netfilter hook을 이용한 fw 만들기  (2) 2023.12.18
리눅스 커널 모듈  (2) 2023.12.18