Failed to burn after compiling the wifi driver with PCIe interface

After compiling the code normally, execute the following burning command to burn it normally

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -p "-c ./bootloader/generic/cfg/flash_t234_qspi.xml" -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs --network usb0 jetson-orin-nano-devkit nvme0n1p1

But once I add the wifi driver for the PCIe interface and compile it, the burning will fail

Added a folder under kernel jammy src/drivers/net/wireless/: skw6316
Modification: Kernel gamma src/drivers/net/wireless/Makefile and kernel gamma src/drivers/net/wireless/Kconfig


skw6316.zip (211.1 KB)
flash_fail.log (272.0 KB)
orin_nano_4g_flash_fail.log (250.8 KB)

orin_nano_4g_flash_fail.log : It is the print log of debug serial port during burning
flash_fail.log: It is the print log of the terminal that executes the burning instruction

Your kernel change affects other old modules and those old modules cannot load anymore. You should rebuild these old modules too if you changed kernel.

[ 3.279996] r8168: disagrees about version of symbol alloc_etherdev_mqs
[ 3.279999] r8168: Unknown symbol alloc_etherdev_mqs (err -22)
[ 3.280024] r8168: disagrees about version of symbol __skb_pad
[ 3.280025] r8168: Unknown symbol __skb_pad (err -22)
[ 3.280032] r8168: disagrees about version of symbol skb_copy_bits
[ 3.280033] r8168: Unknown symbol skb_copy_bits (err -22)
[ 3.280044] r8168: disagrees about version of symbol skb_put
[ 3.280045] r8168: Unknown symbol skb_put (err -22)
[ 3.280050] r8168: disagrees about version of symbol skb_tstamp_t

How to update modules? Replace the compiled modules with/lib/modules under rootfs.
I compiled using the kernel_strc/nvbuild. sh script as a reference. My compilation script is as follows:

#!/bin/bash

#version: v1.0 (support for jp6.0)
#the build shell for nvidia jetson source code
#add by liukuangjie(kuangjie.liu@neardi.com)


KERNEL_DIR=../kernel_src
cd $KERNEL_DIR
CURRENT_DIR=`pwd`
FLASH_DIR=$CURRENT_DIR/../../Linux_for_Tegra
BUILD_KERNEL_OUT=$CURRENT_DIR/../../output
TOOLCHAIN=$CURRENT_DIR/../toolchain/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-

KERNEL_DEFCONFIG_SOURCE=$CURRENT_DIR/defconfig/defconfig
KERNEL_DEFCONFIG_DIST=$CURRENT_DIR/kernel/kernel-jammy-src/arch/arm64/configs/

echo "------import toolchain env------"
export CROSS_COMPILE=$TOOLCHAIN


echo "------replace defconfig------"
cp $KERNEL_DEFCONFIG_SOURCE $KERNEL_DEFCONFIG_DIST


echo "------start build------"
./nvbuild.sh -o $BUILD_KERNEL_OUT

echo "------copy Image to flashtool------"
cp $BUILD_KERNEL_OUT/kernel/kernel-jammy-src/arch/arm64/boot/Image $FLASH_DIR/kernel/Image

echo "------copy kernel dtb to flashtool------"
cp $BUILD_KERNEL_OUT/nvidia-oot/device-tree/platform/generic-dts/dtbs/* $FLASH_DIR/kernel/dtb/

Are there any steps I missed

我直接用中文說明好了

  1. 你已經自己回答問題了

Replace the compiled modules with/lib/modules under rootfs.

  1. 你做的步驟裡沒有上面這一項…

Indeed, I remember that when jp5. * was compiled, it generated a/lib/modules folder and I replaced it directly. However, when jp6. * was compiled, I couldn’t find this folder and didn’t know where to find the replacement modules folder

This is the directory generated after compilation. Which directory is the modules folder that needs to be replaced in
image

please check

https://docs.nvidia.com/jetson/archives/r36.4/DeveloperGuide/SD/Kernel/KernelCustomization.html?highlight=modules_install#building-the-nvidia-out-of-tree-modules

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.