¿Nos ayudas a pagar el Hosting?

Compartir en facebook Compartir en google+ Compartir en twitter Compartir en pinterest Compartir en linkedin

Consejos y trucos para Orange Pi

Publicado en Junio de 2017

He decidido unificar algunos consejos, trucos y atajos que me han servido para sacar un poco más de rendimiento a nuestra Orange PI. La mayoría de ellos son para Armbian, debidamente actualizado. Si no lo tienes actualizado, hazlo ahora con:

sudo apt-get update && sudo apt-get -y upgrade

Conocer la temperatura de la CPU

Para saber a que temperatura en °C se encuentra funcionando la Orange Pi, en Armbian ejecuta el siguiente código:

cat /sys/class/thermal/thermal_zone0/temp

También podemos usar en Armbian una herramienta que se llama armbianmonitor:

sudo armbianmonitor -m
[sudo] password for orangepi:
Stop monitoring using [ctrl]-[c]
Time        CPU    load %cpu %sys %usr %nice %io %irq   CPU
11:35:55: 1248MHz  0.00   0%   0%   0%   0%   0%   0%   39°C
11:36:00:  480MHz  0.00   0%   0%   0%   0%   0%   0%   38°C
11:36:05:  480MHz  0.00   0%   0%   0%   0%   0%   0%   40°C
11:36:10:  480MHz  0.00   0%   0%   0%   0%   0%   0%   38°C
11:36:16:  480MHz  0.00   0%   0%   0%   0%   0%   0%   39°C
11:36:21:  480MHz  0.00   0%   0%   0%   0%   0%   0%   39°C
11:36:26:  480MHz  0.00   0%   0%   0%   0%   0%   0%   40°C
11:36:31:  480MHz  0.00   0%   0%   0%   0%   0%   0%   37°C
11:36:36:  480MHz  0.00   0%   0%   0%   0%   0%   0%   39°C
11:36:41:  480MHz  0.00   0%   0%   0%   0%   0%   0%   38°C

También se puede instalar un monitor para ver a través del navegador en remoto con sudo armbianmonitor -r:

sudo armbianmonitor -r
Installing RPi-Monitor. This can take up to 5 minutes. Be patient pleaseSelecting previously unselected package libdbi1:armhf.
(Reading database ... 140819 files and directories currently installed.)
Preparing to unpack .../libdbi1_0.9.0-4_armhf.deb ...
Unpacking libdbi1:armhf (0.9.0-4) ...
		[........]
[ ok ] Starting rpimonitor (via systemctl): rpimonitor.service.
Processing triggers for libc-bin (2.23-0ubuntu7) ...

Now patching RPi-Monitor to deal correctly with H3

Now you're able to enjoy RPi-Monitor at http://192.168.1.229:8888		

Ahora puedes acceder a través de un navegador en la dirección http://DIRECCIÓN_IP:8888. En mi caso (la dice al final de la instalación es http://192.168.1.229:8888:

En 'options' puedes configurar que se actualice la sección status.. Se puede desinstalar con sudo apt-get remove rpimonitor.


Conocer la frecuencia de funcionamiento

Para saber a que frecuencia esta funcionando la Orange Pi, en Armbian ejecuta el siguiente código:

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq

Cambiar la zona horaria

Ejecuta sudo dpkg-reconfigure tzdata y usa los cursores y la tecla ENTER para seleccionar tu zona y ciudad.


Programar el botón de Power para apagar el sistema

Vamos a usar acpid, que según la documentación oficial es un "demonio" flexible y extensible para entregar eventos ACPI. Vigila /proc/acpi/event y cuando hay un evento, ejecuta programas para manejarlo. Estos eventos se activan mediante ciertas acciones, como:

  • Presionar teclas especiales, incluyendo el botón de Encendido/Hibernar/Suspender.
  • Cerrando la tapa del portátil
  • Desconectar un adaptador de Corriente Alterna a un portátil.
  • Desconectar un jack de un teléfono, etc.

Instala acpid:

sudo apt-get install acpid

Crea un nuevo archivo para el evento del botón de encendido en la carpeta acpi:

nano /etc/acpi/events/button_power

Y pega este código

event=button/power
action=/sbin/shutdown -h now

Guarda y sal del editor. Ahora reinicia la aplicación acpi.

/etc/init.d/acpid restart

¡Hecho! Ahora presiona el botón de encendido de tu dispositivo para apagarlo con seguridad.


Instalación en EMMC interno

Son muchos los que me han preguntado como utilizar la memoria interna EMMC (mucho más rápida que la microSD y menos fácil de corromper) que llevan algunos modelos.

Instala la imagen en la tarjeta SD como se describe aqui.

Arranca al Orange PI de la tarjeta SD.

En Armbian:

sudo nand-sata-install

En distros de Linux jecuta:

sudo install_to_emmc

Si el script no existe en tu imagen, descarga desktop_scripts.tar.gz, y descomprime en /usr/local/bin.

Apaga el sistema y retira la tarjeta SD. Al encender de nuevo, la placa arrancará desde la memoria interna EMMC.

No hay que cambiar el tamaño de la tarjeta SD antes de la instalación en EMMC si no piensas utilizarla. Puedes usar la opción btrfs para formatear la partición EMMC Linux como btrfs, se montará con la opción compress = lzo y podrás ahorrar hasta un 40% del tamaño de la EMMC.

sudo install_to_emmc btrfs

Backup interno de la tarjeta EMMC a SD

Arranca la Orange PI de EMMC sin tarjeta SD insertada e inicia sesión. Inserta la tarjeta SD. y ejecuta:

sudo install_to_sdcard [btrfs]

Tu instalación existente en la EMMC Linux se transferirá a la tarjeta SD. Ahora puedes arrancar desde esa tarjeta SD en otra o la misma tarjeta Orange PI del mismo modelo o compatible, por supuesto. Si arrancas en otra placa diferente, deberás copiar el kernel (uImage) y script.bin para esa placa.


Arranque desde una unidad USB

También se puede arrancar desde una unidad USB. En la partición BOOT (fat) de la tarjeta sd o emmc debe estar el archivo cmdline.txt cuyo contenido debe ser:

root = /dev/sdXn

donde /dev/sdXn es la partición de unidad USB (como sea el nombre visible desde OPI) a la que irá a arrancar (por ejemplo root = /dev/sda1).

La linea que monta el raiz / en /etc/fstab en la partición USB Linux debe apuntar a la partición correcta.

Puedes utilizar el script install_to_usb para instalar la partición de unidad Linux en el USB y crear automáticamente los archivos cmdline.txt y fstab correctos.

Si cmdline.txt no existe o la partición de unidad USB no es accesible (la unidad USB no está conectada), el sistema arranca en /dev/mcblk0p1 (de la sdcard si existe, de lo contrario EMMC, si está disponible).

La tarjeta SD o EMMC de arranque debe ser accesible al arrancar a USB, pero no es necesario que la segunda partición contenga Linux fs válido, la tarjeta SD sólo puede tener la primera (fat) partición. Puedes tener diferentes instalaciones de Linux en diferentes particiones de unidades USB, simplemente edita el archivo cmdline.txt para seleccionar desde donde iniciará. Se debe utilizar la uImage más reciente.


Uso del script install_to_usb

Utiliza el script install_to_usb para instalar Linux a una partición de una unidad USB. Puede utilizarse para realizar copias de seguridad de tu instalación SD/EMMC.

sudo install_to_usb /dev/sdXn [btrfs]|[noformat]

/dev/sdXn es la partición de la unidad USB a la que instalar (por ejemplo /dev/sda1). Si el segundo parámetro es btrfs, la partición USB se formateará como btrfs, de lo contrario como ext4. Si el segundo parámetro es noformat, la partición USB no se formateará, el contenido de la partición se actualizará (en caso de que hayas utilizado install_to_usb para realizar una copia de seguridad de la SD/EMMC antes).

¡¡ATENCION: ten cuidado de no seleccionar la partición USB equivocada, se borrará!!

Si el script no existe en tu imagen, descarga desktop_scripts.tar.gz, y descomprime en /usr/local/bin. Debes tener la última versión de uImage, con el arranque a usb (boot to usb) habilitado.

Antes de ejecutar cualquiera de los scripts aquí comentados, asegúrate de hacer copia de seguridad de los archivos importantes. El fichero desktop_scripts.tar.gz contiene los siguientes scripts:

  • install_lxde_desktop
  • install_mate_desktop
  • install_to_emmc
  • install_to_sdcard
  • install_to_usb
  • install_x2goserver
  • install_xfce_desktop
  • update_kernel.sh

Uso de los LEDS de la placa

En el directorio leds veremos que hay un directorio que representa cada uno de los leds de la placa:

cd /sys/class/leds/
ls
green_led  red_led

También podemos ver, por ejemplo, a que evento está asociado cada led ejecutando cat green_led/trigger (tiene el valor 'default_on') o cat red_led/trigger (tiene el valor 'none'). Desde /sys/class/leds ejecuta:

cat green_led/trigger 
none mmc0 mmc1 timer heartbeat backlight [default-on] rfkill0 phy1rx phy1tx phy1assoc phy1radio 
cat red_led/trigger 
[none] mmc0 mmc1 timer heartbeat backlight default-on rfkill0 phy1rx phy1tx phy1assoc phy1radio

O podemos encender el led rojo ejecutando echo 1 > red_led/brightness. Para apagarlo ya os podéis imaginar que es echo 0 > red_led/brightness (ejecutar con premisos de superusuario su). Con estas premisas ya puedes usarlo en tus proyectos.


Configurar WiFi

Pasos sencillos para configurar una WiFi desde terminal.

sudo ifconfig wlan0 up
sudo iwconfig wlan0 essid NOMBREDETUWIFI key s:CONTRASEÑA	
sudo dhclient wlan0	

Para que todo esto se ejecute al arranque, habrá que crear un archivo en /usr/local/bin. Llámalo wifi.sh y escribe esto:

#! /bin/bash
ifconfig wlan0 up
iwconfig wlan0 essid NOMBREDETUWIFI key s:CONTRASEÑA
dhclient wlan0
					

Dale permisos de ejecución:

chmod u+x wifi.sh

GPIO

Podemos ver los GPIO disponibles ejecutando:

cat /sys/kernel/debug/gpio
GPIOs 0-383, platform/sunxi-pinctrl, sunxi-pinctrl:
 gpio-15  (red_led             ) out lo
 gpio-16  (?                   ) out hi
 gpio-102 (?                   ) out hi
 gpio-166 (cd                  ) in  lo
 gpio-354 (?                   ) out hi
 gpio-362 (green_led           ) out hi

Podemos activar un nuevo puerto GPIO, digamos el 10:

echo 15 >/sys/class/gpio/export

Ahora veremos el puerto activo:

cat /sys/kernel/debug/gpio
GPIOs 0-383, platform/sunxi-pinctrl, sunxi-pinctrl:
 gpio-10  (sysfs               ) in  lo
 gpio-15  (red_led             ) out lo
 gpio-16  (?                   ) out hi
 gpio-102 (?                   ) out hi
 gpio-166 (cd                  ) in  lo
 gpio-354 (?                   ) out hi
 gpio-362 (green_led           ) out hi

Ahora, en el directorio /sys/class/gpio/gpio10/ tendremos los interfaces usuales para puertos gpio definidos en el kernel de linux.


Este apartado irá creciendo en el futuro con nuevos trucos y consejos, incluyendo los vuestros. No os cortéis de mandarme los que penséis que deberían estar aquí.

Espero que te haya sido de utilidad, no dudes en escribir un comentario si ves algún error o si puedo ayudarte.


Utiliza este espacio si quieres añadir algún comentario adicional o si tienes alguna duda.
No olvides añadir tu distribución y tu placa.

Todos los comentarios serán validados antes de su publicación.
  1. Gilberto

    para configurar teclado dpkg-reconfigure keyboard algo asi pero no me funciona


  2. Javier

    Hola Gilberto. Para configurar el teclado con armbian, debes escribir:
    dpkg-reconfigure keyboard-configuration
    Saludos


  3. Saul

    hola, excelente trabajo en compartir toda la información, trate de instalar en emmc lubuntu y no lo logré ya que me arrojaba el resultado error: boot0_opi. fex not found ¿alguna solución probable?

    ¡gracias de antemano!


  4. Javier

    Mira a ver si esto te sirve. Descarga la última actualización de instalación (escritorio y emmc) de scripts (desktop_scripts.tar.gz) desde cualquiera de los repositorios.
    http://www.orangepi.org/orangepi ... =viewthread&tid=342
    https://drive.google.com/folderv ... mp;usp=sharing#list
    y luego ejecuta el script "install_to_emmc". Cuéntame. Saludos.


  5. Saul

    A final de cuentas lo hice copiando la img de Lubuntu en la sd con retrorange pi instalado entre' a el escritorio y ejecute' el comando dd if=/home/pi/llubuntu.img of=/dev/mmcblk1 y voila!

    Saludos Javi!



Nombre*

Email* Nunca será publicado ni compartido

Comentario*



Copyright © 2016. Todos los derechos reservados | Diseño JaviPSantos

Solicitamos su permiso para obtener datos estadísticos de su navegación en esta web, en cumplimiento del Real Decreto-ley 13/2012. Si continúa navegando consideramos que acepta el uso de cookies.

OK | Más información