나는 정기적으로 Slackware Linux용 패키지를 생성하며, 그 프로세스의 일부는 공간을 덜 차지하도록 바이너리를 제거하는 것입니다. 커널 모듈이 있는 경우 strip --strip-all
(또는 strip
옵션이 없는 경우) 일반적으로 플러그인에 실패하는 것으로 나타났습니다 .
치명적: cloop 삽입 오류(/lib/modules/2.6.38.7-smp/kernel/fs/cloop/cloop.ko): 잘못된 모듈 형식
커널 모듈에는 어떤 수준의 스트리핑이 권장됩니까? 을 사용하는 경우 --strip-debug
시스템 성능 및/또는 오류 로깅에 부정적인 영향을 미칠 수 있는 디버깅 기호를 제거합니까?
답변1
모든 기호를 제거하면 모듈에서 호출한 기호 이름이 제거됩니다. 이것은 작동하지 않습니다.
strip --strip-debug *.ko
디버깅 기호를 제거하려면 (=)를 사용하는 것이 strip -g *.ko
안전합니다 . 실행하면 커널 makefile이 이 작업을 수행합니다 make INSTALL_MOD_STRIP=1 modules_install
.
CONFIG_DEBUG_INFO
커널을 정의되지 않도록 구성하여 디버깅 기호가 삽입되는 것을 방지할 수 있습니다.
당신은 또한 볼 수 있습니다Linux 커널 모듈을 손상시키지 않고 로컬 기호를 제거하는 방법은 무엇입니까?
답변2
나는 가장 안전한 방법이 있다고 믿습니다 strip --strip-unneeded
.