/usr/src/linux 디렉토리에서 make menuconfig를 실행하면 커널 구성 마법사가 나타납니다. make menuconfig 마법사에서 메뉴 항목을 검색하는 방법은 무엇입니까? /를 테스트해 봤는데 /는 .config 파일을 통해서만 검색되는 것 같습니다. 즉, "pci dma"를 검색하면 결과가 없지만 PCI 장치용 DMA를 활성화하는 데 적합한 커널 메뉴 항목이 있습니다.
Kconfig 파일에서 메뉴 항목의 텍스트를 찾을 수 있습니다. Kconfig 파일은 /usr/src/linux 디렉토리의 여러 하위 디렉토리에 있습니다. 그러나 Kconfig 파일을 검색해도 내가 찾고자 하는 옵션에 대한 실제 "트리" 보기가 제공되지 않았습니다. 내가 찾은 명령은 다음과 같습니다.
grep -i --directories=recurse 'kprobes' /usr/src/linux --color=always | less
make menuconfig 마법사에서 메뉴 항목을 검색하는 방법은 무엇입니까?
//편집: 가능한 해결책:
find /usr/src/linux/ -name 'Kconfig' -exec egrep -i -B 1 '(tristate|bool|menu)' '{}' \; | grep -i -B 1 --color=always 'Device Drivers'
그러면 지정된 .config 태그가 포함된 커널 .config 이름이 표시됩니다. 이제 해야 할 일은 make menuconfig에서 /를 사용하여 구성 이름을 찾는 것뿐입니다.
답변1
누르면 /
이렇게 뜹니다
Enter CONFIG_ (sub)string to search for (with or without "CONFIG_")
찾고 있다는 뜻이다.이름옵션 라벨이 아닌 옵션 이름입니다.
Linux 3.3에서는 grep을 사용하는 옵션을 찾았습니다.
$ find . -name Kconfig -exec grep 'config.*PCI' {} + | grep DMA
./drivers/ide/Kconfig:config BLK_DEV_IDEDMA_PCI
그런 다음 파일을 열어 ./drivers/ide/Kconfig
자세한 정보를 확인하세요.
config BLK_DEV_IDEDMA_PCI
bool
select BLK_DEV_IDEPCI
select BLK_DEV_IDEDMA_SFF
다른 항목과 같이 tristate
또는 줄이 없기 때문에 bool
이는 메뉴에 표시되지 않음을 나타냅니다.
동일한 파일 내에서 검색하면 BLK_DEV_IDEDMA_PCI
해당 파일을 참조하는 많은 항목을 볼 수 있습니다.
config BLK_DEV_AMD74XX
tristate "AMD and nVidia IDE support"
depends on !ARM
select IDE_TIMINGS
select BLK_DEV_IDEDMA_PCI
따라서 DMA를 명시적으로 활성화하면 안 되는 것 같습니다. DMA가 필요한 드라이버는 자동으로 활성화합니다.