1 votes

Taille des modules dans l'initrd

J'essaie actuellement de remplacer manuellement le noyau d'ubuntu-core sur un périphérique embarqué par un noyau personnalisé. Cependant, lorsque j'essaie de mettre à jour l'initrd, celui-ci devient beaucoup plus gros.

Voici ce que j'ai fait :

  • Extraire l'initrd qui a été livré avec ubuntu.
  • Faire une liste de tous les modules dans l'ancien initrd
  • obtenir les mêmes modules auprès du nouveau directeur de module à /lib/modules/new_kernel_version
  • ajouter ces modules à l'initrd et supprimer les anciens modules

Si je fais cela, mon initrd devient beaucoup plus gros que l'original, alors j'ai vérifié les modules individuels. J'ai choisi le btrfs.ko à titre d'exemple. En comparant ces deux modules, j'ai remarqué que celui que je viens de prendre dans l'initrd était beaucoup plus gros, ce qui a causé la différence de taille.

-rw-r--r-- 1 root root 999K Nov 14 15:06 btrfs.ko

Pour le btrfs.ko dans l'initrd livré.

-rw-r--r-- 1 root root 7.2M Nov 14 15:08 btrfs.ko

Pour le nouveau btrfs.ko .

Quelle est la différence entre ces deux modules ? Cela pourrait-il être dû à un réglage défectueux du nouveau noyau ? Lors de la création du noyau, j'ai copié /proc/config.gz et utilisé make oldconfig pour le mettre à jour, donc toutes les optimisations devraient être les mêmes pour les deux noyaux.

Ou bien y a-t-il quelque chose d'autre qui est fait aux modules avant qu'ils ne soient mis dans l'initrd ? Peut-être y a-t-il même une meilleure façon de construire un nouvel initrd pour le nouveau noyau dans ubuntu tout court.

Mise à jour :

J'ai également testé avec un initrd que j'ai créé de toutes pièces en utilisant la fonction mkinitrfs dans ubuntu, et il y a la même différence de taille que pour l'initrd que j'ai mis à jour manuellement.

2voto

David Schwartz Points 31009

Vos modules comportent beaucoup de symboles et d'informations de débogage. La commande que vous voulez est
strip --strip-unneeded .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X