xixitalk's snippet

Post Longer Than 140 Characters Tweets

Jan 11, 2018 - Comments

内核硬浮点VFP开关

一个产品编译链打开了VFPv3开关,重新编译版本后发现内核启动init失败。

失败信息如下:

Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000004

通过新旧内核和新旧文件系统交叉对比发现,是内核出现异常了。init程序属于busybox。网上大部分说是EABI不兼容,但是这部分没有修改,和之前一致。唯一区别是VFP。

$arm-linux-readelf  -A  vmlinux
...
Tag_FP_arch: VFPv2
...
$arm-linux-readelf  -A  busybox
...
Tag_FP_arch: VFPv3
...

搜索发现内核可以配置VFPv3,打开内核CONFIG_VFPCONFIG_VFPv3选项问题解决。


知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。