README.md
IMX519 на Repka Pi 5 (RK3588) — патчи и наработки
Комплект патчей для подключения Arducam IMX519 16MP к Repka Pi 5 (RK3588) через MIPI-CSI. Сделано на ядре 6.1.115.1-repka-pi5 (репозиторий npo_rbs/repka-os_linux-rockchip, ветка master).
📖 Подробный технический разбор всей эпопеи (3 акта, 16 пересборок ядра, 6 баг-фиксов): BLOG_POST.md в этом репозитории.
Состав
| Файл | Что |
|---|---|
0001-imx519-rockchip-rk3588-adaptations.patch |
Драйвер imx519.c: порт 5.15→6.1 + RKMODULE ioctl + rockchip-имя + LINK_FREQ + crop/field фиксы |
0002-rkcif-g_frame_interval-ENOIOCTLCMD-fix.patch |
RKCIF capture.c: фильтр ENOIOCTLCMD для g_frame_interval (2 места) |
0003-imx519-kconfig-makefile.patch |
Kconfig + Makefile для встраивания imx519 в дерево ядра |
rk3588-csi-imx519.dts |
Device-tree overlay под CSI-конвейер RK3588 |
imx519_arducam-imx519_default.json |
IQ-файл (калибровка на базе imx219 — неточная по цветам) |
Что достигнуто
- Драйвер imx519 встроен в ядро (CONFIG_VIDEO_IMX519=y)
- Сенсор определяется, инициализируется (345 регистров, ret=0)
- Pipeline активируется: sensor→DPHY→CSI2→CIF, DPHY на 987 Мбит/с
- s_stream(1) доходит до сенсора, MODE_SELECT=STREAMING
Что НЕ работает
Кадр не доходит до буфера. Все 345 регистров сенсора записаны успешно, DPHY включён, но MIPI-данные физически не принимаются CIF. Возможные причины: шлейф (MIPI lanes не подключены при работающем I²C), несовместимость register-tables (Arducam писал для bcm2835/RPi), или DPHY lane-mapping.
Как применить
# В дереве исходников repka-os_linux-rockchip:
git apply 0001-imx519-rockchip-rk3588-adaptations.patch
git apply 0002-rkcif-g_frame_interval-ENOIOCTLCMD-fix.patch
git apply 0003-imx519-kconfig-makefile.patch
# Включить CONFIG_VIDEO_IMX519=y в .config
echo 'CONFIG_VIDEO_IMX519=y' >> .config
make ARCH=arm64 oldconfig
# Собрать
make ARCH=arm64 -j8 Image dtbs modules
# Overlay и IQ-файл — скопировать в систему:
cp rk3588-csi-imx519.dts /boot/dtb/rockchip/overlay/
cd /boot/dtb/rockchip/overlay && dtc -@ -I dts -O dtb -o rk3588-csi-imx519.dtbo rk3588-csi-imx519.dts
cp imx519_arducam-imx519_default.json /etc/iqfiles/
# В repkaEnv.txt: overlays=panthor-gpu csi-imx519
# Отключить dummybuf: echo 0 > /sys/devices/platform/rkcif-mipi-lvds2/is_use_dummybuf
Контакты
Если есть идеи, почему MIPI-данные не доходят при полностью инициализированном сенсоре — буду благодарен за подсказку.
Описание
Конвейеры
0
успешных
0
с ошибкой