kgmt0 / megapixels

The GTK camera application
GNU General Public License v3.0
19 stars 5 forks source link

building on ppp ee postmarketos #7

Open giorez opened 1 year ago

giorez commented 1 year ago

I git clonED https://github.com/kgmt0/megapixels -b linux-megi-6.1 on my PPPee running postmarketos edge, kernel 6.1. I built megapixels with meson/ninja, but when I run the app, I get this error: Found config file at /usr/local/share/megapixels/config/pine64,pinephone-pro.ini Adding camera rear from config Adding camera front from config (megapixels:5822): Gtk-WARNING **: 16:37:24.509: cannot open display: Any help?

kgmt0 commented 1 year ago

Try setting the DISPLAY envvar, e.g. export DISPLAY=:0.

giorez commented 1 year ago

thanks, it solved this issue. Unfortunately the building process seems to put the megapixels files in the wrong directory. The files are in the "/usr/local/share/megapixels/" and when I lauch $megapixels i get missing config file error. here are the commands i run:

git clone https://github.com/kgmt0/megapixels -b linux-megi-6.1 cd megapixels meson build cd build ninja sudo ninja install

If I move the installed files I anyway get following errors:

pmos:~$ megapixels Found config file at /usr/local/share/megapixels/config/pine64,pinephone-pro.ini Adding camera rear from config Adding camera front from config

(megapixels:5871): dconf-WARNING **: 19:58:25.212: unable to open file '/etc/dconf/db/postmarketos': Failed to open file “/etc/dconf/db/postmarketos”: open() failed: No such file or directory; expect degraded performance Initializing postprocessor gsetting Found postprocessor script at /usr/local/share/megapixels/postprocess.sh Initialized postprocessor to /usr/local/share/megapixels/postprocess.sh

MPCamera: VIDIOC_SUBDEV_S_FRAME_INTERVAL error 25, Not a tty Failed to open /sys/class/leds/white:flash/flash_strobe MPCamera: VIDIOC_SUBDEV_S_FRAME_INTERVAL error 25, Not a tty MPCamera: VIDIOC_SUBDEV_S_FRAME_INTERVAL error 25, Not a tty Initialized OpenGL ES 3.1

And the application has only a flickering button at the botton of display

phodina commented 1 year ago

Hi @kgmt0,

So I built the latest image of PmOS v22.12 which has kernel 6.1.3 that got the cameras enabled.

However I still can't open the megapixels application:

$ DISPLAY=:0 ./megapixels
Found config file at /usr/local/share/megapixels/config/pine64,pinephone-pro.ini
Adding camera rear from config
Adding camera front from config
MPCamera: VIDIOC_SUBDEV_S_FRAME_INTERVAL error 25, Not a tty
Failed to open /sys/class/leds/white:flash/flash_strobe
Could not find /dev/media* node matching 'rkisp1'
$ uname -a
Linux eagle 6.1.3 #3 SMP Sun Jan 15 00:02:58 UTC 2023 aarch64 Linux

The switches for the cameras on the back of PPP are enabled.

This seems like the DTS is still missing some nodes for the image/video pipeline like IDSP/VDSP to process the photos.

Any idea which patch I'm missing?

phodina commented 1 year ago

Here's output of the megapixels-list-devices:

$ DISPLAY=:0 ./megapixels-list-devices
rkisp1 (rkisp1)
  Path: /dev/media0
  Bus Info: platform:rkisp1
  Media Version: 393475
  HW Revision: 10
  Driver Version: 393475
  Entities (9):
    1 rkisp1_isp (PROC_VIDEO_PIXEL_FORMATTER)
    6 rkisp1_resizer_mainpath (PROC_VIDEO_SCALER)
    9 rkisp1_resizer_selfpath (PROC_VIDEO_SCALER)
    12 rkisp1_mainpath (IO_V4L)
    16 rkisp1_selfpath (IO_V4L)
    20 rkisp1_stats (IO_V4L)
    24 rkisp1_params (IO_V4L)
    28 rkisp1_csi (invalid type)
    45 ov8858 1-0036 (CAM_SENSOR)
  Interfaces (9):
    50331662 (V4L_VIDEO) devnode 81:1 /dev/video1
    50331666 (V4L_VIDEO) devnode 81:2 /dev/video2
    50331670 (V4L_VIDEO) devnode 81:3 /dev/video3
    50331674 (V4L_VIDEO) devnode 81:4 /dev/video4
    50331697 (V4L_SUBDEV) devnode 81:5 /dev/v4l-subdev0
    50331699 (V4L_SUBDEV) devnode 81:6 /dev/v4l-subdev1
    50331701 (V4L_SUBDEV) devnode 81:7 /dev/v4l-subdev2
    50331703 (V4L_SUBDEV) devnode 81:8 /dev/v4l-subdev3
    50331705 (V4L_SUBDEV) devnode 81:9 /dev/v4l-subdev4
  Pads (15):
    16777218 for device:1 (SINK MUST_CONNECT )
    16777219 for device:1 (SINK )
    16777220 for device:1 (SOURCE )
    16777221 for device:1 (SOURCE )
    16777223 for device:6 (SINK MUST_CONNECT )
    16777224 for device:6 (SOURCE MUST_CONNECT )
    16777226 for device:9 (SINK MUST_CONNECT )
    16777227 for device:9 (SOURCE MUST_CONNECT )
    16777229 for device:12 (SINK )
    16777233 for device:16 (SINK )
    16777237 for device:20 (SINK )
    16777241 for device:24 (SOURCE )
    16777245 for device:28 (SINK MUST_CONNECT )
    16777246 for device:28 (SOURCE MUST_CONNECT )
    16777262 for device:45 (SOURCE )
  Links (17):
    33554447 from:50331662 to:12 (ENABLED IMMUTABLE INTERFACE)
    33554451 from:50331666 to:16 (ENABLED IMMUTABLE INTERFACE)
    33554455 from:50331670 to:20 (ENABLED IMMUTABLE INTERFACE)
    33554459 from:50331674 to:24 (ENABLED IMMUTABLE INTERFACE)
    33554463 from:16777246 to:16777218 (ENABLED DATA)
    33554465 from:16777220 to:16777223 (ENABLED DATA)
    33554467 from:16777224 to:16777229 (ENABLED IMMUTABLE DATA)
    33554469 from:16777220 to:16777226 (ENABLED DATA)
    33554471 from:16777227 to:16777233 (ENABLED IMMUTABLE DATA)
    33554473 from:16777241 to:16777219 (ENABLED IMMUTABLE DATA)
    33554475 from:16777221 to:16777237 (ENABLED IMMUTABLE DATA)
    33554479 from:16777262 to:16777245 (ENABLED DATA)
    33554482 from:50331697 to:1 (ENABLED IMMUTABLE INTERFACE)
    33554484 from:50331699 to:6 (ENABLED IMMUTABLE INTERFACE)
    33554486 from:50331701 to:9 (ENABLED IMMUTABLE INTERFACE)
    33554488 from:50331703 to:28 (ENABLED IMMUTABLE INTERFACE)
    33554490 from:50331705 to:45 (ENABLED IMMUTABLE INTERFACE)
rkisp1 (rkisp1)
  Path: /dev/media1
  Bus Info: platform:rkisp1
  Media Version: 393475
  HW Revision: 10
  Driver Version: 393475
  Entities (11):
    1 rkisp1_isp (PROC_VIDEO_PIXEL_FORMATTER)
    6 rkisp1_resizer_mainpath (PROC_VIDEO_SCALER)
    9 rkisp1_resizer_selfpath (PROC_VIDEO_SCALER)
    12 rkisp1_mainpath (IO_V4L)
    16 rkisp1_selfpath (IO_V4L)
    20 rkisp1_stats (IO_V4L)
    24 rkisp1_params (IO_V4L)
    28 rkisp1_csi (invalid type)
    45 imx258 1-001a (CAM_SENSOR)
    49 dw9714 1-000c (LENS)
    51 white:flash (FLASH)
  Interfaces (11):
    50331662 (V4L_VIDEO) devnode 81:10 /dev/video5
    50331666 (V4L_VIDEO) devnode 81:11 /dev/video6
    50331670 (V4L_VIDEO) devnode 81:12 /dev/video7
    50331674 (V4L_VIDEO) devnode 81:13 /dev/video8
    50331701 (V4L_SUBDEV) devnode 81:16 /dev/v4l-subdev5
    50331703 (V4L_SUBDEV) devnode 81:17 /dev/v4l-subdev6
    50331705 (V4L_SUBDEV) devnode 81:18 /dev/v4l-subdev7
    50331707 (V4L_SUBDEV) devnode 81:19 /dev/v4l-subdev8
    50331709 (V4L_SUBDEV) devnode 81:20 /dev/v4l-subdev9
    50331711 (V4L_SUBDEV) devnode 81:21 /dev/v4l-subdev10
    50331713 (V4L_SUBDEV) devnode 81:22 /dev/v4l-subdev11
  Pads (15):
    16777218 for device:1 (SINK MUST_CONNECT )
    16777219 for device:1 (SINK )
    16777220 for device:1 (SOURCE )
    16777221 for device:1 (SOURCE )
    16777223 for device:6 (SINK MUST_CONNECT )
    16777224 for device:6 (SOURCE MUST_CONNECT )
    16777226 for device:9 (SINK MUST_CONNECT )
    16777227 for device:9 (SOURCE MUST_CONNECT )
    16777229 for device:12 (SINK )
    16777233 for device:16 (SINK )
    16777237 for device:20 (SINK )
    16777241 for device:24 (SOURCE )
    16777245 for device:28 (SINK MUST_CONNECT )
    16777246 for device:28 (SOURCE MUST_CONNECT )
    16777262 for device:45 (SOURCE )
  Links (21):
    33554447 from:50331662 to:12 (ENABLED IMMUTABLE INTERFACE)
    33554451 from:50331666 to:16 (ENABLED IMMUTABLE INTERFACE)
    33554455 from:50331670 to:20 (ENABLED IMMUTABLE INTERFACE)
    33554459 from:50331674 to:24 (ENABLED IMMUTABLE INTERFACE)
    33554463 from:16777246 to:16777218 (DATA)
    33554465 from:16777220 to:16777223 (DATA)
    33554467 from:16777224 to:16777229 (ENABLED IMMUTABLE DATA)
    33554469 from:16777220 to:16777226 (DATA)
    33554471 from:16777227 to:16777233 (ENABLED IMMUTABLE DATA)
    33554473 from:16777241 to:16777219 (ENABLED IMMUTABLE DATA)
    33554475 from:16777221 to:16777237 (ENABLED IMMUTABLE DATA)
    33554479 from:16777262 to:16777245 (DATA)
Assertion failed: type == MEDIA_LNK_FL_DATA_LINK (../tools/list_devices.c: main: 199)
Aborted
phodina commented 1 year ago

Here's complete output if I apply the following fix:

diff --git a/tools/list_devices.c b/tools/list_devices.c
index 9053ee5..09635d1 100644
--- a/tools/list_devices.c
+++ b/tools/list_devices.c
@@ -195,6 +195,9 @@ main(int argc, char *argv[])
                         uint32_t type = links[i].flags & MEDIA_LN
K_FL_LINK_TYPE;
                         if (type == MEDIA_LNK_FL_INTERFACE_LINK)
{
                                 printf("INTERFACE)\n");
+           } else if (type == MEDIA_LNK_FL_ANCILLARY_
LINK) {
+               // https://linuxtv.org/downloads/v
4l-dvb-apis/userspace-api/mediactl/media-types.html
+                                printf("PHYSICAL INTERFACE\n");
                         } else {
                                 assert(type == MEDIA_LNK_FL_DATA_
LINK);
                                 printf("DATA)\n");
./megapixels-list-devices
rkisp1 (rkisp1)
  Path: /dev/media0
  Bus Info: platform:rkisp1
  Media Version: 393475
  HW Revision: 10
  Driver Version: 393475
  Entities (9):
    1 rkisp1_isp (PROC_VIDEO_PIXEL_FORMATTER)
    6 rkisp1_resizer_mainpath (PROC_VIDEO_SCALER)
    9 rkisp1_resizer_selfpath (PROC_VIDEO_SCALER)
    12 rkisp1_mainpath (IO_V4L)
    16 rkisp1_selfpath (IO_V4L)
    20 rkisp1_stats (IO_V4L)
    24 rkisp1_params (IO_V4L)
    28 rkisp1_csi (invalid type)
    45 ov8858 1-0036 (CAM_SENSOR)
  Interfaces (9):
    50331662 (V4L_VIDEO) devnode 81:1 /dev/video1
    50331666 (V4L_VIDEO) devnode 81:2 /dev/video2
    50331670 (V4L_VIDEO) devnode 81:3 /dev/video3
    50331674 (V4L_VIDEO) devnode 81:4 /dev/video4
    50331697 (V4L_SUBDEV) devnode 81:5 /dev/v4l-subdev0
    50331699 (V4L_SUBDEV) devnode 81:6 /dev/v4l-subdev1
    50331701 (V4L_SUBDEV) devnode 81:7 /dev/v4l-subdev2
    50331703 (V4L_SUBDEV) devnode 81:8 /dev/v4l-subdev3
    50331705 (V4L_SUBDEV) devnode 81:9 /dev/v4l-subdev4
  Pads (15):
    16777218 for device:1 (SINK MUST_CONNECT )
    16777219 for device:1 (SINK )
    16777220 for device:1 (SOURCE )
    16777221 for device:1 (SOURCE )
    16777223 for device:6 (SINK MUST_CONNECT )
    16777224 for device:6 (SOURCE MUST_CONNECT )
    16777226 for device:9 (SINK MUST_CONNECT )
    16777227 for device:9 (SOURCE MUST_CONNECT )
    16777229 for device:12 (SINK )
    16777233 for device:16 (SINK )
    16777237 for device:20 (SINK )
    16777241 for device:24 (SOURCE )
    16777245 for device:28 (SINK MUST_CONNECT )
    16777246 for device:28 (SOURCE MUST_CONNECT )
    16777262 for device:45 (SOURCE )
  Links (17):
    33554447 from:50331662 to:12 (ENABLED IMMUTABLE INTERFACE)
    33554451 from:50331666 to:16 (ENABLED IMMUTABLE INTERFACE)
    33554455 from:50331670 to:20 (ENABLED IMMUTABLE INTERFACE)
    33554459 from:50331674 to:24 (ENABLED IMMUTABLE INTERFACE)
    33554463 from:16777246 to:16777218 (ENABLED DATA)
    33554465 from:16777220 to:16777223 (ENABLED DATA)
    33554467 from:16777224 to:16777229 (ENABLED IMMUTABLE DATA)
    33554469 from:16777220 to:16777226 (ENABLED DATA)
    33554471 from:16777227 to:16777233 (ENABLED IMMUTABLE DATA)
    33554473 from:16777241 to:16777219 (ENABLED IMMUTABLE DATA)
    33554475 from:16777221 to:16777237 (ENABLED IMMUTABLE DATA)
    33554479 from:16777262 to:16777245 (ENABLED DATA)
    33554482 from:50331697 to:1 (ENABLED IMMUTABLE INTERFACE)
    33554484 from:50331699 to:6 (ENABLED IMMUTABLE INTERFACE)
    33554486 from:50331701 to:9 (ENABLED IMMUTABLE INTERFACE)
    33554488 from:50331703 to:28 (ENABLED IMMUTABLE INTERFACE)
    33554490 from:50331705 to:45 (ENABLED IMMUTABLE INTERFACE)
rkisp1 (rkisp1)
  Path: /dev/media1
  Bus Info: platform:rkisp1
  Media Version: 393475
  HW Revision: 10
  Driver Version: 393475
  Entities (11):
    1 rkisp1_isp (PROC_VIDEO_PIXEL_FORMATTER)
    6 rkisp1_resizer_mainpath (PROC_VIDEO_SCALER)
    9 rkisp1_resizer_selfpath (PROC_VIDEO_SCALER)
    12 rkisp1_mainpath (IO_V4L)
    16 rkisp1_selfpath (IO_V4L)
    20 rkisp1_stats (IO_V4L)
    24 rkisp1_params (IO_V4L)
    28 rkisp1_csi (invalid type)
    45 imx258 1-001a (CAM_SENSOR)
    49 dw9714 1-000c (LENS)
    51 white:flash (FLASH)
  Interfaces (11):
    50331662 (V4L_VIDEO) devnode 81:10 /dev/video5
    50331666 (V4L_VIDEO) devnode 81:11 /dev/video6
    50331670 (V4L_VIDEO) devnode 81:12 /dev/video7
    50331674 (V4L_VIDEO) devnode 81:13 /dev/video8
    50331701 (V4L_SUBDEV) devnode 81:16 /dev/v4l-subdev5
    50331703 (V4L_SUBDEV) devnode 81:17 /dev/v4l-subdev6
    50331705 (V4L_SUBDEV) devnode 81:18 /dev/v4l-subdev7
    50331707 (V4L_SUBDEV) devnode 81:19 /dev/v4l-subdev8
    50331709 (V4L_SUBDEV) devnode 81:20 /dev/v4l-subdev9
    50331711 (V4L_SUBDEV) devnode 81:21 /dev/v4l-subdev10
    50331713 (V4L_SUBDEV) devnode 81:22 /dev/v4l-subdev11
  Pads (15):
    16777218 for device:1 (SINK MUST_CONNECT )
    16777219 for device:1 (SINK )
    16777220 for device:1 (SOURCE )
    16777221 for device:1 (SOURCE )
    16777223 for device:6 (SINK MUST_CONNECT )
    16777224 for device:6 (SOURCE MUST_CONNECT )
    16777226 for device:9 (SINK MUST_CONNECT )
    16777227 for device:9 (SOURCE MUST_CONNECT )
    16777229 for device:12 (SINK )
    16777233 for device:16 (SINK )
    16777237 for device:20 (SINK )
    16777241 for device:24 (SOURCE )
    16777245 for device:28 (SINK MUST_CONNECT )
    16777246 for device:28 (SOURCE MUST_CONNECT )
    16777262 for device:45 (SOURCE )
  Links (21):
    33554447 from:50331662 to:12 (ENABLED IMMUTABLE INTERFACE)
    33554451 from:50331666 to:16 (ENABLED IMMUTABLE INTERFACE)
    33554455 from:50331670 to:20 (ENABLED IMMUTABLE INTERFACE)
    33554459 from:50331674 to:24 (ENABLED IMMUTABLE INTERFACE)
    33554463 from:16777246 to:16777218 (DATA)
    33554465 from:16777220 to:16777223 (DATA)
    33554467 from:16777224 to:16777229 (ENABLED IMMUTABLE DATA)
    33554469 from:16777220 to:16777226 (DATA)
    33554471 from:16777227 to:16777233 (ENABLED IMMUTABLE DATA)
    33554473 from:16777241 to:16777219 (ENABLED IMMUTABLE DATA)
    33554475 from:16777221 to:16777237 (ENABLED IMMUTABLE DATA)
    33554479 from:16777262 to:16777245 (DATA)
    33554482 from:45 to:49 (ENABLED IMMUTABLE PHYSICAL INTERFACE
    33554484 from:45 to:51 (ENABLED IMMUTABLE PHYSICAL INTERFACE
    33554486 from:50331701 to:1 (ENABLED IMMUTABLE INTERFACE)
    33554488 from:50331703 to:6 (ENABLED IMMUTABLE INTERFACE)
    33554490 from:50331705 to:9 (ENABLED IMMUTABLE INTERFACE)
    33554492 from:50331707 to:28 (ENABLED IMMUTABLE INTERFACE)
    33554494 from:50331709 to:45 (ENABLED IMMUTABLE INTERFACE)
    33554496 from:50331711 to:49 (ENABLED IMMUTABLE INTERFACE)
    33554498 from:50331713 to:51 (ENABLED IMMUTABLE INTERFACE)
hantro-vpu (hantro-vpu)
  Path: /dev/media2
  Bus Info: platform: hantro-vpu
  Media Version: 393475
  HW Revision: 0
  Driver Version: 393475
  Entities (6):
    1 rockchip,rk3399-vpu-enc-source (IO_V4L)
    3 rockchip,rk3399-vpu-enc-proc (invalid type)
    6 rockchip,rk3399-vpu-enc-sink (IO_V4L)
    15 rockchip,rk3399-vpu-dec-source (IO_V4L)
    17 rockchip,rk3399-vpu-dec-proc (invalid type)
    20 rockchip,rk3399-vpu-dec-sink (IO_V4L)
  Interfaces (2):
    50331660 (V4L_VIDEO) devnode 81:14 /dev/video9
    50331674 (V4L_VIDEO) devnode 81:15 /dev/video10
  Pads (8):
    16777218 for device:1 (SOURCE )
    16777220 for device:3 (SINK )
    16777221 for device:3 (SOURCE )
    16777223 for device:6 (SINK )
    16777232 for device:15 (SOURCE )
    16777234 for device:17 (SINK )
    16777235 for device:17 (SOURCE )
    16777237 for device:20 (SINK )
  Links (8):
    33554440 from:16777218 to:16777220 (ENABLED IMMUTABLE DATA)
    33554442 from:16777221 to:16777223 (ENABLED IMMUTABLE DATA)
    33554445 from:50331660 to:1 (ENABLED IMMUTABLE INTERFACE)
    33554446 from:50331660 to:6 (ENABLED IMMUTABLE INTERFACE)
    33554454 from:16777232 to:16777234 (ENABLED IMMUTABLE DATA)
    33554456 from:16777235 to:16777237 (ENABLED IMMUTABLE DATA)
    33554459 from:50331674 to:15 (ENABLED IMMUTABLE INTERFACE)
    33554460 from:50331674 to:20 (ENABLED IMMUTABLE INTERFACE)
rkvdec (rkvdec)
  Path: /dev/media3
  Bus Info: platform:rkvdec
  Media Version: 393475
  HW Revision: 0
  Driver Version: 393475
  Entities (3):
    1 rkvdec-source (IO_V4L)
    3 rkvdec-proc (invalid type)
    6 rkvdec-sink (IO_V4L)
  Interfaces (1):
    50331660 (V4L_VIDEO) devnode 81:23 /dev/video11
  Pads (4):
    16777218 for device:1 (SOURCE )
    16777220 for device:3 (SINK )
    16777221 for device:3 (SOURCE )
    16777223 for device:6 (SINK )
  Links (4):
    33554440 from:16777218 to:16777220 (ENABLED IMMUTABLE DATA)
    33554442 from:16777221 to:16777223 (ENABLED IMMUTABLE DATA)
    33554445 from:50331660 to:1 (ENABLED IMMUTABLE INTERFACE)
    33554446 from:50331660 to:6 (ENABLED IMMUTABLE INTERFACE)
kgmt0 commented 1 year ago

@phodina Based on megapixels-list-devices's output, it doesn't look like anything is missing. My guess is that megapixels is somehow failing to enumerate the media devnodes but I'm not sure.

pdaian commented 1 year ago

I had this same issue. Removing the fromt cam section from the config solved it; for some reason it's finding my rear but not my front cam in /dev/media.

philmmanjaro commented 1 year ago

Here you go:

# 6.1 changes selfie cam name
# https://github.com/megous/linux/commit/59ee4accb3997098c7b65fbf529ef3033ab1fd5a
sed -i -e 's/m00_f_ov8858/ov8858/g' 'config/pine64,pinephone-pro.ini'