Сборка ядра. 0) Создать рабочую папку (далее по тексту - ${WORKDIR} ) с нужными правами 1) Распаковать linux-3.18.48-nsg.tar.xz в ${WORKDIR}. 2) cd ${WORKDIR} 3) Если имеется патч nsg для ядра, то применить его: patch -Np1 --input=nsg-MX6UL-krnl-3.18-linux.patch 4) Если имеется файл с firmware, то распаковать nsg_firmware.tar.bz2 в ${WORKDIR}/nsg/firmware На этом шаге получаются пропатченные и готовые к компиляции исходные тексты ядра. На всякий случай можно сделать резервную копию рабочей директории. 5) Отыскать свой кросс-компилятор для arm и убедиться, что путь к нему содержится в переменной PATH. (для yocto кросс-компилятор называется arm-fsl-linux-gcc, для NSGDEVKIT - arm-nsg_rt-linux-gnueabi-gcc ) Определить путь к компилятору можно при помощи команды which названиеКомпилятора. 6) Выполнить сборку (пример с использованием NSGDEVKIT, с другими тулкитами действовать по аналогии) : a) конфигурация: make nsgMX6UL_defconfig ARCH=arm если необходимо добавить в конфигурацию поддежку некоторых дополнительных драйверов и файловых систем: make menuconfig ARCH=arm По умолчанию, конфигурация находится в ${WORKDIR}/arch/arm/configs/nsgMX6UL_defconfig б) загрузочный образ ядра для u-boot: PATH="/opt/nsgdevkit-2016-Q4/usr/bin":${PATH} make uImage NSG_VERSION=2.1.1000_special LOADADDR=80008000 ARCH=arm CROSS_COMPILE=arm-nsg_rt-linux-gnueabi- в) модули : PATH=/opt/nsgdevkit-2016-Q4/usr/bin:${PATH} ; make modules NSG_VERSION=2.1.1000_special ARCH=arm CROSS_COMPILE=arm-nsg_rt-linux-gnueabi- PATH=/opt/nsgdevkit-2016-Q4/usr/bin:${PATH} ; make modules_install NSG_VERSION=2.1.1000_special ARCH=arm CROSS_COMPILE=arm-nsg_rt-linux-gnueabi- \ DEPMOD=/bin/true INSTALL_MOD_STRIP=1 \ INSTALL_MOD_PATH=${MOD_PATH} /sbin/depmod -F System.map -b ${MOD_PATH} \ `cat include/config/kernel.release 2> /dev/null` где ${MOD_PATH} - путь к директории, в которую следует устанавливать модули ядра в целевой файловой системе. Описание переменной INSTALL_MOD_PATH см. в документации по ядру Linux. г) сборка dtb PATH="/opt/nsgdevkit-2016-Q4/usr/bin":${PATH} make nsgMX6UL.dtb NSG_VERSION=2.1.1000_special LOADADDR=80008000 ARCH=arm CROSS_COMPILE=arm-nsg_rt-linux-gnueabi- По умолчанию, Data tree source находится в ${WORKDIR}/arch/arm/boot/dts/nsgMX6UL.dts 7) В arch/arm/boot найти полученный образ ядра - файл uImage, в arch/arm/boot/dts найти datatree blob - файл nsgMX6UL.dtb Эти два файла необходимы для установки на загрузочную SD-карту. При необходимости, эти файлы следует переименовать в соответствии со значениями переменных окружения u-boot. Инструкция по созданию SD-карты содержится в файле MX6UL.manual.SDCARD.txt .