Pular para o conteúdo principal

Gravar a imagem Debian 13 na reCamera Pro

Introdução

A reCamera Pro é equipada com o chip RV1126B e está disponível com 2 GB ou 4 GB de memória. Ela vem com firmware Buildroot para um início rápido com inferência de IA. Esta página fornece uma imagem Debian 13 para usuários que precisam de mais flexibilidade para desenvolvimento e implantação.

Após gravar a imagem Debian 13, você pode compilar seus próprios aplicativos com CMake, instalar as dependências necessárias com apt e executar contêineres Docker. A imagem é compatível com os drivers de fábrica da Seeed e não requer alterações na device tree. A câmera, o microfone, o alto-falante e o Wi-Fi funcionam conforme o esperado; Bluetooth não é suportado.

atenção

Este firmware é atualmente experimental. A Seeed não o mantém neste momento; ele é fornecido como uma opção adicional de desenvolvimento.

Downloads

Baixar a imagem

Baixar a imagem do Debian 13.

Baixar a ferramenta de gravação e o driver

Este guia usa o SocToolKit no Windows para gravar a imagem. Baixe os seguintes arquivos:

Preparar para a gravação

Instalar o driver

  1. Extraia o arquivo DriverAssistant_v5.12.zip baixado.
  2. Abra o diretório extraído e execute DriverInstall.exe.
  1. Clique em Driver Install.

A tela a seguir indica que o driver foi instalado com sucesso.

Configurar o SocToolKit

  1. Extraia SocToolKit-window.zip, abra o diretório extraído e execute SocToolKit.exe.
  2. Selecione o chip RV1126B na ferramenta.
  1. Extraia recamera_pro_debian13_img.tar.gz.
  2. No SocToolKit, clique com o botão direito e selecione o último item no menu de contexto.
  1. Selecione o arquivo env.img no diretório de firmware extraído.
  1. Clique em Yes na caixa de diálogo de confirmação.
  1. Selecione a entrada rootfs e clique na elipse (...) à sua direita. Substitua o arquivo de imagem por rootfs_debian_clean.img do diretório de firmware extraído.

Colocar a reCamera Pro em modo Loader

  1. Conecte a porta USB 3.0 da reCamera Pro ao seu computador com Windows usando um cabo USB e, em seguida, alimente o dispositivo pela porta DC.
  2. Localize os orifícios dos pinos BOOT e RESET na lateral do dispositivo.
  3. Pressione e segure BOOT, depois pressione rapidamente RESET para reiniciar o dispositivo.
  4. Continue segurando BOOT por aproximadamente 5 segundos após pressionar RESET e então solte. O dispositivo entra no modo Loader.

O SocToolKit agora deve indicar que o dispositivo foi detectado.

Gravar o firmware

Depois que o SocToolKit detectar o dispositivo e carregar o firmware, selecione todas as partições, exceto userdata.

Clique em Download para iniciar a gravação do firmware.

Quando a gravação for concluída, a interface deverá se parecer com a seguinte:

Gravar no Linux

Você também pode gravar o firmware na reCamera Pro a partir do Linux usando o upgrade_tool da Rockchip. Esta seção usa o Ubuntu 24.04 como exemplo.

cuidado

A gravação sobrescreve os dados do sistema no dispositivo. Faça backup dos dados importantes e certifique-se de que o dispositivo esteja em modo Loader antes de continuar.

Preparar o ambiente

Clone o repositório de ferramentas da Rockchip e verifique se ele contém o upgrade_tool:

cd ~

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

cd ~/rkbin/tools

ls -lh upgrade_tool

Em seguida, clone Linux_Upgrade_Tool e torne o upgrade_tool executável:

cd ~

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

cd Linux_Upgrade_Tool

chmod +x upgrade_tool

sudo ./upgrade_tool -v

Confirme que o seu host Ubuntu está conectado à reCamera Pro e que o dispositivo está em modo Loader:

sudo ./upgrade_tool LD

A saída esperada é semelhante a:

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

Isso confirma que o dispositivo está conectado e em modo Loader.

Gravar o firmware

Certifique-se de que todos os arquivos de imagem foram baixados e extraídos. Em seguida, use o upgrade_tool para gravar cada partição no dispositivo. Substitua os caminhos de imagem de exemplo abaixo pelo caminho real dos seus arquivos 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

Sobre o novo firmware

Após a gravação, conecte o dispositivo à sua rede usando um cabo Ethernet. Esta imagem não oferece suporte ao adaptador de rede virtual USB-C original. Você pode encontrar o endereço IP do dispositivo no seu roteador ou na interface de gerenciamento de Wi-Fi. O SSH está habilitado na imagem, portanto você pode fazer login diretamente via SSH. Se uma conexão de rede não estiver disponível, use o console serial UART com baud rate de 1500000.

O sistema fornece apenas o usuário root, com a senha padrão 123123. Altere a senha imediatamente após o primeiro login:

passwd

Em seguida, conclua as seguintes etapas de configuração do sistema.

Configurar temporariamente um proxy HTTP

Se você precisar de um proxy HTTP para acessar a rede, por exemplo ao usar o apt, defina temporariamente as seguintes variáveis de ambiente. Pule esta etapa se você não usar um proxy. Substitua o endereço e a porta de exemplo pelos do seu 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 a hora

Na primeira inicialização, a hora do sistema pode estar definida para 1970, o que faz com que a validação de certificados SSL falhe. Como o sistema não tem sincronização automática de horário configurada via systemd, defina manualmente a hora correta antes de atualizar o índice de pacotes:

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

apt update

Configurar a orientação da câmera

Primeiro, encontre o nó do sensor que oferece suporte a controles de flip:

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, você verá uma saída semelhante à seguinte:

========== /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

Por padrão, tanto o flip horizontal quanto o vertical podem estar habilitados. Ajuste o comando de acordo com o nó de dispositivo mostrado na saída anterior; este exemplo usa /dev/v4l-subdev2:

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

Verifique as configurações:

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

Saída esperada:

horizontal_flip: 0
vertical_flip: 0

Testar a câmera

Use o V4L2 para capturar um quadro bruto NV12 e, em seguida, use o FFmpeg para convertê-lo em 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

Quando o comando terminar, visualize a imagem JPEG, processada pelo ISP e com orientação correta, em /tmp/camera.jpg.

Configurar o microfone e o alto-falante

Instale as dependências necessárias:

apt install ffmpeg alsa-utils

Veja os dispositivos de gravação e reprodução disponíveis:

arecord -l

aplay -l

Configurar o Docker

Instale o Docker:

apt install docker-cli

Confirme se o Docker foi instalado corretamente:

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

A saída esperada é semelhante a:

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

Configurar o Docker

Crie o arquivo de configuração do daemon do Docker para definir o diretório de dados e desativar a rede padrão:

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

Pare o Docker e remova arquivos de runtime remanescentes:

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

Reinicie o Docker:

service docker restart

Testar o Docker

Confirme se o daemon do Docker está em execução:

ps aux | grep '[d]ockerd'

Execute um contêiner de teste:

docker run --rm hello-world

Se o Docker estiver configurado corretamente, a saída incluirá:

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 ferramentas GStreamer e capturar dados da câmera

Instale as ferramentas necessárias:

apt update

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

Use o seguinte comando para capturar um quadro e salvá-lo como uma imagem 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

Quando o comando terminar, visualize a imagem processada pelo ISP em /tmp/camera.jpg.

Suporte Técnico e Discussão de Produtos

Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes níveis de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...