Construcción de una imagen para Orange Pi

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.

Dependiendo del tamaño de sistema de archivos raíz, lo ideal es  que utilice una tarjeta SD de  4 GB  o más , tipo clase 10  porque será más estable ,la cual por cierto  previamente habrá particionado y formateado  antes con las herramientas habituales (hard disk low level format  o SDFormater) .
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.

orangepi

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

Deja una respuesta