При кросс-компиляции ядра, как я могу остановить его чистоту каждый раз, когда я просто хочу изменить один файл?

Я делаю кросс-компиляцию сборки ядра Ubuntu.

Я следую инструкциям по сборке Ubuntu для omap:

fakeroot debian/rules clean
do_tools=false skipabi=true skipmodule=true dpkg-buildpackage -B -aarmhf -uc -us

Но вышесказанное всегда делает его чистым и отнимает много времени. Я просто вносил изменения в тот же файл, поэтому мне не нужно перестраивать из чистой.

Я пытался пропустить строку fakeroot debian/rules cleanа также удалены -uc, но он все равно делает это с чистого листа.

Затем я попробовал другой метод и сделал:

make -j3 deb-pkg

Но потом я получил новую ошибку:

dpkg-deb: building package `linux-firmware-image' in `../linux-firmware-image_3.4.27+-1_all.deb'.
dpkg-gencontrol: error: current host architecture 'armhf' does not appear in package's architecture list ()
make[1]: *** [deb-pkg] Error 255

Тогда мне нужно было ждать ~2 часа, чтобы закончить сборку...

Все, что я пытаюсь сделать, это изменить файл платы (к сожалению, я не могу сделать его модулем, насколько я понимаю).

Спасибо за любую идею.

1 ответ

Решение

При использовании упакованных ядер Ubuntu debian, я собираю ядра arm64 подобно следующему (вы должны быть в состоянии заменить arm64 на специфические флаги armhf arch, которые соответствуют вашей цели и кросс-компилятору).

export ARCH=arm64
export $(dpkg-architecture -aarm64); export CROSS_COMPILE=aarch64-linux-gnu-

fakeroot debian/rules clean
debian/rules build
fakeroot debian/rules binary

Для последующих сборок я использую:

rm debian/stamps/stamp-build*
debian/rules build
fakeroot debian/rules binary
Другие вопросы по тегам