Назад | Перейти на главную страницу

Размер модулей в initrd

В настоящее время я пытаюсь вручную заменить ядро ​​в ubuntu-core на встроенном устройстве с настраиваемым ядром. Однако, когда я пытаюсь обновить initrd, мой initrd становится намного больше.

Вот что я сделал:

Если я сделаю это, мой initrd станет намного больше оригинального, поэтому я проверил отдельные модули. Я выбрал btrfs.ko драйвер файловой системы в качестве примера. Итак, сравнивая эти два модуля, я заметил, что тот, который я только что выбрал в initrd, был намного больше, что привело к разнице в размере.

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

Для btrfs.ko внутри поставляемого файла initrd.

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

Для нового btrfs.ko.

Чем отличаются эти два модуля? Может ли это быть вызвано неправильной настройкой нового ядра? При производстве ядра я скопировал /proc/config.gz и использовал make oldconfig чтобы обновить его, поэтому все оптимизации должны быть одинаковыми для обоих ядер.

Или есть что-то еще, что делается с модулями, прежде чем они будут помещены в initrd? Может быть, есть еще лучший способ создать новый initrd для нового ядра в Ubuntu.

Обновить:

Я только что тестировал initrd, который я создал с нуля, используя mkinitrfs в ubuntu, и она имеет ту же разницу в размере, что и для initrd, обновленного мной вручную.

В ваших модулях много символов и отладочной информации. Вам нужна команда
strip --strip-unneeded.