apt-get update
sudo apt-get install build-essential libncurses5 libncurses5-dev bin86 kernel-package libssl-dev bison flex libelf-dev
http://kernel.org
위 사이트에서 원하는 커널 버전을 다운로드
저는 경로만 확인한 후 wget으로 다운 받았습니다.
cd /usr/src #디렉토리 이동
sudo wget https://www.kernel.org/pub/linux/kernel/v5.x/linux-5.4.282.tar.xz
sudo xz -d linux-5.4.282.tar.xz #압축 해제
sudo tar xf linux-5.4.282.tar
cd /usr/src/linux-5.4.282
uname -r # 현재 사용중인 커널 버전 확인
sudo cp /boot/config-현재커널명 ./.config
현재 저는 linux-5.15.0-122-generic 사용중 이므로
sudo cp /boot/config-linux-5.15.0-122-generic ./.config #다운 받은 커널 소스에 복사
현재 사용중인 커널의 config를 다운받은 커널에도 적용시켜야 하므로
sudo make menuconfig
를 입력하면 아래 사진과 같은 화면이 출력
위 사진에서 Load -> OK -> Save -> Exit
grep -c processor /proc/cpuinfo #사용 가능한 cpu 수 확인
sudo make-kpkg --J # --initrd --revision=1.0 kernel_image
위에서 확인한 cpu 수를 # 자리에 넣고 컴파일 시작
아무런 반응이 없으면 revision=1.0 에 1.0 을 2.0 , 3.0으로 바꿔보기
만약 위에 방법으로 컴파일이 되지 않는다면
sudo make -j# #에는 확인한 cpu 수 대입
sudo make modules_install
sudo make install
컴파일이 진행 중
make: *** [debian/ruleset/targets/common.mk:301: debian/stamp/build/kernel] Error2
위와 같은 에러 발생 시 아래 명령어 입력
sudo scripts/config --disable SYSTEM_TRUSTED_KEYS
sudo scripts/config --disable SYSTEM_REVOCATION_KEYS
환경에 따라 오랜 시간이 걸릴 수 있습니다.
컴파일 완료 화면
컴파일 완료 후 /usr/src 디렉토리로 이동하면 위와 같이 .deb 파일 생성됨을 확인
sudo make-kpkg -j* --initrd --revision=1.0 kernel_image 사용했을 시
sudo dpkg -i 커널이미지파일명
sudo make -j* 사용했을 시
sudo make modules_install install
설치 완료 후 재부팅 , 설치된 커널 확인
만약 설치된 커널로 작동하지 않는다면 GRUB 설정을 변경해줘야 함.
sudo vim /etc/default/grub
여기서
GRUB_TIMEOUT_STYLE = menu
GRUB_TIMEOUT = 10
GRUB_TERMINAL=console
을 수정해주면 된다.
이후 재부팅 -> Advanced option for ubuntu -> 설치된 커널
변경된 커널 버전 확인