저는 커널 버전과 함께 제공되는 Ubuntu 11.10을 실행하고 있습니다 3.0.0-14
. 나는 브랜치에서 커널을 다운로드하고 빌드했습니다 3.1.0
. 새 커널을 설치한 후 내 /boot/initrd.img-3.1.0
파일이 매우 크다는 것을 발견했습니다 . 114MB이고 내 것은 /boot/initrd.img-3.0.0-14-generic
약 13MB입니다. 나는 분명히 불필요한 부풀림을 제거하고 싶습니다.
새 커널을 빌드할 때 원래 커널의 구성을 보존하기 위해 내 커널을 빌드 디렉터리 /boot/config-3.0.0-14-generic
에 복사했습니다. .config
를 실행하고 make oldconfig
모든 새 옵션에 대해 기본값을 선택하고 커널을 빌드했습니다.
각 initrd cpio 아카이브의 파일 크기를 살펴보면 3.1.0 램디스크의 모든 .ko 모듈이 3.0.0-14보다 크다는 것을 발견했습니다. 내 구성 파일에 불필요한 디버그 플래그가 확인되어 있다고 가정하지만 3.0.0-14 구성 파일에서 아직 활성화되지 않은 다른 항목은 표시되지 않습니다.
내 것은 /boot/config-3.0.0-14-generic
여기에 있습니다 :
http://pastebin.com/UjH7nEqd
그리고 내 건 /boot/config-3.0.1
여기 있어:
http://pastebin.com/HyT0M2k1
불필요한 부풀림이 어디서 오는지 설명할 수 있는 사람이 있나요?
답변1
make oldconfig
을 사용 make
하고 커널과 모듈을 빌드할 때 make install
생성된 모듈은 파일에서 디버깅 정보를 사용할 수 있습니다.
사용INSTALL_MOD_STRIP
디버깅 기호를 제거하는 옵션:
make INSTALL_MOD_STRIP=1 modules_install
마찬가지로 deb 패키지를 빌드합니다.
make INSTALL_MOD_STRIP=1 deb-pkg