Saltar al contenido principal

Flashear la imagen de Debian 13 en reCamera Pro

Introducción

reCamera Pro está impulsada por el chip RV1126B y está disponible con 2 GB o 4 GB de memoria. Se entrega con firmware Buildroot para un inicio rápido con inferencia de IA. Esta página proporciona una imagen de Debian 13 para usuarios que necesitan más flexibilidad para el desarrollo y el despliegue.

Después de flashear la imagen de Debian 13, puedes compilar tus propias aplicaciones con CMake, instalar las dependencias necesarias con apt y ejecutar contenedores Docker. La imagen es compatible con los controladores de fábrica de Seeed y no requiere cambios en el device tree. La cámara, el micrófono, el altavoz y el Wi‑Fi funcionan como se espera; Bluetooth no es compatible.

aviso

Este firmware es actualmente experimental. Seeed no lo mantiene por el momento; se proporciona como una opción adicional de desarrollo.

Descargas

Descargar la imagen

Descargar la imagen de Debian 13.

Descargar la herramienta de flasheo y el controlador

Esta guía utiliza SocToolKit en Windows para flashear la imagen. Descarga los siguientes archivos:

Prepararse para el flasheo

Instalar el controlador

  1. Extrae el archivo DriverAssistant_v5.12.zip descargado.
  2. Abre el directorio extraído y ejecuta DriverInstall.exe.
  1. Haz clic en Driver Install.

La siguiente pantalla indica que el controlador se instaló correctamente.

Configurar SocToolKit

  1. Extrae SocToolKit-window.zip, abre el directorio extraído y ejecuta SocToolKit.exe.
  2. Selecciona el chip RV1126B en la herramienta.
  1. Extrae recamera_pro_debian13_img.tar.gz.
  2. En SocToolKit, haz clic derecho y selecciona el último elemento en el menú contextual.
  1. Selecciona el archivo env.img en el directorio de firmware extraído.
  1. Haz clic en Yes en el cuadro de diálogo de confirmación.
  1. Selecciona la entrada rootfs y haz clic en los puntos suspensivos (...) a su derecha. Sustituye su archivo de imagen por rootfs_debian_clean.img del directorio de firmware extraído.

Poner reCamera Pro en modo Loader

  1. Conecta el puerto USB 3.0 de reCamera Pro a tu ordenador con Windows usando un cable USB y luego alimenta el dispositivo a través de su puerto de CC.
  2. Localiza los orificios de los pines BOOT y RESET en el lateral del dispositivo.
  3. Mantén presionado BOOT y luego pulsa brevemente RESET para reiniciar el dispositivo.
  4. Sigue manteniendo presionado BOOT durante aproximadamente 5 segundos después de pulsar RESET y luego suéltalo. El dispositivo entra en modo Loader.

SocToolKit ahora debería indicar que el dispositivo ha sido detectado.

Flashear el firmware

Después de que SocToolKit detecte el dispositivo y cargue el firmware, selecciona todas las particiones excepto userdata.

Haz clic en Download para comenzar a flashear el firmware.

Cuando el flasheo se complete, la interfaz debería verse como la siguiente:

Flashear en Linux

También puedes flashear el firmware en reCamera Pro desde Linux usando upgrade_tool de Rockchip. Esta sección utiliza Ubuntu 24.04 como ejemplo.

precaución

El flasheo sobrescribe los datos del sistema en el dispositivo. Haz una copia de seguridad de los datos importantes y asegúrate de que el dispositivo esté en modo Loader antes de continuar.

Preparar el entorno

Clona el repositorio de herramientas de Rockchip y verifica que contenga upgrade_tool:

cd ~

git clone https://github.com/rockchip-linux/rkbin.git

cd ~/rkbin/tools

ls -lh upgrade_tool

Luego clona Linux_Upgrade_Tool y haz que upgrade_tool sea ejecutable:

cd ~

git clone https://github.com/vicharak-in/Linux_Upgrade_Tool.git

cd Linux_Upgrade_Tool

chmod +x upgrade_tool

sudo ./upgrade_tool -v

Confirma que tu host Ubuntu está conectado a reCamera Pro y que el dispositivo está en modo Loader:

sudo ./upgrade_tool LD

La salida esperada es similar a:

List of rockusb connected(1)
DevNo=1 Vid=0x2207,Pid=0x110f,LocationID=18 Mode=Loader SerialNo=f28999835716f3be

Esto confirma que el dispositivo está conectado y en modo Loader.

Flashear el firmware

Asegúrate de que todos los archivos de imagen se hayan descargado y extraído. Luego usa upgrade_tool para escribir cada partición en el dispositivo. Sustituye las rutas de imagen de ejemplo que aparecen a continuación por la ruta real a tus archivos de firmware extraídos:

# 1. env
sudo ./upgrade_tool WL 0x00000000 "/home/seeed/recaemra_pro/debian_img/env.img"

# 2. idblock
sudo ./upgrade_tool WL 0x00000040 "/home/seeed/recaemra_pro/debian_img/idblock.img"

# 3. uboot
sudo ./upgrade_tool WL 0x00000800 "/home/seeed/recaemra_pro/debian_img/uboot.img"

# 4. misc
sudo ./upgrade_tool WL 0x00002800 "/home/seeed/recaemra_pro/debian_img/misc.img"

# 5. recovery
sudo ./upgrade_tool WL 0x00002880 "/home/seeed/recaemra_pro/debian_img/recovery.img"

# 6. boot
sudo ./upgrade_tool WL 0x00007880 "/home/seeed/recaemra_pro/debian_img/boot.img"

# 7. Debian rootfs
sudo ./upgrade_tool WL 0x0000d080 "/home/seeed/recaemra_pro/debian_img/rootfs.img"

# reboot
sudo ./upgrade_tool RD

Acerca del nuevo firmware

Después de flashear, conecta el dispositivo a tu red usando un cable Ethernet. Esta imagen no es compatible con el adaptador de red virtual USB‑C original. Puedes encontrar la dirección IP del dispositivo en tu router o en la interfaz de gestión de Wi‑Fi. SSH está habilitado en la imagen, por lo que puedes iniciar sesión directamente mediante SSH. Si no hay conexión de red disponible, utiliza la consola serie UART a una velocidad en baudios de 1500000.

El sistema proporciona solo el usuario root, con la contraseña predeterminada 123123. Cambia la contraseña inmediatamente después del primer inicio de sesión:

passwd

Luego completa los siguientes pasos de configuración del sistema.

Configurar temporalmente un proxy HTTP

Si necesitas un proxy HTTP para acceder a la red, por ejemplo al usar apt, establece temporalmente las siguientes variables de entorno. Omite este paso si no utilizas un proxy. Sustituye la dirección y el puerto de ejemplo por los de tu servidor proxy.

export http_proxy="http://192.168.4.78:7890"
export https_proxy="http://192.168.4.78:7890"
# Optional: bypass the proxy for local addresses
export no_proxy="localhost,127.0.0.1,::1,192.168.0.0/16"

Configurar la hora

En el primer arranque, la hora del sistema puede estar establecida en 1970, lo que provoca que falle la validación de los certificados SSL. Dado que el sistema no tiene configurada la sincronización automática de hora mediante systemd, establece manualmente la hora correcta antes de actualizar el índice de paquetes:

date -s "2026-09-02 15:20:00"

apt update

Configurar la orientación de la cámara

Primero, encuentra el nodo del sensor que admite controles de volteo:

for dev in /dev/v4l-subdev*; do
echo
echo "========== $dev =========="
v4l2-ctl -d "$dev" --list-ctrls 2>&1 | \
grep -Ei 'flip|mirror|horizontal|vertical|rotate'
done

Normalmente verás una salida similar a la siguiente:

========== /dev/v4l-subdev2 ==========
horizontal_flip 0x00980914 (bool) : default=0 value=1
vertical_flip 0x00980915 (bool) : default=0 value=1
vertical_blanking 0x009e0901 (int) : min=90 max=63375 step=1 default=90 value=90
horizontal_blanking 0x009e0902 (int) : min=4294965822 max=4294965822 step=1 default=4294965822 value=-1474 flags=read-only

De forma predeterminada, tanto el volteo horizontal como el vertical pueden estar habilitados. Ajusta el comando de acuerdo con el nodo de dispositivo mostrado en la salida anterior; este ejemplo utiliza /dev/v4l-subdev2:

v4l2-ctl -d /dev/v4l-subdev2 \
--set-ctrl=horizontal_flip=0,vertical_flip=0

Verifica la configuración:

v4l2-ctl -d /dev/v4l-subdev2 \
--get-ctrl=horizontal_flip,vertical_flip

Salida esperada:

horizontal_flip: 0
vertical_flip: 0

Probar la cámara

Usa V4L2 para capturar un fotograma crudo NV12 y luego usa FFmpeg para convertirlo a JPEG:

v4l2-ctl -d /dev/video12 \
--set-fmt-video=width=3840,height=2160,pixelformat=NV12 \
--stream-mmap=4 \
--stream-count=1 \
--stream-to=/tmp/frame.nv12

ffmpeg \
-f rawvideo \
-pixel_format nv12 \
-video_size 3840x2160 \
-i /tmp/frame.nv12 \
-frames:v 1 \
-q:v 2 \
-y /tmp/camera.jpg

Cuando el comando termine, visualiza la imagen JPEG procesada por el ISP y con la orientación correcta en /tmp/camera.jpg.

Configurar el micrófono y el altavoz

Instala las dependencias necesarias:

apt install ffmpeg alsa-utils

Visualiza los dispositivos de grabación y reproducción disponibles:

arecord -l

aplay -l

Configurar Docker

Instala Docker:

apt install docker-cli

Confirma que Docker está instalado correctamente:

command -v docker
docker --version
dockerd --version

La salida esperada es similar a:

/usr/bin/docker
Docker version 26.1.5+dfsg1, build a72d7cd
Docker version 26.1.5+dfsg1, build 411e817

Configurar Docker

Crea el archivo de configuración del daemon de Docker para establecer el directorio de datos y deshabilitar la red predeterminada:

cat >/etc/docker/daemon.json <<'EOF'
{
"data-root": "/userdata/docker",
"storage-driver": "overlay2",
"iptables": false,
"bridge": "none"
}
EOF

Detén Docker y elimina los archivos de tiempo de ejecución restantes:

service docker stop 2>/dev/null || true

rm -f /var/run/docker.pid
rm -f /var/run/docker.sock
rm -rf /var/run/docker/containerd

Reinicia Docker:

service docker restart

Probar Docker

Confirma que el daemon de Docker se está ejecutando:

ps aux | grep '[d]ockerd'

Ejecuta un contenedor de prueba:

docker run --rm hello-world

Si Docker está configurado correctamente, la salida incluye:

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(arm64v8)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/

For more examples and ideas, visit:
https://docs.docker.com/get-started/

Instalar herramientas de GStreamer y capturar datos de la cámara

Instala las herramientas necesarias:

apt update

apt install -y \
gstreamer1.0-tools \
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-libav

Utiliza el siguiente comando para capturar un fotograma y guardarlo como una imagen JPEG:

gst-launch-1.0 -e \
v4l2src device=/dev/video12 num-buffers=1 \
! video/x-raw,format=NV12,width=3840,height=2160,framerate=30/1 \
! videoconvert \
! jpegenc quality=95 \
! filesink location=/tmp/camera.jpg

Cuando el comando termine, visualiza la imagen procesada por el ISP en /tmp/camera.jpg.

Soporte técnico y debate sobre el producto

Gracias por elegir nuestros productos. Estamos aquí para ofrecerte distintos niveles de soporte y garantizar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos múltiples canales de comunicación para adaptarnos a diferentes preferencias y necesidades.

Loading Comments...