Compile specific kernel for Jetson nano


I’m trying to develop a custom Bluetooth service using the Jetson Nano dev kit with an AX200 intel Wi-FI and Bluetooth module in it.
The service will connect to some serial devices with the RFCOMM_TTY feature but it seems not enabled by default on the Jetson kernel.
I followed the official guide and I managed to compile a new kernel (4.9.201) with the RFCOMM_TTY enabled but unfortunately, there is no way to let the Bluetooth and Wi-Fi working with it.
I tried to get the kernel sources from git (the first time I got the sources from the zip file as suggested by the guide) and I selected the tag 32.3.1 version (not the latest) but also in this way I still compile the kernel 4.9.201.
Is it possible to compile a different version than the latest? Is there a way to select the 4.9.140 kernel sources on git?

The kernel version is tied to the flash software release. If the kernel source is from the version flashed, then it should work, but if the kernel version differs from that originally flashed, then this will probably fail to some degree.

Many people who have issues with a compile either fail to set the starting configuration to match what was running, or else fail to set “CONFIG_LOCALVERSION” to “-tegra”. This latter would cause finding modules to fail. To see if this is the case run the command “uname -r”. Probably this should respond (for a correct build) to the base kernel version and “-tegra” appended to the version number. The side effect is to say the kernel is looking for its modules at:
/lib/modules/$(uname -r)/kernel

If your modules are there, then they can be used. If the modules are not there, then it won’t matter if you built the module or not…the module would not have any way to be found.

How did you configure the kernel?

I couldn’t tell you what the proper config is for the RFCOMM itself, but to see if your kernel has this, boot to that kernel, and run command:
zcat /proc/config.gz | grep 'CONFIG_BT_RFCOMM_TTY'

Incidentally, if you build this as a module (I don’t know if it can be built as a module, but most features can be), then you wouldn’t replace your existing kernel, you’d just configure kernel source to match, and then build the module, followed by copy of the module file. A lot of people get stuck thinking they need to flash something to install a kernel, but in most cases there is no such requirement (an example of flashing being a mandatory install method is if the security fuses were burned).

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