SOLVED IMX462 struggling to get V4L2 working on astroberry (buster 5.10.103-v7l+)
- 
					
					
					
					
 Hello, I have tried to follow the guide on http://wiki.veye.cc/index.php/V4L2_mode_for_Raspberry_Pi, but unfortunatelly i did not managed to get it to work. I will post some info about my system and steps that I tried: 
 lsb_release -a ... Raspbian GNU/Linux 10 (buster)
 uname -a ... Linux astroberry 5.10.103-v7l+ #1529 SMP Tue Mar 8 12:24:00 GMT 2022 armv7l GNU/Linux
 Camera and I2C is enabled in raspi-config
 I do not use the display, raspberry is controlled via vnc
 Software toolkit is downloaded, when i try veye_raspivid -t 5000 -o ~/test.h264, video is recorded, camera works
 ./enable_i2c_vc.sh was executed./camera_i2c_config 
 setting GPIO for board revsion: c03114
 4B(1G/2G/4G/8G)
 Set state of 133 to 1
 Use i2c-10 for the sensor (-y 10)./veye_mipi_i2c.sh -r -f hdver 
 hardware version is 0x 6./veye_mipi_i2c.sh -w -f videoformat -p1 NTSC 
 w videoformat is NTSC./veye_mipi_i2c.sh -r -f cameramode 
 r cameramode is 0x 0./veye_mipi_i2c.sh -r -f boardmodel 
 Board model is VEYE-MIPI-IMX327S./veye_mipi_i2c.sh -r -f sensorid 
 r sensor id is IMX 462; ONE boardFor V4L2 installation i followed the staps according to the guide: 
 wget https://github.com/veyeimaging/raspberrypi_v4l2/releases/latest/download/raspberrypi_v4l2.tgz
 tar -xzvf raspberrypi_v4l2.tgz
 cd raspberrypi_v4l2/release/
 chmod +x *
 sudo ./install_driver.sh veyecam2mAfter restart I tried: 
 dmesg | grep veye ... no reponse (empty text)
 ls /dev/video0
 ls: cannot access '/dev/video0': No such file or directory
 cannot open it in vlc as wellI have tried to compile drivers locally, same result as with precompiled drivers. I have found same verson as as my system in the pre-compiled drivers. This is the content of the boot/config.txt For more options and information seehttp://rpf.io/configtxtSome settings may impact device functionality. See link above for detailsuncomment if you get no picture on HDMI for a default "safe" mode#hdmi_safe=1 uncomment this if your display has a black border of unused pixels visibleand your display can output without overscan#disable_overscan=1 uncomment the following to adjust overscan. Use positive numbers if consolegoes off screen, and negative if there is too much border#overscan_left=16 
 #overscan_right=16
 #overscan_top=16
 #overscan_bottom=16uncomment to force a console size. By default it will be display's size minusoverscan.#framebuffer_width=1280 
 #framebuffer_height=720uncomment if hdmi display is not detected and composite is being outputhdmi_force_hotplug=1 uncomment to force a specific HDMI mode (this will force VGA)hdmi_group=2 
 hdmi_mode=82uncomment to force a HDMI mode rather than DVI. This can make audio work inDMT (computer monitor) modes#hdmi_drive=2 uncomment to increase signal to HDMI, if you have interference, blanking, orno display#config_hdmi_boost=4 uncomment for composite PAL#sdtv_mode=2 #uncomment to overclock the arm. 700 MHz is the default. 
 #arm_freq=800Uncomment some or all of these to enable the optional hardware interfacesdtparam=i2c_arm=on 
 dtparam=i2s=on
 dtparam=spi=onUncomment this to enable infrared communication.#dtoverlay=gpio-ir,gpio_pin=17 
 #dtoverlay=gpio-ir-tx,gpio_pin=18Additional overlays and parameters are documented /boot/overlays/READMEEnable audio (loads snd_bcm2835)#dtparam=audio=on [pi4] Enable DRM VC4 V3D driver on top of the dispmanx display stack#dtoverlay=vc4-fkms-v3d 
 max_framebuffers=2[all] 
 #dtoverlay=vc4-fkms-v3d
 enable_uart=1
 gpu_mem=128
 hdmi_force_hotplug=1
 hdmi_group=2
 hdmi_mode=82
 start_x=1
 dtoverlay=w1-gpio
 dtparam=i2c_vc=on
 gpu_mem=400
 dtoverlay=veyecam2m,media-controller=0Is there something iam missing?? Thank you for the help in advance! 
- 
					
					
					
					
 @salamander 
 I think this is a dts bug, and have fixed it.
 https://github.com/veyeimaging/raspberrypi_v4l2/releases/tag/v1.05
- 
					
					
					
					
 @salamander 
 There is a dts error. Please refer to the new release version here.
 https://github.com/veyeimaging/raspberrypi_v4l2/releases/tag/v1.04
- 
					
					
					
					
 @veye_xumm Thank you for checking. I have tried the updated drivers. Its not working, but least the driver tries to start. I have tried to compile driver locally, but it is the same result. astroberry@astroberry:~ $ dmesg | grep veye 
 [ 6.583170] veyecam2m: loading out-of-tree module taints kernel.
 [ 6.716455] veyecam2m 10-003b: probe failed
 [ 31.844086] veyecam_vana: disabling
 [ 31.844103] veyecam_vddl: disabling
 [ 31.844116] veyecam_vdig: disablingWhat could be still wrong? 
- 
					
					
					
					
 @salamander I think the driver works. Please check your hardware connection to find why it probe failed. 
- 
					
					
					
					
 OK, I have tested something that worked before to check the camera function and connection: ./veye_raspivid -t 5000 -o ~/tes1t.h264 
 camera num -1
 Hardare version: c03114
 mmal: mmal_component_enable w 1920 h 1080 fps 30raspipreview_create com 
 mmal: Splitter has 4 output port,you could use num 2,3 for extendIt does not do more at this point, just stops there and no video is recorded. Camera is responding to the I2C commands however. I have tried to uninstall the V4L2 driver and restart and after that recording works: 
 I have just executed this one command after the raspberry was restarted (no I2C commands to configure, etc)
 ./veye_raspivid -t 5000 -o ~/tes1t.h264
 camera num -1
 Hardare version: c03114
 mmal: mmal_component_enable w 1920 h 1080 fps 30raspipreview_create com 
 mmal: Splitter has 4 output port,you could use num 2,3 for extend
 mmal: running now!!
 mmal: running stop!! 0Video is recorded as expected. Are there maybe some logs somewhere to see more exactly vhy the V4L2 diver refuses to work? Also when the V4L2 is active, should it prevent the camera to be used othewise, for example to record the video or stream? Thank you 
- 
					
					
					
					
 @salamander 
 Hi,V4l2 mode and Legacy mode are not supported at the same time, see this page for details. 
 http://wiki.veye.cc/index.php/Raspberry_Pi_Application_Note_IndexBased on your description, I think the mipi data channel is ok. 
 But i2c can't access to camera correctly. Are you using rpi 4b?
 Tryi2cdetect -y 10See if there is a device with 0x3b address? 
- 
					
					
					
					
 @veye_xumm 
 Thank you for the further information. Yes Iam using rpi 4b.
 I have tried the i2cdetect fresh after start of the respberry
 astroberry@astroberry:~ $ i2cdetect -y 10
 0 1 2 3 4 5 6 7 8 9 a b c d e f
 00: -- -- -- -- -- -- -- -- -- -- -- -- --
 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 70: -- -- -- -- -- -- -- --
 No device is found with 3b address.However when I execute the: 
 astroberry@astroberry:~/raspberrypi/i2c_cmd/bin $ ./camera_i2c_config
 setting GPIO for board revsion: c03114
 4B(1G/2G/4G/8G)
 Set state of 133 to 1
 Use i2c-10 for the sensor (-y 10)Then the i2cdetect finds the device: 
 astroberry@astroberry:~ $ i2cdetect -y 10
 0 1 2 3 4 5 6 7 8 9 a b c d e f
 00: -- -- -- -- -- -- -- -- -- -- -- -- --
 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 30: -- -- -- -- -- -- -- -- -- -- -- 3b -- -- -- --
 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 70: -- -- -- -- -- -- -- --However the dmesg still shows: 
 astroberry@astroberry:~ $ dmesg | grep veye
 [ 6.523877] veyecam2m: loading out-of-tree module taints kernel.
 [ 6.646795] veyecam2m 10-003b: probe failed
 [ 31.835106] veyecam_vana: disabling
 [ 31.835117] veyecam_vddl: disabling
 [ 31.835125] veyecam_vdig: disablingDo I need to add the camera_i2c_config somewhere manually that it is executed at every startup before starting of the driver? I have tested various i2c settings and all seems to reponds as expected so the i2c but definitely works. On the first day when I got the camera, I was by mistake using the ./cs_mipi_i2c.sh, which is for the CS series, but that was never getting me some proper response. Could it be however that something is misconfigured? I tried for example the ./cs_mipi_i2c.sh -w -f sysreset at that time. 
- 
					
					
					
					
 @veye_xumm Hello, I have continued with the debugging turned on the TRACE in the driver and added few debug messages. It looks like the driver does not get correct response to this: 
 ret = veyecam2m_read_reg(veyecam2m, VEYECAM2M_MODEL_ID_ADDR, &device_id);
 if (ret) {
 dev_err(&client->dev, "probe failed \n");
 return -ENODEV;
 }I have read about the http://wiki.veye.cc/index.php/RaspberryPI_I2C_confilict_problem ..is this still problem (iam not using DSI display)?. Also this solution recommends to rewire the I2C. At which I2C bus the V4L2 driver actually expects to have the module? I have also tried to disable the i2c_arm in the startup config, but no help either. 
- 
					
					
					
					
 @salamander 
 I think this is a dts bug, and have fixed it.
 https://github.com/veyeimaging/raspberrypi_v4l2/releases/tag/v1.05
- 
					
					
					
					
 @veye_xumm Perfect, thank you very much for your support. It is now working. 
