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

Smartwatches en entorno abierto


Aunque suene muy novedoso Secret Labs (los creadores de Netduino)y House of Horology   tuvieron ya hace tres años allá por 2013  tuvieron  una la idea  de crear el primer reloj inteligente abierto   :Agent , un smatwatch  muy  similar a lo que proponen hoy en día  ,pero claramente con recursos innovadores para su época como era  la carga inalámbrica y la pantalla de tinta electrónica.

El reloj cuenta  con procesador  a 120MHz ARM Cortex-M4 con  secundario  AVR co-processor  siendo la pantalla de 1.28 «(128 x 128)con retroiluminación inteligente
lente de cristal anti-reflejo

Lleva integrado  Bluetooth 4.0 BD / EDR + LE,  un acelerómetro de 3 ejes ,Sensor de luz ambiental, motor de vibración y carga inalámbrica Qi

respecto a la batería es muy interesante pues se ha diseñado el reloj para permitir la reparación y reciclaje de este incluyendo la batería reemplazable , teniendo una autonomía de 7 días duración de la batería (típica)  y 30 días en modo de sólo su esfera

Entre sus muchas virtudes este reloj puede ejecutar  aplicaciones escritas en C # utilizando Microsoft Visual Studio 2012 ( incluyendo la edición gratuita Express) desplegando sus propias aplicaciones a través de Bluetooth y por supuesto depurando de forma interactiva .

Para crear apps para este reloj solo  se necesitan tres herramientas gratuitas:

  •  Visual Studio Express 2012
  •  .NET Micro Framework SDK v4.3 QFE1
  • Agente de descarga del SDK v0.3.0 (febrero de 2014 de vista previa)

Asimismo los desarrolladores también pueden utilizar el reloj como una pantalla secundaria , interactuando con él de forma remota a través de Bluetooth de su Objective-C , C #, Java o aplicación de teléfono inteligente .

Y por cierto al igual que su teléfono inteligente, este reloj  ejecuta aplicaciones descargables .Estas aplicaciones pueden hablar con los dispositivos Bluetooth tradicionales, tales como teléfonos inteligentes y monitores de ritmo cardíaco , así como la nueva generación de dispositivos Bluetooth de baja energía, tales como cerraduras de las puertas .Por supuesto la conexión con el smartphone ,permite a las  aplicaciones también recuperar la información desde Internet, que le puede mantener al día con las cosas que son más importantes para usted .

agent.PNG

 

El proyecto se lanzó kickstarter   y  se llama Agent .La friolera de casi 6000 personas (exactamente  5.685 patrocinadores) contribuyeron con  1.012.742 $ para ayudar a dar vida a este proyecto, que aun no ha concluido por los números escollos que ha tenido en el aspecto hardware preveyendo que muy pronto de la luz.

 

En la otra cara de la moneda , tenemos otra propuesta muy diferente llamada culbox,   que pretende ser  el smartwatch de código abierto programable con Arduino

Culbox es una pulsera de código abierto con la que puede interactuar con los proyectos realizados con Arduino. Se puede programar a través del IDE de Arduino, siendo muy sencillo usar las diferentes librerías de Arduino con él..

Se trata de un reloj de pulsera de código abierto con Bluetooth integrado  contando ademas con diferentes  sensores como son un sensor de movimiento de 6 ejes , sensor de presión de aire ,altimetro,etc.

Cuenta con un procesador de 32 bits ARM Cortex ,, una pantalla de 1.5″OLED, 3 botones, y todo lo necesario en un reloj.

CulBox viene con una aplicación tanto para teléfonos Android como para IOS que se puede utilizar como una plantilla para realizar distintos proyectos.

Acepta tarjetas microSD. También hay un puerto de usos múltiples como la carga de la batería o conectar el dispositivo a Arduino para la programación. Enlace al proyecto en Kickstarter. Y a su web.