On Version L4T 35.4.1
I add the CONFIG_SND_SOC_RT5660=m or CONFIG_SND_SOC_RT5660=y on the file tegra_defconfig
But I cant find the rt5660.ko or any other compilation result
Be careful to only change those via a config editor (which understands dependencies). Before a build I see this from the $TOP
of source:
# find . -name '*rt5660*'
./sound/soc/intel/boards/kbl_rt5660.c
./sound/soc/intel/boards/ehl_rt5660.c
./sound/soc/codecs/rt5660.h
./sound/soc/codecs/rt5660.c
./include/sound/rt5660.h
./Documentation/devicetree/bindings/sound/rt5660.txt
This implies the module would likely be in:
$TOP/sound/soc/codecs/
(I’m assuming it is a CODEC; if it is an Intel chipset, then perhaps $TOP/sound/soc/intel/boards/
)
But I can not find any info whlie I use the command
find kernel_out -name "*5660*"
There is not any information
I just want to add the codec driver
Did you start configuration with the target “tegra_defconfig
”? When you added the CODEC configuration, did you use a configuration editor, e.g., something like the target menuconfig
or nconfig
?
I add config CONFIG_SND_SOC_RT5660=m
in file kernel/kernel-5.10/arch/arm64/configstegra_defconfig
and use the command nvbuild.sh -o kernel_out
Editing a file might be the problem. Many configuration items have dependencies, and simply editing a file would leave those out with a result of failing to build the module (or perhaps building the module, but failing to load). Even if you did not have a dependency issue, then the module might still fail to load without a matching CONFIG_LOCALVERSION
.
You might find this useful:
https://forums.developer.nvidia.com/t/topic/262647/12
I will suggest to revert the change to tegra_defconfig
. Set up compile to an empty outside directory with the “O=/some/where
” option. Then do the following (you’d still need to use other steps for cross compile if cross compiling, I’m just shortening the commands):
make O=/some/where tegra_defconfig
make O=/some/where nconfig
(you could use “menuconfig
”, but I likenconfig
since it has a symbol search)- Save a backup of the original
tegra_defconfig
. - Copy the “
/some/where/.config
” to thetegra_defconfig
.
Once that is in place you’ll know that any edits via the editor properly dealt with dependencies.
If you are only building modules, then you might set up “CONFIG_LOCALVERSION=-tegra
” (which changes where modules are searched for).
Then build. If the module is still not present, then there might be an actual problem.
This should not be related to dependencies, as there is a similar codec device in the default compilation option that can successfully compile, CONFIG_ SND_ SOC_ RT5640=m
, I was able to successfully see rt5640. ko
, I just added CONFIG_ SND_ SOC_ RT5660=m
, dependencies should be the same
Additionally, my ultimate goal is to compile RT5660 into the kernel, which is CONFIG_ SND_ SOC_ RT5660=y