Firefly kernel does not come with all kernel features. If the default firmware does not meet your needs, such as lacking USB CAN support, users need to customize configuration and rebuild kernel.
First need to get SDK, how to get SDK and prepare environment please refer to:
Then enable new features:
Enter SDK/kernel, write configuration into .config :
# Linux make ARCH=arm64 firefly_linux_defconfig # Android make ARCH=arm64 firefly_defconfig
Enter configuration menu
make ARCH=arm64 menuconfig
*means enabled and build-in, blank means disabled,
Mmeans enabled and build as module
only support build-in (Press Y) or disable (Press N)，besides Y and N
<>can also be chose to build as module (Press M)；
Option ends with
—>means there is sub-directory under it
Escto exit, press
?to show help, press
/to global search
Up and down around the four direction keys is to move the cursor,
Select to build as module (M) requires follow-up installation, so select build-in (Y) to avoid installation step is recommended while adding few features.
Press the number at the left of an option in searching result page to directly jump to where the option locates.
It is recommended to enable some options in same group. For example, all options in the picture below belong to the same function: CAN USB. So enable them all to get full CAN USB support.
Have doubts about an option, you can move cursor on it and press
? to see help message.
After enabling needed options, move cursor to
Save and press
Enter for 3 times.
Then continually double press
Esc to exit.
Back to terminal, save your modification into configuration file:
make ARCH=arm64 savedefconfig mv defconfig arch/arm64/configs/firefly_linux_defconfig (Android is firefly_defconfig)
Back to SDK root directory:
# Choose board mk file ./build.sh xxxx.mk # Compile kernel ./build.sh kernel
The output file is