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

Anuncio publicitario

Conversión de carga inalámbrica para smartphones


La utopía de carga inalámbrica que describía Tesla hace muchos años con su famosas bobinas Tesla, esta  cada vez esta  mas cerca de ser factible  gracias a  la evolución de los sistemas de carga  inalámbrica no solo empleados en pequeños dispositivos electrónicos como pueden ser smartphones de gama alta  sino también en todo  tipo de aparatos eléctricos como pueden ser  los cepillos eléctricos o los actuales coches eléctricos

Realmente, con la tecnologia actual, podemos hablar de dos sistemas de carga  :

  1. Carga Electromagnética: Este tipo de carga es inductiva y utiliza un campo electromagnético para la transferencia de energía  asi que podríamos decir que usa un principio similar al usados en los transformadores tradicionales  con dos  bobinas donde ahora el primario esta fuera  y el secundario en dispositivo a cargar. Hablamos pues de carga  a corta distancia que  requiere casi contacto con los dispositivos.Hasta no hace mucho había tres contendientes en el mercado, pero Power Matters Alliance (PMA) y la Alliance for Wireless Powery aunaron sus fuerzas dando lugar al Wireless Power Consortium   dando lugar al standard   Qi que es usado en muchos  smartphones de alta gama de modo nativo (Nexus 4/5,Nokia Lumia Icon/810/822/920/928/1520,LG Optimus F5/Lucid2,Motorola Droid Maxx,Motorola Droid Mini y HTC Droid DNA Butterfly)   o  con carcasas especiales (LG G2,iPhone 4/4S/5/5C/5S,Nokia Lumia 820/925/1020,Moto X,Samsung Galaxy S3/S4/S5,Sony Xperia Z2,etc)  y  también  en el nuevo sistemas de carga inalambrico integrado en los muebles  de Ikea
    1. Algunas ventajas: No hay un riesgo de recibir una descarga ya que no hay contacto directo con la fuente de energía. Es segura incluso en contacto con agua.Es muy cómodo y evita averiar el conector del puerto microusb
    2. Algunos puntos debiles: El dispositivo que se encarga de la transferencia de energía en comparación con un sistema de carga cableado es sensiblemente inferior
  1. Carga por Resonancia: Este tipo de carga se da a una distancia de 50 centímetros. Se utilizan dos bobinas de cobre, una que hace el trabajo de enviar la energía de la fuente y otra que recibe la energía y que va conectada al dispositivo a cargar. La transferencia de energía se da cuando las dos bobinas tienen la misma frecuencia y están cerca.

 

En este post vamos a ver como es posible añadir  un cargador inalámbrico por inducción a cualquier smartphone  aunque este no venga preparado  para este tipo de  carga   .

Realmente el principio es sencillo pues la corriente continua producida por el cargador tradicional del móvil se volverá a transformar en corriente alterna por medio de un oscilador  y una bobina , y dicha energía se inducirá  desde la bobina transmisora hasta la bobina receptora que colocaremos en el dispositivo  a cargar junto a un  circuito convertidor ca /cc.

Aunque es posible fabricar tanto el transmisor como el receptor de carga inalámbrico uno mismo con  una bobina de cobre  un transistor  2sc5200  y una resistencia de 6k2 en el lado energizador  y otra bobina ,un puente de diodos ,un diodo zenner y un pequeño condenador electrolítico en la parte receptora ,  como podemos ver en este diseño de cargador inalámbrico  y otros muchos diseños más , realmente es complicado llegar a hacer un circuito discreto  que no se vea  y que sea  realmente practico.

Gracias a la miniaturización  y las placas con  tinta conductora   han aparecido realmente diseños  muy  interesantes para el lado receptor    , tal  y como el  diseño  de Xcsorce    pues gracias a su delgadez  extrema puede colocarse entre la batería  y la carcasa de cualquier  teléfono    con Micro USB como puerto de carga, no aumentando el peso adicional del móvil.

2016-12-12_23h26_10.png

El diseño trabaja  en la banda de  100-200KHz (la banda de Qi)  por lo que para el transmisor  podemos usar cualquier cargador inalámbrico , necesitando ,eso si,  una distancia de 5mm entre la bobina integrada del cargador inalámbrico y éste , distancia suficiente  «alta» como  para colocarlo dentro de la carcasa del terminal ,no quedando asi visible .

 

Este modelo  permite un fácil montaje y desmontaje, cómodo de usar en solo 4 pasos de la siguiente manera:

  1. Retirar la tapa posterior
  2. Enchufar en la cabeza usb micro
  3. Colocar la bobina  y el circuito sobre la batería(¡Ojo! Las bobinas solo cargan por una cara, por este motivo es «MUY IMPORTANTE» saber que tipo/posición de conector tenemos.)
  4. Poner en la contraportada.

2016-12-12_20h43_10

 

Obviamente  el cargador  puede estar unido en todo momento sin tener que sacar el conector de modo  que  se puede alargar la vida del propio conector microusb  del terminal  y ademas  protegerlo  porque no hace falta quitarlo en el uso normal .Las «fajas» de estas bobinas suelen ser muy finas, lo que nos permite cerrar la tapa y que quede totalmente oculta.Como es lógico, se «pierde» un conector microusb, pero se gana la carga por inducción.

Este  receptor inalámbrico WPC Qi es compatible pues con móviles que usan usb micro siendo esta la forma más eficiente para que cualquier  dispositivo pueda  convertirse en compatible con carga inalámbrica  teniendo  un impacto mínimo en el precio, sin necesidad de comprar accesorios de alimentación inalámbrica externos o módulos integrados en el dispositivo.

Respecto si el micro usb del terminal si es hacia arriba o hacia abajo  no importa si el USB va al derecho o al revés ya que puede doblar el cable que trae y se adapta; tan solo no sirve para los móviles que tengan el conector enfrente de la cámara como es el caso del MLAIS M52 Red Note porque tapa esta al conectarlo.

Para terminar , aunque ya se ha comentado, como el receptor trabajar con la plataforma de carga inalámbrica Qi , el cargador inalámbrico también lo deberá hacer ( es decir los modelos estándard).

 

I