여러 컴퓨터의 하드웨어를 지원하는 localmodconfig로 사용자 정의 커널을 작성하는 방법은 무엇입니까?


9

어플라이언스와 같은 단일 태스크를 실행하도록 서버를 구성 할 때 사용자 정의 커널을 빌드해야 할 필요성이 증가 할 수 있습니다. 예를 들어 디스크 공간을 절약합니다.

우분투 코어 13.10 AMD64 루트 파일 시스템은입니다 38메가바이트의 은 "리눅스 이미지 일반적인"필요한 의존성을 포함한 메타 패키지를 다운로드합니다 다운로드, 79메가바이트 여전히 아카이브, 그리고 커널 이미지 XYZ - 일반적인 패키지의 크기 14메가바이트 .

하드웨어가 사용하지 않는 모듈에서 제거 된 커널을 빌드하려면 make localmodconfig명령이 작업에 적합한 도구입니다. 그러나 빌드 및 테스트 환경을 실행하는 가상 머신은 대상 배치 하드웨어와 다른 모듈을로드합니다. 그리고 / 또는 잠시 후 배포 하드웨어가 어려워 질 수 있으며 다른 하드웨어가 사용됩니다. 커널 업데이트가 릴리스되는 빈도에 따라 모든 하드웨어 구성에 대해 사용자 정의 커널을 빌드하기가 너무 번거로울 수 있습니다.

몇 가지 다른 하드웨어 상자에서 실행되는 사용자 지정 Linux 커널을 신속하게 구축하는 방법은 무엇입니까?

답변:


11

make localmodconfig명령은 여전히 ​​올바른 작업 도구입니다. 실제로 make localmodconfig실행됩니다scripts/kconfig/streamline_config.pl .

파일 입력

streamline_config.pl(perl) 소스 코드를 읽을 때 명령 my $lsmod_file = $ENV{'LSMOD'};의 출력 대신로드 된 모듈 감지를위한 파일 입력을 허용 하는 문서화되지 않은 기능 이 있습니다 lsmod.

라이브 CD

localmodconfig는 출력 lsmod을 사용하여 로드 된 모듈을 감지하기 때문입니다. 우리는 서로 다른 하드웨어 설정에서 Ubuntu Live CD를 실행하고 터미널 ( Ctrl+ Alt+ T)을 열고 lsmod출력을 실행 및 저장합니다.

출력 연결

lsmod연속적인 헤더 행을 제거하면서 출력 파일을 연결하면 필요한 모든 커널 모듈을 포함하는 입력 파일을 빠르게 만들 수 있습니다. 모듈 목록을 직접 검토하고보다 수동적 인 레시피를 사용합니다.

  1. $ cd linux-3.11.0/
    또는 make 명령을 실행할 디렉토리로 이동하십시오.

  2. $ lsmod > lsmod.txt
    로드 된 모듈로 텍스트 파일을 만듭니다.

  3. $ nano lsmod.txt
    나노 텍스트 편집기를 열 것입니다. 물론 좋아하는 편집기 응용 프로그램을 사용할 수 있습니다

  4. 아직없는 모듈을이 파일의 맨 아래에 추가하고 (예를 들어이 anwer의 맨 아래 참조) 준비가되면 저장하십시오.
    참고 : 탭이 아닌 공백을 사용하여 열 테이블 레이터 위치를 일치 시키십시오.

  5. $ make LSMOD="lsmod.txt" localmodconfig
    이것은 localmodconfig에게 lsmod.txt 파일을로드 된 모듈 감지를위한 입력으로 사용하도록 지시합니다

steamline_config.pl의 저자 Steven Rostedt와 관련하여 5 단계에서 더 짧은 표기법을 제안합니다.


lsmod.txt에 추가하거나 추가하지 않는 예 (4 단계) :

인텔 D33217CK 메인 보드에는 읽고 싶은 인텔 열 센서가 있으므로 다음 라인을 추가합니다.

x86_pkg_temp_thermal   13810  0
intel_powerclamp       14239  0

그러나 우리는이 하드웨어에서 가상 머신을 실행하고 싶지 않기 때문에 다음 라인을 건너 뛰어야합니다.

kvm_intel             128218  0
kvm                   364766  1 kvm_intel

Thunderbolt 포트에 연결된 Apple (Broadcom) Gibabit 이더넷 어댑터가 있으므로 다음을 추가합니다.

tg3                   152066  0
ptp                    18156  1 tg3
pps_core               18546  1 ptp

볼륨 미러링이 필요하지 않으므로 다음을 추가하지 않아도됩니다.

dm_mirror              21715  0
dm_region_hash         15984  1 dm_mirror
dm_log                 18072  2 dm_region_hash,dm_mirror

또한 그래픽 출력 (텍스트가 헤드리스 서버에서 수행됨)이 필요하지 않으므로 다음을 포함하지 않습니다.

i915                  589697  3
i2c_algo_bit           13197  1 i915
drm_kms_helper         46867  1 i915
drm                   242354  4 i915,drm_kms_helper

다른 머신의 경우이 Realtek 이더넷 드라이버가 추가로 필요합니다.

r8169                  61434  0
mii                    13654  1 r8169
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.