您的位置:首页 > 其它

编译内核提示“Restart config..”的问题分析和解决

2018-01-19 18:19 316 查看
问题现象:

编译内核的时候,已经拷贝默认配置文件到.config,但是在编译的时候依然提示“Restart config..”,而且还要一步步配置内核。

~/Android/allwinner/cqa64_android_v5.1/lichee/linux-3.10$ make -j8
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf --silentoldconfig Kconfig
drivers/net/wireless/bcmdhd/Kconfig:50:warning: defaults for choice values not supported
*
* Restart config...
*
*
* General setup
*
Cross-compiler tool prefix (CROSS_COMPILE) []
Local version - append to kernel release (LOCALVERSION) []
Automatically append version information to the version string (LOCALVERSION_AUTO) [N/y/?] n
Kernel compression mode
> 1. Gzip (KERNEL_GZIP) (NEW)
2. Bzip2 (KERNEL_BZIP2) (NEW)
3. LZMA (KERNEL_LZMA) (NEW)
4. XZ (KERNEL_XZ) (NEW)
5. LZO (KERNEL_LZO) (NEW)
choice[1-5?]:

问题分析:
一般从出现的错误信息找,全局搜索一下“Restart config”就能找到问题是怎样产生的。

linux-3.10$ grep "Restart config" . -Rn
./scripts/kconfig/conf.c:438:                    printf(_("*\n* Restart config...\n*\n"));
匹配到二进制文件 ./scripts/kconfig/conf
这样可以定位到“scripts/kconfig/conf.c”文件里,这个文件是make menuconfig会自动编译的,属于编译的工具之一。
static void check_conf(struct menu *menu)
{
struct symbol *sym;
struct menu *child;

if (!menu_is_visible(menu))
return;

sym = menu->sym;
if (sym && !sym_has_value(sym)) {
if (sym_is_changable(sym) ||
(sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) {
if (input_mode == listnewconfig) {
if (sym->name && !sym_is_choice_value(sym)) {
printf("%s%s\n", CONFIG_, sym->name);
}
} else if (input_mode != olddefconfig) {
if (!conf_cnt++)
printf(_("*\n* Restart config...\n*\n"));
rootEntry = menu_get_parent_menu(menu);
conf(rootEntry);
}
}
}

for (child = menu->list; child; child = child->next)
check_conf(child);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐