커널 설치 및 관리
0. 커널 정보 확인
$ uname -r
>> 5.14.0-503.11.1.el9_5.aarch64
uname은 system information을 출력해주는 명령어로 소개되어 있다. -r 옵션 이외에도 다양한 옵션이 존재하기 때문에 --help를 이용해서 결과를 한번씩 확인해 보는것을 추천한다.
1. 커널 파일 다운로드 (생략)
2. 컴파일 도구 설치 (생략)
해당 내용들은 커널보다는 SW 설치 색션에 더 가까워서 해당 목적으로 출제되지 않는 모양이다. URL제시 하면 문제가 너저분해지고, 컴파일 필요 패키지를 전부 외운다는것이 무리에 가까운 일이라고 판정 한 듯 하다. (확실하진 않다.)
3. 클린 타겟
make clean | 커널 환경설정을 제외한 파일을 제거한다. | 약 |
make mrproper | 커널 환경설정을 포함한 모든 파일을 제거한다. | 중 |
make distclean | mrproper + 백업이나 패치파일 모두 제거한다. | 강 |
첫 커널을 설치하는 것이라면 상관 없지만 그렇지 않은 경우 이전 커널에 대한 잔여물로 적용이 잘 되지 않을 수 있다. 때문에 필요한 경우 클린 타겟을 통해서 이전 내용들을 지워주는 작업을 진행한다.
4. 커널 환경설정
make config | 텍스트 기반 환경설정 |
make menuconfig | make config 메뉴 버전 |
make nconfig | make menuconfig에서 좀 더 사용성이 향상됨 |
make xconfig | X 윈도우 환경의 Qt기반 환경설정 (GUI) |
make gconfig | X 윈도우 환경의 GTK+기반 환경설정 (GUI) |
make config와 make menuconfig를 외우고 이외는 부가적으로 인지하면 좋을 것 같다.
5. 커널 컴파일
$ make bzimage # 1. 커널 컴파일
$ make modules # 2. 모듈 컴파일
$ make modules_install # 3. 모듈 설치
$ make install # 4. 커널 설치
3) 모듈 설치 시, /lib/modules/$(uname -r)에 설치한다.
6. 정리
1) 이전에 커널을 설치(컴파일)한 적이 있다면 clean 타겟을 사용하여 빌드 환경을 초기화하는 것이 권장된다.
2) 클린 타겟은 make clean < make mrproper < make distclean 순으로 강력하며, 삭제 범위가 넓어진다.
3) 커널 설정은 make config, make menuconfig, make nconfig, make xconfig 등을 통해 수행할 수 있다.
4) 커널은 make bzImage로 컴파일하며, zImage는 임베디드 환경 등에서 1MB 미만 커널에 사용된다.
5) 모듈은 make modules로 컴파일한다.
6) 모듈은 make modules_install로 설치한다.
7) 커널은 make install로 설치되며, 커널 이미지와 부트로더 설정이 적용된다.
모듈 설치 및 관리
0. 모듈 특징
1. 확장자가 .ko이다.
2. 시스템 재시작 없이 로드 / 언로드가 가능하다.
3. /lib/module/$(uname -r)/ 이하에 모듈들이 모여있다.
1. 모듈 조회
모듈 리스트 조회
$ lsmod
Module Size Used by
binfmt_misc 24576 1
tls 135168 0
...
특정 모듈 정보 조회
$ modinfo [module-name]
filename: /lib/modules/5.14.0-503.11.1.el9_5.aarch64/kernel/fs/xfs/xfs.ko.xz
license: GPL
description: SGI XFS with ACLs, security attributes, scrub, quota, no debug enabled
author: Silicon Graphics, Inc.
alias: fs-xfs
rhelversion: 9.5
srcversion: 9D26A1C39087BE877C5C12F
depends: libcrc32c
intree: Y
name: xfs
vermagic: 5.14.0-503.11.1.el9_5.aarch64 SMP preempt mod_unload modversions aarch64
sig_id: PKCS#7
signer: AlmaLinux kernel signing key
sig_key: 1D:36:3C:C3:5D:68:7D:68:9C:16:97:3D:2C:23:2B:76:10:63:00:0D
sig_hashalgo: sha256
signature: ...
2. 모듈 로드 / 언로드
모듈 로드
$ insmod module-name
$ insmod /home/lim/module.ko
모듈 언로드
$ rmmod module-name
3. 의존성이 고려된 모듈 로드 / 언로드
의존성을 고려한 모듈 로드
$ modprobe [module-name]
의존성을 고려한 모듈 언로드
$ modprobe -r [module-name]
modprobe 관련 파일 및 경로
[lim@localhost ~]$ ls /etc/modprobe.d/
firewalld-sysctls.conf tuned.conf
1) modporbe는 /etc/modprobe.d의 .conf 파일을 읽어 별도의 설정들을 반영한다.
2) aslias, options, install, remove, blacklist 등을 지정할 수 있다.
3) .conf 파일에 모듈명을 기재하면 부팅시 모듈을 로드한다.
4) modprobe의 의존성 고려는 아래 depmod로 만들어진 modules.dep 파일을 참조하여 파악한다.
4. 의존성 갱신
$ depmod
[lim@localhost ~]$ locate -i */modules.dep
/usr/lib/modules/5.14.0-503.11.1.el9_5.aarch64/modules.dep
/usr/lib/modules/5.14.0-503.26.1.el9_5.aarch64/modules.dep
문제
'자격증' 카테고리의 다른 글
[리눅스마스터 1급] 9. 시스템 백업 (0) | 2025.04.19 |
---|---|
[리눅스마스터 1급] 8. 시스템 보안 및 관리 (0) | 2025.04.19 |
[리눅스마스터 1급] 7. 시스템 분석 (0) | 2025.04.19 |
[리눅스마스터 1급] 6. 주변장치 관리 (0) | 2025.04.19 |
리눅스마스터 1급 (0) | 2025.04.19 |