[libcamera-devel] Failed to commit atomic request: Invalid argument

Kieran Bingham kieran.bingham at ideasonboard.com
Fri Oct 29 16:02:11 CEST 2021


Quoting Eric Curtin (2021-10-29 14:36:08)
> On Fri, 29 Oct 2021 at 13:21, Kieran Bingham
> <kieran.bingham at ideasonboard.com> wrote:
> >
> > Quoting Eric Curtin (2021-10-29 12:38:46)
> > > Hi Guys,
> > >
> > > Still struggling to get the display working on 2 different fedora 34 laptops.
> > > The first problem I run into is:
> >
> > Just ... checking... By on 'laptops' you mean - without running a
> > GUI/Wayland/X ?
> 
> I have GUI/Wayland/X installed but not started. One machine started in
> multi-user.target node with text-console:
> 
> sudo systemctl set-default multi-user.target
> 
> And the other machine I just switch out of X server via Ctrl-Alt-F4.

I assumed so - but I had to check ;-)

> > This cam drm support is for direct render when a GUI isn't available.
> > If a graphical environment is running, it will have ownership of the
> > screen.
> 
> The screen does go blank, the console disappears but it's completely black, no
> camera output.
> 
> >
> > > "Failed to commit atomic request: Invalid argument"
> > >
> > > This occurs when drmModeAtomicCommit is called with  these flags set:
> > >
> > > DRM_MODE_ATOMIC_ALLOW_MODESET | DRM_MODE_PAGE_FLIP_EVENT |
> > > DRM_MODE_ATOMIC_NONBLOCK
> > >
> > > in the drmFlags.
> > >
> > > Then we go from:
> > >
> > > drmModeAtomicCommit -> DRM_IOCTL -> drmIoctl -> ioctl
> > >
> > > and return EINVAL. Anybody have an idea what could be going wrong here?
> > > Are the flags ok in this case etc.?
> > >
> > > Some version info and other info on how I am running this:
> > >
> > > $ rpm -qa | grep libdrm
> > > libdrm-2.4.107-1.fc34.x86_64
> > > libdrm-devel-2.4.107-1.fc34.x86_64
> > > libdrm-debugsource-2.4.107-1.fc34.x86_64
> > > libdrm-debuginfo-2.4.107-1.fc34.x86_64
> > >
> > > $ uname -a
> > > Linux fedora 5.14.13-200.fc34.x86_64 #1 SMP Mon Oct 18 12:39:31 UTC
> > > 2021 x86_64 x86_64 x86_64 GNU/Linux
> > >
> > > sudo LD_LIBRARY_PATH=./build/src/ipa/ipu3:./build/src/ipa/raspberrypi:./build/src/ipa/rkisp1:./build/src/ipa/vimc:./build/src/libcamera:./build/src/libcamera/base:./build/src/libcamera/base/libcamera-base.so.0.0.0.p:./build/src/libcamera/libcamera.so.0.0.0.p
> > > ./build/src/cam/cam -c 1 -C16 -DeDP-1 -s
> >
> > You shouldn't need to set LD_LIBRARY_PATH for this. Meson links the
> > binaries to the built location, and updates them when installing.
> >
> > Have you set LD_LIBRARY_PATH due to an issue you faced?
> 
> I tend to do this to make builds quicker, skip the install step and
> just run. And to avoid
> potentially overwriting stuff in /usr (and to not cause any issues
> with the wrong library being
> loaded system vs built one) the case where I want. I can just install
> and see what happens.

That's what I meant, you can run directly from the build directory
without installing.

You should be able to run 
  ./build/src/cam/cam -c 1 -C16 -DeDP-1 -s  ...

without exporting / setting LD_LIBRARY_PATH.

> 
> >
> >
> > > pixelformat=YUYV,height=1080,width=1920

Do you know if your DRM connector target capable of displaying
YUYV,height=1080,width=1920 ? Or is it limited to RGB formats?

There is no scaling/format conversion available in this DRM display
currently.

'modetest' should report the capabilities to check.


> > > [24:13:06.877580453] [12783]  INFO IPAManager ipa_manager.cpp:138
> > > libcamera is not installed. Adding
> > > '/home/ecurtin/git/libcamera/build/src/ipa' to the IPA search path
> > > [24:13:06.878456861] [12783]  INFO Camera camera_manager.cpp:293
> > > libcamera v0.0.0+3205-8bba804b
> > > Using camera \_SB_.PCI0.XHC_.RHUB.HS01-1:1.0-046d:0843 as cam0
> > > [24:13:07.080928044] [12783]  INFO Camera camera.cpp:945 configuring
> > > streams: (0) 1920x1080-YUYV
> > > Using KMS plane 169, CRTC 236, connector eDP-1 (239)
> >
> > Seeing this though makes me think it probably got far enough so it must
> > be expected to work.
> 
> The screen does go black on both laptops but that's it, I can only see
> this output if
> I'm connected via ssh or redirect the output to file, but the tty does
> get replaced if that
> makes sense.
> 
> >
> > > cam0: Capture 16 frames
> > > Failed to commit atomic request: Invalid argument
> >
> > But without further debug, I'm not sure I can help on this one yet I'm
> > afraid.

Can you run:

echo 0x1ff | sudo tee /sys/module/drm/parameters/debug

then re-run the cam and save the kernel logs to inspect for any hints?

It might help report on why the request failed.

The full output of modetest is probably useful too.

--
Kieran


> > > 87188.356981 (0.00 fps) cam0-stream0 seq: 000000 bytesused: 4147200
> > > 87188.581003 (4.46 fps) cam0-stream0 seq: 000001 bytesused: 4147200
> > > 87188.781009 (5.00 fps) cam0-stream0 seq: 000002 bytesused: 4147200
> > > 87188.981007 (5.00 fps) cam0-stream0 seq: 000003 bytesused: 4147200
> > > 87189.181009 (5.00 fps) cam0-stream0 seq: 000004 bytesused: 4147200
> > > 87189.381002 (5.00 fps) cam0-stream0 seq: 000005 bytesused: 4147200
> > > 87189.577004 (5.10 fps) cam0-stream0 seq: 000006 bytesused: 4147200
> > > 87189.776999 (5.00 fps) cam0-stream0 seq: 000007 bytesused: 4147200
> > > 87189.977034 (5.00 fps) cam0-stream0 seq: 000008 bytesused: 4147200
> > > 87190.177013 (5.00 fps) cam0-stream0 seq: 000009 bytesused: 4147200
> > > 87190.377072 (5.00 fps) cam0-stream0 seq: 000010 bytesused: 4147200
> > > 87190.577016 (5.00 fps) cam0-stream0 seq: 000011 bytesused: 4147200
> > > 87190.777031 (5.00 fps) cam0-stream0 seq: 000012 bytesused: 4147200
> > > 87190.973012 (5.10 fps) cam0-stream0 seq: 000013 bytesused: 4147200
> > > 87191.173030 (5.00 fps) cam0-stream0 seq: 000014 bytesused: 4147200
> > > 87191.373034 (5.00 fps) cam0-stream0 seq: 000015 bytesused: 4147200
> > > Failed to stop display pipeline: Invalid argument
> > > Failed to stop frame sink
> > >
> > > Is mise le meas/Regards,
> > >
> > > Eric Curtin
> > >
> >
>


More information about the libcamera-devel mailing list