#kernel #cross-compiling
#ядро #перекрестная компиляция
Вопрос:
Я скомпилирую довольно старое ядро (2015) на машине Linux x64 для встроенной системы ARM. Мой процесс заключается в:
- запустите сценарий настройки переменных:
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-
- конфигурировать
$ make O=../build-folder custom_defconfig
- построить DTS
$ make O=../build-folder embedded_board.dtb -j8
- создайте образ ядра
$ 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
параметр в предыдущих командах), все будет скомпилировано, и будет создано функционирующее ядро для моей платы.
Есть какие-нибудь намеки на то, что может привести к ошибке?