-
Notifications
You must be signed in to change notification settings - Fork 125
Description
Description
System Environment:
Hardware: Dell Latitude e6440 (Intel Haswell-era)
Device: Coral M.2 PCIe Accelerator (A+E Key) in WLAN slot
OS: Ubuntu 24.04 (Noble Numbat)
Kernels Tried:
6.14.0-32-generic (System default)
6.8.0-85-generic (Downgrade for compatibility)
BIOS Settings:
VT-d (Intel VT for Direct I/O) is disabled.
Problem Description:
Attempting to use the Coral M.2 PCIe accelerator results in a complete, unrecoverable system freeze at the moment the apex kernel module is loaded via modprobe. This issue has been reproduced across multiple modern kernels, even after successfully compiling the driver for each. The system requires a hard reboot to recover.
Chronological Troubleshooting Steps:
Attempt 1: Kernel 6.14.0-32-generic
Initial Install: Installed the official gasket-dkms_1.0-18_all.deb package.
Result: DKMS build failed due to incompatibility with kernel 6.14 (missing MODULE_IMPORT_NS and use of deprecated no_llseek).
Patched Driver: Manually created a new .deb package from the gasket-driver source, applying patches to fix both the MODULE_IMPORT_NS("DMA_BUF") and no_llseek issues.
Result: The patched driver compiled successfully via DKMS for kernel 6.14.
Module Load Test: Ran sudo modprobe apex.
Result: Immediate hard system freeze. SSH session dropped, and the machine became unresponsive. This confirmed a runtime incompatibility beyond simple build errors.
Attempt 2: Downgrade to Kernel 6.8.0-85-generic
Rationale: To move to a more stable, slightly older kernel that might have better compatibility with the driver.
Installation: Installed linux-image-6.8.0-85-generic and corresponding headers. The installation process initially failed its post-install script because DKMS could not auto-build the gasket module (it was still using the unpatched source).
Fix DKMS for 6.8: Manually patched the DKMS source tree (/usr/src/gasket-1.0/) to add the required MODULE_IMPORT_NS(DMA_BUF) directive.
Result: The DKMS build for kernel 6.8 completed successfully.
Module Load Test: Booted into kernel 6.8 and ran sudo modprobe apex while monitoring dmesg -w from a second SSH session.
Result: Immediate hard system freeze. The last message captured from dmesg before the freeze was:
[ 3243.870278] gasket: loading out-of-tree module taints kernel.
[ 3243.870284] gasket: module verification failed: signature and/or required key missing - tainting kernel
[ 3243.872296] apex 0000:03:00.0: enabling device (0000 -> 0002)
The freeze occurs at the exact moment the kernel attempts to enable the device.
Attempt 3: Kernel Parameter Adjustments (on Kernel 6.8.0-85-generic)
Hypothesis: The freeze during hardware initialization could be related to PCIe power management.
Action: Rebooted and added the pcie_aspm=off kernel parameter to the GRUB boot command.
Module Load Test: Ran sudo modprobe apex.
Result: Still results in a hard freeze. This rules out PCIe ASPM as the specific cause.
Summary of Findings:
The gasket driver can be successfully compiled for both kernel 6.14 and 6.8 with the necessary source code patches. The issue is not a build failure.
The problem is a runtime hard freeze that occurs during hardware initialization.
The freeze is triggered consistently across multiple modern kernels.
Standard troubleshooting steps for PCIe devices (disabling VT-d, disabling PCIe ASPM) have not resolved the issue.
This suggests a deeper incompatibility between the gasket driver, the Linux kernel's PCIe subsystem, and the specific BIOS/chipset implementation of the Dell Latitude e6440.
Any suggestions for other kernel parameters to try or known issues with this class of hardware would be greatly appreciated.
Click to expand!
Issue Type
No response
Operating System
No response
Coral Device
No response
Other Devices
No response
Programming Language
No response
Relevant Log Output
```</details>