Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

5.4内核和3.9.4内核的allnoconfig可能有不同,才导致5.4需要用defconfig #12

Open
jaylen-zhou opened this issue Jun 19, 2020 · 10 comments

Comments

@jaylen-zhou
Copy link

No description provided.

@mengning
Copy link
Owner

解决方案?

@jaylen-zhou
Copy link
Author

解决方案?

试过直接把3.9 allnoconfig生成的.config复制到5.4的根目录里,两个.config文件不同的地方还是挺多的,在终端里输入make指令还要一问一答地继续配置,由于看不懂这些配置,就没继续往下做了。

@nylon7
Copy link

nylon7 commented Jun 23, 2020

如果需要幫忙,你可以貼出具體的內容

把那些問答以文字的形式複製貼上

這樣大家才有辦法幫你解決

@mengning
Copy link
Owner

如果需要幫忙,你可以貼出具體的內容

把那些問答以文字的形式複製貼上

這樣大家才有辦法幫你解決

那太感谢了!其实没有出错信息,就是完全没有反应

cd linux-5.4.34
make allnoconfig
make -j$(nproc) 
qemu-system-x86_64 -kernel arch/x86/boot/bzImage

编译出来qemu无法加载bzImage,完全没有反应,make defconfig配置的话可以正常加载bzImage,在3.9.4的源代码上make allnoconfig配置的话也可以正常加载bzImage

@nylon7
Copy link

nylon7 commented Jun 29, 2020

hello @mengning

可以diff一下兩個config的差異?

@meilihao
Copy link

meilihao commented Sep 15, 2020

@mengning 我找到一份所见最简配置, 就12个配置项, time make -j2 bzImage不到4分钟可运行qemu-system-x86_64 -kernel arch/x86/boot/bzImage, 这可能有助于排查该问题.

@meilihao
Copy link

反复在5.8.9上调试, 拿到最最精简的.config:

$ make allnoconfig
$ make menuconfig
General setup ---> Configure standard kernel features ---> Enable support for printk ---> yes
64-bit kernel ---> yes # 如果不需要64bit支持, 这个也可不要
Device Drivers ---> Character devices ---> Enable TTY ---> yes
$ time make -j2 bzImage
$ qemu-system-x86_64 -kernel arch/x86/boot/bzImage

@mengning
Copy link
Owner

反复在5.8.9上调试, 拿到最最精简的.config:

$ make allnoconfig
$ make menuconfig
General setup ---> Configure standard kernel features ---> Enable support for printk ---> yes
64-bit kernel ---> yes # 如果不需要64bit支持, 这个也可不要
Device Drivers ---> Character devices ---> Enable TTY ---> yes
$ time make -j2 bzImage
$ qemu-system-x86_64 -kernel arch/x86/boot/bzImage

只make allnoconfig在5.8.9上还是无法启动吗?这几个配置选项和无法启动有什么样关系?我认为理解其中的原因很重要

allnoconfig把printk和 Enable TTY关闭了?这是问题的原因?可以对比一下早期的内核比如3.9.4

@meilihao
Copy link

meilihao commented Sep 16, 2020

make allnoconfig是把printk和Enable TTY关闭了, 且在qemu 3.1 + 5.8.9上是无法启动的. 我目前只是kernel新手(兴趣学习), 找到那份配置的时候去测试了一下, 具体原因确实未知.

@meilihao
Copy link

看了一下3.9.4的make allnoconfig, Device Drivers ---> Character devices ---> Enable TTY确实是yes, 但它没有General setup ---> Configure standard kernel features ---> Enable support for printk, 有General setup ---> Configure standard kernel features且默认没选中.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants