Швидкий старт
|
1 2 3 4 5 6 |
# Зупинити автозапуск RkLunch-stop.sh # Запустити з правильним конфігом rkipc -c /userdata/rkipc.ini -a /oem/usr/share/iqfiles/ > /tmp/rkipc.log 2>&1 & # Дивитись стрім ffplay -fflags nobuffer -flags low_delay -framedrop rtsp://192.168.1.125/live/0 |
Діагностика камери
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# Сенсор детектується? dmesg | grep -iE 'mis5001|sensor|csi' | tail -10 # Очікуваний вивід (успіх): # rockchip-csi2-dphy csi2-dphy0: dphy0 matches m00_b_mis5001 4-0031 # rockchip-mipi-csi2 mipi0-csi2: stream ON # IQ файли є? ls /etc/iqfiles/ # має бути: mis5001_CMK-OT2115-PC1_30IRC-F16.json # rkipc запущений? ps | grep rkipc # Порт 554 слухає? (hex: 022A = 554) cat /proc/net/tcp | grep '022A' # рядок з 0A в колонці st = listening # Лог помилок cat /tmp/rkipc.log | grep -iE 'rtsp|venc|timeout|error' | tail -20 |
Конфіги rkipc
| Файл | Сенсор | Роздільна здатність |
|---|---|---|
| rkipc-mis5001-500w.ini | MIS5001 | 5MP (2592×1944) |
| rkipc-500w.ini | SC5336 | 5MP |
| rkipc-400w.ini | SC4336 | 4MP |
| rkipc-300w.ini | SC3336 | 3MP |
| rkipc-mia1321-100w.ini | MIA1321 | 1MP |
| rkipc-800w.ini | — | 8MP |
|
1 2 3 4 5 6 7 |
# Скопіювати правильний конфіг rm /userdata/rkipc.ini cp /oem/usr/share/rkipc-mis5001-500w.ini /userdata/rkipc.ini # Перевірити місце (тільки 2.2MB!) df -h /userdata |
RTSP потоки
| URL | Опис |
|---|---|
| rtsp://192.168.1.125/live/0 | Основний потік (висока роздільна здатність) |
| rtsp://192.168.1.125/live/1 | Субпотік (менша роздільна здатність) |
|
1 2 3 4 5 6 7 8 9 |
# Перегляд з мінімальною затримкою (~1 сек) ffplay -fflags nobuffer -flags low_delay -framedrop rtsp://192.168.1.125/live/0 # UDP транспорт (менша затримка, але можливі втрати) ffplay -rtsp_transport udp rtsp://192.168.1.125/live/0 # Запис стріму у файл ffmpeg -i rtsp://192.168.1.125/live/0 -c copy output.mp4 |
Pipeline архітектура
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
MIS5001 (MIPI CSI) ↓ rkcif → /dev/video0-3 (RAW Bayer) ↓ rkaiq (ISP tuning, AWB, AE) читає: mis5001_CMK-OT2115-PC1_30IRC-F16.json ↓ rkisp → /dev/video11 (mainpath YUV) /dev/video12 (selfpath YUV) ↓ rkmpp (MPP H.264 encoder, апаратний VPU) ↓ rtsp_demo → TCP:554 → /live/0, /live/1 |
/dev/video* розшифровка
| Пристрій | Що це |
|---|---|
| /dev/video0-3 | CIF вивід, сирий RAW від сенсора |
| /dev/video11 | ISP mainpath (основний вивід YUV) |
| /dev/video12 | ISP selfpath (другий вивід) |
| /dev/video13 | ISP bypasspath |
| /dev/video17-18 | ISP rawrd (зворотній шлях) |
Тест захоплення кадру
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# Зупинити rkipc спочатку! RkLunch-stop.sh # Захопити 10 кадрів у файл rk_mpi_vi_test -w 1920 -h 1080 -c 1 -d 0 -m 0 -l 10 -o 1 # Файл збережеться в /data/test_0_0_1.bin (RAW YUV NV12) ls -la /data/test_0_0_1.bin # Перегляд на ПК: # ffplay -f rawvideo -pixel_format nv12 -video_size 1920x1080 test_0_0_1.bin |
Типові помилки
VENC_GetStream timeout
Причина: Неправильний rkipc.ini (дефолтний замість mis5001) Рішення: Скопіювати rkipc-mis5001-500w.ini
Address already in use
Причина: rkipc вже запущений Рішення: RkLunch-stop.sh перед запуском
Segmentation fault в rk_mpi_vi_test
Причина: rkipc тримає камеру Рішення: RkLunch-stop.sh перед тестом
/userdata: No space left on device
Причина: /userdata тільки 2.2MB і переповнений Рішення: rm /userdata/rkipc.ini потім копіювати знову
VLC не підключається
Причина: VLC 3.x несумісний з Rockchip RTSP сервером Рішення: Використовувати ffplay або mpv
Проблема: IP зникає через ~2 години
Симптом: Плата є в мережі, SSH працює. Через годину-дві IP 192.168.1.125 зникає. nmap не бачить плату.
Причина: Два DHCP клієнти одночасно — udhcpc і dhcpcd. dhcpcd кожні 7200 сек оновлює lease і перезаписує статичний IP назад на DHCP адресу.
|
1 2 3 4 5 6 7 8 |
# Діагностика ps | grep -E 'dhcp|udhcp' # 192 root dhcpcd <- ось він # 653 root udhcpc <- і цей cat /var/log/messages | grep dhcpcd | tail -10 # dhcpcd: eth0: leased 192.168.1.101 for 7200 seconds |
Фікс S99staticip — додати killall обох:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
cat > /etc/init.d/S99staticip << 'SCRIPT' #!/bin/sh case $1 in start) sleep 8 killall dhcpcd udhcpc 2>/dev/null sleep 1 ifconfig eth0 192.168.1.125 netmask 255.255.255.0 route del default 2>/dev/null route add default gw 192.168.1.1 ;; stop) ;; *) exit 1 ;; esac SCRIPT chmod +x /etc/init.d/S99staticip |
Якщо плата вже запущена і IP зник (без перезавантаження):
|
1 2 3 4 5 |
killall dhcpcd udhcpc 2>/dev/null ifconfig eth0 192.168.1.125 netmask 255.255.255.0 ip addr del 192.168.1.101/24 dev eth0 2>/dev/null route add default gw 192.168.1.1 2>/dev/null ip addr show eth0 # перевірка — тільки 192.168.1.125 |