1. 모듈의 개념과 커널 컴파일의 필요성

커널에 담긴 하드웨어 제어 코드 중에서 항상 사용하지 않고 필요할 때만 가끔씩 사용되는 부분을 따로 빼둔것이 모듈이다.

주로 하드웨어의 지원문제 때문에 커널 컴파일 또는 커널 업그레이드를 한다.

 

2. 커널 업그레이드하기

지금 하드웨어에서 잘 작동하면 커널을 업그레이드 할 필요는 없다.

www.kernel.org  접속

6.81 최신버전을 다운받는다. 다운로드 폴더에 저장된다.

cd /root/다운로드

다운로드 폴더로 이동

mv linux-6.8.1.tar.xz /usr/src/
cd /usr/src/
tar cfj linux-6.8.1.tar.xz
cd linux + tab키
pwd
ls

/usr/src/ 파일 이동

/usr/src/ 폴더로 이동

파일 해제

폴더 이동

현재 폴더 확인

파일 리스트 출력

터미널 자동완성 기능을 잘 활용한다.

dnf -y install gcc gcc-c++ make bison flex elfutils-libelf-devel openssl-devel dwarves

컴파일을 위한 관련 패키지를 먼저 설치한다.

dnf -y install qt5*

qt5 관련 패키지도 설치 100개 이상이다.

make mrproper

커널 초기화

실제로 make 패키지가 없어서 실행되지 않았다. make 패키지 설치를 하려고 했는데 aarch64용 애플실리콘용 패키지가 있음에도 계속 x86용 파일을 다운받아서 설치가 되지 않았다.

그래서 따로 make-4.3-7.el9.aarch64.rpm Rocky Linux 9 Download (pkgs.org) 에서 rpm 파일을 파이어폭스로 다운받아서

sudo dnf install /다운로드/make-4.3-7.el9.aarch64.rpm

수동으로 설치해보았다.

make 기능을 써보려해도 

make: *** 타겟이 지정되지 않았고 메이크파일이 없습니다.  멈춤.

메시지만 출력되어서 책 부분을 정리만 하고 실습하지 못하였다.

----- 추가

linux-6.8.1.tar.xz 파일을 압축한 폴더에서 실행하여야 한다.

그래도 문제가 완전히 해결되지 않는다.

gcc 관련 패키지가 설치 되지 않았다는 문제가 생겼다.

패키지를 설치하는데 자꾸 문제가 생긴다. make는 수동으로 설치했지만 나머지 패키지도 수동으로 설치하는 것은 곤란하다.

sudo dnf -y --enablerepo=baseos install gcc gcc-c++ make bison flex elfutils-libelf-devel openssl-devel dwarves

repo가 여러개 되면서 충돌이 발생하는것 같아 baseos로 한정했는데도 제대로 설치가 되지 않았다.

sudo dnf -y --enablerepo=baseos install gcc gcc-c++ make bison flex elfutils-libelf-devel openssl-devel dwarves --skip-broken

--skip-broken 옵션을 추가해도 마찬가지다.

-------------------문제 해결-----------------------

nano /etc/yum.repos.d/This.repo

책은 윈도우 기준이기 때문에 repo 주소가 x86_64 이다. 당연히 애플 실리콘에서는 패키지가 설치가 되지 않고 충돌 메시지만 출력된다.

baseurl 를 aarch64 에 맞게 변경하거나 설치 당시 설정을 그대로 사용한다.

이 조치 이후 충돌없이 설치가 되었다.

---------------------------------------

make xconfig

커널 환경 설정창 활성화

책은 왼쪽에 [Processor type and features] - 오른쪽에 [Processor family] - [자신의 cpu type 선택] 이라고 나오지만

찾아봐도 없다.

영상강의에도 CPU Power Management 위에 있는걸로 나오는데 ARM 관련 있지만 프로세서 타입은 아닌것 같다.

 

왼쪽에 [File systems] - [DOS/FAT/NT Filessystems]를 선택하고 오른쪽의 [NTFS file system support]와 그 하위 항목을 모두 체크한다. 이 설정을 통해 NTFS에 쓰기가 가능해진다. NTFS 로 포맷된 USB 도 사용이 가능해진다.

책이 윈도우 기준이라 애플 실리콘 맥에서 NTFS 를 쓸수 있을지 확신하지 못해서 일단 체크하지 않았다.

 

[File] - [Save]

저장하여 창을 닫는다.

gedit .config

책은  7917~7918 행의 내용을 주석처리한다.

# CONFIG_SYSTEM_TRUSTED_KEYRING=y
# CONFIG_SYSTEM_TRUSTED_KEYS="certs/rocky.pem"

rocky는 달라질수 있겠다.

문제는 ls -a로 모든 파일을 표시했을때 .config 파일이 없다. 그래서 스킵하고 진행해보았다.
make clean
make; make modules_install; make install

이전의 컴파일 정보를 삭제한다.

3가지 명령을 한꺼번에 실행한다.

.config 파일이 없어서 컴파일 되지 않았다.

커널 업그레이드가 뒤에 학습과 연계되는 것은 아니라서 일단 넘어간다.

 

 

 

 

 

 

+ Recent posts