Skip to main content

Kernel Configuration

With the independent BSP build, use Longan to manage kernel configuration. Running a traditional make menuconfig directly under kernel/linux-5.15 may update a .config that the Longan build does not use.

cd <ANDROID_TOP>/longan
./build.sh menuconfig

Press / in menuconfig and search by feature name or CONFIG_ symbol. The search result shows the menu path, current value, dependencies, and selecting options.

Save Configuration​

./build.sh saveconfig

Some branches accept a target name:

./build.sh saveconfig bsp_defconfig

Confirm which source file changed:

git status --short
find device/config/chips/t527 bsp/configs/linux-5.15 \
-type f -name '*defconfig' -mmin -10 -print

Load a Selected Configuration​

./build.sh loadconfig <defconfig-name-or-path>
./build.sh menuconfig
./build.sh saveconfig <defconfig-name-or-path>

Do not copy the full generated .config over a defconfig. The two files serve different purposes and a direct copy can preserve temporary dependency selections.

Verify the Final .config​

find out -type f -path '*/kernel/build/.config' -print

CONFIG_FILE=$(find out -type f -path '*/kernel/build/.config' | head -1)
echo "$CONFIG_FILE"
grep -n 'CONFIG_<TARGET_SYMBOL>' "$CONFIG_FILE"

Values are normally y, m, or not set.

Configuration and Device Tree Must Agree​

A working feature usually requires all of the following:

driver source exists
+
Kconfig is enabled
+
Makefile includes the object
+
Device Tree node is enabled and correct
+
hardware wiring and power are correct

Build and record the log:

./build.sh kernel 2>&1 | tee /tmp/t527-kernel-build.log

Then search the log or generated module:

grep -i '<driver-or-module>' /tmp/t527-kernel-build.log
find out -type f -name '<module>.ko' -print

Built-in drivers do not produce a .ko; verify them through .config, symbols, and boot logs.