Interfaces de hardware de reComputer RK3588

Última actualización:

Esta guía explica cómo inspeccionar y usar las interfaces de hardware de reComputer RK3588 con Armbian. Usa los enlaces de sección para ir directamente al periférico que quieras conectar o probar.

Antes de empezar

  • Completa la configuración del primer arranque e inicia sesión localmente o por SSH con un usuario que pueda ejecutar sudo.
  • Usa los diagramas de puertos y placa base para identificar el conector antes de conectar un periférico.
  • Apaga y desconecta el dispositivo antes de instalar tarjetas internas, cables planos o cableado GPIO.
  • Los nodos de dispositivo, números de bus e índices de hwmon que aparecen a continuación corresponden a la imagen de referencia. Verifica los dispositivos reales de tu sistema antes de copiar un comando que modifique una configuración.

Ventilador

El reComputer RK3588 expone la velocidad del ventilador y los ajustes PWM mediante el subsistema Linux hwmon. En la imagen Armbian verificada, el ventilador se llama pwmfan y aparece en hwmon8. El kernel del fabricante también ajusta el PWM según los umbrales térmicos del árbol de dispositivos.

Rutas de supervisión de hardware

InterfazRutaDescripción
Nombre del ventilador/sys/class/hwmon/hwmon8/namepwmfan
Velocidad del ventilador/sys/class/hwmon/hwmon8/fan1_inputRPM actuales
Valor PWM/sys/class/hwmon/hwmon8/pwm1Valor PWM solicitado, 0–255
Política de activación PWM/sys/class/hwmon/hwmon8/pwm1_enablePolítica PWM / alimentación; valor observado: 1

El índice hwmon puede cambiar según la imagen o los controladores. Confirma el nombre antes de utilizar estas rutas:

bash
for node in /sys/class/hwmon/hwmon*; do
    [ -r "$node/name" ] || continue
    printf '%s: ' "$node"
    cat "$node/name"
done

En el dispositivo probado, /sys/class/hwmon/hwmon8/name devuelve pwmfan.

Zonas térmicas

ZonaTipo indicadoRuta de temperatura
SoCsoc-thermal/sys/class/thermal/thermal_zone0/temp
Núcleo grande 0bigcore0-thermal/sys/class/thermal/thermal_zone1/temp
Núcleo grande 1bigcore1-thermal/sys/class/thermal/thermal_zone2/temp
Núcleo pequeñolittlecore-thermal/sys/class/thermal/thermal_zone3/temp
Centrocenter-thermal/sys/class/thermal/thermal_zone4/temp
GPUgpu-thermal/sys/class/thermal/thermal_zone5/temp
NPUnpu-thermal/sys/class/thermal/thermal_zone6/temp

Las temperaturas se expresan en milésimas de grado Celsius. Divide entre 1000 para obtener °C. Esta imagen tiene siete zonas térmicas; utiliza los nombres reales en lugar de copiar los números del RK3576.

Leer velocidad y temperatura

bash
cat /sys/class/hwmon/hwmon8/fan1_input
cat /sys/class/hwmon/hwmon8/pwm1
cat /sys/class/hwmon/hwmon8/pwm1_enable

Tras restaurar los ajustes, se observaron aproximadamente 2280 RPM, PWM 25 y política de activación 1. Son observaciones, no valores fijos para todos los dispositivos.

Leer todas las zonas térmicas:

bash
for zone in /sys/class/thermal/thermal_zone*; do
    [ -r "$zone/type" ] && [ -r "$zone/temp" ] || continue
    printf '%s: ' "$(cat "$zone/type")"
    awk '{printf "%.1f°C\n", $1 / 1000}' "$zone/temp"
done

La temperatura del SoC observada fue de aproximadamente 37°C.

Prueba breve de escritura PWM

Se probaron escrituras únicas de 64, 128 y 255. Cada valor solicitado podía leerse inmediatamente, pero el controlador térmico del fabricante restauraba el PWM a 25 en aproximadamente un segundo a la temperatura observada.

PWM solicitadoLectura inmediata en la pruebaLectura tras aproximadamente un segundo
646425
12812825
25525525

Para una prueba breve, guarda el valor actual, solicita 128, léelo y restaura el valor guardado:

bash
FAN_PWM=/sys/class/hwmon/hwmon8/pwm1
ORIGINAL_PWM=$(cat "$FAN_PWM")
printf '128\n' | sudo tee "$FAN_PWM"
cat "$FAN_PWM"
sleep 1
cat "$FAN_PWM"
printf '%s\n' "$ORIGINAL_PWM" | sudo tee "$FAN_PWM"

Si la primera lectura ya devuelve el valor del control térmico, el kernel puede haber sobrescrito la solicitud antes de finalizar la lectura. Una escritura correcta no demuestra control manual sostenido; estos valores tampoco demuestran velocidades fijas del 25 %, 50 % o máxima.

Control térmico del fabricante

El árbol de dispositivos probado contiene esta configuración de cooling-levels y rockchip,temp-trips:

Intervalo de temperatura (°C)Nivel de refrigeraciónValor PWM
<38025
38–<44145
44–<50260
50–<56375
56–<624100
62–<685130
68–<746170
74–<807210
≥808255

Consultar la configuración activa del árbol de dispositivos:

bash
python3 - <<'PY'
from pathlib import Path
import struct

node = Path('/sys/firmware/devicetree/base/pwm-fan')
for name in ('cooling-levels', 'rockchip,temp-trips'):
    data = (node / name).read_bytes()
    values = struct.unpack('>' + 'I' * (len(data) // 4), data)
    print(name + ':', list(values))
PY

En esta imagen, pwm1_enable=1 no desactiva el control térmico del fabricante. No interpretes el atributo como un interruptor universal 1=manual, 2=automatic. La política PWM / alimentación se describe en la documentación Linux pwm-fan; la función de temperatura Rockchip está en el controlador del fabricante.

El dispositivo siguió regulando la temperatura después de la prueba. No se instaló un script térmico ni un servicio systemd independiente. Todavía no se ha verificado en este equipo la sustitución del control del fabricante por un servicio personalizado.

Referencia rápida

bash
cat /sys/class/hwmon/hwmon8/name
cat /sys/class/hwmon/hwmon8/fan1_input
cat /sys/class/hwmon/hwmon8/pwm1
cat /sys/class/hwmon/hwmon8/pwm1_enable
awk '{printf "%.1f°C\n", $1 / 1000}' /sys/class/thermal/thermal_zone0/temp

Entorno verificado

ElementoValor
DispositivoreComputer RK3588
Sistema operativoArmbian 26.8.7 / Ubuntu 26.04 (resolute), ARM64
Kernel6.1.172-vendor-seeed-rk3588
Supervisión del ventilador/sys/class/hwmon/hwmon8 (pwmfan)
PWM tras restaurar25
Política de activación tras restaurar1
Velocidad observada tras restaurarAproximadamente 2280 RPM
Temperatura observada del SoCAproximadamente 37°C

Estado de los indicadores LED

El dispositivo dispone de indicadores Power, Status y User. El indicador User es un LED RGB.

Indicadores Power, Status y User

Comportamiento y control de LED

IndicadorComportamiento predeterminadoControl
Power (rojo)Encendido con la alimentación conectadaCircuito de alimentación de hardware
Status (verde)Controlado por el circuito de estado de alimentaciónEl sistema actual no expone un nodo de clase LED correspondiente
User (RGB)Latido azul; rojo y verde apagadosLos tres canales se controlan mediante la clase LED de Linux

Identificar los LED

La imagen RK3588 actual expone estos nodos. Los tres canales tienen un valor max_brightness de 1:

ColorNodoActivador predeterminado
Rojo/sys/class/leds/user-led_rednone
Verde/sys/class/leds/user-led_greennone
Azul/sys/class/leds/user-led_blueheartbeat
bash
ls -d /sys/class/leds/user-led_*
cat /sys/class/leds/user-led_blue/trigger
cat /sys/class/leds/user-led_blue/max_brightness

Los corchetes en la salida de trigger indican el activador actual, por ejemplo [heartbeat].

Control manual (encendido / apagado)

Configura el activador como none antes de escribir en brightness. Utiliza 1 para encender y 0 para apagar:

bash
LED_PATH=/sys/class/leds/user-led_blue
echo none | sudo tee "$LED_PATH/trigger"
echo 1 | sudo tee "$LED_PATH/brightness"
sleep 2
echo 0 | sudo tee "$LED_PATH/brightness"

Para rojo o verde, sustituye user-led_blue al final de la ruta por user-led_red o user-led_green. El controlador LED gestiona los tres canales, por lo que no se necesita gpioset.

Activadores automáticos

Alternar el canal azul entre 500 ms encendido y 500 ms apagado:

bash
LED_PATH=/sys/class/leds/user-led_blue
echo timer | sudo tee "$LED_PATH/trigger"
echo 500 | sudo tee "$LED_PATH/delay_on"
echo 500 | sudo tee "$LED_PATH/delay_off"

Restaurar el activador de latido azul:

bash
echo heartbeat | sudo tee /sys/class/leds/user-led_blue/trigger

Restaurar el estado predeterminado

bash
for color in red green; do
    LED_PATH="/sys/class/leds/user-led_$color"
    echo none | sudo tee "$LED_PATH/trigger"
    echo 0 | sudo tee "$LED_PATH/brightness"
done
echo heartbeat | sudo tee /sys/class/leds/user-led_blue/trigger

Estos ajustes afectan al sistema en ejecución sin modificar el arranque. Consulta la documentación Linux LED para el brillo y los activadores.

Botones

La placa incorpora los botones Power, Recovery y MaskROM. Para operaciones de firmware, conecta un cable USB de datos al puerto Type-C OTG y sigue la guía de grabación de la imagen RK3588 seleccionada. Recovery y MaskROM son modos de grabación, no pasos normales de inicio del escritorio.

GPIO y buses de periféricos

Diagrama de pines GPIO de 40 pines del reComputer RK3588

Comprobar los controladores y nombres de líneas expuestos por el árbol de dispositivos actual:

bash
gpiodetect
gpioinfo

Si estas herramientas no están disponibles, instala el paquete de la distribución:

bash
sudo apt update
sudo apt install gpiod

Utiliza el esquema RK3588 para relacionar pines físicos y señales, y localiza el controlador y la línea en gpioinfo. Antes de establecer una salida, consulta gpioset --help para la sintaxis de la versión instalada de libgpiod.

Listar los overlays RK3588 instalados y la configuración de arranque actual:

bash
find /boot -type f -name '*rk3588*.dtbo' -print
grep -E '^(fdtfile|overlay_prefix|overlays|user_overlays)=' /boot/armbianEnv.txt

Para I2C, UART, SPI o CAN, selecciona un overlay compatible con la placa y el periférico conectado. Conserva los overlays existentes al editar /boot/armbianEnv.txt; sus parámetros y pines se definen en la documentación del overlay instalado.

USB

Las especificaciones de Seeed Studio indican estas interfaces USB para reComputer RK3588:

Interfaz / cantidadConector físicoProtocolo y funcionesUso
Host USB 3.0 ×4USB Type-AUSB 3.0, señalización nominal de 5 GbpsCámaras USB, almacenamiento externo, teclados, ratones y otros periféricos.
USB Type-C ×1USB Type-COTG + DisplayPortConexiones OTG y salida DisplayPort con cable o adaptador compatible.

5 Gbps es la velocidad nominal de señalización USB 3.0, no una velocidad medida de transferencia de archivos. No demuestra un ancho de banda de controlador independiente de 5 Gbps para cada uno de los cuatro puertos Type-A.

Listar los dispositivos USB conectados y su topología:

bash
lsusb
lsusb -t

Dispositivos y topología USB del reComputer RK3588

Utiliza lsusb -t para comprobar la velocidad negociada. Para cámaras o aceleradores USB, sigue también las instrucciones de controladores y aplicaciones del periférico.

Almacenamiento microSD y NVMe

El equipo tiene una ranura microSD y expansión PCIe para SSD NVMe. Identifica los dispositivos por modelo, capacidad y punto de montaje antes de utilizarlos:

bash
lsblk -o NAME,MODEL,SIZE,TYPE,FSTYPE,MOUNTPOINTS
lspci -nn

Dispositivos de almacenamiento del reComputer RK3588

Para un SSD NVMe, comprobar el enlace PCIe y el controlador:

bash
lspci -nnk | grep -A 3 -i 'Non-Volatile memory'

Detectar una unidad no demuestra que permita arrancar el sistema; sigue el procedimiento de instalación de la imagen seleccionada.

Interfaces de expansión M.2

reComputer RK3588 dispone de dos interfaces M.2 Key-M para almacenamiento NVMe o aceleradores de IA PCIe compatibles.

Tamaño del móduloEspecificación PCIe
2242 (22 × 42 mm)PCIe 2.1 ×1
2280 (22 × 80 mm)PCIe 3.0 ×4

×1 y ×4 indican uno y cuatro carriles. PCIe 2.1 ×1 corresponde a la especificación oficial de la interfaz 2242. Comprueba la clave, longitud y fijación del módulo al elegir la ranura. La velocidad y anchura negociadas se consultan con LnkSta más abajo. Consulta la ficha de Seeed Studio.

Interfaz M.2 Key-M 2242 (PCIe 2.1 ×1)

Ubicación de la interfaz M.2 Key-M 2242

Interfaz M.2 Key-M 2280 (PCIe 3.0 ×4)

Ubicación de la interfaz M.2 Key-M 2280

Instalar un módulo

  1. Apaga el sistema y desconecta la alimentación DC o PoE antes de abrir la carcasa.
  2. Confirma que la clave, longitud y fijación del módulo coincidan con la ranura. Insértalo y sujétalo con un tornillo.
  3. Comprueba la refrigeración y las conexiones, vuelve a conectar la alimentación e inicia el sistema.

Elige un SSD NVMe para almacenamiento; un acelerador de IA también necesita controladores y un entorno de ejecución compatibles con el sistema RK3588 y su kernel. Utiliza la orden lsblk anterior para consultar la capacidad.

Identificar dispositivos PCIe y controladores

bash
lspci -nnk

Localiza la entrada del SSD o acelerador y consulta su dirección, modelo y Kernel driver in use.

Comprobar velocidad y anchura negociadas

Cuando se solicite, introduce la dirección PCIe obtenida en la salida anterior:

bash
read -rp 'PCIe device address: ' PCIE_DEVICE
sudo lspci -s "$PCIE_DEVICE" -vv | grep -E 'LnkCap:|LnkSta:'

LnkCap muestra las capacidades del enlace; LnkSta, la velocidad y anchura negociadas actualmente. Para arrancar desde NVMe, configura el entorno de arranque según el procedimiento de tu imagen Armbian.

SIM y expansión miniPCIe

La ranura nano SIM se utiliza con un módulo celular compatible. Desconecta la alimentación antes de insertar la SIM o un módulo interno. miniPCIe admite módulos opcionales 4G LTE, LoRaWAN o Wi-Fi HaLow; elige antena y software adecuados.

Módulo 4G LTE miniPCIe y ranura SIM del reComputer RK3588

Después de instalar el módulo e iniciar el sistema, consultar la enumeración PCIe, USB y de red:

bash
lspci -nn
lsusb
ip -br link

Consultas del módulo 4G (EC25)

Para un módulo celular USB como EC25, identificar primero los dispositivos serie y los mensajes de los controladores:

bash
ls /dev/ttyUSB*
sudo dmesg | grep -iE 'quectel|option|ttyUSB|qmi_wwan|cdc_ether' | tail -n 50

Dispositivos serie y controladores del módulo 4G RK3588

Identifica el puerto AT mediante la documentación del módulo, e instala y abre minicom. /dev/ttyUSB2 en la solicitud es solo un ejemplo; introduce el puerto AT real del dispositivo:

bash
sudo apt update
sudo apt install minicom
read -rp 'AT serial device (e.g. /dev/ttyUSB2): ' AT_PORT
sudo minicom -D "$AT_PORT" -b 115200

Envía estas órdenes una a una dentro de minicom, no en el shell Linux. Envía primero AT y continúa cuando recibas OK:

text
AT
ATI
AT+CPIN?
AT+CSQ
AT+CREG?
AT+CGREG?
AT+CEREG?
AT+COPS?

ATI lee información del módulo, AT+CPIN? el estado de la SIM y AT+CSQ la calidad de señal. AT+CREG?, AT+CGREG? y AT+CEREG? consultan el registro de red, y AT+COPS? el operador actual. Pulsa Ctrl+A y después X para salir de minicom. Consulta el manual AT de Quectel EC25 / EC21.

La conexión de datos también requiere configurar la red del equipo para el APN del operador y el modo de datos USB del módulo. Una SIM preparada o un módulo registrado no demuestra por sí solo acceso a Internet en RK3588.

Identificar interfaces LoRaWAN y Wi-Fi HaLow

Para el módulo USB o SPI instalado, consultar nodos, overlays existentes y mensajes de controladores:

bash
lsusb
ls /dev/ttyACM*
ls /dev/spidev*
find /boot -type f -name '*.dtbo' | grep -iE 'halow|lora|rk3588'
grep -E '^(fdtfile|overlay_prefix|overlays|user_overlays)=' /boot/armbianEnv.txt
sudo dmesg | grep -iE 'morse|mm6108|sx1302|lora' | tail -n 50
ip -br link

Los módulos USB y SPI usan transportes distintos. Selecciona los parámetros de prueba LoRaWAN, la configuración de reinicio SPI / GPIO y los overlays HaLow según la imagen RK3588 y la documentación del módulo, sin reutilizar los nombres del RK3576. Sigue la guía específica para transmisión/recepción de la pasarela y los modos AP / estación de HaLow.

Ethernet RJ45

reComputer RK3588 incorpora dos puertos Ethernet RJ45 2.5GbE. Pueden conectar una red superior y dispositivos locales para pasarelas, adquisición de datos o aplicaciones que requieren dos puertos de red.

Un puerto puede alimentar el equipo mediante un módulo PoE adicional. Instala el módulo adecuado y comprueba los requisitos del conmutador o equipo de alimentación antes de usar PoE.

Identificar interfaces de red y direcciones IP

Conecta el cable Ethernet y lista los nombres y direcciones de las interfaces del sistema:

bash
ip -br link
ip -br addr

Utiliza los nombres reales del sistema, sin asumir eth0 o eth1. Para relacionar los puertos físicos con sus interfaces, conecta o desconecta cada cable por separado y observa los cambios de estado del enlace.

Comprobar velocidad negociada y estado del enlace

Instala ethtool e introduce el nombre de la interfaz cableada identificada cuando se solicite:

bash
sudo apt update
sudo apt install ethtool
read -rp 'Ethernet interface: ' ETH_IFACE
sudo ethtool "$ETH_IFACE"

Revisa Speed, Duplex y Link detected. Link detected: yes indica un enlace físico; Speed: 2500Mb/s, una conexión negociada a 2.5GbE. El puerto, el conmutador o adaptador remoto y el cable determinan la velocidad real.

Configurar conexiones de red

En imágenes con NetworkManager, consultar conexiones y abrir la interfaz de texto para configurar DHCP o una IP estática:

bash
nmcli device status
nmtui

En nmtui, selecciona la conexión cableada, configura IP, puerta de enlace y DNS, y actívala según el plan de red. Configura ambas conexiones por separado si utilizas los dos puertos.

Wi-Fi y Bluetooth

El dispositivo integra Wi-Fi 6 y Bluetooth 5.4. Consultar bloqueos de radio y el controlador Bluetooth:

bash
rfkill list
bluetoothctl list

HDMI y DisplayPort

El equipo ofrece dos salidas HDMI 2.1, una entrada HDMI 2.0 y DisplayPort mediante Type-C. Conecta los monitores a las salidas. La entrada HDMI captura vídeo de una fuente externa.

Comprobar el estado de conexión de las interfaces de pantalla:

bash
for connector in /sys/class/drm/card*-*; do
    [ -r "$connector/status" ] || continue
    printf '%s: ' "$connector"
    cat "$connector/status"
    [ ! -r "$connector/modes" ] || cat "$connector/modes"
done

Estado de conexión de pantalla del reComputer RK3588

Para dispositivos de captura, incluida la entrada HDMI o una cámara compatible, listar los dispositivos de vídeo con V4L2:

bash
sudo apt install v4l-utils
v4l2-ctl --list-devices

Detección de la entrada HDMI del reComputer RK3588

Utiliza el nodo de vídeo y los formatos indicados para capturar. Configura varias pantallas en los ajustes del escritorio.

RTC

La placa incluye un conector RTC de 2 pines. Confirma polaridad y requisitos de batería en el esquema antes de conectarla. Consultar los dispositivos RTC expuestos por Linux:

bash
for rtc in /sys/class/rtc/rtc*; do
    [ -r "$rtc/name" ] || continue
    printf '%s: ' "$rtc"
    cat "$rtc/name"
    [ ! -r "$rtc/date" ] || cat "$rtc/date"
    [ ! -r "$rtc/time" ] || cat "$rtc/time"
done

Los documentos de hardware y las imágenes del sistema están en el resumen de descargas.