2016-08-22 87 views
3

我正在为SBC Pine64制作一个bsp图层,并且我的映像已成功生成,但是在启动初始化时我收到“FATAL:kernel too old” 从busybox。我检查了我的busybox二进制文件,它正在为内核3.14.0编译。如何配置yocto来编译内核3.10.0的linaro eglibc

我的内核是3.10版,我使用了Linaro 5.3工具链。我尝试添加:OLDEST_KERNEL =“3.10.0”,我也尝试使用Linaro 4.9,但我仍然得到相同的错误。我正在使用yocto Krogoth并生成core-image-minial。请查看错误剪断下面从启动日志:

[13.068932] EXT4-fs (mmcblk0p2): couldn't mount as ext3 due to feature incompatibilities 
[13.086717] EXT4-fs (mmcblk0p2): couldn't mount as ext2 due to feature incompatibilities 
[13.112988] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) 
[13.127040] VFS: Mounted root (ext4 filesystem) readonly on device 179:2. 
[13.143393] devtmpfs: mounted 
[13.151972] Freeing unused kernel memory: 520K (ffffffc0009e4000 - ffffffc000a66000) 
FATAL: kernel too old 
[13.198566] Kernel panic - not syncing: Attempted to kill init! exitcode=0x00007f00 
[13.198566] 
[13.218884] CPU: 2 PID: 1 Comm: init Not tainted 3.10.102-pine64 #1 
[13.230876] Call trace: 

如何配置yocto编译Linaro的eglibc内核3.10.0?

THX, 蒙特兹

+0

在哪里,你是如何改变OLDEST_KERNEL?这是正确的做法,但我怀疑你没有正确地做出改变,或者你在改变之后没有重建所有的东西。做一个'bitbake -e busybox | grep^OLDEST_KERNEL ='会告诉你它评估的是什么。 –

+0

@TomRini Thx很多回复。我在我的conf/local.conf中有OLDEST_KERNEL。只要我回家,我会运行bitbake -e busybox并让你知道。在local.conf中更改后,我也没有从头开始重建所有内容。我非常感谢你为这个项目提供的所有帮助。这样做很有趣。我希望我能尽快公布一些合理的东西。 – mont3z

+0

@TomRini'build $ bitbake -e busybox | grep^OLDEST_KERNEL ='是'OLDEST_KERNEL =“3.14”'。我从零开始重建所有东西,但没有任何改变。 – mont3z

回答

3

当你想覆盖现有的变量不是“软分配”,这是说没有使用?=语法,而是=语法,你需要使用OVERRIDES中的一个变量作为更改值的一部分。你可以看到已经覆盖工作作为的conf/bitbake.conf我们:

################################################################## 
# Kernel info. 
################################################################## 

OLDEST_KERNEL = "3.2.0" 
OLDEST_KERNEL_aarch64 = "3.14" 
OLDEST_KERNEL_nios2 = "3.19" 

而且aarch64在覆盖列表已经找到。幸运的是,该列表中还有其他值,并且在评估变量后,OVERRIDES优先。因此,在你的local.conf你可以这样做:

OLDEST_KERNEL_forcevariable = "3.10" 

并确认它已生效:

$ bitbake -e busybox | grep -E ^OLDEST_KERNEL= 
OLDEST_KERNEL="3.10" 
+0

它完美的作品!我尝试使用OLDEST_KERNEL_pine64,它也可以。我不能够感谢你。不幸的是,我不能指出你的答案,因为我的声望还低于15岁。我会在发布这个项目时通知你。 – mont3z

+0

Thx为您提供帮助。我的项目终于在github.com/mont3z/meta-pine64发布 – mont3z