Linux 에서 특정 커널 컴파일 옵션 활성화 여부 확인 방법

LinuxBeginner
지금 연습하기

소개

이 랩에서는 특정 커널 컴파일 옵션이 Linux 시스템에서 활성화되었는지 확인하는 방법을 배우게 됩니다. 이를 달성하기 위한 세 가지 일반적인 방법을 살펴볼 것입니다.

먼저, 커널 컴파일 중에 사용된 옵션을 포함하는 /proc/config.gz에 위치한 압축된 커널 구성 파일을 검사하기 위해 zcat 명령을 사용합니다. 다음으로, /boot 디렉토리에서 찾을 수 있는 구성 파일을 검사하여 이러한 옵션을 확인하는 방법을 배우게 됩니다. 마지막으로, 활성화된 기능을 더 자세히 파악하기 위해 dmesg 명령을 사용하여 커널의 컴파일 로그를 검사하는 방법을 알게 될 것입니다. 이 랩을 마치면 Linux 시스템에서 커널 컴파일 옵션을 효과적으로 확인하는 기술을 갖추게 됩니다.

zcat /proc/config.gz로 컴파일 옵션 확인

이 단계에서는 Linux 커널을 컴파일할 때 사용된 커널 구성 옵션을 검사하는 방법을 배우게 됩니다. 이 정보는 /proc 파일 시스템 내의 압축된 파일에 저장됩니다.

/proc 파일 시스템은 프로세스 및 기타 시스템 정보에 대한 정보를 제공하는 가상 파일 시스템입니다. 디스크에 실제 파일을 포함하지 않고 커널의 내부 데이터 구조를 보여줍니다.

우리가 관심 있는 파일은 /proc/config.gz입니다. 이 파일에는 커널 구성 옵션이 압축된 형식으로 포함되어 있습니다. 내용을 보려면 압축을 풀고 파일을 표시할 수 있는 명령을 사용해야 합니다.

zcat 명령은 이에 완벽합니다. gzipped 파일의 압축을 풀고 내용을 표시하는 데 사용됩니다.

아직 열려 있지 않다면 터미널을 엽니다. 데스크톱 왼쪽에서 Xfce 터미널 (Xfce Terminal) 아이콘을 찾을 수 있습니다.

이제 다음 명령을 입력하고 Enter 키를 누릅니다.

zcat /proc/config.gz

이 명령은 /proc/config.gz 파일의 압축을 풀고 내용을 터미널에 출력합니다. CONFIG_로 시작하는 긴 구성 옵션 목록이 표시됩니다. 이러한 옵션은 커널에 포함될 기능 및 드라이버를 결정합니다.

예를 들어, 다음과 같은 줄을 볼 수 있습니다.

CONFIG_NET=y
CONFIG_PACKET=y
CONFIG_UNIX=y
## CONFIG_NET_KEY is not set
CONFIG_INET=y
  • CONFIG_NET=y는 네트워킹 지원이 활성화되었음을 의미합니다.
  • CONFIG_NET_KEY is not set는 특정 네트워킹 기능이 포함되지 않았음을 의미합니다.

이 출력을 스크롤하는 것은 압도적일 수 있습니다. less 명령을 사용하여 출력을 페이지별로 볼 수 있습니다. 이렇게 하려면 파이프 (|) 를 사용합니다. 파이프는 한 명령의 출력을 다른 명령의 입력으로 보냅니다.

다음 명령을 입력하고 Enter 키를 누릅니다.

zcat /proc/config.gz | less

이제 화살표 키를 사용하여 위아래로 스크롤하고 q를 눌러 less를 종료할 수 있습니다.

이 명령은 커널이 정확히 어떻게 빌드되었는지, 어떤 기능을 가지고 있는지 이해하는 데 매우 유용합니다.

다음 단계로 진행하려면 **계속 (Continue)**을 클릭하십시오.

/boot/config-*에서 옵션 확인

이전 단계에서는 /proc/config.gz에서 커널 구성을 확인했습니다. 커널 구성 파일이 자주 저장되는 또 다른 위치는 /boot 디렉토리입니다.

/boot 디렉토리에는 운영 체제를 부팅하는 데 필요한 파일, 즉 커널 자체와 이를 빌드하는 데 사용된 구성 파일이 포함되어 있습니다.

/boot의 구성 파일은 일반적으로 커널 버전 다음에 config-로 시작하는 이름을 갖습니다. 커널 버전은 다를 수 있으므로 와일드카드 (*) 를 사용하여 파일 이름을 일치시킬 수 있습니다.

먼저, /boot 디렉토리의 파일을 나열하여 구성 파일이 있는지 확인해 보겠습니다. ls 명령을 사용합니다.

ls /boot/

config-로 시작하고 버전 번호 (예: config-5.15.0-105-generic) 가 뒤따르는 파일을 포함하여 파일 목록이 표시됩니다.

이제 이 파일의 내용을 확인해 보겠습니다. cat 명령을 사용하여 파일의 내용을 표시할 수 있습니다. 이전 ls 출력에서 찾은 실제 파일 이름으로 config-*를 바꾸거나 와일드카드를 사용해야 합니다. 와일드카드를 사용하는 것이 더 일반적입니다.

다음 명령을 입력하고 Enter 키를 누릅니다.

cat /boot/config-*

이렇게 하면 /boot 디렉토리의 파일에서 커널 구성 옵션이 표시됩니다. zcat /proc/config.gz에서 본 출력과 내용이 매우 유사하거나 동일하다는 것을 알 수 있습니다. 이는 /proc/config.gz가 종종 /boot에서 찾을 수 있는 구성 파일의 압축된 복사본이기 때문입니다.

/boot의 파일에 cat을 사용하는 것은 커널 구성에 액세스하는 또 다른 방법이며, 특히 /proc/config.gz를 사용할 수 없거나 압축되지 않은 버전을 직접 보려는 경우에 유용합니다.

다시, 출력을 less로 파이프하여 더 쉽게 볼 수 있습니다.

cat /boot/config-* | less

q를 눌러 less를 종료합니다.

커널 구성을 어디에서 찾아야 하는지 이해하는 것은 문제 해결 및 고급 시스템 관리에 중요합니다.

계속 진행하려면 **계속 (Continue)**을 클릭하십시오.

dmesg 에서 컴파일 로그 검토

이전 단계에서는 커널 구성을 보는 방법을 배웠습니다. 이제 부팅 및 런타임 중에 커널에서 생성된 메시지를 포함하는 커널의 메시지 버퍼를 살펴보겠습니다. 여기에는 때때로 커널 컴파일 또는 로드되는 모듈과 관련된 정보가 포함될 수 있습니다.

dmesg 명령은 커널 링 버퍼를 검사하거나 제어하는 데 사용됩니다. 링 버퍼는 커널의 메시지를 저장하며, 이는 디버깅 및 시스템 이벤트를 이해하는 데 유용합니다.

터미널에 다음 명령을 입력하고 Enter 키를 누릅니다.

dmesg

이렇게 하면 터미널에 많은 양의 출력이 인쇄됩니다. 이는 하드웨어 감지, 로드되는 장치 드라이버 및 시스템이 부팅된 이후 발생한 기타 시스템 이벤트에 대한 정보를 포함하여 커널의 메시지입니다.

커널 버전 또는 컴파일과 관련된 정보를 찾으려면 dmesg의 출력을 grep으로 파이프할 수 있습니다. grep은 일반 텍스트 데이터 세트에서 정규식과 일치하는 줄을 검색하는 강력한 명령줄 유틸리티입니다.

"Linux"라는 단어가 포함된 줄을 검색하여 커널 버전 정보를 확인해 보겠습니다.

dmesg | grep "Linux"

다음과 유사한 출력이 표시되어 커널 버전을 보여줍니다.

[    0.000000] Linux version 5.15.0-105-generic (...)

직접적인 컴파일 로그는 일반적으로 여기에 없지만, 커널 모듈 또는 컴파일 옵션과 관련된 다른 키워드를 검색할 수도 있습니다. dmesg는 런타임 커널 메시지에 더 가깝습니다.

예를 들어, 특정 드라이버 또는 서브시스템의 이름을 알고 있다면 관련 메시지를 검색할 수 있습니다.

다시, dmesg와 함께 less를 사용하면 출력을 탐색하는 데 도움이 됩니다.

dmesg | less

q를 눌러 less를 종료합니다.

dmesg는 커널 컴파일 프로세스 자체를 직접 보여주지는 않지만, 이전 단계에서 본 컴파일 구성에 의해 결정되는 현재 실행 중인 커널, 즉 버전 및 로드된 모듈에 대한 귀중한 통찰력을 제공합니다.

이 랩을 완료하려면 **계속 (Continue)**을 클릭하십시오.

요약

이 랩에서는 Linux 에서 특정 커널 컴파일 옵션이 활성화되어 있는지 확인하는 방법을 배웠습니다. 컴파일 중에 사용된 커널 구성 옵션을 저장하는 /proc/config.gz 파일을 포함하여 /proc 파일 시스템을 탐색했습니다. zcat 명령을 사용하여 이 파일의 내용을 압축 해제하고 표시했으며, 출력을 less로 파이프하여 더 쉽게 보는 방법을 배웠습니다. 이 프로세스를 통해 다양한 CONFIG_ 옵션을 검사하고 실행 중인 커널에 어떤 기능과 드라이버가 포함되어 있는지 확인할 수 있습니다.