Rpi 4 & 5 Libcamera & Mmap permission issue on Android 14

Kieran Bingham kieran.bingham at ideasonboard.com
Tue Jun 4 15:45:11 CEST 2024


Quoting jan at radicalsystems.co.za (2024-06-04 11:26:20)
> Hi Libcamera Fundis!
> 
>  
> 
> Having a problem capturing an image on Android 14 (& 13).
> 
> Tombstone looks like this:
> 
>  
> 
> 06-03 15:13:03.880 308 578 I DMABUFHEAPS: Using : Non-legacy ION heaps
> 
> 06-03 15:13:03.880 308 578 I [minigbm:gbm_mesa_internals.cpp(233)]: Found
> GPU v3d
> 
> 06-03 15:13:04.052 308 359 E libcamera: ERROR Buffer
> mapped_framebuffer.cpp:230 Failed to mmap plane: Permission denied
> 
> .... lots of Permission denied!
> 
> 06-03 15:13:11.282 308 359 E libcamera: ERROR Buffer
> mapped_framebuffer.cpp:230 Failed to mmap plane: Permission denied
> 
> 06-03 15:13:12.008 308 579 E libcamera: ERROR Camera camera.cpp:675 Camera
> in Running state trying acquire() requiring state Available

Aside from all the permission denieds - this is somethign interesting
that should be looked into. You appear to have already got the camera
acquired running (or perhaps never released, maybe due to a bad error
path on the failures above) so that then next aquire is failing...


> 
> 06-03 15:13:12.008 308 579 E libcamera: ERROR HAL camera_device.cpp:390
> '/base/axi/pcie at 120000/rp1/i2c at 88000/imx708 at 1a': Failed to acquire the
> camera
> 
> 06-03 15:13:12.008 308 579 E libcamera: ERROR HAL camera3_hal.cpp:81 Failed
> to open camera module '0'
> 
> 06-03 15:13:12.008 308 579 E libcamera: FATAL HAL
> generic_frame_buffer_allocator.cpp:106 gralloc_open() failed: -87

I think there are two memory allocators for libcamera to work with both
android, and chromeos. I also recall that it takes quite some manual
effort to build libcamera for android.

Can you explain more about how you are building this and setting things
up? Was it packaged for you by one of the android builds? Or is there
anything else in control of the overall system configuration here?


 
> MLKIT Streaming & analyzing works until trying to capture an image the above
> happens.
> 
> The various Android versions for Rpi5 I could find gave the same issue.

Have you had this working in the past? or on any other devices? Or with
a USB camera?

 
> I tried Emteria, AOSP & LineageOS 13 & 14
> 
> Android built from Raspberry Vanilla and even replacing with later libcamera
> had the same issue.
> 
>  
> 
> I'm not sure if this is purely a configuration problem, wrt to policies or
> permissions or specifically to the RPi's architecture.

Failing to get memory sounds like configuration regarding the memory
allocators. I think there are specific options to select for this!


> Please help, I can rebuild and test.
> 
> I have tried the latest code pulled into RaspVanilla, but had the same
> issue.

What is 'RaspVanilla' ?

--
Kieran


More information about the libcamera-devel mailing list