이 전체 Kconfig Wifi 드라이버 파일을 모듈로 컴파일하려면 어떤 변경이 필요합니까? 이제 Cmake를 사용하면 Ko 파일이 생성되지 않습니다.

이 전체 Kconfig Wifi 드라이버 파일을 모듈로 컴파일하려면 어떤 변경이 필요합니까? 이제 Cmake를 사용하면 Ko 파일이 생성되지 않습니다.

여기에 이미지 설명을 입력하세요.

현재 Kconfig 파일과 make 파일은 다음과 같습니다.

답변1

커널 버전이 5.12 이상이라고 가정하면 Linux 커널 소스 패키지에서 경로 이름이 있는 파일을 보고 있는 것 같습니다 <kernel source root>/drivers/net/wireless/mediatek/mt76/mt7921/Kconfig. 프로세스에 정보를 제공하는 파일입니다.생산하다실제 커널 구성 파일. 이 파일을 수정해도 실제로 커널 구성이 변경되지는 않습니다.

"이 드라이버를 모듈로 컴파일하려면 여기에서 M을 선택하십시오" 텍스트는 해당 커널 구성 메뉴 옵션에 대한 도움말 텍스트입니다. 예를 들어 디렉토리에서 다음을 실행하여 커널 구성 메뉴를 볼 수 있습니다 make menuconfig. <kernel source root>make menuconfig명령은 커널 소스 트리의 다양한 부분에 있는 모든 파일을 처리 Kconfig하고 데이터를 사용하여 커널 구성 메뉴를 구축하고 이를 표시합니다.

커널 구성 파일은 <kernel source root>/.config각각 위치합니다.

이 드라이버를 모듈로 컴파일하려면 <kernel source root>/.config그 안에 다음 줄이 있어야 합니다.

# CONFIG_MT7921E is not set

또는:

CONFIG_MT7921E=y

줄을 다음과 같이 변경합니다.

CONFIG_MT7921E=m

CONFIG_MT7921E해당 행이 파일에 없으면 추가 .config할 수 있습니다.

하지만 "Cmake를 사용할 때 .ko 파일이 생성되지 않습니다"라는 말의 의미를 이해하지 못합니다. 일반적으로 디렉토리 나 다른 Makefile 대상 중 하나에 make modules들어갈 때 이를 실행해야 합니다.make allcd<kernel source root>

(라는 명령어가 있는데 cmake완전히 다른 빌드 도구이고 리눅스 커널 빌드 과정에서는 사용되지 않습니다. 보통은 실제 Makefile을 생성하는 "전처리기"일 뿐이므로 사용하는 cmake애플리케이션을 빌드할 때 주로 실행됩니다. cmake먼저 cmake, 다음으로 make, make install그러나 이는 Linux 커널과 관련이 없습니다).

관련 정보