5

Я собираю ядра Linux способом debian, как указано (по большей части) в Руководстве по ядру Debian Linux. Поэтому для этапа компиляции я использую целевой deb-pkg , и при успешном завершении make deb-pkg в родительском каталоге сгенерировано несколько пакетов debian:

linux-firmware-image-VERSIONS.deb
linux-headers-VERSIONS.deb
linux-image-VERSIONS.deb
linux-image-VERSION-dbg_VERSION.deb
linux-libc-dev_VERSIONS.deb

Часто я обнаруживаю, что устанавливаю только linux-image-x.y.z.deb а остальные четыре пакета остаются неиспользованными. Это не будет большой проблемой, но я продолжаю обнаруживать, что генерация пакета, содержащего символы отладки ядра (linux-image-x.y.z-dbg_x.y.z_arch.deb), занимает значительное время. Мне интересно, есть ли способ указать цели сборки deb-pkg не генерировать пакеты символов отладки?

3 ответа3

11

Ответ, который дал MariusMatutiae, был не совсем тем, чего я ожидал, но я взглянул на некоторые сценарии сборки ядра и нашел работоспособное решение. Скрипт, который генерирует итоговые пакеты debian, это scripts/package/builddeb. Глядя на этот сценарий, части, которые формируют пакет с символами отладки, окружены условными выражениями, зависящими от BUILD_DEBUG который получает данный KCONFIG для CONFIG_DEBUG_INFO=y .

Поэтому, чтобы прекратить генерирование пакетов debian с символами отладки, в настоящее время вам необходимо отключить параметр ядра CONFIG_DEBUG_INFO :

CONFIG_DEBUG_INFO=n
2

Руководство по ядру предполагает следующее:

Сборка будет использовать меньше дискового пространства, если опция CONFIG_DEBUG_INFO отключена. Debuginfo необходим только в том случае, если вы планируете использовать в ядре инструменты бинарных объектов, такие как crash, kgdb и SystemTap.

Это может быть достигнуто с помощью этой команды:

cd linux-source-4.12
scripts/config --disable DEBUG_INFO
0

Вам необходимо установить следующие символы .config :

 CONFIG_FRAME_POINTER=n

 CONFIG_KGDB=n

 CONFIG_KGDB_SERIAL_CONSOLE=n

Вы также должны убедиться, что CONFIG_DEBUG_RODATA не установлен, закомментировав его,

 # CONFIG_DEBUG_RODATA

Всю информацию о компиляции ядра Linux можно найти весьма авторитетно на домашней странице ядра Linux.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .