如何从 .config 文件创建 defconfig 文件?

31

我已经为一个叫做defconfig的板子执行了make menuconfig并修改了一些配置。当我选择保存时,在内核顶级目录下创建了一个新的.config文件。

我想要为这个新的.config文件创建一个新的defconfig

我能否将.config复制为一个新的defconfig并将其复制到arch/arm/configs/中?

$ cp .config arch/arm/configs/board_new_defconfig

2
是的,复制文件可以起作用。但是由于“defconfig”已知具有板的最小配置,因此最好删除一些对您的板不是任意的“CONFIG_XXXXXX”。 - Santosh A
如何保存或导出自定义的Linux内核配置。 - Ciro Santilli OurBigBook.com
2个回答

58

我认为你只需要执行一个命令,然后按照你的意愿使用创建的文件即可。

% make savedefconfig 
% cp defconfig arch/arm/configs/my_cool_defconfig

(注意使用文件名模板来进行defconfig

要获取所有可能的目标,只需运行

% make help

正如Adam Miller所指出的,Jeremy的跟进,Buildroot发行版的用户可以使用包装器实现此目的,即 (根据Buildroot手册,第8.1节):

  • linux-savedefconfig 用于 Linux 内核
  • barebox-savedefconfig 用于 barebox 引导加载程序
  • uboot-savedefconfig 用于 U-Boot 引导加载程序

make savedefconfig 最小化生成的defconfig 跳过其他冗余配置。


1
哈!我自己使用my_kool_<foo>作为元变量! - Jameson
2
关于linux-savedefconfig怎么样?那些是离散的defconfigs,一个用于buildroot和所有附属软件包,一个用于Linux内核本身。 - Adam Miller
你可以执行以下操作:按照buildroot手册,使用make linux-savedefconfig命令。我认为make linux-menuconfig和linux-savedefconfig与menuconfig和savedefconfig目标的对应关系是一样的,不是吗? - Adam Miller
请注意,生成的defconfig将会被排序,但不是按照字母顺序排序。 - ashish
1
“make linux-savedefconfig” 只有在使用 “buildroot” 构建嵌入式 Linux 时才有用,而 OP 没有提到这一点。但是我给予 AdamMiller 的评论 +1,因为这正是我正在寻找的内容,其他 buildroot 用户可能也会来到这里。 - Jeremy
显示剩余8条评论

2

对于您的平台,需要在新的defconfig文件中进行配置。实际上,这是创建新的defconfig文件最安全的方式。如果您手动从现有的配置文件中删除配置条目以创建新的文件,则可能会出现依赖项问题,并且在构建过程中,它可能会重新启动内核配置并提示您选择单个配置选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接