I am NOT with Purism, just another L5 owner.
I apologize in advance if this is a waste of your time.
A few things that may help you in your troubleshooting.?
‘sudo udevadm monitor’ shows a lot of output when flipping any of the three switches. When I turn the camera switch from off to on I get about 65 lines of output.
‘sudo dmesg -w’ shows the following additional output when I turn on the camera switch: (bottom of the 3 switches)
[19400.176963] imx7_media_csi: module is from the staging directory, the quality is unknown, you have been warned.
[19400.198484] imx7-csi 30a90000.csi: Registered csi capture as /dev/video0
[19400.217588] imx7-csi 30b80000.csi: Registered csi capture as /dev/video1
[19400.446669] imx8mq_mipi_csi2: module is from the staging directory, the quality is unknown, you have been warned.
[19400.479110] imx8mq-mipi-csi2 30a70000.csi: Consider updating driver imx8mq-mipi-csi2 to match on endpoints
[19400.488099] imx8mq-mipi-csi2 30b60000.csi: Consider updating driver imx8mq-mipi-csi2 to match on endpoints
[19400.615248] s5k3l6xx 3-002d: using default 24000000 Hz clock frequency
[19400.615646] of_get_named_gpiod_flags: parsed ‘rstn-gpios’ property of node ‘/soc@0/bus@30800000/i2c@30a50000/camera@2d[0]’ - status (0)
[19400.615906] s5k3l6xx 3-002d: probe i2c ffff000000c84800
[19400.644256] s5k3l6xx 3-002d: model low: 0x30
[19400.644911] s5k3l6xx 3-002d: model high: 0xC6
[19400.645382] s5k3l6xx 3-002d: revision number: 0xB0
[19400.646759] s5k3l6xx 3-002d: Consider updating driver s5k3l6xx to match on endpoints
[19400.656595] debugfs: Directory ‘s5k3l6’ with parent ‘/’ already present!
[19400.896287] hi846 2-0020: GPIO lookup for consumer reset
[19400.896530] hi846 2-0020: using device tree for GPIO lookup
[19400.896671] of_get_named_gpiod_flags: parsed ‘reset-gpios’ property of node ‘/soc@0/bus@30800000/i2c@30a40000/camera@20[0]’ - status (0)
[19400.896848] gpio gpiochip0: Persistence not supported for GPIO 25
[19400.896917] hi846 2-0020: GPIO lookup for consumer shutdown
[19400.896925] hi846 2-0020: using device tree for GPIO lookup
[19400.897001] of_get_named_gpiod_flags: parsed ‘shutdown-gpios’ property of node ‘/soc@0/bus@30800000/i2c@30a40000/camera@20[0]’ - status (0)
[19400.897060] gpio gpiochip4: Persistence not supported for GPIO 4
[19400.920460] hi846 2-0020: chip id 08 46 using 2 mipi lanes
[19400.921631] hi846 2-0020: Consider updating driver hi846 to match on endpoints
[19400.934559] debugfs: Directory ‘hi846’ with parent ‘/’ already present!
[19400.942458] hi846 2-0020: debugfs create dir error
I see in your millipixels output this: “Found config file at /usr/share/millipixels/config/purism,librem5r4.ini”
I have that file. This part seems interesting.
[big]
driver=s5k3l6xx 3-002d
media-driver=imx7-csi
libcamera-id=/base/soc@0/bus@30800000/i2c@30a50000/camera@2d
I see it mentioning two drivers. I take this to be kernel modules.?
‘sudo lsmod | grep s5k’ shows:
s5k3l6xx 32768 1
v4l2_fwnode 28672 3 hi846,imx8mq_mipi_csi2,s5k3l6xx
v4l2_async 28672 7 v4l2_fwnode,v4l2_flash_led_class,dw9714,hi846,imx8mq_mipi_csi2,imx7_media_csi,s5k3l6xx
videodev 278528 11 v4l2_async,v4l2_flash_led_class,videobuf2_v4l2,dw9714,hi846,hantro_vpu,videobuf2_common,imx8mq_mipi_csi2,i
mx7_media_csi,v4l2_mem2mem,s5k3l6xx
mc 77824 12 v4l2_async,videodev,v4l2_flash_led_class,videobuf2_v4l2,dw9714,hi846,hantro_vpu,videobuf2_common,imx8mq_mi
pi_csi2,imx7_media_csi,v4l2_mem2mem,s5k3l6xx
‘sudo lsmod | grep imx7’ shows this:
imx7_media_csi 32768 0
videobuf2_dma_contig 24576 2 hantro_vpu,imx7_media_csi
videobuf2_v4l2 32768 3 hantro_vpu,imx7_media_csi,v4l2_mem2mem
videobuf2_common 69632 6 videobuf2_dma_contig,videobuf2_v4l2,hantro_vpu,imx7_media_csi,v4l2_mem2mem,videobuf2_memops
v4l2_async 28672 7 v4l2_fwnode,v4l2_flash_led_class,dw9714,hi846,imx8mq_mipi_csi2,imx7_media_csi,s5k3l6xx
videodev 278528 11 v4l2_async,v4l2_flash_led_class,videobuf2_v4l2,dw9714,hi846,hantro_vpu,videobuf2_common,imx8mq_mipi_csi2,i
mx7_media_csi,v4l2_mem2mem,s5k3l6xx
mc 77824 12 v4l2_async,videodev,v4l2_flash_led_class,videobuf2_v4l2,dw9714,hi846,hantro_vpu,videobuf2_common,imx8mq_mi
pi_csi2,imx7_media_csi,v4l2_mem2mem,s5k3l6xx
Also in the config file it has, “libcamera-id=/base/soc@0/bus@30800000/i2c@30a50000/camera@2d”
Searching for something like it on the file system I found:
/sys/firmware/devicetree/base/soc@0/bus@30800000/i2c@30a50000/camera@2d
Perhaps something here, when compared to what you see, can add more clues?