Krescue + VIM3 + MIPI camera not working

I have been trying to get the OS08A10 8MP HDR Camera to work under Ubuntu for some time now, but I seem to be unable.

My install method is to use an SD card with Krescue.

I have verified that the camera works under android by installing the VIM3.Android.Pie_V200319.emmc.kresc and find the camera under images.

I have been trying the various Ubuntu installations without much luck. When installing all ubuntu versions available in the krescue list, there is no /dev/video0 device available.

Can someone point me in a direction o how to proceed?

Kind regards

Jesper

Which ubuntu version, i believe it only compatible with 4.9 kernel version, are you using the latest firmware ?
Have you made the proper connections, not flipped the camera cable etc. ?

I am using Krescue (Wed May 6 05:29:47 UTC 2020) from SD card.

I have verified the camera works on Android (VIM3.Android.Pie_V200319.emmc.kresq).

Then I have installed Ubuntu (VIMx.Ubuntu-xfce-bionic_Linux-4.9_arm64_V20191231.emmc.kresc)

After boot the following devices are available

/dev/video10
/dev/video11
/dev/video12
/dev/video13
/dev/videosync

No /dev/video0 is present and I cant get the ./v4l2_test to work on any of the devices. And I am in console mode.

Do I need an image outside whats available in krescue?

Kind regards

jesper

Hi, maybe hyphop can give more info.

yes, as Vladmir.v.v said, just tag hyphop, he will definitely help

I assume tagging is done this way.

Hi @hyphop can you help?

hello

  1. krescue make only images installation (not have other relations)
  2. its ubuntu images same as dl.khadas.com - Index of /firmware/vim3/ubuntu/
  3. next time ask in ubuntu threads
  4. OS08A10 8MP HDR - which interface ?
  5. v4l2-ctl --all – show this output or grep "" /sys/class/video4linux/video*/name + dmesg
  1. krescue make only images installation (not have other relations)
    -Got it
  2. its ubuntu images same as https://dl.khadas.com/Firmware/VIM3/Ubuntu/
    -Im on “VIMx.Ubuntu-xfce-bionic_Linux-4.9_arm64_V20191231.emmc.kresc”
  3. next time ask in ubuntu threads
    -Check
  4. OS08A10 8MP HDR - which interface ?
    Its the “OS08A10 8MP HDR Camera” sold by Khadas. Interfaced via MIPI
  5. v4l2-ctl --all – show this output or `` + dmesg
    Out posted at https://pastebin.com/WbFheeWg

looks like this kernel not configured for this camera
ask @terry about which kernel modules used for this camera (in android ) after we can improve current kernel config

@terry do you know what driver is used for “OS08A10 8MP HDR Camera”.

And if possible can you point me to the kernel source that VIM3/Ubuntu use. I cant seem to follow a generic ubuntu guide as the sources does not come in the version my board use. 2.9.206.

The OS08A10 driver source code on Android

im not sure about fast integration this driver to mainline kernel :wink:

I also had a bad time accessing the MIPI camera through python, opencv, gstream, etc. But at last guvcview worked.

You can find guvcview in aplications in Ubuntu kernel 4.9. Just open it use the camera “Juno R2” and image format as RGB3 - 888 to improve image quality. To improve the FPS use resolution 1920x1080.

Enjoy :slight_smile:

What image do you use spicifically?

The ones I have tried does not load a driver for the camera.

I downloaded the SD card version
https://dl.khadas.com/Firmware/VIM3/Ubuntu/SD_USB/VIM3_Ubuntu-xfce-bionic_Linux-4.9_arm64_SD-USB_V20191231.7z

Now the camera is detected. Something is different between SD and EMMC versions.

Now I get a greenish image.

Jesper

The camera is now available on /dev/camera0

I can run guvcview and see a 4K image at 1fps from the desktop.

So the camera/driver can capture 4K resolution, but at an unacceptable low fps.

I have also stopped the desktop and run the cli test app mentioned by @CodeLogist here:

v4l2_test -c 1 -p 0 -F 0 -f 0 -D 0 -R 1 -r 2 -d 2 -N 1000 -n 800 -w 0 -e 1 -I 0 -b /dev/fb0 -v /dev/video0

This can start the camera and show a decent framerate. But its only 1920x1080.

If I choose a higher resolution I get a segmentation fault:
v4l2_test -c 1 -p 0 -F 0 -f 0 -D 0 -R 0 -r 2 -d 2 -N 1000 -n 800 -w 0 -e 1 -I 0 -b /dev/fb0 -v /dev/video0

I need to prove that the sensor / driver can retrieve 4K at higher than 30fps.

I do not need to encode the image so I dont need encoder capability, bust 30fps access to the input image for further processin.

Can anyone help?

Hi @Taxfromdk, I don’t think there is a difference between emmc and sd images but then too can you tell which emmc version you were using earlier?aybe @Frank could help you with those. I used linux kernel 4.9 SD version for running guvcview and for the greenish image use RGB24 format in guccview.

Im pretty sure the image with same data tag loaded via the Krescue installer soes not contain the driver. In that image the /dev/video0 device is not available.

i will check images soon and make update

Hi @Taxfromdk and others,

Did you have any success running the camera at 4K resolution and decent fps?
I am currently exactly at the point of your last message.

  • My camera runs at 4k on guvcview but with a very low fps.
  • It runs at 1k on the camera demo (“v4l2_test” script) with decent fps. But setting the -R option to 0 for 4k resolution triggers a segmentation error.
  • I tried running it with Android and it was working fine but the settings would not let me select more than 1k resolution in camera mode

I have a VIM3 board with the same OS08A10 8MP HDR Camera.
Ubuntu image: VIM3_Ubuntu-xfce-bionic_Linux-4.9_arm64_EMMC_V20191231.img.

I read on this thread Khadas Camera Low framerate on Ubuntu that it was the guvcview playback slowing things down. If guvcview can’t make it work smoothly I am fine with using the camera demo script.
Is there some hardware limitation that would explain why running the demo at 4k triggers this segmentation error or am I doing something wrong?

Any help would be highly appreciated!