Spaghetti (with meatballs) hacking and reverse engineering to bring IPU4 support to modern Linux kernel.
drivers/media | ||
include | ||
scripts | ||
build-modern.sh | ||
build.sh | ||
clean-source-test.sh | ||
COPYING | ||
final-patch-test.sh | ||
final-test-6.6.sh | ||
fix-patch.sh | ||
generate-kernel-patch.sh | ||
install-patch.sh | ||
intel-ipu4-drivers-kernel-6.6.patch | ||
Kconfig | ||
KERNEL_6.6_STATUS.md | ||
KERNEL_6.6_TEST_RESULTS.md | ||
KERNEL_COMPATIBILITY.md | ||
KERNEL_PATCH_SUMMARY.md | ||
Makefile | ||
MODERN_KERNEL_VERSION.md | ||
PATCH_TEST_SUCCESS.md | ||
README-INTEL-IPU4-PATCH.md | ||
README.md | ||
regenerate-patch.sh | ||
test-compile-6.6.sh | ||
test-kernel-6.6.sh | ||
test-patch-application.sh | ||
test-simple-6.6.sh |
Intel IPU4 Drivers Kernel Patch
Overview
This patch adds Intel IPU4 camera drivers to Linux kernel 6.6+. The drivers have been modernized to use current kernel APIs and integrate directly with the kernel build system.
What's Included
- Core IPU4 Driver: Main hardware interface
- ISYS Driver: Input system for camera data capture
- PSYS Driver: Processing system for image processing
- CRL Module: Camera sensor framework
- DW9714 Driver: VCM actuator support
- ACPI Support: Platform integration
Target Kernels
- Linux 6.6.0 and newer
- Tested on: 6.6.1
- Architecture: x86_64
Installation
1. Apply the Patch
cd /path/to/kernel-source
patch -p1 < intel-ipu4-drivers-kernel-6.6.patch
2. Configure Kernel
make menuconfig
Navigate to:
Device Drivers →
Multimedia support →
Media PCI Adapters →
[M] Intel IPU4 camera drivers
Media I2C Adapters →
[M] CRL module sensor framework
[M] DW9714 VCM driver
Media platform devices →
[M] Intel IPU4 ACPI support
3. Build Kernel
make -j$(nproc)
make modules_install
make install
4. Load Modules
modprobe intel-ipu4
modprobe intel-ipu4-isys
modprobe intel-ipu4-psys
modprobe crlmodule
modprobe dw9714
Verification
# Check modules loaded
lsmod | grep -E "(intel-ipu4|crlmodule|dw9714)"
# Check device nodes
ls -la /dev/intel-ipu4*
# Check kernel messages
dmesg | grep -i ipu4
Configuration Options
CONFIG_VIDEO_INTEL_IPU4
: Main IPU4 driverCONFIG_VIDEO_INTEL_IPU4_DEBUG
: Debug interfaceCONFIG_VIDEO_INTEL_IPU4_ACPI
: ACPI supportCONFIG_VIDEO_CRLMODULE
: Sensor frameworkCONFIG_VIDEO_DW9714
: VCM actuator
Hardware Support
This driver supports Intel platforms with IPU4 hardware, including:
- Intel Broxton platforms
- Various Intel camera-enabled systems
Modern Kernel Features Used
timer_setup()
API (replaces init_timer)- Modern
get_user_pages()
API access_ok()
without type parametermedia_entity_pads_init()
APIclass_create()
without owner parameter- Direct timestamp assignment for V4L2 buffers
Troubleshooting
- Module not loading: Check dmesg for error messages
- Device not found: Verify hardware compatibility
- Permission denied: Check udev rules for device nodes
- Build errors: Ensure all dependencies are enabled
Support
This is a modernized version of the Intel IPU4 drivers. For hardware-specific issues, consult your platform documentation.