Kconfig 파일 설명

3569 단어
 :               ,  linux2.6.35.7   X210BV3S       。

Kconfig 형식
/drivers/net에서 Kconfig 파일의 일부를 캡처합니다.
# Network device configuration
menuconfig NETDEVICES
        default y if UML
        depends on NET
        bool "Network device support"
        ---help---
          You can say N here if you don't intend to connect your Linux box to any other computer at all.
……
config DM9000
        tristate "DM9000 support"
        depends on ARM || BLACKFIN || MIPS
        select CRC32
        select MII
        ---help---
          Support for DM9000 chipset.

          To compile this driver as a module, choose M here.  The module will be called dm9000.
……
source "drivers/net/arcnet/Kconfig"
source "drivers/net/phy/Kconfig"

Kconfig는 일정한 형식에 따라 작성하고menuconfig 프로그램은 이런 형식을 식별한 다음에 유효한 정보를 추출하여menuconfig의 메뉴 항목을 구성할 수 있습니다.앞으로 드라이브 이식 작업을 할 때, 어떤 장치 드라이브를 핵의 설정 항목에 추가하기 위해 Kconfig의 설정 항목을 추가해야 할 때가 있습니다. 이 때 Kconfig의 설정 항목 형식에 대해 알아야 합니다. 그렇지 않으면 추가하지 않습니다.
메뉴: 메뉴 (자체는 하나의 메뉴에 속하지만 하위 메뉴 항목이 있습니다), config는 메뉴에 있는 설정 항목을 표시합니다. (자체는 하위 메뉴에 있는 항목이 없습니다.)menuconfig 뒤에 따르는 모든 config 항목이 이 menuconfig의 하위 메뉴입니다.이것이 Kconfig에 표시된 디렉토리 관계입니다.
NETDEVICES: menuconfig 또는 config 뒤에 있는 빈칸을 구분하는 대문자는 NETDEVICES와 유사한 설정 항목의 이름을 나타낸다. 이 문자열 앞에 CONFIG 를 추가한다.그런 다음 ".config"파일의 구성 항목 이름이 됩니다.
source: 내장 원본 디렉터리 트리에 있는 모든 Kconfig는source로 하위 디렉터리에 있는 Kconfig를 도입하여 모든 Kconfig 항목이menuconfig에 포함되도록 합니다.이것도 설명합니다. 만약 당신이 linux 호스트에 폴더를 추가한다면, 반드시 이 폴더 아래에 Kconfig 파일을 만들고, 이 폴더의 상단 디렉터리에 있는 Kconfig에서source를 이 폴더 아래에 있는 Kconfig 파일로 끌어들여야 합니다.
tristate: 세 가지 상태(3가지 상태, Y, N, M에 대응하는 세 가지 선택 방식)를 뜻하는데 이 설정 항목은 세 가지 선택을 할 수 있다는 뜻이다.
bool: Y 와 N에 대한 Y 또는 거짓입니다.이 설정 항목은 두 가지만 선택할 수 있다는 뜻이다.
depends: 이 설정 항목은 다른 설정 항목에 의존한다는 뜻입니다.만약 그 의존적인 설정 항목이 Y 또는 M이라면 이 설정 항목은 의미가 있습니다.의존하는 설정 항목 자체가 N으로 설정되면 이 설정 항목은 전혀 의미가 없습니다.depends 항목은 make menuconfig에서 설정 항목을 찾을 수 없습니다.따라서menuconfig에서 옵션을 찾을 수 없지만 Kconfig에서 이 옵션이 있습니다. 가능한 이유는 이 설정 항목이 의존하는 설정 항목이 성립되지 않기 때문입니다.depends가 의존하는 설정 항목은 여러 개일 수도 있고 논리 연산도 할 수 있습니다.이럴 때 프로젝트 연산식의 결과가 진실이면 의존이 성립된다.
select: dependson의 값이 유효하다는 것을 나타낼 때 아래의 select도 성립되어 해당하는 내용을 선택합니다.
default:dependson의 값이 유효하다는 것을 나타낼 때 아래의default도 성립됩니다. 해당하는 옵션을 선택하면 y, n, m에 대응하는 세 가지 옵션이 있습니다.
help: 도움말 정보, 이 설정 항목의 의미, 그리고 그를 어떻게 설정하는지 설명합니다.
Kconfig 및.config 파일과 Makefile 간의 연결
구성 항목이 Y, N, M으로 구성되면 ".config"파일의 CONFIG 에 영향을 줍니다.XXX 변수의 구성 값입니다.".config"의 구성 값(=y, =m, 없음)은 최종 컴파일 링크 프로세스에 영향을 줍니다.만약 =y가 컴파일된다면 (built-in), 만약 =m이 단독으로 하나로 연결된다면.ko 모듈, 없으면 대응하는 코드가 컴파일되지 않습니다.그럼 이거 어떻게 이루어진 거예요?모두makefile을 통해 이루어졌습니다.
makefile에서: obj-$(CONFIG DM9000) + = dm9000.o, CONFIGDM9000 변수 값이 y이면 obj + = dm9000.그래서 dm9000.c가 컴파일된다.CONFIGDM9000 변수가 정의되지 않은 경우 dm9000.c는 컴파일되지 않습니다.CONFIGDM9000 변수의 값이 m이면.ko 모듈로 연결됩니다.

좋은 웹페이지 즐겨찾기