0. 현재 커널 버전 확인 명령어
기존 커널 버전이 5.15.0 버전이었는데
최근 논문 세미나에서 발표했던 논문의 evaluation을 재현하려고 하니
6.2 버전 이상의 리눅스 커널이 필요해서 업그레이드 해야했다
1. 기존 커널의 config 복사하는 방법
sudo cp /boot/config-$(uname -r) .config
를 실행하면 이전에 사용하던 커널의 .config 를 복사해서 사용할 수 있다
나는 이전에 사용했던 5.5.x 버전의 .config 파일을
이 사진처럼 복사해서 사용하려고 했었으나
1-1. 커널 버전 갭이 큰 경우 발생하는 문제
기존에 가지고 있던 .config 파일을 이용해서 컴파일하려고 하니까
sudo make modules 명령어 실행까지는 오류가 발생하더라도 진행되는데
그 이후 명령어는 전혀 진행되지 않는 문제가 있었다
원인은
.config 파일의 버전 갭이 크기 때문이었다
새로 컴파일하려는 버전은 6.6.x 였기 때문에 차이가 커서 실행되지 않은 것이다
1-2. 해결 방법 ( linux-6.6.x 버전 .config)
그래서 랩실 선배님의 6.6.x 커널에서 돌아가는 .config 파일을
설치할 리눅스 디렉토리에 받아서 새 .config에 복사하고 진행했다
.config 파일 링크 https://github.com/devCharlotte/linux-6.6.43-config.git
2. make menuconfig
.config 파일을 복사했으니 menuconfig를 make 하는데
GUI 메뉴 형식의 커널 환경 설정 화면에 들어가면 하단 우측에 load가 있으니
불러오기를 한 후 exit을 하면 불러오기 한 .config로 저장된다
GUI 형식이 아닌 CLI를 이용할 것이라면 make config로도 할 수 있다
3. make bzImage
이제 실제로 실행되는 커널을 빌드하는 bzImage 명령어를 사용한다
-j 옵션을 사용해서 명령어 수행할 때 사용할 코어 개수를 높여주었다
코어 개수를 적게 할당하면 n시간 걸린다고 한다
3-1. 코어 개수 확인 방법
코어 개수를 확인하는 방법은 아래 그림처럼
nproc 이나 grep -c processor /proc/cpuinfo 를 입력하면 된다
4. make modules
커널에서 사용할 모듈을 빌드하는 make modules
5. make modules_install
컴파일된 모듈을 설치하는 make modules_install
여기까지는 오래 걸리는 명령어이기 때문에 -j 옵션으로 코어 개수를 높여주는 것이 좋다
6. make install
부트 스트랩에 새롭게 바뀐 설정들을 알려주는 make install
7. update-grub & reboot
모두 수행한 후 재부팅하면 끝!
8. 끝 !! 서버 접속해서 확인하기
재부팅하고 바로 서버에 접속하면
connection refused 나 resource temporarily unavailable 이 뜰 수 있는데
조금 기다리면 접속이 가능하다
접속하고 버전을 확인해보면
6.6.43 뒤에 붙는 것은 내가 설정한 extra version 이름이다
9. extra version 추가하기
설정하려면 vim으로 Makefile을 열어서 맨 위 문단의 extra version 에 값을 주면
커널 버전 뒤에 이름을 붙일 수 있다
'[ Laboratory ] > System Software & Storage' 카테고리의 다른 글
[SPDK] spdk_bdev_read() 작동 방식 (0) | 2024.08.26 |
---|---|
[SPDK/NVMe] NVMe 마운트 방법 (0) | 2024.08.06 |
[FIO] Flexible I/O tester FIO 설치 방법 (0) | 2024.07.31 |
[SPDK/xNVMe] Getting Started xNVMe - xnvme 설치 (0) | 2024.07.28 |
[Linux Kernel] 리눅스 커널 분석 - 실습 환경 구축 (cscope) (0) | 2024.07.08 |
[Linux Kernel] 리눅스 커널 분석 - 실습 환경 구축 (리눅스) (0) | 2024.07.08 |
[Linux/Cscope] vim 으로 cscope 사용시 연결 없음 오류 (0) | 2024.07.08 |