tvl-depot/users/flokli/ipu6-softisp
Florian Klink c641fce62a feat(users/flokli/ipu6-softisp): expose qcam to $PATH
This allows testing the camera connection without pipewire in between:

```
LIBCAMERA_LOG_LEVELS=*:DEBUG qcam
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
[0:26:31.326112005] [51496]  INFO IPAManager ipa_manager.cpp:143 libcamera is not installed. Adding '/nix/store/src/ipa' to the IPA search path
[0:26:31.326354338] [51496] DEBUG IPAModule ipa_module.cpp:334 ipa_ipu3.so: IPA module /nix/store/da6s46p3dk9x7fhh0qj0wrxrqrq7y8av-libcamera-0.2.0/lib/libcamera/ipa_ipu3.so is signed
[0:26:31.326417399] [51496] DEBUG IPAManager ipa_manager.cpp:245 Loaded IPA module '/nix/store/da6s46p3dk9x7fhh0qj0wrxrqrq7y8av-libcamera-0.2.0/lib/libcamera/ipa_ipu3.so'
[0:26:31.326484670] [51496] DEBUG IPAModule ipa_module.cpp:334 ipa_soft_simple.so: IPA module /nix/store/da6s46p3dk9x7fhh0qj0wrxrqrq7y8av-libcamera-0.2.0/lib/libcamera/ipa_soft_simple.so is signed
[0:26:31.326518633] [51496] DEBUG IPAManager ipa_manager.cpp:245 Loaded IPA module '/nix/store/da6s46p3dk9x7fhh0qj0wrxrqrq7y8av-libcamera-0.2.0/lib/libcamera/ipa_soft_simple.so'
[0:26:31.326559430] [51496]  INFO Camera camera_manager.cpp:284 libcamera v0.2.0
[0:26:31.326728389] [51505] DEBUG Camera camera_manager.cpp:69 Starting camera manager
[0:26:31.345213320] [51505] DEBUG DeviceEnumerator device_enumerator.cpp:230 New media device "intel-ipu6" created from /dev/media1
[0:26:31.345249850] [51505] DEBUG DeviceEnumerator device_enumerator_udev.cpp:96 Defer media device /dev/media1 due to 36 missing dependencies
[0:26:31.350335759] [51505] DEBUG DeviceEnumerator device_enumerator_udev.cpp:322 All dependencies for media device /dev/media1 found
[0:26:31.350365700] [51505] DEBUG DeviceEnumerator device_enumerator.cpp:258 Added device /dev/media1: intel-ipu6
[0:26:31.350738881] [51505] DEBUG Camera camera_manager.cpp:113 Found registered pipeline handler 'SimplePipelineHandler'
[0:26:31.350765332] [51505] DEBUG Camera camera_manager.cpp:113 Found registered pipeline handler 'PipelineHandlerIPU3'
[0:26:31.350779457] [51505] DEBUG Camera camera_manager.cpp:113 Found registered pipeline handler 'PipelineHandlerUVC'
```

Change-Id: I30b4ede89f90e2455bf1313b3c7c4d638089e5db
Reviewed-on: https://cl.tvl.fyi/c/depot/+/11180
Reviewed-by: flokli <flokli@flokli.de>
Autosubmit: flokli <flokli@flokli.de>
Tested-by: BuildkiteCI
2024-03-19 06:59:57 +00:00
..
kernel chore(3p/sources): bump channels & overlays (2024-03-17) 2024-03-18 16:28:40 +00:00
libcamera chore(users/flokli/ipu6-softisp): refresh libcamera patches 2024-03-19 06:59:57 +00:00
config.nix feat(users/flokli/ipu6-softisp): expose qcam to $PATH 2024-03-19 06:59:57 +00:00
default.nix feat(users/flokli/ipu6-softisp): test pipewire & wireplumber 2024-03-19 06:59:52 +00:00
README.md chore(3p/sources): bump channels & overlays (2024-03-17) 2024-03-18 16:28:40 +00:00

ipu6-softisp

This code adds support for the ipu6 webcams via libcamera, based on the work in https://copr.fedorainfracloud.org/coprs/jwrdegoede/ipu6-softisp/.

It's supposed to be included in your NixOS configuration imports, and will:

  • Add some patches to your kernel, which should apply on 6.8.x
  • Add the ipu6-camera-bins firmware (still needed)
  • Enable some kernel config options
  • Add an udev rule so libcamera can do DMABUF things
  • Override services.pipewire.package and services.pipewire.wireplumber.package to use a pipewire built with a libcamera with support for this webcam.

Please make sure you don't have any of the hardware.ipu6 options still enabled, as they use the closed-source userspace stack and will conflict.

Also make sure to track nixos-unstable for this. This code will get periodically updated to be compatible with nixos-unstable!

The testing instructions from https://copr.fedorainfracloud.org/coprs/jwrdegoede/ipu6-softisp/ still apply.

qcam can be found in libcamera-qcam (pending on https://github.com/NixOS/nixpkgs/pull/284964 to trickle into master).

Thanks to Hans de Goede for helping me bringing this up, as well as to puckipedia for sorting out some pipewire-related confusion.