Кросс-компиляция ядра Linux с использованием набора инструментов на основе crosstool-ng

Я создал собственную цепочку инструментов, используя проект crosstool-ng для BeagleBone Black SBC. Я следовал инструкциям в книге «Освоение программирования для встраиваемых систем Linux», где просто использовал конфигурацию arm-cortex_a8-linux-gnueabi. Сборка цепочки инструментов работает нормально, но при ее использовании для кросс-компиляции ядра Linux (используя multi_v7_defconfig из версии ядра 4.19.70) я получаю целую кучу следующих ошибок:

/tmp/ccMrtEje.s:43: Error: selected processor does not support 'dmb ish' in ARM mode

Где dmb ish может быть любой неподдерживаемой инструкцией, найденной ассемблером цепочки инструментов. Я попробовал официальный форк ядра для BeagleBone здесь, который имеет bb.org_defconfig, поэтому я использовал его и получил такая же ошибка. Кажется, это проблема с набором инструментов. Могу ли я что-то упустить при настройке набора инструментов? Я уже установил FPU как аппаратный, но еще не знаком со многими параметрами конфигурации.


person 3bdalla    schedule 06.09.2019    source источник


Ответы (1)


Я настоятельно рекомендую использовать набор инструментов GCC от Linaro или ARM.
Мне удалось без проблем собрать ядро ​​4.19.70 для вашей целевой конфигурации с помощью gcc-arm-8.3-2019.03-x86_64-arm-eabi, используя следующие команды:

wget "https://developer.arm.com/-/media/Files/downloads/gnu-a/8.3-2019.03/binrel/gcc-arm-8.3-2019.03-x86_64-arm-eabi.tar.xz?revision=402e6a13-cb73-48dc-8218-ad75d6be0e01&la=en" -O gcc-arm-8.3-2019.03-x86_64-arm-eabi.tar.xz
tar Jxf gcc-arm-8.3-2019.03-x86_64-arm-eabi.tar.xz

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.70.tar.xz
tar Jxf linux-4.19.70.tar.xz

CROSS_COMPILE=$(pwd)/gcc-arm-8.3-2019.03-x86_64-arm-eabi/bin/arm-eabi- ARCH=arm make -C linux-4.19.70 mrproper multi_v7_defconfig bzImage

ls -gG linux-4.19.70/arch/arm/boot/zImage
-rwxrwxr-x 1 8655360 Sep 21 03:49 linux-4.19.70/arch/arm/boot/zImage

Надеюсь, это поможет.

person Frant    schedule 21.09.2019