config-readme: update config-readme
Describe how to generate and change kernel config. Signed-off-by: Jianping Liu <frankjpliu@tencent.com> Reviewed-by: Yongliang Gao <leonylgao@tencent.com>
This commit is contained in:
parent
3a5b595eca
commit
8698752488
|
@ -0,0 +1,151 @@
|
||||||
|
This file explains what's configs used for this kernel and how to use them.
|
||||||
|
For this kernel specific config options, they should be enable in tencentconfig
|
||||||
|
and disabled in notk.config for auto-testing support in our CI system.
|
||||||
|
|
||||||
|
There are two config manage systems, they are discribed as below.
|
||||||
|
|
||||||
|
*******************************************************************************
|
||||||
|
The Firs Config Manage System (Similar to kernel original method)
|
||||||
|
*******************************************************************************
|
||||||
|
|
||||||
|
1. How to generate configs
|
||||||
|
Config is generated by "make base-config delta-config" similarity. Like:
|
||||||
|
make tencentconfig /* Generate release config */
|
||||||
|
make tencentconfig debug.config
|
||||||
|
You could also read package/configs-generate.sh and use the script
|
||||||
|
to generate configs.
|
||||||
|
|
||||||
|
2. How to edit configs
|
||||||
|
Config sources are at the directories as below:
|
||||||
|
arch/x86/configs/
|
||||||
|
arch/arm64/configs/
|
||||||
|
kernel/configs/
|
||||||
|
|
||||||
|
Base configs is arch/$arch/configs/tencent.config, you should modify base
|
||||||
|
configs in most cases. $arch is support x86 and arm64 now.
|
||||||
|
It doesn't recommend to modify base configs only using vim. It recommend
|
||||||
|
to using the steps to modify base configs as below:
|
||||||
|
a, create .config:
|
||||||
|
make ARCH=$arch tencentconfig
|
||||||
|
b, modify .config as your expectation:
|
||||||
|
method1: make ARCH=$arch menuconfig to change the CONFIGs
|
||||||
|
method2: vim .config , and then make ARCH=$arch olddefconfig
|
||||||
|
Note: Using method2 need to check whether the CONFIG* which you
|
||||||
|
want to enable are really enabled, because the depend on
|
||||||
|
CONFIG* may haven't been eabled.
|
||||||
|
c, create defconfig:
|
||||||
|
make ARCH=$arch savedefconfig
|
||||||
|
d, update tencent.config:
|
||||||
|
mv defconfig arch/$arch/configs/tencent.config
|
||||||
|
|
||||||
|
Other configs (except config.pswitch) are delta configs, which will
|
||||||
|
overwrite the duplicate name CONFIG_* in base config (tencent.config).
|
||||||
|
|
||||||
|
Related Link:
|
||||||
|
https://iwiki.woa.com/pages/viewpage.action?pageId=4007623631
|
||||||
|
|
||||||
|
|
||||||
|
3. Configs introduction
|
||||||
|
tencentconfig
|
||||||
|
TK4 x86 private release version using this config to build kernel image.
|
||||||
|
TK4 aarch64 release version using this config to build kernel image.
|
||||||
|
|
||||||
|
debug.config
|
||||||
|
The configs with CONFIG_KASAN and other debug configs enabled, used for
|
||||||
|
debugging problems.
|
||||||
|
|
||||||
|
notk.config
|
||||||
|
The config for TK specific kernel options testing, *ANY TK specific configs*
|
||||||
|
should be disabled in this config then we could do testing in TKCI.
|
||||||
|
|
||||||
|
performance.config
|
||||||
|
This config is created and maintained by CSIG, used for highest
|
||||||
|
performing version.
|
||||||
|
|
||||||
|
cloud-game.config
|
||||||
|
This config is created and maintained by kevinclli (视频渲染组), used
|
||||||
|
for cloud game on arm64.
|
||||||
|
Cloud-game needing run android container, which using 4k page. So, they
|
||||||
|
can't using config.default directly.
|
||||||
|
|
||||||
|
pswitch.config
|
||||||
|
The programmble switch team need a different kernel config, which
|
||||||
|
include much old slow speed bus, which enlarge the kernel size.
|
||||||
|
|
||||||
|
|
||||||
|
BTW,
|
||||||
|
The default kernel will opensource as OC kernel, some specific feature should
|
||||||
|
be modulized.
|
||||||
|
|
||||||
|
|
||||||
|
*******************************************************************************
|
||||||
|
The Second Config Manage System (Similar to RedHat/Fedora's dist manage)
|
||||||
|
*******************************************************************************
|
||||||
|
1, How to generate configs
|
||||||
|
Changing directory (cd) to the top of kernel source dir, running:
|
||||||
|
make dist-config /* Equal to make dist-config CONFIG="generic-release" */
|
||||||
|
make dist-config CONFIG="generic-debug"
|
||||||
|
|
||||||
|
2, Configs introduction
|
||||||
|
tree -l dist/configs/, will display the content as below:
|
||||||
|
dist/configs/
|
||||||
|
├── 00base
|
||||||
|
│ ├── defconfig
|
||||||
|
│ │ ├── aarch64.config
|
||||||
|
│ │ ├── default.config
|
||||||
|
│ │ └── x86_64.config
|
||||||
|
│ └── generic
|
||||||
|
│ ├── aarch64.config -> ../../../../arch/arm64/configs/tencent.config
|
||||||
|
│ ├── default.config
|
||||||
|
│ └── x86_64.config -> ../../../../arch/x86/configs/tencent.config
|
||||||
|
├── 50variant
|
||||||
|
│ ├── debug
|
||||||
|
│ │ └── default.config -> ../../../../kernel/configs/debug.config
|
||||||
|
│ └── release
|
||||||
|
│ └── default.config
|
||||||
|
|
||||||
|
"make dist-config" is using:
|
||||||
|
dist/configs/00base/generic/default.config /* Which is empty */
|
||||||
|
+
|
||||||
|
dist/configs/00base/generic/$arch.config
|
||||||
|
+
|
||||||
|
dist/configs/50variant/release/default.config /* Which is empty */
|
||||||
|
+
|
||||||
|
dist/configs/50variant/release/$arch.config /* If have the file */
|
||||||
|
Becase dist/configs/00base/generic/$arch.config is link to
|
||||||
|
arch/$arch/configs/tencent.config, so "make dist-config" will generate
|
||||||
|
the same .config as "make tencentconfig".
|
||||||
|
|
||||||
|
"make dist-config CONFIG="generic-debug"" is using:
|
||||||
|
dist/configs/00base/generic/default.config /* Which is empty */
|
||||||
|
+
|
||||||
|
dist/configs/00base/generic/$arch.config
|
||||||
|
+
|
||||||
|
dist/configs/50variant/debug/default.config
|
||||||
|
+
|
||||||
|
dist/configs/50variant/debug/$arch.config /* If have the file */
|
||||||
|
Becase dist/configs/00base/generic/$arch.config is link to
|
||||||
|
arch/$arch/configs/tencent.config, and dist/configs/50variant/debug/default.config
|
||||||
|
is link to kernel/configs/debug.config.
|
||||||
|
So "make dist-config CONFIG="generic-debug"" will generate the same
|
||||||
|
.config as "make tencentconfig debug.config".
|
||||||
|
|
||||||
|
Note, When running "make dist-*" command (such as make dist-config), please make
|
||||||
|
sure all changes have commited to git repo. "make dist-*" command gets codes and
|
||||||
|
configs from git.
|
||||||
|
|
||||||
|
*******************************************************************************
|
||||||
|
Some detal config introduction
|
||||||
|
*******************************************************************************
|
||||||
|
config.default_performance
|
||||||
|
This config is created and maintained by CSIG, used for highest
|
||||||
|
performing version.
|
||||||
|
|
||||||
|
config.cloud-game
|
||||||
|
This config is created and maintained by kevinclli, used for cloud game.
|
||||||
|
Cloud-game needing run android container, which using 4k page. So, they
|
||||||
|
can't using config.default directly.
|
||||||
|
|
||||||
|
config.pswitch
|
||||||
|
The programmble switch team need a different kernel config, which
|
||||||
|
include much old slow speed bus, which enlarge the kernel size.
|
|
@ -1,76 +0,0 @@
|
||||||
1. How to generate configs
|
|
||||||
Changing directory (cd) to the top of kernel source dir, running:
|
|
||||||
./package/configs-generate.sh
|
|
||||||
Configs will be generated at package/ directory same as ever(such as
|
|
||||||
package/default/config.default).
|
|
||||||
|
|
||||||
Config is generated by "make base-config delta-config" similarity.
|
|
||||||
Please read "./package/configs-generate.sh script" if you want only
|
|
||||||
generate one config.
|
|
||||||
|
|
||||||
|
|
||||||
2. How to edit configs
|
|
||||||
Config sources are at the directories as below:
|
|
||||||
arch/x86/configs/
|
|
||||||
arch/arm64/configs/
|
|
||||||
kernel/configs/
|
|
||||||
|
|
||||||
Base configs is arch/$arch/configs/tencent.config, you should modify base
|
|
||||||
configs in most cases. $arch is support x86 and arm64 now.
|
|
||||||
It doesn't recommend to modify base configs only using vim. It recommend
|
|
||||||
to using the steps to modify base configs as below:
|
|
||||||
a, create .config:
|
|
||||||
make ARCH=$arch tencentconfig
|
|
||||||
b, modify .config as your expectation:
|
|
||||||
method1: make ARCH=$arch menuconfig to change the CONFIGs
|
|
||||||
method2: vim .config , and then make ARCH=$arch olddefconfig
|
|
||||||
Note: Using method2 need to check whether the CONFIG* which you
|
|
||||||
want to enable are really enabled, because the depend on
|
|
||||||
CONFIG* may haven't been eabled.
|
|
||||||
c, create defconfig:
|
|
||||||
make ARCH=$arch savedefconfig
|
|
||||||
d, update tencent.config:
|
|
||||||
mv defconfig arch/$arch/configs/tencent.config
|
|
||||||
|
|
||||||
Other configs (except config.pswitch) are delta configs, which will
|
|
||||||
overwrite the duplicate name CONFIG_* in base config (tencent.config).
|
|
||||||
|
|
||||||
Related Link:
|
|
||||||
https://iwiki.woa.com/pages/viewpage.action?pageId=4007623631
|
|
||||||
|
|
||||||
|
|
||||||
3. Configs introduction
|
|
||||||
config.default
|
|
||||||
TK4 x86 private release version using this config to build kernel image.
|
|
||||||
TK4 aarch64 release version using this config to build kernel image.
|
|
||||||
|
|
||||||
config.default_nosign
|
|
||||||
Used for x86 architecture.
|
|
||||||
This config is base no config.default, and change CONFIG_MODULE_SIG to
|
|
||||||
be disabled.
|
|
||||||
With CONFIG_MODULE_SIG be disabled, developers could build kernel image
|
|
||||||
and test kernel modules more easier.
|
|
||||||
|
|
||||||
config.default_debug and config.default_kasan
|
|
||||||
config.default_kasan is the same with config.default_debug.
|
|
||||||
The configs with CONFIG_KASAN and other debug configs enabled, used for
|
|
||||||
debugging problems.
|
|
||||||
|
|
||||||
config.default_performance
|
|
||||||
This config is created and maintained by CSIG, used for highest
|
|
||||||
performing version.
|
|
||||||
|
|
||||||
config.cloud-game
|
|
||||||
This config is created and maintained by kevinclli (视频渲染组), used
|
|
||||||
for cloud game.
|
|
||||||
Cloud-game needing run android container, which using 4k page. So, they
|
|
||||||
can't using config.default directly.
|
|
||||||
|
|
||||||
config.pswitch
|
|
||||||
The programmble switch team need a different kernel config, which
|
|
||||||
include much old slow speed bus, which enlarge the kernel size.
|
|
||||||
|
|
||||||
|
|
||||||
4. To do
|
|
||||||
TK4 x86 public release version needing a config. Which need to be created
|
|
||||||
and maintained by CSIG.
|
|
|
@ -0,0 +1 @@
|
||||||
|
../config-readme
|
Loading…
Reference in New Issue