Hi there,
I am working on bringing up some custom boards based around an i.MX8MP-based SoM. Right now I'm working on bringing up OpenWRT on an eval kit board, but eventually we will be bringing up a fully custom board (still based on the same SoM).
The board vendor has provided me with a fork of Linux with all of their device trees, defconfigs, and patches baked in. For now, I'm pointing OpenWRT's buildroot to use the external repo - but may work on porting everything over in the long run.
OK, with the preamble out of the way - I had a few questions regarding kernel config:
-
I assume the general idea on kernel built-in drivers vs. kmod-* packages is that if it's required for boot or that it's highly likely you'll always want it to be present, build the driver in (=y) in the kernel config, otherwise rely on packages. Is that a fair assessment?
-
Does OpenWRT leverage or integrate with the defconfig files provided in
<linuxroot>/arch/{arch}/configs
at all, like it can with the device trees? Or am I going down a dead end here?
It appears that the Linux kernel configuration as stored by OpenWRT is split across three places: target/linux/generic/config-5.15
, target/linux/{target}/config-5.15
, and target/linux/{target}/{subtarget}/config-default
.
-
I'm assuming I'll probably never touch
linux/generic
for my needs. I'm guessing that I should probably not be messing with thelinux/{target}
copy either... I should put all of my board specific configs in thelinux/{target}/{subtarget}/config-default
file. Correct? -
I'm running
make kernel_config TARGET="imx8mp"
which should be the subtarget that I added. I (thought) I added an imx8mp subtarget in my build tree. It is there in theimx/Makefile
as part of theSUBTARGETS
list. However, when I save the kernel config, the target'simx/config-5.15
file gets modified, not theimx/imx8mp/config-default
subtarget like I would expect and want. What am I doing wrong here?
- This may be related to the previous question: I run
make kernel_oldconfig TARGET="imx8mp"
when I finish editing things as my kernel / world build will often get interrupted by "new" options needing selection. This seems to only work for me inconsistently. Is this what I should be running to take care of any "new" options? or is there a better workflow here?
Thanks, I really appreciate the help. I've done my best to peruse the wiki and the forums for answers to these questions - but I may have missed something. Feel free to link me to anything I might have missed here.