Ubuntu16.04编译RK3399:make kernel.img error
生活随笔
收集整理的這篇文章主要介紹了
Ubuntu16.04编译RK3399:make kernel.img error
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
RK3399開(kāi)源資料:?http://www.t-firefly.com/doc/product/info/id/100.html
1.問(wèn)題:
ubuntu16.04編譯內(nèi)核Kernel出現(xiàn)錯(cuò)誤:
??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.分析:
打印日志來(lái)看,內(nèi)核構(gòu)建Image已經(jīng)完成,當(dāng)構(gòu)建kernel.img時(shí)出現(xiàn)問(wèn)題。
分析arch/arm64/Makefile中在生成kernel.img時(shí)具體做了什么
$ 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)
生成規(guī)則為:scripts/mkkrnlimg arch/arm64/boot/Image kernel.img >/dev/null
通過(guò)腳本mkkrnlimg將Image生成kernel.img,沒(méi)有生成,則說(shuō)明mkkrnlimg運(yùn)行出現(xiàn)問(wèn)題。
查看mkkrnlimg的文件屬性
??$ file scripts/mkkrnlimg?
scripts/mkkrnlimg:?ELF 32-bit?LSB executable, Intel 80386, version 1 (GNU/Linux), statically linked, stripped
可以發(fā)現(xiàn),執(zhí)行文件mkkrnlimg是在32位平臺(tái)上運(yùn)行的,而ubuntu 16.04 x86_64 為64位。
為了ubuntu 16.04 64位 兼容32位的執(zhí)行文件,一般需要安裝lib32-glibc。
參考鏈接:http://blog.csdn.net/gatieme/article/details/71074831
總結(jié)
以上是生活随笔為你收集整理的Ubuntu16.04编译RK3399:make kernel.img error的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 浅谈 SSD,eMMC,UFS
- 下一篇: ubuntu18.04安装pycharm