특정 커널 모듈을 빌드하는 방법은 무엇입니까?

특정 커널 모듈을 빌드하는 방법은 무엇입니까?

공식 Linux 커널 저장소에서 커널 소스 코드를 설치했습니다(http://www.kernel.org/pub/linux/kernel/v4.x/linux-4.15.tar.bz2), 모바일 IPv6를 지원하는 데 필요한 몇 가지 옵션을 포함하여 다시 컴파일했습니다. 일부 데이터를 암호화하기 위한 모듈이 필요한데, 제가 구축한 나머지 모듈 중에서 해당 모듈을 찾을 수 없습니다. 필요한 모듈은 "echainiv" 및 "authenc"입니다.

답변1

첫 번째 단계는 모듈을 빌드하기 위해 어떤 구성 옵션을 설정해야 하는지 결정하는 것입니다. 나는 사용한다

make menuconfig

따라서 /다음 구성 옵션에서는 이를 찾을 수 있는 위치와 해당 종속성이 무엇인지 알려줍니다. 의 경우 활성화 한 다음 활성화 ECHAINIV해야 합니다 (모듈로서, 이후에 항목이 표시되어야 하기 때문에 대신 항목이 표시되어야 함 ).CRYPTOECHAINIVmake menuconfig<M><*>

모듈을 빌드하려면 해당 소스 코드가 포함된 디렉터리를 찾으세요.

find . -name echainiv\*

코드는 에 crypto있으므로

make crypto/echainiv.ko

(최상위 디렉토리에서)이 모듈을 빌드합니다.

모듈을 설치하려면 대상 커널을 실행하고 있다고 가정하고 다음을 실행하십시오.

sudo mkdir -p /lib/modules/$(uname -r)/kernel/crypto
sudo cp -i crypto/echainiv.ko /lib/modules/$(uname -r)/kernel/crypto

관련 정보