一个产品编译链打开了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_VFP
和CONFIG_VFPv3
选项问题解决。
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。