커널 기능 목록이 주어지면 주어진 모든 기능(및 해당 종속성)을 지원하지만 그 이상은 지원하지 않는 최소한의 Linux 구성을 만들고 싶습니다.
allnoconfig를 생성하는 방법과 기능을 하나씩 활성화하는 도구가 있나요?
(파일을 편집할 수 있지만 .config
올바른 종속성을 얻을 수는 없습니다. 를 사용할 수 있지만 make *config
내가 아는 한 이러한 작업은 대화형으로만 작동하거나 일부 기본 구성을 생성합니다.)
답변1
커널 2.6.29부터 다음 위치에서 스크립트를 찾을 수 있습니다./kernel_extracted_dir/scripts/config
예를 들어
/kernel_extracted_dir/scripts/config --set-val CONFIG_LOG_BUF_SHIFT 14
/kernel_extracted_dir/scripts/config --enable CONFIG_PRINTK_TIME
(신용이 필요한 곳에 신용을 주기 위해 다음 예를 들었습니다.블로그)
다음과 같은 옵션이 있습니다(도움말에서 복사)
--enable|-e option Enable option
--disable|-d option Disable option
--module|-m option Turn option into a module
--set-str option string
Set option to "string"
--set-val option value
Set option to value
--undefine|-u option Undefine option
--state|-s option Print state of option (n,y,m,undef)
--enable-after|-E beforeopt option
Enable option directly after other option
--disable-after|-D beforeopt option
Disable option directly after other option
--module-after|-M beforeopt option
Turn option into module directly after other option commands can be repeated multiple times
options:
--file config-file .config file to change (default .config)
--keep-case|-k Keep next symbols' case (dont' upper-case it)
답변2
이 작업을 비대화형으로 수행해야 하는 경우 make oldconfig 또는 make olddefconfig를 사용할 수 있습니다. make *config는 종속성을 수정하며 이러한 종속성은 menuconfig만큼 자세하지 않습니다. (그렇지 않으면 menuconfig는 기능을 하나씩 활성화하는 데 유용합니다. 도움말 텍스트도 포함되어 있습니다!)
make oldconfig는 "새" 구성 옵션을 요청하므로 비대화식으로 작업하려면 비활성화된 옵션에 대해 다음과 같은 설명을 삽입해야 합니다.
# CONFIG_KERNEL_GZIP is not set
반면에 make olddefconfig는 묻지 않고 대신 기본값을 사용합니다. Silentoldconfig도 있지만 특정 상황에서도 요청하므로 조용하지는 않습니다.
make help에서:
oldconfig - Update current config utilising a provided .config as base
silentoldconfig - Same as oldconfig, but quietly, additionally update deps
olddefconfig - Same as silentoldconfig but sets new symbols to their default value
면책조항: 저는 필요하다고 알고 있는 일부 라이브러리를 제거하는 옵션에 대한 간단한 테스트만 시도했습니다. olddefconfig 및 oldconfig에 의해 다시 추가됩니다. 이것이 더 큰 구성을 수행하는 데 어떻게 적용되는지 모르겠습니다.
어쨌든, 시작하기 전에 make localmodconfig 또는 이와 유사한 것을 사용하는 것을 고려했다고 가정합니까? 나는 몇 년 동안 최소한의 구성을 시도하지 않았지만 완전히 사용할 수 없는 커널을 생성하는 상당히 불분명한 방법이 있었던 것을 기억하는 것 같습니다. :)