Ubuntu16.04编译RK3399:make kernel.img error
生活随笔
收集整理的這篇文章主要介紹了
Ubuntu16.04编译RK3399:make kernel.img error
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
RK3399開源資料:?http://www.t-firefly.com/doc/product/info/id/100.html
1.問題:
ubuntu16.04編譯內核Kernel出現錯誤:
??CC ????init/version.o ??LD ????init/built-in.o ??KSYM ??.tmp_kallsyms1.o ??KSYM ??.tmp_kallsyms2.o ??LD ????vmlinux ??SORTEX ?vmlinux ??SYSMAP ?System.map ??OBJCOPY arch/arm64/boot/Image
?arch/arm64/Makefile:144: recipe for target 'kernel.img' failed ??make: *** [kernel.img] Error 127
2.分析:
打印日志來看,內核構建Image已經完成,當構建kernel.img時出現問題。
分析arch/arm64/Makefile中在生成kernel.img時具體做了什么
$ cat -n arch/arm64/Makefile | grep kernel.img
143 kernel.img: Image 144 $(Q)$(srctree)/scripts/mkkrnlimg $(objtree)/arch/arm64/boot/Image $(objtree)/kernel.img >/dev/null 145 @echo ' ?Image: ?kernel.img is ready' 149 %.img: rockchip/%.dtb kernel.img $(LOGO) $(LOGO_KERNEL)
生成規則為:scripts/mkkrnlimg arch/arm64/boot/Image kernel.img >/dev/null
通過腳本mkkrnlimg將Image生成kernel.img,沒有生成,則說明mkkrnlimg運行出現問題。
查看mkkrnlimg的文件屬性
??$ file scripts/mkkrnlimg?
scripts/mkkrnlimg:?ELF 32-bit?LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, stripped
可以發現,執行文件mkkrnlimg是在32位平臺上運行的,而ubuntu 16.04 x86_64 為64位。
為了ubuntu 16.04 64位 兼容32位的執行文件,一般需要安裝lib32-glibc。
參考鏈接:http://blog.csdn.net/gatieme/article/details/71074831
總結
以上是生活随笔為你收集整理的Ubuntu16.04编译RK3399:make kernel.img error的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈 SSD,eMMC,UFS
- 下一篇: 解决Out of memory erro