로드된 커널용 iptables 커널 모듈을 빌드하는 방법은 무엇입니까?

로드된 커널용 iptables 커널 모듈을 빌드하는 방법은 무엇입니까?

나는 다양한 이유로 로드 가능한 모듈을 지원하는 커널을 구축했는데, 그 중 하나는 재부팅하지 않고도 모듈을 컴파일하고 로드할 수 있다는 것이었습니다. 이는 커널 구성에서 활성화되지 않은 모듈이 필요할 때 유용합니다.

이제 nouveau와 같은 드라이버를 사용하여 소스 디렉터리로 이동하여 . 전체 커널을 컴파일하고 재부팅하지 않고 make M=drivers/gpu/drm/nouveau어떻게 업데이트된 모듈을 빌드할 수 있습니까 ? iptables가능합니까?

답변1

커널 소스 디렉터리로 이동하여 필요한 사항을 변경한 make다음 make modules_install.

그게 다야.

특정 모듈만 빌드하려면 다음을 사용하세요.

make M=path/to/module/directory

예를 들어(커널 최상위 디렉토리에서):

make M=fs/ext4
make M=fs/ext4 modules_install

변경된 모듈을 활성화하려면 해당 모듈을 제거하고 다시 삽입해야 합니다. 모듈이 이전에 로드되지 않은 경우 특별한 조치가 필요하지 않습니다.

이런 방식으로 내장에서 모듈로 무언가를 변경할 수 없으며(다시 시작해야 함) 일부 모듈에는 내장 구성을 변경해야 하는 종속성이 있을 수 있습니다. 이를 위해서는 다시 시작해야 합니다.

답변2

Matt의 답변이 요약되어 있지만 한 가지 더 추가하고 싶습니다.

커널 이미지를 빌드하는 데 사용한 것과 동일한 GCC 버전으로 외부 모듈을 컴파일하는 것이 좋습니다. "/proc/version" 파일을 읽어 이를 확인할 수 있습니다.

많은 트리 외부 및 독점 드라이버 모듈은 일치하지 않는 컴파일러 버전으로 빌드하는 것을 거부합니다.

관련 정보