Below is a hacky set of sed/awk/patch commands to patch up
/usr/src/ipu6-XXX upon intel-ipu6-dkms installation failure when
building against a 6.14.x kernel. Re-installation/compilation and the
webcam should work afterwards (with the userspace stack deps for Intel
MIPI). There might be another firmware path load error in dmesg
afterwards, but just copying the culprit file from
/lib/firmware/intel/ipu to /lib/firmware/intel should fix that up too.

I can try to submit a patch if I have time for a more permanent fix. Not
too familiar with the process though.

Kernel commits that caused this were:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=5f60d5f6bbc12e782fac78110b0ee62698f3b576
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cb787f4ac0c2e439ea8d7e6387b925f74576bdf8
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=cdd30ebb1b9f36159d66f088b61aee264e649d7a
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b0a1c0d0edcd75a0f8ec5fd19dbd64b8d097f534

Fix commands:

# Fix 6.14 unaligned header
sed -i '
  s|#include <asm\(-generic\)\?/unaligned.h>|#include <linux/version.h>\
#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 12, 0)\
#include <asm\1/unaligned.h>\
#else\
#include <linux/unaligned.h>\
#endif|g
' drivers/media/i2c/*.c

# adapt to new MODULE_IMPORT_NS
sed -i '
  s|MODULE_IMPORT_NS(INTEL_IPU_BRIDGE);|#if LINUX_VERSION_CODE < 
KERNEL_VERSION(6, 13, 0)\
MODULE_IMPORT_NS(INTEL_IPU_BRIDGE);\
#else\
MODULE_IMPORT_NS("INTEL_IPU_BRIDGE");\
#endif|g
' drivers/media/pci/intel/ipu.c

sed -i '
  s|MODULE_IMPORT_NS(DMA_BUF);|#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 13, 
0)\
MODULE_IMPORT_NS(DMA_BUF);\
#else\
MODULE_IMPORT_NS("DMA_BUF");\
#endif|g
' drivers/media/pci/intel/ipu-psys.c

# fix no_llseek
curl -s 
https://github.com/intel/ipu6-drivers/commit/5379758bcb21be56b600817edf989dcc2c1775cf.patch
 | patch -p1 -s

# fix follow_pte deprecation
tmpfile=$(mktemp)
awk '
  /#if LINUX_VERSION_CODE >= KERNEL_VERSION\(6, 10, 0\)/ {
    if (getline && getline && getline && /follow_pfn/) {
      while (getline) {
        if (/^#endif/) { next }
      }
    }
  }
  { print }
' drivers/media/pci/intel/ipu-psys.c > "$tmpfile" \
  && mv "$tmpfile" drivers/media/pci/intel/ipu-psys.c

curl -s "https://git.launchpad.net/~canonical-hwe-team/hwe-
next/+git/intermediate-dkms/plain/debian/patches/0023-UBUNTU-SAUCE-
media-ipu6-Fix-compilation-with-
kernels.patch?h=ipu6-drivers/oracular/experimental/0_git202407190257.9369b88e-0ubuntu1%2bexp.2"
| patch -p1 -s -f

#cleanup
find . -name '*.orig' -delete
find . -name '*.rej'  -delete

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2117188

Title:
  intel-ipu6-dkms fails  to build with 6.14 HWE

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ipu6-drivers/+bug/2117188/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to