En este post vamos a describir el proceso para combinar sunxi u-boot, kernel de linux y otros bits para crear la base de un sistema operativo de arranque desde cero y también la base para crear otro para la placa Orange PI.
Por supuesto no construiremos una distribución completa, sólo construimos una imagen que contiene el u-boot, el núcleo y un puñado de herramientas de modo que luego usaremos un sistema de archivos raíz existente para obtener un sistema útil.
Tenemos dos métodos para construir todo lo que necesitamos, esta guía , el otro es la manera más fácil mediante el uso de sunxi BSP.
Haga una cruz toolchain
La cadena de herramientas es un conjunto de binarios, bibliotecas de sistema y herramientas que permiten crear (en nuestro caso, cross-compilar) un u-boot y kernel para una plataforma de destino. Esto, hasta cierto punto limitada, tendrá que coincidir el rootfs objetivo.
Si usa Ubuntu o Debian, puede obtener todo lo que necesita por instalar , ejecutando las siguientes herramientas:
sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential u-boot-tools uboot-mkimage binutils-arm-linux-gnueabihf gcc-4.7-arm-linux-gnueabihf-base \ g++-4.7-arm-linux-gnueabihf sudo apt-get install gcc-arm-linux-gnueabihf cpp-arm-linux-gnueabihf libusb-1.0-0 libusb-1.0-0-dev git wget fakeroot kernel-package \ zlib1g-dev libncurses5-dev
Nota: En Debian (sibilancias) Ubuntu 13.10 (picantes), paquete uboot-mkimage es quitado, el comando mkimage incluido en el paquete de u-boot-tools . En Ubuntu 12.04, cambiar gcc-4.7-arm-linux-gnueabihf-base y g ++-4.7-arm-linux-gnueabihf a gcc-4.6-arm-linux-gnueabihf-base y g ++-4.6-arm-linux-gnueabih.
También puede utilizar la herramienta de Linaro la cadena o cadena de herramientas de código Sourcery, son toolchains independiente con grandes archivos que vienen con todo que lo necesario.
Utilize Orange Pi BSP
BSP significa “Paquete de apoyo de la placa”.
Instalación
Obtener el repositorio BSP:
git clone https://github.com/orangepi-xunlong/orangepi-bsp.git
Construcción
Después de obtener el BSP, luego clonado al directorio de sunxi bsp , ejecutar comando de compilación:
./configure OrangePi make
Este comando tomará un tiempo para construir todas las cosas. Después de que todo haya sido construido, usted conseguirá todo lo que quiera en el directorio build/OrangePi_hwpack , como u-boot-sunxi-con-spl.bin, scritp.bin, uImage y módulos. También puede modificar su configuración de kernel ejecutando:
make linux-config
Esto sobrescribirá el archivo .config en el /build/sun7i_defconfig-linux.
Paso a paso
Construir u-boot
U-boot es el gestor de arranque utilizado comúnmente en los allwinner SoCs. Similar a muchos otros, proporciona la infraestructura básica para llevar un SBC (sola computadora de la placa ) hasta un punto donde puede cargar un kernel Linux y comenzar a arrancar el sistema operativo.
Primero necesita clonar el repositorio de Github:
git clone https://github.com/orangepi-xunlong/u-boot-orangepi.git
Después de que el repositorio haya sido clonado , usted puede construir el u-boot
Primero configurar el u-boot :
make CROSS_COMPILE=arm-linux-gnueabihf- Orangepi_config
Y luego el u-boot:
make CROSS_COMPILE=arm-linux-gnueabihf-
Después usted puede conseguir el u-boot-sunxi-con-spl.bin u-boot.img, u-boot.bin, sunxi/spl-spl.bin. Aquí utilizamos solamente archivo u-boot-sunxi-con-spl.bin.
Construir el fichero script.bin
En primer lugar, obtener los siguientes repositorios:
git clone https://github.com/orangepi-xunlong/sunxi-tools.git git clone https://github.com/orangepi-xunlong/sunxi-boards.git
Ir a sunxi-tools y ejecutar el comando
make
Usted puede necesitar instalar los paquetes dependientes:
sudo apt-get install pkg-config
De este modo obtendrá la herramienta fex2bin, bin2fex y otros.
Entonces en el árbol de sunxi-tableros , buscar el archivo OrangePi.fex . Podemos modificar algunas de las configuraciones en el archivo, como [gmac_para], [usb_wifi_para], etc..
Ya podemos crear el archivo script.bin:
${sunxi-tools}/fex2bin OrangePi.fex script.bin
El prefijo ${herramientas de sunxi} indica que se encuentra en su árbol de sunxi-herramientas.
Necesitará este archivo script.bin más tarde al terminar la instalación de u-boot.
El núcleo de la construcción
En primer lugar, obtener el repositorio del kernel de linux después de ejecutar :
git clone https://github.com/orangepi-xunlong/linux-orangepi.git
En segundo lugar, establecer la configuración predeterminada:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun7i_defconfig
En tercer lugar, ajustar la configuración. Para abrir un núcleo es necesario configurar o cerrar el kernel inútil configurando o editando su configuración de kernel:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
Contruccion de uImage cons módulos:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules
Como paso final, crear el árbol completo de módulo:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=output modules_install
La opción de INSTALL_MOD_PATH especifica el directorio donde el árbol completo del módulo estarán disponible. En este ejemplo, será el directorio de salida bajo el núcleo crear directorio.
Ahora tiene el siguiente que residen en el árbol del kernel:
arch/arm/boot/uImage output/lib/modules/3.4.XX/
El archivo uImage Iniciado por u-boot, y el directorio de módulos que se copiarán a las /lib/modules en el sistema de archivos raíz de destino.
Utilizando cuatro archivos
A través de “paso a paso” o “uso de sunxi bsp”, obtendrá al menos cuatro archivos o paquetes que necesitas, son:
u-boot-sunxi-with-spl.bin uImage script.bin modules/3.4.XX
Utilizamos estos cuatro archivos para configurar la tarjeta SD bootable.
Referencia
1. http://sunxi.org/Manual_build_howto
2. http://sunxi.org/U-Boot#Compilation
3. http://sunxi.org/Linux_Kernel#Compilation
4. http://sunxi.org/BSP
Fuente orangepi.org