/archlinux-ipu6-webcam

Easy installation for patched Intel IPU6 camera drivers

Primary LanguageShell

archlinux-ipu6-webcam

Note

Intel's IPU6 drivers are to be upstreamed in the new 6.10.x kernels. This means this repository will not be relevant for future releases of the linux kernel. However, for pre 6.10.x LTS kernels this repository is still helpful.

For reference see:

This repository is supposed to provide an easy installation for the patched Intel IPU6 camera drivers.

All PKGBUILDs in this repository are taken from this comment on the Archlinux forums. From v1.0.0 on, the PKGBUILDs are slightly modified to avoid conflicts with their AUR counter parts.

Supported kernels

Note

Due to frequent changes in the stable kernels, it is recommended to use LTS kernels in order to minimize issues when upgrading the kernel.

Warning

Currently kernel versions 6.7.x and 6.8.x are not supported.

LTS kernels:

  • 6.6.18-1-lts
  • 6.6.21-1-lts
  • 6.6.31-1-lts

Stable kernels:

  • 6.1.4-arch1-1
  • 6.3.7-arch1-1
  • 6.4.3-arch1-1
  • 6.4.7-arch1-2
  • 6.4.8-arch1-1
  • 6.4.12-arch1-1
  • 6.5.5-arch1-1 (see issue #42)
  • 6.5.6-arch2-1
  • 6.5.7-arch1-1
  • 6.5.8-arch1-1
  • 6.5.9-arch2-1
  • 6.6.1-arch1-1 (see issue #53)
  • 6.6.7-arch1-1
  • 6.6.8-arch1-1
  • 6.6.10-arch1-1

Zen kernels:

  • 6.1.4-zen2-1-zen
  • 6.6.7-zen-1-zen
  • 6.6.9-zen1-zen

Manjaro kernels:

Supported devices

Known working on these devices:

  • Lenovo ThinkPad X1 Carbon Gen 10 from #22 (comment)
  • Dell XPS 13 9315
  • Dell XPS 13 Plus 9320 from #22 (comment)
  • Dell Latitude 7440 from #29
  • Dell Precision 5480 from #47
  • Dell Latitude 7340 from #56

May work on many more Alder Lake laptops using Intel's IPU6 cameras. Let us know if it does on yours! Support for Tiger Lake and beyond Alder Lake is in progress.

This should work with all Arch Linux installation and perhaps even EndeavourOS. This installion has been tested and should work on a fresh Manjaro installation (#26 (comment)) but there are several issues reported by Manjaro users. Testing and more issues from Manjaro users are welcome.

Install

Run shell script install.sh to install all necessary packages and enable/start services. Make sure to reboot after a successful installation.

Test

Script test.sh

Test your webcam by running script test.sh.

Chromium and Firefox-based browsers

If you want to check, whether your camera works in Chromium-based Browsers (like Chrome, Brave, etc.) you can use this website to do so. Firefox from version 115 onwards should also work.

GNOME Cheese

You can also use Cheese (a image/video capture software from GNOME) to test your video stack. To do so, identify the name of the device exposed by your video stack with v4l2-ctl --list-devices. Then call Cheese : sudo cheese -d <your_device_name>.

Example: sudo cheese -d "Virtual Camera"

Uninstall

Run shell script uninstall.sh to disable/stop services and uninstall all previously installed packages.

Make camera work in some Electron-based applications

The camera should now work without any major issues in many applications (e.g. Chromium, OBS Studio, Firefox >= 115) but it might not work correctly in some other ones (e.g. Discord) due to the default NV12 format not being supported.

This can be fixed by running ./install.sh -a, which will add /etc/systemd/system/v4l2-relayd.service.d/override.conf to convert the camera output to the YUY2 format.

Please note that some applications (e.g. GNOME Cheese) might still not work. This is due to Intel's driver just being low-quality. There is an issue curently open for this.

Hibernation support

The module 'i2c_ljca' breaks resuming from hibernation. To fix this, doing modprobe -r i2c_ljca before hibernating is necessary. A script is provided by running ./install.sh -s. This script will be executed before hibernating and after resume. Since this is using modprobe, this will most likely not work on kernel lockdowns!

If you want both workarounds, you can run ./install.sh -as.

Tips and tricks

Solving error WARNING: erroneous pipeline: no element "icamerasrc"

When using yay as an AUR helper, chances are, that you will experience the following error message after upgrading to a newer kernel version: WARNING: erroneous pipeline: no element "icamerasrc" This error most likely occurs when running the test.sh script. This is probably due to yay is using the cached icamerasrc-git package from a previous install. In order to fix this, run the following command:

yay \
  --cleanmenu=false \
  --diffmenu=false \
  --editmenu=false \
  --rebuild \
  -S icamerasrc-git

You may also need to delete gstreamer's cache in your .cache directory.

Remove the warnings from an AUR helper

Some AUR helpers will warn you of some packages installed by install.sh not being in the Arch User Repository. There is usually a way to prevent these messages from showing up using the configuration file of the helper.

For example, if you're using paru, you might want to add the following to your /etc/paru.conf (or your user's config):

NoWarn = intel-ipu6ep-camera-bin  intel-ipu6ep-camera-hal-git-fix  v4l2-relayd  v4l2loopback-dkms-git-fix