¿Nos ayudas a pagar el Hosting?

Compartir en facebook Compartir en twitter Compartir en linkedin

Consejos y trucos para Orange Pi

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

Producto recomendado de la semana

Orange Pi-pantalla táctil capacitiva IPS de 5 pulgadas, 720P, HD, compatible con HDMI, LCD para Raspberry Pi, Monitor Aida64.

Conocer la temperatura de la CPU

Para saber a que temperatura en °C se encuentra funcionando la Orange Pi, en Armbian prueba los siguientes códigos:

cat /sys/class/thermal/thermal_zone0/temp
cat /sys/devices/virtual/thermal/thermal_zone0/temp
cat /etc/armbianmonitor/datasources/soctemp

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.


IP Fija

Por defecto, el servidor DHCP del router asigna la IP de su adaptador de red principal. Averigua tu configuración de red actual, con:

ifconfig -a

Edita el fichero:

sudo nano /etc/network/interfaces

y escribe tus propias IP's para que coincidan con tu configuración de red:

auto lo
iface lo inet loopback

# Interface Ethernet
auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    network 192.0.0.0
    broadcast 192.0.0.255
    gateway 192.0.0.1
    dns-nameservers 192.0.0.1 8.8.8.8
    dns-domain ejemplo.com
    dns-search ejemplo.com

Reinicia el interface con los comandos ifdown eth0; ifup eth0. Tu nueva IP fija será address. Si estás realizando el cambio por SSH deberás reconectar.


Cambiar la resolución del monitor

Ejemplo para ajustar la resolución a 1920 x 1080, full colour-range y DVI en dispositivos H3:

h3disp -m 1080p60 -d -c 1

Cambiar la resolución en otras tarjetas no H3:

nano /boot/boot.cmd

# ejemplo:
# cambia 
# disp.screen0_output_mode=1920x1080p60 
# a
# disp.screen0_output_mode=1280x720p60

mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

Resolución de pantalla interactiva: solo placas Allwinner con A10 y A20 con legacy kernel:

# Ejemplo para ajustar la resolución a 1280 x 720
a10disp changehdmimodeforce 4

Otros modos;

0 480i
1 576i
2 480p
3 576p
4 720p 50Hz
5 720p 60Hz
6 1080i 50 Hz
7 1080i 60 Hz
8 1080p 24 Hz
9 1080p 50 Hz
10 1080p 60 Hz

Información obtenida de Armbian.


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

Configurar el teclado

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

Lenguaje del sistema

# Debian --> https://wiki.debian.org/ChangeLanguage
dpkg-reconfigure locales
# Ubuntu --> https://help.ubuntu.com/community/Locale
update-locale LANG=[options] && dpkg-reconfigure locales

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 ejecuta:

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

Si tienes Armbian es mucho más sencillo. Usa:

nmtui-connect SSID

Para ver todas las redes disponibles:

nmtui-connect

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

Hay que tener en cuenta que los números de GPIO que programamos aquí se refieren a los pines BCM y NO al número de pin. Los números de BCM es una forma de trabajar de nivel inferior: se refiere a los números de canal en Broadcom SOC. Por lo tanto, si queremos activar GPIO7 de la regleta, debemos usar GPIO4 en el script. Del mismo modo, si desea activar GPIO0, en la regleta será el PIN 27. Para activar por ejemplo el GPIO 7 como salida y ponerlo a 1 (HIGH):

echo "7" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio7/direction
echo "1" > /sys/class/gpio/gpio7/value

Ahora veremos el puerto activo:

cat /sys/kernel/debug/gpio
GPIOs 0-383, platform/sunxi-pinctrl, sunxi-pinctrl:
 gpio-7   (sysfs               ) out hi   <--   NUEVO, como salida y HIGH
 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

Puedes leer el valor con cat /sys/class/gpio/gpio4/value.

NOTA* Sólo podemos activar los pines 0, 1, 4, 7, 8, 9, 10, 11, 14, 15, 17, 18, 21, 22, 23, 24, 25

Para desactivarlo:

echo "4" > /sys/class/gpio/unexport

Más info:

https://www.kernel.org/doc/Documentation/gpio/sysfs.txt

Montar recurso compartido de red

Para montar un recurso compartido de red necesitamos un paquete llamado cifs-utils pensado especificamente para ello. Instalamos el paquete usando el comando:

sudo apt-get install cifs-utils

Creamos una carpeta que será la que montaremos y compartiremos:

mkdir /media/compartido

Para fijar la carpeta compartida al arranque editamos y añadimos en el archivo /etc/fstab:

//ip_orange_pi/disk/ /media/compartido cifs noauto,rw,user,username=nombre_de_usuario,password=password,file_mode=0777,dir_mode=0777 0 0

Donde ip_orange_pi es la IP de la Orange Pi, disk es el nombre de la carpeta que quieres compartir y rw para dar permisos de escritura. Reinicia y verifica que todo ha ido bien con el comando df.


Usar un cable DVI

Para usar un cable DVI desde la salida HDMI hay que habilitar unos parámetros en el fichero script.bin. El cable que yo he usado es este:

Cable HDMI a DVI-D

Primero convertimos el archivo script.bin a un formato que podamos editar. Lo más sencillo es pasarlo a formato .fex con la herramienta bin2fex. No es mala idea hacer una copia de seguridad antes de editar. Usa los siguientes comandos desde el terminal:

cd /boot
cp script.bin script.bin.bak					
sudo bin2fex script.bin script.fex

Edita script.fex:

sudo nano script.fex

Ahora con la tecla control más w busca la sección [hdmi_para] y añade o cambia los siguientes parámetros para que quede así:

hdcp_enable = 0
hdmi_cts_compatibility = 1

Volvemos a crear el archivo .bin sebreescribiendo con el recién editado:

sudo fex2bin script.fex script.bin

Apagamos el sistema, cambiamos el cable y arrancamos de nuevo. Debería funcionar.


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.

Gilberto

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


Administrador OrangePiWeb.es

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


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!


Administrador OrangePiWeb.es

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.


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!


Paola

Muchisimas gracias por compartir, me has ahorrado mucho tiempo. Donación inmediata!


Telemako

Muchas gracias por los aportes!!!


Javier Elias Tobon Ayubb

Hola, excelente trabajo.
He montado en la orangepi one una imagen de Debian y he estado trabajando desde SSH, queria saber si hay alguna forma de conectarse por VNC a este.
De ante mano muchisimas gracias.


Administrador OrangePiWeb.es

Hola Javier. Si es posible. Mira el proyecto Dispositivo Android como monitor en:
https://orangepiweb.es/monitor-android.php
Saludos


Ekaitz

Hola, felicitaciones por esta estupenda web. Una pregunta, ¿sería posible saber como cambiar la resolución de una H3 (OPi PC) con Armbian y mainline kernel 5.10.16-sunxi?. Actualmente tengo 1024x768 en un monitor HDMI y no hay manera de cambiarlo a 1280x720 ó 1360x768.
Gracias.


Administrador OrangePiWeb.es

Hola Ekaitz. Creo que tu respuesta la tienes en esta misma página:
https://orangepiweb.es/consejos-y-trucos.php#resolucion
Saludos.


Nombre*

Email* Nunca será publicado ni compartido

Comentario*



Copyright © 2024 desde 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