본문 바로가기
자격증

[리눅스마스터 1급] 5. 장치의 설치 및 관리

by LimSeongHyeon 2025. 4. 19.


커널 설치 및 관리

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 + 백업이나 패치파일 모두 제거한다.

 

첫 커널을 설치하는 것이라면 상관 없지만 그렇지 않은 경우 이전 커널에 대한 잔여물로 적용이 잘 되지 않을 수 있다. 때문에 필요한 경우 클린 타겟을 통해서 이전 내용들을 지워주는 작업을 진행한다.

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

 


문제