<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<atom:link href="https://bbs.archlinux.org/extern.php?action=feed&amp;type=rss" rel="self" type="application/rss+xml" />
		<title><![CDATA[Arch Linux Forums]]></title>
		<link>https://bbs.archlinux.org/index.php</link>
		<description><![CDATA[The most recent topics at Arch Linux Forums.]]></description>
		<lastBuildDate>Sat, 18 Jul 2026 02:44:45 +0000</lastBuildDate>
		<generator>FluxBB</generator>
		<item>
			<title><![CDATA[hdajackretask doesn't work anymore?]]></title>
			<link>https://bbs.archlinux.org/viewtopic.php?id=314208&amp;action=new</link>
			<description><![CDATA[<p>Hi, I was wondering if there was a way to fix the sound stuck at 100% while HDA is loaded?</p>]]></description>
			<author><![CDATA[dummy@example.com (thesupertechie)]]></author>
			<pubDate>Sat, 18 Jul 2026 02:44:45 +0000</pubDate>
			<guid>https://bbs.archlinux.org/viewtopic.php?id=314208&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Verification Requested: GitLab SSO Account Allowlist Pending for User]]></title>
			<link>https://bbs.archlinux.org/viewtopic.php?id=314306&amp;action=new</link>
			<description><![CDATA[<p>Hello Arch Infrastructure Team and Moderators,I am writing to respectfully request assistance with activating my central Arch Linux Single Sign-On / GitLab account. I understand that the infrastructure is maintained entirely by busy volunteers, but I want to ensure my registration did not get lost in the spam filter or ticket backlog.I have completed all required initial configuration steps successfully:Registered my username: jchasser Successfully configured my TOTP multi-factor authentication (Google Authenticator).Emailed accountsupport@archlinux.org from my registered address to request manual allowlisting, as instructed by the login screen redirect.I sent the allowlist validation request today, July 17, 2026, but I have not yet received an automated ticket number response or account activation notification.I am eager to log in so I can properly contribute to the community. Could an administrator please verify if my support ticket is visible in the queue, or manually approve the jchasser account?Thank you very much for your time, hard work, and dedication to maintaining the Arch Linux infrastructure!</p>]]></description>
			<author><![CDATA[dummy@example.com (Jchasser)]]></author>
			<pubDate>Sat, 18 Jul 2026 02:39:54 +0000</pubDate>
			<guid>https://bbs.archlinux.org/viewtopic.php?id=314306&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[New key signed boot entries not appearing]]></title>
			<link>https://bbs.archlinux.org/viewtopic.php?id=314293&amp;action=new</link>
			<description><![CDATA[<p>we closing in: you seem to have not enrolled you custom MOK into your uefi - hence shim fails to verify it (which makes sense as you mentioned you reflashed your bios - which likely removed your MOK if you had previously enrolled it)<br />according to the wiki this is where mok-manager should start to allow you to either enroll the hash or the key used to sign</p><p><a href="https://wiki.archlinux.org/title/Unified_Extensible_Firmware_Interface/Secure_Boot#shim" rel="nofollow">https://wiki.archlinux.org/title/Unifie … _Boot#shim</a><br />and as you use grub<br /><a href="https://wiki.archlinux.org/title/GRUB#Shim-lock" rel="nofollow">https://wiki.archlinux.org/title/GRUB#Shim-lock</a></p><p>unfortunately this is pretty much where my ability to help ends as i have quite my own view of secureboot<br />as for why --removable works: i highly suspect your uefi gets confused by the second esp in combination with secureboot - wonder how/why it worked before you started looking into securebokt - maybe some conincidence</p>]]></description>
			<author><![CDATA[dummy@example.com (cryptearth)]]></author>
			<pubDate>Sat, 18 Jul 2026 02:28:55 +0000</pubDate>
			<guid>https://bbs.archlinux.org/viewtopic.php?id=314293&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Virtual Machine crashing with VFIO. Had a working setup for 6 months.]]></title>
			<link>https://bbs.archlinux.org/viewtopic.php?id=314276&amp;action=new</link>
			<description><![CDATA[<p>The VM name is pepper-mint</p><div class="codebox"><pre><code>Jul 17 20:34:36 archlinux dnsmasq-dhcp[1003]: DHCPREQUEST(virbr0) 192.168.122.29 52:54:00:d9:ba:32
Jul 17 20:34:36 archlinux dnsmasq-dhcp[1003]: DHCPACK(virbr0) 192.168.122.29 52:54:00:d9:ba:32 pepper-mint
Jul 17 20:46:26 archlinux kernel: pci_bus 0000:0c: Allocating resources
Jul 17 20:46:28 archlinux kernel: xhci_hcd 0000:6d:00.0: bad transfer trb length 4 in event trb
Jul 17 20:47:09 archlinux libvirtd[926]: Operation not supported: live attach of device &#039;graphics&#039; is not supported</code></pre></div><p>I believe the last one is from when I attempted to add spice graphics to the crashed VM in virtmanager. Left out are usb connection messages.</p><p>I don&#039;t see anything other than my USB devices in dmesg -T from the time of the crash.</p><div class="codebox"><pre><code> lspci | grep 6d
6d:00.0 USB controller: ASMedia Technology Inc. ASM4242 USB 3.2 xHCI Controller (rev 01)</code></pre></div><p>The VM does respond to ping pepper_mint</p><div class="codebox"><pre><code>01:00.0 VGA compatible controller: NVIDIA Corporation GB203 [GeForce RTX 5070 Ti] (rev a1) (prog-if 00 [VGA controller])
	Subsystem: Micro-Star International Co., Ltd. [MSI] Device 5310
	!!! Unknown header type 7f
	Memory at d8000000 (32-bit, non-prefetchable) [size=64M]
	Memory at f800000000 (64-bit, prefetchable) [size=16G]
	Memory at fc00000000 (64-bit, prefetchable) [size=32M]
	I/O ports at f000 [size=128]
	Expansion ROM at dc000000 [disabled] [size=512K]
	Kernel driver in use: vfio-pci
	Kernel modules: nouveau

01:00.1 Audio device: NVIDIA Corporation GB203 High Definition Audio Controller (rev a1) (prog-if 00 [HDA compatible])
	Subsystem: NVIDIA Corporation Device 0000
	!!! Unknown header type 7f
	Memory at dc080000 (32-bit, non-prefetchable) [size=16K]
	Kernel driver in use: vfio-pci
	Kernel modules: snd_hda_intel</code></pre></div><p>After shutting down the VM when attempting to restart it.</p><div class="codebox"><pre><code>Error starting domain: internal error: Unknown PCI header type &#039;127&#039; for device &#039;0000:01:00.0&#039;

Traceback (most recent call last):
  File &quot;/usr/share/virt-manager/virtManager/asyncjob.py&quot;, line 67, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
    ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;/usr/share/virt-manager/virtManager/asyncjob.py&quot;, line 101, in tmpcb
    callback(*args, **kwargs)
    ~~~~~~~~^^^^^^^^^^^^^^^^^
  File &quot;/usr/share/virt-manager/virtManager/object/libvirtobject.py&quot;, line 57, in newfn
    ret = fn(self, *args, **kwargs)
  File &quot;/usr/share/virt-manager/virtManager/object/domain.py&quot;, line 1446, in startup
    self._backend.create()
    ~~~~~~~~~~~~~~~~~~~~^^
  File &quot;/usr/lib/python3.14/site-packages/libvirt.py&quot;, line 1401, in create
    raise libvirtError(&#039;virDomainCreate() failed&#039;)
libvirt.libvirtError: internal error: Unknown PCI header type &#039;127&#039; for device &#039;0000:01:00.0&#039;</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (MichaelMocha)]]></author>
			<pubDate>Sat, 18 Jul 2026 02:05:59 +0000</pubDate>
			<guid>https://bbs.archlinux.org/viewtopic.php?id=314276&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[unwanted firmware update?!]]></title>
			<link>https://bbs.archlinux.org/viewtopic.php?id=314305&amp;action=new</link>
			<description><![CDATA[<div class="quotebox"><cite>ednana wrote:</cite><blockquote><div><p>manufacturer website says last&#160; BIOS firmware leased 4 months:&#160; &#160;2026-03-11<br />But I saw these messages this week only.</p></div></blockquote></div><p>Pretty enough time for update to get into LVFS database. However, fwupdmgr get-history shows nothing. That&#039;s strange, indeed.</p><p>Maybe it wasn&#039;t related to BIOS firmware but some key revocation etc.</p><div class="quotebox"><cite>ednana wrote:</cite><blockquote><div><p>I just ran sudo dmidecode, and i couldn&#039;t get clear BIOS version.</p></div></blockquote></div><p>Maybe</p><div class="codebox"><pre><code>$ cat /sys/class/dmi/id/bios_version</code></pre></div><p>?</p>]]></description>
			<author><![CDATA[dummy@example.com (dimich)]]></author>
			<pubDate>Sat, 18 Jul 2026 00:43:07 +0000</pubDate>
			<guid>https://bbs.archlinux.org/viewtopic.php?id=314305&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[VLC Codec Issue]]></title>
			<link>https://bbs.archlinux.org/viewtopic.php?id=311415&amp;action=new</link>
			<description><![CDATA[<div class="quotebox"><cite>system72 wrote:</cite><blockquote><div><p><a href="https://archlinux.org/packages/extra/x86_64/vlc-plugins-all/" rel="nofollow">https://archlinux.org/packages/extra/x8 … ugins-all/</a></p></div></blockquote></div><p>after install this i the UI still yelled at me codec not supported. When is the correct way to expect the vlc load those codec?</p>]]></description>
			<author><![CDATA[dummy@example.com (rebornKidz)]]></author>
			<pubDate>Fri, 17 Jul 2026 23:22:02 +0000</pubDate>
			<guid>https://bbs.archlinux.org/viewtopic.php?id=311415&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Canon Printer is not detected]]></title>
			<link>https://bbs.archlinux.org/viewtopic.php?id=314304&amp;action=new</link>
			<description><![CDATA[<div class="codebox"><pre><code>ss -tulpen | grep -E &#039;59.87&#039;
stat dev/usb/lp*</code></pre></div><p>If you run </p><div class="codebox"><pre><code>dmesg -W</code></pre></div><p> and attach the printer (and power it on) - what tail does that generate?</p>]]></description>
			<author><![CDATA[dummy@example.com (seth)]]></author>
			<pubDate>Fri, 17 Jul 2026 21:56:12 +0000</pubDate>
			<guid>https://bbs.archlinux.org/viewtopic.php?id=314304&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Acer Aspire A315-21 HW issues...]]></title>
			<link>https://bbs.archlinux.org/viewtopic.php?id=311973&amp;action=new</link>
			<description><![CDATA[<p>Those aren&#039;t the one @5hridhyan suggested but if you&#039;ve not run into that particular error, that&#039;s moot anyways.</p>]]></description>
			<author><![CDATA[dummy@example.com (seth)]]></author>
			<pubDate>Fri, 17 Jul 2026 21:49:51 +0000</pubDate>
			<guid>https://bbs.archlinux.org/viewtopic.php?id=311973&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[[SOLVED] sbsigntools: can't build from sources due to 403 Forbidden]]></title>
			<link>https://bbs.archlinux.org/viewtopic.php?id=314298&amp;action=new</link>
			<description><![CDATA[<div class="quotebox"><cite>seth wrote:</cite><blockquote><div><p>@dimich, this probably should be fixed upstream, see eg. <a href="https://github.blog/security/application-security/improving-git-protocol-security-github/#no-more-unauthenticated-git" rel="nofollow">https://github.blog/security/applicatio … icated-git</a></p></div></blockquote></div><p>Probably not even upstream but at upstream&#039;s hosting provider. BTW, almost all links for projects hosted on that site give me 500 Internal Server Error.</p><p>There is another repo of this project at github: <a href="https://github.com/rustyrussell/ccan" rel="nofollow">https://github.com/rustyrussell/ccan</a>, at it looks more up-to-date than at git.ozlabs.org.<br />Maybe it makes sense to change source URL in sbsigntools package to github.</p>]]></description>
			<author><![CDATA[dummy@example.com (dimich)]]></author>
			<pubDate>Fri, 17 Jul 2026 21:47:10 +0000</pubDate>
			<guid>https://bbs.archlinux.org/viewtopic.php?id=314298&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Mic stop working and decrease itself volume]]></title>
			<link>https://bbs.archlinux.org/viewtopic.php?id=314301&amp;action=new</link>
			<description><![CDATA[<p>Not really <img src="https://bbs.archlinux.org/img/smilies/sad.png" width="15" height="15" alt="sad" /><br />I had this problem of just one side of the headset problem but I already fixed it. The problem now is just de microphone audio going down alone, muting itself and being low even in 150%<br />Btw I have a dual boot with win10 so I can say the mic works fine.</p>]]></description>
			<author><![CDATA[dummy@example.com (x_michelly666_x)]]></author>
			<pubDate>Fri, 17 Jul 2026 21:26:30 +0000</pubDate>
			<guid>https://bbs.archlinux.org/viewtopic.php?id=314301&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[How to use the IPU6 webcam with kernel 6.10+?]]></title>
			<link>https://bbs.archlinux.org/viewtopic.php?id=297262&amp;action=new</link>
			<description><![CDATA[<p>Hi, I just wanna share how I made my webcam works. The whole thing was done with the help of Claude, as well as the following guide. Corrections are welcome.</p><p><strong>Intel IPU6 (OV02C10) Webcam on Arch / EndeavourOS </strong><br />Getting <em>full hardware-ISP quality</em> (factory-calibrated, what Windows/Dell-Ubuntu give you) out of the IPU6 camera.</p><p><strong>Tested:</strong> Dell XPS 13 9340 · OV02C10 sensor · IPU6 Meteor Lake · EndeavourOS · kernels 7.1.2 and 7.1.3-arch1-3 (survived the bump via DKMS).</p><p><strong>Result:</strong> <em>/dev/video60 = Intel MIPI Camera</em>, works in Firefox/Zoom/VLC/Teams/OBS, on-demand (LED only lights when an app opens it), boot-persistent, suspend-safe.</p><p><strong>Info</strong>: There are two paths. Pick one, never mix.</p><ol class="decimal"><li><p><em>libcamera + software ISP</em>: Open source, near-zero setup on kernel ≥ 6.10. But there&#039;s no factory calibration, framerate dips, processed on your CPU. Most guides and the &quot;Galaxy Book&quot;-style fix scripts install this.</p></li><li><p><em>Intel HAL + hardware ISP</em>: Real calibration, hardware processing, proper color, much better image quality.</p></li></ol><p> The following is for option 2:&#160; <strong>Intel HAL + hardware ISP</strong>.&#160; Mixing them means two stacks contending for the sensor and shadowing each other&#039;s libraries. </p><p><strong>Part 1 — Quick Installation</strong><br /><strong>1.1 Packages</strong></p><div class="codebox"><pre><code>sudo pacman -S —needed base-devel git v4l2loopback-dkms v4l2loopback-utils v4l-utils
pamac build intel-ipu6-camera-bin intel-ipu6-dkms-git icamerasrc-git v4l2-relayd</code></pre></div><p><strong>1.2 Build the HAL (patch required)</strong></p><div class="codebox"><pre><code>git clone https://aur.archlinux.org/intel-ipu6-camera-hal-git.git
cd intel-ipu6-camera-hal-git</code></pre></div><p>Add this <em>prepare()</em> to the PKGBUILD:</p><div class="codebox"><pre><code>prepare() {
    cd &quot;$srcdir/$_pkgname&quot;
    find . -name CMakeLists.txt -exec sed -i &#039;s/-Werror//g&#039; {} +
    find . -name CMakeLists.txt -exec sed -i &#039;s/-D_FORTIFY_SOURCE=[0-9]//g&#039; {} +
    cd &quot;$srcdir&quot;
}</code></pre></div><p>and these two lines at the top of <em>build()</em>:</p><div class="codebox"><pre><code>export CFLAGS=&quot;${CFLAGS//-D_FORTIFY_SOURCE=2/} -Wno-error&quot;
export CXXFLAGS=&quot;${CXXFLAGS//-D_FORTIFY_SOURCE=2/} -Wno-error&quot;</code></pre></div><p>Then <em>makepkg -si</em>. Confirm: <em>ls -l /usr/lib/libcamhal.so*</em> must resolve to a real file.</p><p><strong>1.3 Smoke-test the hardware ISP</strong></p><div class="codebox"><pre><code>sudo modprobe intel-ipu6-psys        # usually auto-loads; check `lsmod | grep psys`
ls -l /dev/ipu-psys0                 # MUST exist
sudo -E gst-launch-1.0 icamerasrc buffer-count=7 ! \
    video/x-raw,format=NV12,width=1280,height=720 ! videoconvert ! ximagesink</code></pre></div><p> live picture here means the hard part is done.</p><p><strong>1.4 Relay config</strong></p><div class="codebox"><pre><code>sudo tee /etc/default/v4l2-relayd &gt; /dev/null &lt;&lt; &#039;EOF&#039;
DEVICE=/dev/video60
CARD_LABEL=&quot;Intel MIPI Camera&quot;
VIDEOSRC=&quot;icamerasrc buffer-count=7&quot;
FORMAT=NV12
WIDTH=1280
HEIGHT=720
FRAMERATE=30/1
EOF

sudo tee /etc/modprobe.d/v4l2loopback.conf &gt; /dev/null &lt;&lt; &#039;EOF&#039;
options v4l2loopback devices=0
EOF</code></pre></div><p><strong>1.5 Readiness script</strong></p><div class="codebox"><pre class="vscroll"><code>sudo tee /usr/local/bin/ipu6-camera-ready &gt; /dev/null &lt;&lt; &#039;EOF&#039;
#!/bin/sh
# Exits 0 only when PSYS is up, the sensor is in the media graph, and a
# correctly-labeled v4l2loopback device exists. Triggered by udev.
set -u
LOOPBACK_DEV=/dev/video60
LOOPBACK_LABEL=&quot;Intel MIPI Camera&quot;

log() { echo &quot;ipu6-camera-ready: $*&quot;; }
labeled_loopback_exists() {
    grep -qlx &quot;$LOOPBACK_LABEL&quot; /sys/devices/virtual/video4linux/*/name 2&gt;/dev/null
}

if [ ! -e /dev/ipu-psys0 ]; then
    log &quot;waiting for PSYS…&quot;
    i=0
    while [ $i -lt 60 ]; do
        [ -e /dev/ipu-psys0 ] &amp;&amp; break
        sleep 0.5; i=$((i + 1))
    done
fi
[ -e /dev/ipu-psys0 ] || { log &quot;FAIL: /dev/ipu-psys0 never appeared&quot;; exit 1; }

[ -e /usr/lib/libcamhal.so ] || { log &quot;FAIL: libcamhal.so missing&quot;; exit 1; }

log &quot;waiting for sensor in media graph…&quot;
i=0; ready=0
while [ $i -lt 60 ]; do
    for m in /dev/media*; do
        [ -e &quot;$m&quot; ] || continue
        media-ctl -d &quot;$m&quot; -p 2&gt;/dev/null | grep -qi &#039;ov02c10&#039; &amp;&amp; { ready=1; break; }
    done
    [ &quot;$ready&quot; -eq 1 ] &amp;&amp; break
    sleep 0.5; i=$((i + 1))
done
[ &quot;$ready&quot; -eq 1 ] || { log &quot;WARN: sensor not confirmed; settling&quot;; sleep 5; }

if labeled_loopback_exists; then
    log &quot;loopback already present and labeled&quot;
else
    log &quot;creating labeled loopback at $LOOPBACK_DEV…&quot;
    systemctl stop &#039;v4l2-relayd@0.service&#039; 2&gt;/dev/null
    modprobe -r v4l2loopback 2&gt;/dev/null
    modprobe v4l2loopback || { log &quot;FAIL: cannot load v4l2loopback&quot;; exit 1; }
    v4l2loopback-ctl add -n &quot;$LOOPBACK_LABEL&quot; -x 1 &quot;$LOOPBACK_DEV&quot; \
        || { log &quot;FAIL: v4l2loopback-ctl add failed&quot;; exit 1; }
fi

i=0
while [ $i -lt 30 ]; do
    [ -c &quot;$LOOPBACK_DEV&quot; ] &amp;&amp; break
    sleep 0.2; i=$((i + 1))
done
[ -c &quot;$LOOPBACK_DEV&quot; ] || { log &quot;FAIL: $LOOPBACK_DEV never appeared&quot;; exit 1; }
labeled_loopback_exists || { log &quot;FAIL: loopback not labeled &#039;$LOOPBACK_LABEL&#039;&quot;; exit 1; }

log &quot;ready: PSYS up, $LOOPBACK_DEV labeled &#039;$LOOPBACK_LABEL&#039;&quot;
exit 0
EOF
sudo chmod +x /usr/local/bin/ipu6-camera-ready</code></pre></div><p><strong>1.6 Units + udev trigger</strong></p><div class="codebox"><pre><code>sudo tee /etc/systemd/system/ipu6-camera-ready.service &gt; /dev/null &lt;&lt; &#039;EOF&#039;
[Unit]
Description=Prepare IPU6 camera stack (PSYS + labeled v4l2loopback)
After=systemd-modules-load.service
Upholds=v4l2-relayd@0.service

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/bin/ipu6-camera-ready

[Install]
WantedBy=multi-user.target
EOF

sudo mkdir -p /etc/systemd/system/v4l2-relayd@.service.d
sudo tee /etc/systemd/system/v4l2-relayd@.service.d/10-restart.conf &gt; /dev/null &lt;&lt; &#039;EOF&#039;
[Service]
RestartSec=5
EOF

sudo tee /etc/udev/rules.d/99-ipu6-camera.rules &gt; /dev/null &lt;&lt; &#039;EOF&#039;
ACTION==&quot;add&quot;, KERNEL==&quot;ipu-psys0&quot;, TAG+=&quot;systemd&quot;, ENV{SYSTEMD_WANTS}=&quot;ipu6-camera-ready.service&quot;
EOF

sudo systemctl daemon-reload
sudo udevadm control —reload-rules
sudo systemctl enable ipu6-camera-ready.service</code></pre></div><p><strong>1.7 Kill the libcamera duplicate</strong></p><div class="codebox"><pre><code>sudo tee /etc/wireplumber/wireplumber.conf.d/50-disable-libcamera.conf &gt; /dev/null &lt;&lt; ‘EOF’
wireplumber.profiles = {
  main = {
    monitor.libcamera = disabled
  }
}
EOF
systemctl —user restart wireplumber pipewire</code></pre></div><p><strong>1.8 Reboot and verify</strong></p><div class="codebox"><pre><code>sudo reboot</code></pre></div><div class="codebox"><pre><code>systemctl is-active ipu6-camera-ready.service          # active
systemctl is-active ‘v4l2-relayd@0.service’            # active
systemctl show ‘v4l2-relayd@0.service’ -p UpheldBy     # UpheldBy=ipu6-camera-ready.service
v4l2-ctl -d /dev/video60 —info | grep ‘Card type’     # Intel MIPI Camera
wpctl status | grep -iE ‘MIPI|ov02’                    # only Intel MIPI Camera</code></pre></div><p>Resilience check — the relay should come back on its own:</p><div class="codebox"><pre><code>sudo systemctl stop ‘v4l2-relayd@0.service’; sleep 8; systemctl is-active ‘v4l2-relayd@0.service’</code></pre></div><p><strong>Part 2 — Design Choices &amp; Pitfalls</strong><br />Why each piece is the way it is, and what bites you if you deviate. Every pitfall below was hit for real.</p><ul><li><p><strong>2.1 Why the proprietary path at all — and why “obsolete” is a lie</strong></p><ul><li><p><strong>Choice:</strong> use Intel’s out-of-tree PSYS + HAL rather than libcamera.</p></li><li><p><strong>The trap:</strong> <em>intel-ipu6-dkms-git</em>’s AUR page says <em>”This package is obsolete! Linux kernel 6.10 onwards now has built-in IPU6 drivers and this package will no longer work. Uninstall it.”</em> Its maintainer also wrote <em>”IPU6 is so horrendous I’ve basically given up on it.”</em> Intel’s own repos target kernel 6.12/Ubuntu 24.04, and <em>patch/v7.0/in-tree-build/</em> is <strong>empty</strong> — no PSYS build workaround for kernel 7. Every signal says stop.</p></li><li><p><strong>The reality:</strong> those warnings refer to the <strong>sensor and ISYS</strong> drivers, which <em>are</em> in-tree now. <strong>PSYS never went in-tree</strong> — Intel keeps the hardware-ISP algorithms proprietary. It’s a separate module, still required, and the DKMS package still builds it fine on 7.x despite the missing patch directory.</p></li><li><p><strong>How to check for yourself</strong> rather than trust the warning:</p><p><em>sudo find /usr/lib/modules/$(uname -r) /var/lib/dkms -iname ‘*psys*’</em><br /><em>sudo find /var/lib/dkms/ipu6-drivers -name make.log -exec tail -20 {} \;;</em></p><p>If you see <em>LD [M] …/psys/intel-ipu6-psys.ko</em> and <em>exit code: 0</em>, it built. That single check is what this entire guide rests on.</p></li></ul></li><li><p><strong>2.2 The HAL build patch</strong></p><ul><li><p><strong>Choice:</strong> strip <em>-Werror</em> and the fortify redefinition.</p></li><li><p><strong>Pitfall:</strong> makepkg injects <em>-D_FORTIFY_SOURCE=2</em>; the HAL’s CMake sets it too; GCC warns about the redefinition; <em>-Werror</em> promotes it to fatal. Build dies at ~0% on <em>I3AControlFactory.cpp</em>.</p></li><li><p><strong>Pitfall:</strong> old AUR comments suggest patches for <em>intel-ipu6ep-camera-hal-git</em> (the deprecated Alder-Lake-only package) with different CMake flags like <em>-DIPU_VER</em>. <strong>Don’t apply them</strong> — the current unified package uses <em>-DIPU_VERSIONS=”ipu6;ipu6ep;ipu6epmtl”</em> and those old diffs will break it differently.</p></li><li><p><strong>Watch for:</strong> if stripping <em>-Werror</em> reveals a <em>genuine</em> C++ error deeper in (not a promoted warning), you’ve hit a real toolchain incompatibility that needs source patches nobody has written. That’s the point to stop.</p></li></ul></li><li><p><strong>2.3 PSYS doesn’t need forcing — but check</strong></p><ul><li><p><strong>Choice:</strong> rely on modalias auto-loading.</p></li><li><p><strong>Pitfall:</strong> the obvious move is <em>/etc/modules-load.d/ipu6-psys.conf</em>. Usually unnecessary — the kernel matches the PCI device and loads <em>intel_ipu6_psys</em> on its own. Verify with <em>lsmod | grep psys</em> after a clean boot before adding anything.</p></li><li><p><strong>Pitfall:</strong> <em>/dev/ipu-psys0</em> existing does <strong>not</strong> mean the stack is usable — see 2.6.</p></li><li><p><strong>Note:</strong> early dmesg shows <em>deferred probe pending: intel-ipu6: IPU6 bridge init failed</em>. That’s <strong>normal</strong>; it resolves later in boot. Don’t chase it.</p></li></ul></li><li><p><strong>2.4 Why a relay at all</strong></p><ul><li><p><strong>Choice:</strong> bridge <em>icamerasrc</em> → v4l2loopback via <em>v4l2-relayd</em>.</p></li><li><p><strong>Why:</strong> <em>icamerasrc</em> is a GStreamer element. Firefox, Zoom, VLC, Teams, OBS don’t speak GStreamer — they want a <em>/dev/video*</em> node. The relay runs the HAL pipeline and writes frames into a virtual camera every app can open.</p></li><li><p><strong>Bonus:</strong> <em>v4l2-relayd</em> is <strong>on-demand</strong> — it only runs the pipeline when an app opens the device, so the camera LED stays dark and CPU stays idle otherwise. Don’t replace it with an always-on <em>gst-launch</em> service; you&#039;d lose that and light your LED 24/7. (Verify with: LED off at idle, <em>ps aux | grep -c ‘icamerasrc’</em> → 1, the daemon itself.)</p></li><li><p><strong>Nice detail:</strong> the shipped unit already has <em>DeviceAllow=char-intel-ipu6-psys</em> — this package was written with IPU6 in mind.</p></li></ul></li><li><p><strong>2.5 The device-number trap — use video60, not video0</strong></p><ul><li><p><strong>Choice:</strong> pin the loopback to <em>/dev/video60</em>.</p></li><li><p><strong>Pitfall:</strong> the obvious move is video0 (apps default to it). <strong>Don’t.</strong> The in-tree ISYS driver creates ~48 raw nodes that claim video0 upward, and <strong>their numbering shifts between boots</strong> (I saw 41 nodes one boot, 48 the next). Ask for video0 and you’ll either get <em>failed to create device: File exists</em>, or get silently bumped elsewhere while a raw <em>ipu6</em> node squats at video0 — apps then find garbage where the camera should be. Symptom: <em>v4l2-ctl -d /dev/video0 —info</em> reports <em>Card type: ipu6</em> at 3840x2160.</p></li><li><p><strong>Pitfall:</strong> <em>options v4l2loopback devices=1</em> auto-creates an unlabeled “Dummy” device at load that collides with the one you want. Use <em>devices=0</em> and let the script create exactly one, explicitly.</p></li><li><p><strong>Note:</strong> <em>DEVICE=</em> in <em>/etc/default/v4l2-relayd</em> is nearly decorative — the unit’s <em>ExecStart</em> greps <em>/sys/devices/virtual/video4linux/*/name</em> for <em>CARD_LABEL</em>. The label is what matters; keep <em>DEVICE=</em> accurate anyway.</p></li></ul></li><li><p><strong>2.6 Why udev triggers it, not a boot target</strong></p><ul><li><p><strong>Choice:</strong> <em>ACTION==”add”, KERNEL==”ipu-psys0”, TAG+=”systemd”, ENV{SYSTEMD_WANTS}=”…”</em>.</p></li><li><p><strong>Why:</strong> the kernel tells you when PSYS exists. Hanging the service off <em>basic.target</em> means guessing whether PSYS is there yet — the device event <em>is</em> the readiness signal, so the ordering problem disappears structurally.</p></li><li><p><strong>Pitfall:</strong> <em>TAG+=”systemd”</em> is mandatory. Per <em>systemd.device(5)</em>, <em>SYSTEMD_WANTS</em> “is not taken into account unless the device is tagged with the systemd tag” — without it the rule silently does nothing.</p></li><li><p><strong>Pitfall:</strong> systemd “will only act on <em>Wants=</em> when a device <strong>first becomes active</strong>”. Testing with <em>udevadm trigger</em> fires udev but not necessarily the systemd side. <strong>Only a real reboot proves this.</strong></p></li></ul></li><li><p><strong>2.7 Why `sleep 5` had to go</strong></p><ul><li><p><strong>Choice:</strong> poll <em>media-ctl</em> for the sensor instead of sleeping.</p></li><li><p><strong>Why:</strong> PSYS appears <em>before</em> the IPU6 stack is usable — the kernel does a deferred probe and the sensor lands in the media graph a moment later. The original design covered this with <em>sleep 5</em>: a magic number that’s a guess, breaks if a future kernel is slower, and wastes time if it’s faster.<br />Polling for the actual condition (<em>media-ctl -d /dev/mediaN -p | grep ov02c10</em>) returns in <strong>0s</strong> on this hardware and self-adjusts elsewhere.</p></li><li><p><strong>Pitfall:</strong> don’t hard-fail if <em>media-ctl</em> is missing or the graph names things differently on other hardware — fall back to a settle delay. Insurance, not a tripwire.</p></li></ul></li><li><p><strong>2.8 Why two units — you cannot merge them</strong></p><ul><li><p><strong>Choice:</strong> a separate unsandboxed <em>ipu6-camera-ready.service</em> does privileged setup; the relay only relays.</p></li><li><p><strong>This looks redundant. It is not optional.</strong> <em>v4l2-relayd@.service</em> ships with:</p><p><em>CapabilityBoundingSet=&#160; &#160; &#160; &#160; &#160; # empty — NO capabilities</em><br /><em>DevicePolicy=closed</em><br /><em>DeviceAllow=char-video4linux</em><br /><em>DeviceAllow=char-intel-ipu6-psys</em></p></li><li><p><strong>Pitfall (tested):</strong> folding <em>modprobe</em> + <em>v4l2loopback-ctl add</em> into the relay’s own <em>ExecStartPre</em> fails with:<br /><em>unable to open control device ‘/dev/v4l2loopback’: Operation not permitted</em><br />No <em>CAP_SYS_MODULE</em>, and <em>/dev/v4l2loopback</em> isn’t in the DeviceAllow list. The relay <strong>deliberately cannot</strong> load modules or create loopbacks. Merging means gutting the packager’s security hardening to save one file. Bad trade. <strong>The split is forced by the sandbox.</strong></p></li></ul></li><li><p><strong>2.9 `Upholds=`, not `Wants=` — the subtle one</strong></p><ul><li><p><strong>Choice:</strong> <em>Upholds=v4l2-relayd@0.service</em> in the ready unit.</p></li><li><p><strong>Pitfall (cost several reboots):</strong> <em>Wants=</em> looks right and <strong>fails silently</strong>. Per <em>systemd.unit(5)</em>, if the wanted unit “cannot be added to the transaction, this has no impact on the validity of the transaction as a whole, and this unit will still be started.” Observed result: ready runs perfectly, relay gets <strong>no start job at all</strong>, nothing logged in either journal, <em>systemctl show … -p ConditionResult</em> shows a stale <em>no</em>. Nothing tells you it was dropped.</p></li><li><p><strong>Why</strong> <em>Upholds=</em> <strong>works:</strong> it’s “similar to <em>Wants=</em>, but as long as this unit is up, all units listed are started whenever found to be inactive or failed, and <strong>no job is queued for them</strong>.” No job = nothing to silently drop. And the continuous effect restarts the relay for free if it dies — <em>Restart=always</em> becomes redundant.</p></li><li><p><strong>Pitfall Mechanism:</strong> <em>RemainAfterExit=yes</em> is <strong>load-bearing</strong>. <em>Upholds=</em> only holds while the unit is <em>up</em>; a <em>Type=oneshot</em> without it goes inactive the instant the script exits, and the relationship evaporates.</p></li><li><p><strong>Pitfall — the deadlock:</strong> using <em>ExecStartPost=/usr/bin/systemctl start v4l2-relayd@0.service</em> <em>while</em> the relay has <em>After=ipu6-camera-ready.service</em> hangs forever: <em>systemctl start</em> blocks on the relay → relay waits for ready → ready can’t finish. You’ll see ready stuck <em>activating</em> with <em>└─ /usr/bin/systemctl start v4l2-relayd@0.service</em> in its CGroup. If you must use <em>ExecStartPost</em>, add <em>—no-block</em>.</p></li><li><p><strong>Pitfall:</strong> <strong>do not</strong> add <em>After=ipu6-camera-ready.service</em> to the relay alongside <em>Upholds=</em>. It creates an unresolvable transaction and the relay’s job gets silently dropped. <em>Upholds=</em> only fires once the upholder is active — the ordering is already implicit.</p></li><li><p><strong>Verify it registered:</strong> <em>systemctl show ‘v4l2-relayd@0.service’ -p UpheldBy</em> → <em>UpheldBy=ipu6-camera-ready.service</em>. Empty means it didn’t take.</p></li></ul></li><li><p><strong>2.10 Hiding the duplicate and the clutter</strong></p><ul><li><p><strong>Choice:</strong> disable libcamera in WirePlumber; accept the raw-node clutter.</p></li><li><p><strong>Why disable libcamera:</strong> it independently exposes the sensor as an <em>ov02c10</em> PipeWire source — the worse Path-A camera. It’s not just a cosmetic duplicate: both paths read the same ISYS nodes, so picking it can <strong>contend with your HAL stack for the sensor</strong>.</p></li><li><p><strong>Pitfall:</strong> matching by node name doesn’t work — those nodes are named <em>v4l2_input.pci-0000_00_05.0.x</em> and <em>ipu6</em> only appears in the <em>description</em>. Disabling the whole libcamera monitor via <em>wireplumber.profiles</em> is cleaner and survives.</p></li><li><p><strong>Accept this:</strong> VLC and other raw-V4L2 apps <strong>will always list ~48</strong> <em>ipu6</em> <strong>devices</strong>. They enumerate <em>/dev/video*</em> directly, ignoring PipeWire rules — and they’ll list nodes even with permissions stripped (I tried <em>TAG-=”uaccess”</em>, <em>GROUP=”root”</em>, <em>MODE=”0660”</em> — the nodes became inaccessible but VLC still showed them). They can’t be removed without unloading the driver your camera needs. Pick “Intel MIPI Camera” and move on; this is not worth fighting.</p></li></ul></li><li><p><strong>2.11 Gotchas that will waste your afternoon</strong></p><ul><li><p><strong>Firefox caches its camera list.</strong> If it “stops seeing” the camera, <em>pkill firefox</em> and reopen <strong>before</strong> debugging anything else. This wasted time twice.</p></li><li><p><em>csi2-4 error: Frame sync error</em> floods dmesg constantly. Benign. Ignore.</p></li><li><p><strong>Upside-down image?</strong> Mine was inverted mid-setup and came up <strong>correct after a full reboot</strong>. Try that before adding <em>videoflip method=rotate-180</em>. Left/right mirroring in self-view is normal — the far end sees you correctly; do <strong>not</strong> add a horizontal flip.</p></li><li><p><em>v4l2-relayd.service</em> <strong>(non-templated) is</strong> <em>ExecStart=/bin/true</em>. That’s correct — it’s a grouping anchor. The real worker is the templated <em>v4l2-relayd@0.service</em>. Enabling the wrong one does nothing.</p></li><li><p><strong>Kernel updates:</strong> survived 7.1.2 → 7.1.3 with DKMS rebuilding PSYS automatically. If a kernel ever breaks the build you silently lose the hardware ISP — check <em>/var/lib/dkms/ipu6-drivers/*/*/log/make.log</em>.</p></li><li><p><strong>Back up your config.</strong> Reconstructing the patched PKGBUILD and unit files from scratch is genuinely painful.</p></li></ul></li></ul>]]></description>
			<author><![CDATA[dummy@example.com (95A31)]]></author>
			<pubDate>Fri, 17 Jul 2026 20:59:37 +0000</pubDate>
			<guid>https://bbs.archlinux.org/viewtopic.php?id=297262&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[NVIDIA suspend fails with nv_pmops_suspend() returns -5 when Haruna is]]></title>
			<link>https://bbs.archlinux.org/viewtopic.php?id=314302&amp;action=new</link>
			<description><![CDATA[<p>Ok, so somehow™ playing a video on the IGP makes the nvidia VRAM preservation service fail… wtf?</p><div class="quotebox"><cite>seth wrote:</cite><blockquote><div><p>anything interesting about those services (or userspace in general) in the system journal?</p></div></blockquote></div><p>In doubt post your complete system journal for the boot after such failure </p><div class="codebox"><pre><code>sudo journalctl -b | curl -s -H &quot;Accept: application/json, */*&quot; --upload-file - &#039;https://paste.c-net.org/&#039;</code></pre></div>]]></description>
			<author><![CDATA[dummy@example.com (seth)]]></author>
			<pubDate>Fri, 17 Jul 2026 20:48:23 +0000</pubDate>
			<guid>https://bbs.archlinux.org/viewtopic.php?id=314302&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[Discord autostart with a wrong path after each update]]></title>
			<link>https://bbs.archlinux.org/viewtopic.php?id=314297&amp;action=new</link>
			<description><![CDATA[<div class="quotebox"><cite>seth wrote:</cite><blockquote><div><p>Why is the executable stored in ~/.config/discord/app*/Discord at all?</p></div></blockquote></div><p>This I don&#039;t understand. I only installed the discord from Archlinux repository. Could it be an in-app update that would have fired and set itself as the new default Discord?</p><div class="quotebox"><cite>seth wrote:</cite><blockquote><div><p>if discord has some internal option to fudge autostarting, just disable that</p></div></blockquote></div><p>Indeed when I toggle the autostart option from within Discord (being run from /usr/bin), it creates a desktop entry in the .config/autostart, where the ExecBin targets the .config/discord/app-X.XX.XXX/Discord file.<br />I untoggled the option and created manually the symlink to the package desktop entry, then when restarting Discord, it considers the option being toggled on again. Won&#039;t it overwrite the autostart entry during next update (using pacman/wrapper)? I&#039;ll wait and see.</p><p>If it does, I&#039;ll remove the package and the whole .config/discord directory, I&#039;ll reinstall it and see if the behavior differs.</p><p>I was just wondering if anyone encountered the same behavior, and if anyone did, if they know what fires it.</p>]]></description>
			<author><![CDATA[dummy@example.com (kholo)]]></author>
			<pubDate>Fri, 17 Jul 2026 20:40:45 +0000</pubDate>
			<guid>https://bbs.archlinux.org/viewtopic.php?id=314297&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[[SOLVED] librewolf: cannot file > open > localfile and cannot save]]></title>
			<link>https://bbs.archlinux.org/viewtopic.php?id=313120&amp;action=new</link>
			<description><![CDATA[<div class="quotebox"><blockquote><div><p>Aside, I tried to install and start UWSM, but that delays the session start quite a bit, and crashes often.</p></div></blockquote></div><p>That was just a question, not a suggestion <img src="https://bbs.archlinux.org/img/smilies/wink.png" width="15" height="15" alt="wink" /></p><div class="quotebox"><blockquote><div><p>if it&#039;s not necessary</p></div></blockquote></div><p>Absolutely not.</p>]]></description>
			<author><![CDATA[dummy@example.com (seth)]]></author>
			<pubDate>Fri, 17 Jul 2026 19:53:46 +0000</pubDate>
			<guid>https://bbs.archlinux.org/viewtopic.php?id=313120&amp;action=new</guid>
		</item>
		<item>
			<title><![CDATA[chromium: hardware video acceleration with VA-API]]></title>
			<link>https://bbs.archlinux.org/viewtopic.php?id=244031&amp;action=new</link>
			<description><![CDATA[<p>Verified working again using `libva-nvidia-driver-git` (AUR) on Helium 0.14.6.1 (Chromium 150.0.7871.124).</p><p>I was also able to drop the `--enable-global-vaapi-lock` flag. However, beware the Chromium team put hardware acceleration on NVIDIA behind a feature flag: <strong>`--enable-features=VaapiOnNvidiaGPUs`</strong>. I&#039;m also enabling <strong>`AcceleratedVideoDecodeLinuxZeroCopyGL`</strong>; not sure if it&#039;s needed but it doesn&#039;t hurt to have it I guess... (:</p>]]></description>
			<author><![CDATA[dummy@example.com (cyyynthia)]]></author>
			<pubDate>Fri, 17 Jul 2026 19:10:32 +0000</pubDate>
			<guid>https://bbs.archlinux.org/viewtopic.php?id=244031&amp;action=new</guid>
		</item>
	</channel>
</rss>
