Kconfig 파일 설명
: , 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 모듈로 연결됩니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.