Перекрестная компиляция ядра в другой папке сборки выдает ошибку

#kernel #cross-compiling

#ядро #перекрестная компиляция

Вопрос:

Я скомпилирую довольно старое ядро (2015) на машине Linux x64 для встроенной системы ARM. Мой процесс заключается в:

  1. запустите сценарий настройки переменных:
     export ARCH=arm  export DTC_FLAGS=  export PATH=/opt/gcc-linaro-4.9-2015.05-x86_64_arm-linux-gnueabihf/bin:$PATH  export CROSS_COMPILE=arm-linux-gnueabihf-  
  2. конфигурировать
     $ make O=../build-folder custom_defconfig  
  3. построить DTS
     $ make O=../build-folder embedded_board.dtb -j8  
  4. создайте образ ядра
     $ make O=../build-folder LOADADDR=80008000 uImage -j8  

Все прошло нормально. Я отредактировал исходный код и конфигурационный файл, ввел их, перекомпилировал, и все снова было в порядке.

Со вчерашнего дня DTS компилируется нормально, но что-то не получается при компиляции образа ядра.

 $ make O=../build-nobk LOADADDR=80008000 uImage -j8  make[1]: Entering directory '/home/cristofolini/Projects/GEMMARUM/linux/build-nobk'  fatal: No names found, cannot describe anything.  GEN ./Makefile  scripts/kconfig/conf --silentoldconfig Kconfig  fatal: No names found, cannot describe anything.  CHK include/config/kernel.release  fatal: No names found, cannot describe anything.  fatal: No names found, cannot describe anything.  GEN ./Makefile  WRAP arch/arm/include/generated/asm/bitsperlong.h  fatal: No names found, cannot describe anything.  WRAP arch/arm/include/generated/asm/cputime.h  WRAP arch/arm/include/generated/asm/current.h  WRAP arch/arm/include/generated/asm/emergency-restart.h  WRAP arch/arm/include/generated/asm/errno.h  WRAP arch/arm/include/generated/asm/exec.h  WRAP arch/arm/include/generated/asm/ipcbuf.h  WRAP arch/arm/include/generated/asm/ioctl.h  WRAP arch/arm/include/generated/asm/kdebug.h  WRAP arch/arm/include/generated/asm/irq_regs.h  WRAP arch/arm/include/generated/asm/local.h  WRAP arch/arm/include/generated/asm/local64.h  WRAP arch/arm/include/generated/asm/mcs_spinlock.h  WRAP arch/arm/include/generated/asm/msgbuf.h  WRAP arch/arm/include/generated/asm/parport.h  WRAP arch/arm/include/generated/asm/param.h  WRAP arch/arm/include/generated/asm/preempt.h  WRAP arch/arm/include/generated/asm/poll.h  CHK include/generated/uapi/linux/version.h  UPD include/generated/uapi/linux/version.h  WRAP arch/arm/include/generated/asm/resource.h  WRAP arch/arm/include/generated/asm/rwsem.h  fatal: No names found, cannot describe anything.  WRAP arch/arm/include/generated/asm/scatterlist.h  WRAP arch/arm/include/generated/asm/seccomp.h  WRAP arch/arm/include/generated/asm/sections.h  WRAP arch/arm/include/generated/asm/segment.h  WRAP arch/arm/include/generated/asm/sembuf.h  WRAP arch/arm/include/generated/asm/serial.h  WRAP arch/arm/include/generated/asm/shmbuf.h  WRAP arch/arm/include/generated/asm/siginfo.h  WRAP arch/arm/include/generated/asm/simd.h  WRAP arch/arm/include/generated/asm/sizes.h  WRAP arch/arm/include/generated/asm/socket.h  WRAP arch/arm/include/generated/asm/sockios.h  WRAP arch/arm/include/generated/asm/termbits.h  WRAP arch/arm/include/generated/asm/timex.h  WRAP arch/arm/include/generated/asm/trace_clock.h  WRAP arch/arm/include/generated/asm/unaligned.h  WRAP arch/arm/include/generated/asm/termios.h  HOSTCC scripts/basic/bin2c  UPD include/config/kernel.release  fatal: No names found, cannot describe anything.  Using /home/cristofolini/Projects/GEMMARUM/linux/sistema_spettrometro_linux as source for kernel  fatal: No names found, cannot describe anything.  fatal: No names found, cannot describe anything.  /bin/sh: 1: Syntax error: "(" unexpected (expecting ")")  make[1]: *** [/home/cristofolini/Projects/GEMMARUM/linux/sistema_spettrometro_linux/Makefile:1026: include/generated/utsrelease.h] Error 2  make[1]: *** Waiting for unfinished jobs....  make[1]: Leaving directory '/home/cristofolini/Projects/GEMMARUM/linux/build-nobk'  make: *** [Makefile:146: sub-make] Error 2  

Единственное, что сделано в исходной папке, — это скачки туда-сюда в репозитории, поэтому я не знаю, что происходит.

Интересная вещь, которую я обнаружил, заключается в том, что это происходит только в том случае, если я задаю выходную папку с O=../build-folder параметром. Если я скомпилирую все в исходной папке (опустите O=../build-folder параметр в предыдущих командах), все будет скомпилировано, и будет создано функционирующее ядро для моей платы.

Есть какие-нибудь намеки на то, что может привести к ошибке?