Observed Failure Chain
The IOT2050 is running kernel 5.10.64 from IOT2050_Example_Image_V1.2.2. The kernel configuration check returns:
grep PEAK_ /boot/config-`uname -r`
# CONFIG_CAN_PEAK_PCIEFD is not set
# CONFIG_CAN_PEAK_USB is not set
This proves that these two in-tree PEAK CAN options are disabled in the running kernel. It does not prove that every possible PEAK driver is absent.
Building the external driver from /opt/PCAN_drivers/peak-linux-driver-8.16.0/ fails because its build system cannot locate kernel headers. Installing linux-headers-$(uname -r) also fails because the configured Debian Bullseye repositories contain no package matching linux-headers-5.10.64.
| Evidence | Engineering conclusion |
|---|---|
CONFIG_CAN_PEAK_PCIEFD is not set |
The running kernel was not built with that option enabled. |
Unable to automatically find the Kernel headers |
The external module cannot compile without a matching kernel build/header tree. |
Unable to locate package linux-headers-5.10.64 |
The enabled repositories cannot supply headers for the running kernel by that package name. |
Choose the Driver Integration Path
There are two distinct paths. Do not mix their prerequisites:
| Path | Requirement | Current blocker |
|---|---|---|
| Enable the in-tree kernel driver | Build and deploy a customized IOT2050 image with the required PEAK kernel option enabled. | The current image has the relevant options disabled. |
Compile peak-linux-driver-8.16.0
|
Provide headers or the kernel build root that exactly corresponds to the deployed kernel, then expose it through KERNEL_LOCATION if automatic discovery fails. |
No matching linux-headers-5.10.64 package is available from the configured repositories. |
Upgrading the kernel merely in the hope of finding headers is not a verified fix. A different kernel still requires either its matching headers for an external module or an image built with the necessary driver enabled.
Build the Driver into a Custom IOT2050 Image
The available evidence supports the custom-image path using meta-iot2050, isar, and the image configuration opened with ./kas-container menu. Apply the kernel selections in the relevant IOT2050 kernel configuration:
CONFIG_CAN_PEAK_PCIEFD=y
CONFIG_CAN_PEAK_USB=y
For a PCAN-miniPCIe installation, confirm that CONFIG_CAN_PEAK_PCIEFD matches the installed hardware before deployment. Enable CONFIG_CAN_PEAK_USB only when USB PEAK support is also required; the evidence does not establish that the miniPCIe card needs the USB option.
- Start from the
meta-iot2050build environment with its requiredisarsource available. - Run
./kas-container menuas a non-root user with the necessary privileges. - Open
IOT2050 Image Configurationand select the required image type and project features. - Enable the applicable PEAK kernel option in the kernel configuration used by the build.
- Run
Save&Build, then deploy the resulting image using the established IOT2050 image procedure.
The evidence does not identify the exact configuration filename or establish which additional image options are mandatory for Node-RED, MQTT, or CAN utilities. Select those components according to the application requirements rather than assuming they are installed by the kernel driver options.
Separate Driver Configuration from Build Failures
One attempted build selected an Example Image with SWUpdate support plus Preempt-RT, Google Coral Edge TPU, and Docker features. That build reached BitBake task execution, then failed while fetching a TensorFlow revision for libedgetpu-16.0-1. This is a source-fetch failure associated with the selected Edge TPU feature, not evidence of a PEAK CAN driver compilation failure.
The earlier binfmt_misc messages report that /proc/sys/fs/binfmt_misc does not exist and cannot be mounted. Because the process continued through repository checks and into BitBake, the captured log does not establish that this warning caused the final failure.
- Resolve or remove the feature that introduces the failing
libedgetpu-16.0-1fetch when Edge TPU support is not required. - Repeat the build and identify the first fatal
ERROR, keeping warnings separate from the terminating failure. - If the image infrastructure itself still fails, report the complete build log through the official project issue channel.
Verify the Deployed Image
After booting the custom image, verify the running kernel rather than the build workspace:
uname -r
grep PEAK_ /boot/config-`uname -r`
The required option must no longer report is not set. Next, verify that the operating system detects the installed adapter and that the intended CAN interface can be brought into the application workflow. The evidence supplies no interface name, bitrate, or hardware-detection command, so derive those details from the deployed image and network requirements instead of assigning unsupported values.
If choosing the external-module path, rerun make only after providing the matching kernel build tree. Point KERNEL_LOCATION at the root of that built kernel when automatic header discovery cannot find it. Successful compilation alone is insufficient: confirm that the module loads against the running kernel and that the adapter is detected.
FAQ
Why does the PCAN driver build fail on IOT2050 kernel 5.10.64?
peak-linux-driver-8.16.0 cannot find the mandatory kernel headers, and the configured Bullseye repositories do not provide a package named linux-headers-5.10.64.
Which IOT2050 kernel option enables the PEAK PCIe CAN driver?
The evidence identifies CONFIG_CAN_PEAK_PCIEFD=y. Confirm that this option supports the exact PCAN-miniPCIe hardware before building and deploying the custom image.
Is the TensorFlow fetch error caused by the PCAN-miniPCIe driver?
No such link is established. The captured fatal error occurs while fetching TensorFlow for libedgetpu-16.0-1 after Google Coral Edge TPU support was selected, so troubleshoot that feature separately from PEAK CAN configuration.