Eu tenho uma instalação do Gentoo. Para compilar o kernel usei a configuração do kernel do Ubuntu 14.04.
Acho difícil entender por que os tamanhos das bibliotecas de módulos são tão diferentes:
No Ubuntu
oz123@ubuntu $ du -sh /lib/modules/4.2.0-36-generic/
202M /lib/modules/4.2.0-36-generic/
No Gentoo
oz123@gentoo ~ # du -sh /lib/modules/4.2.8-gentoo-1/
1.8G /lib/modules/4.2.8-gentoo-1/
É por causa de alguma opção de tempo de compilação? Estou faltando alguma coisa aqui?
atualizar
eu fiz
DIR1=/lib/modules/4.2.0-36-generic/
DIR2=/mnt/gentoo/lib/modules/4.2.8-gentoo-1/
diff -r $DIR1 $DIR2 | grep $DIR2
Isso revela que os módulos que estão nas duas bibliotecas são binários diferentes, por exemplo:
Binary files /lib/modules/4.2.0-36-generic/kernel/sound/pci/ac97/snd-ac97-codec.ko and /mnt/gentoo/lib/modules/4.2.8-gentoo-1/kernel/sound/pci/ac97/snd-ac97-codec.ko differ
O mistério começa a ficar mais claro:
$ du -sh /lib/modules/4.2.0-36-generic/kernel/sound/usb/misc/snd-ua101.ko
36K /lib/modules/4.2.0-36-generic/kernel/sound/usb/misc/snd-ua101.ko
$ du -sh /mnt/gentoo/lib/modules/4.2.8-gentoo-1/kernel/sound/usb/misc/snd-ua101.ko
368K /mnt/gentoo/lib/modules/4.2.8-gentoo-1/kernel/sound/usb/misc/snd-ua101.ko
Isso é consistente com alguns módulos que eu verifiquei.
Então os módulos compilados no Gentoo são quase 10 vezes maiores, por que ???
Ah ... tirando é a resposta ...
laptop-oz ~ # du -sh /lib/modules/4.2.8-gentoo-1/kernel/sound/usb/snd-usbmidi-lib.ko
368K /lib/modules/4.2.8-gentoo-1/kernel/sound/usb/snd-usbmidi-lib.ko
laptop-oz ~ # strip --strip-unneeded /lib/modules/4.2.8-gentoo-1/kernel/sound/usb/snd-usbmidi-lib.ko
laptop-oz ~ # du -sh /lib/modules/4.2.8-gentoo-1/kernel/sound/usb/snd-usbmidi-lib.ko
44K /lib/modules/4.2.8-gentoo-1/kernel/sound/usb/snd-usbmidi-lib.ko
Atualização 2
A decapagem não é a única coisa. Eu estou suspeitando também compilar bandeiras. Para verificar isso instalei o figlet (versão 2.2.5) no Ubuntu e compilei a mesma versão com o emerge no gentoo:
No Ubuntu:
$ ls -l /usr/bin/figlet-figlet
-rwxr-xr-x 1 root root 43504 Nov 26 2012 /usr/bin/figlet-figlet
No Gentoo:
# ls -l /usr/bin/figlet
-rwxr-xr-x 1 root root 47384 Jun 8 16:40 /usr/bin/figlet
Estas são as minhas flags de compilação no Gentoo:
-O2 -pipe -march=haswell
Parece que ao criar o figlet com -O1
, estou obtendo um resultado muito mais semelhante ao Ubuntu:
# ls -l /usr/bin/figlet
-rwxr-xr-x 1 root root 43288 Jun 8 17:10 /usr/bin/figlet
A pequena diferença é provavelmente devida à versão gcc (no Ubuntu 4.8.4, no Gentoo 4.9.3).