Установите виртуальную машину (VM) и проинсталлируйте на нее Linux (например Ubuntu) Установите необходимые для кросс компиляции toolchains apt-get install libncurses5-dev
apt-get install gcc-4.8-arm-linux-gnueabihf g++-4.8-arm-linux-gnueabihf
ln -f -s /usr/bin/arm-linux-gnueabihf-gcc-4.8 /usr/bin/arm-linux-gnueabihf-gcc
ln -f -s /usr/bin/arm-linux-gnueabihf-gcov-4.8 /usr/bin/arm-linux-gnueabihf-gcov
ln -f -s /usr/bin/arm-linux-gnueabihf-g++-4.8 /usr/bin/arm-linux-gnueabihf-g++
ln -f -s /usr/bin/arm-linux-gnueabihf-cpp-4.8 /usr/bin/arm-linux-gnueabihf-cpp
Скачайте SDK Allwinner H3 например отсюдаhttp://www.orangepi.org/downloadresources/orangepimini2/orangepimini2_f174bca071d3c45f856db7.htmlРаспакуйте архив в папку /home/Скачайте патч приатаченный в данной теме, скопируйте его в корневую папку SDK /home/lichee/ и примените патч patch -p1 < kernel-3.4.patch
Перед началом сборки сконфигурируйте исходники make clean
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun8iw7p1smp_defconfig
В директории /home/lichee/linux-3.4/ создайте папку output (туда мы поместим собранные модули драйверов) и скопируйте в нее файл rootfs.cpio.gz из корневой директории /home/lichee/linux-3.4/Можно запустить графический конфиг и сделать свои дополнительные настройки make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
не забывайте устанавливать в menuconfig
General setup
Kernel .config support
Enable access to .config through /proc/config.gz
To Enable access users to .config file through /proc/config.gz
Сборка ядра. Не забудтье что u-boot должен быть уже собран так как для окончательной сборки ядра понадобится его утилита mkimage export PATH=$PATH:/home/bootloaderPI2/u-boot-2011.09/tools/ (указываем путь где у нас mkimage)
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 uImage
После компиляции в директории /home/lichee/linux-3.4/arch/arm/boot вы получите uImageТеперь сборка модулей драйверовmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules_prepare
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules
И наконец инсталяция модулей в папку outputmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=output modules_install