Finally I managed to make everything (except some minor things like lens correction) work.
Some imprortant things were missing:
- rkisp does not control digital gain, only analogue, e.g. imx577 splits received value in the driver:
linux-rockchip/drivers/media/i2c/imx577.c at rk-5.10-rkr4 · armbian/linux-rockchip · GitHub - iq files that isp tuner produces are quite unusable, better to start with copy-pasting something existing and tuning it afterwards
Final image, this time with automatic esposure and gain.
https://i.imgur.com/tZhSlPM.jpg
Driver and iqfile (AIQ 8.8(!!)) attached.
imx477_working.zip (72.1 KB)
Basically, you need two things running:
rkaiq_3A_server
rkaiq_tool_server (the one from isp.zip).
Here is how my log looks like on Ubuntu 22:
root@orangepi5:~# ps auxf | grep 3A
root 989 0.1 0.1 313484 11920 ? Sl 02:30 0:00 /usr/bin/rkaiq_3A_server
root 3547 0.0 0.0 19680 2028 pts/0 S+ 02:35 0:00 \_ grep 3A
root@orangepi5:~#
root@orangepi5:~#
root@orangepi5:~# ./rkaiq_tool_server-aarch64-20221025_112250_RK3588
[aiqtool][main]:#### AIQ tool server 20221019_174349 ####
[aiqtool][main]:iqfile cmd_parser.get /oem/etc/iqfiles
[aiqtool][main]:g_mode cmd_parser.get -1
[aiqtool][main]:g_width cmd_parser.get 1920
[aiqtool][main]:g_height cmd_parser.get 1080
[aiqtool][main]:g_device_id cmd_parser.get 0
[aiqtool][GetMediaInfo]:access /dev/media0
[aiqtool][GetCifSubDevs]:cif media index 0, media info array id 0
[aiqtool][GetLensSubDevs]:isp media index 0, media info array id 0
[aiqtool][GetMediaInfo]:access /dev/media1
[aiqtool][GetIspSubDevs]:isp media index 1, media info array id 0
[aiqtool][GetIspSubDevs]:model(rkisp0): isp_info(0): isp-subdev entity name: /dev/v4l-subdev3
[aiqtool][DumpMediaInfo]:DumpMediaInfo:
[aiqtool][DumpMediaInfo]: sensor_name : m00_f_imx477 7-001a
[aiqtool][DumpMediaInfo]:#### cif:
[aiqtool][DumpMediaInfo]: model_idx : 0
[aiqtool][DumpMediaInfo]: linked_sensor : 1
[aiqtool][DumpMediaInfo]: media_dev_path : /dev/media0
[aiqtool][DumpMediaInfo]: mipi_id0 : /dev/video0
[aiqtool][DumpMediaInfo]: mipi_id1 : /dev/video1
[aiqtool][DumpMediaInfo]: mipi_id2 : /dev/video2
[aiqtool][DumpMediaInfo]: mipi_id3 : /dev/video3
[aiqtool][DumpMediaInfo]: rkcif_tools_id0 : /dev/video10
[aiqtool][DumpMediaInfo]: mipi_dphy_rx_path :
[aiqtool][DumpMediaInfo]: mipi_csi2_sd_path : /dev/v4l-subdev0
[aiqtool][DumpMediaInfo]: lvds_sd_path :
[aiqtool][DumpMediaInfo]: mipi_luma_path :
[aiqtool][DumpMediaInfo]:#### isp:
[aiqtool][DumpMediaInfo]: model_idx : 1
[aiqtool][DumpMediaInfo]: linked_sensor : 0
[aiqtool][DumpMediaInfo]: media_dev_path : /dev/media1
[aiqtool][DumpMediaInfo]: isp_dev_path : /dev/v4l-subdev3
[aiqtool][DumpMediaInfo]: csi_dev_path :
[aiqtool][DumpMediaInfo]: mpfbc_dev_path :
[aiqtool][DumpMediaInfo]: main_path : /dev/video11
[aiqtool][DumpMediaInfo]: self_path : /dev/video12
[aiqtool][DumpMediaInfo]: fbc_path : /dev/video13
[aiqtool][DumpMediaInfo]: rawwr0_path :
[aiqtool][DumpMediaInfo]: rawwr1_path :
[aiqtool][DumpMediaInfo]: rawwr2_path :
[aiqtool][DumpMediaInfo]: rawwr3_path :
[aiqtool][DumpMediaInfo]: dma_path :
[aiqtool][DumpMediaInfo]: rawrd0_m_path : /dev/video15
[aiqtool][DumpMediaInfo]: rawrd1_l_path : /dev/video17
[aiqtool][DumpMediaInfo]: rawrd2_s_path : /dev/video16
[aiqtool][DumpMediaInfo]: stats_path : /dev/video18
[aiqtool][DumpMediaInfo]: input_params_path : /dev/video19
[aiqtool][DumpMediaInfo]: mipi_luma_path :
[aiqtool][DumpMediaInfo]: mipi_dphy_rx_path :
[aiqtool][main]:================== -1 =====================
[aiqtool][main]:ToolServer using old socket node
[aiqtool][Setup]:Linux,Create domain socket success.
[aiqtool][Setup]:Credentials from SO_PEERCRED: pid=989, euid=0, egid=0
[aiqtool][main]:#### ToolServer connect AIQ success ####
[aiqtool][Process]:TCPServer::Process
[aiqtool][Accepted]:TCPServer::Accepted
Based on “#### Forward to AIQ failed! please check AIQ status.####” I can assume that you have 3A script not running.