Как я могу собрать ядро, не компилируя все, если я делал это раньше?

Я пересобираю ядро ​​на основе исходников git. Я делаю следующие шаги:

  1. git clone git: //kernel.ubuntu.com/ubuntu/ubuntu-focal.git
  2. cd ubuntu-focal
  3. vi debian.master / changelog
  4. применить патчи
  5. fakeroot debian / rules clean binary-headers binary-generic

Если я затем применю другой патч и хочу снова скомпилировать ту же версию, я получаю сообщение об ошибке, потому что некоторые папки не пусты.Чтобы решить эту проблему, я могу выполнить команду «fakeroot debian / rules clean», но тогда мне нужно скомпилировать все ядро.

Есть ли способ перекомпилировать только измененные файлы и строить на их основе deb-файлы? Кажется, это банальная вещь, которую я еще не понял.

0
задан 31 January 2020 в 18:04

1 ответ

Так что это не совсем то, что я искал, но поскольку я в основном стремился сэкономить время и освободить место на диске, я выбрал ccache на основе этого руководства.

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

Я добавил это в .bashrc:

export CCACHE_DIR="/scrap/ccache"
export CC="ccache gcc"
export CXX="ccache g++"
export PATH="/usr/lib/ccache:$PATH"

Но, похоже, мне нужно добавить параметр при вызове сборки:

CC="ccache gcc" fakeroot debian/rules binary-headers binary-generic

Результаты после двух идентичных сборок выглядят хорошо (начиная с пустого кеша, затем выполняя сборку со всем в кеше, в сумме получается 50% попаданий) :

попадание в кэш (прямое) 20354
попадание в кэш (предварительно обработано) 81
промах кэша 20411
частота попаданий в кэш 50,03 %
звонил по ссылке 94
призвал к предварительной обработке 148
неподдерживаемая директива кода 12
нет входного файла 1329
выполнено очисток 0
файлы в кеше 61169
размер кэша 7,3 ГБ
максимальный размер кэша 16,0 ГБ

Обычные сборки ядра заняли чуть больше часа. Первый запуск ccache (заполнение кеша) занял 95 минут. Вторая сборка 30 минут. Держу пока так.

0
ответ дан 24 February 2020 в 20:57

Другие вопросы по тегам:

Похожие вопросы: