LINUX.ORG.RU

Размер каталога /lib/modules


0

1

Подскажите новичку, пожалуйста:

Решил собрать ядро со своим «Hello world» кодом, за основу взял oldconfig. Добавил к имени релиза свой суффикс, собрал ядро, а при выполнении `make modules_install` завершилось с ошибкой - оказывается не хватило места на диске!!!

Для контроля я решил собрать ядро дистрибутива без изменений с oldconfig и выяснить размер всех модулей ядра:

find -name '*.ko' | xargs du -ch | tail
144K    ./drivers/gpio/gpio-generic.ko
...
168K    ./drivers/gpio/gpio-cs5535.ko
2,0G    итого

В то же время размер у дистрибутива:

du -sh /lib/modules/`uname -r`
138M    /lib/modules/3.4.11-2.16-desktop

То есть у меня размер всех модулей 2G, а дистрибутив установил только 138 метров? Как так?

В чем ошибка? Что не так? Дистрибутив openSUSE 12.2 (x86_64)

Ты решил собрать все-все модули то ли? Ну и пострипанные они меньше, да.

Artificial_Thought ★★★★ ()
Ответ на: комментарий от hyperslv

Может быть, я сборкой ядер не увлекаюсь. Собственно, никто не запрещает стрипнуть то, что у тебя есть сейчас.

anonymous ()
Ответ на: комментарий от megabaks

количество сравнивал - одинаковое. Дело действительно в стрипе. Причем для модуля souundcore.ko разница более чем в 10 раз. Если strip вызвать с опцией --strip-debug, размер получится одинаковый, то есть как в дистрибутиве.

Насколько я выяснил команда: make INSTALL_MOD_STRIP=1 modules_install

это и выполняет.

Только вроде после копирования :( Сейчас заново собираю, проверю...

hyperslv ()
Ответ на: комментарий от hyperslv

оно стрипает после установки модулей

#  INSTALL_MOD_STRIP, if defined, will cause modules to be
#  stripped after they are installed.  If INSTALL_MOD_STRIP is '1', then
#  the default option --strip-debug will be used.  Otherwise,
#  INSTALL_MOD_STRIP value will be used as the options to the strip command.

megabaks ★★★★ ()
Последнее исправление: megabaks (всего исправлений: 1)

Ну и какой дебил настолько туп, что удаляет единственный правильный ответ в треде.

anonymous ()

Решение

В итоге сделал так:

find -name '*.ko' -exec strip --strip-debug {} ';'
А затем уже:
make modules_install
И получил такую же по размеру папку /lib/modules/`uname -r` как в дистрибутиве.

Всем спасибо.

hyperslv ()
Ответ на: Решение от hyperslv

PS

make INSTALL_MOD_STRIP=1 modules_install

Наверное, тоже приведет к этому результату, но он сначала копирует потом стрипает.

hyperslv ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.