Vim2 got errors while compiling uboot

请问,我们试着编译vim2 uboot, 这两条类似的编译指令执行结果有什么不同吗?
然后第二条编译总出错,请帮忙看看。

编译U-boot:

$ cd PATH_YOUR_PROJECT
$ cd uboot
$ make CROSS_COMPILE=aarch64-linux-gnu- kvim2_defconfig
$ make CROSS_COMPILE=aarch64-linux-gnu-

chase@giga:~/projects/khadas-vims-nougat/uboot$ make CROSS_COMPILE=aarch64-linux-gnu- kvim2_defconfig
GEN ./Makefile
configuration written to .config

chase@giga:~/projects/khadas-vims-nougat/uboot$ make CROSS_COMPILE=aarch64-linux-gnu-
make[1]: aarch64-linux-gnu-gcc: Command not found
/bin/sh: aarch64-linux-gnu-gcc: command not found
dirname: missing operand
Try ‘dirname --help’ for more information.
GEN ./Makefile
scripts/kconfig/conf --silentoldconfig Kconfig
CHK include/config.h
GEN include/autoconf.mk
/bin/sh: aarch64-linux-gnu-gcc: command not found
…/scripts/Makefile.autoconf:64: recipe for target ‘include/autoconf.mk’ failed
make[3]: *** [include/autoconf.mk] Error 1
…/Makefile:475: recipe for target ‘silentoldconfig’ failed
make[2]: *** [silentoldconfig] Error 1
make[1]: *** No rule to make target ‘include/config/auto.conf’, needed by ‘include/config/uboot.release’. Stop.
Makefile:147: recipe for target ‘sub-make’ failed
make: *** [sub-make] Error 2

chase@giga:~/projects/khadas-vims-nougat/uboot$ ls fip
acs_tool.pyc axg blx_fix.sh fip_create gxb gxl gxtvbb txl txlx

工具链没装。安装工具链先:

https://docs.khadas.com/vim3/InstallToolchains.html

你好,我之前一直有成功编译VIM3的android系统,而且我再次检查了一遍工具链,都是完整的。
gcc重新操作后,还是同样的问题。

chase@giga:~$ ls gcc*
gcc-arm-none-eabi-6-2017-q2-update-linux.tar.bz2
gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu.tar.xz
gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf.tar.xz
gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar.bz2

chase@giga:~$ ls /opt/toolchains/
gcc-arm-none-eabi-6-2017-q2-update
gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu
gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf
gcc-linaro-aarch64-none-elf-4.8-2013.11_linux
chase@giga:~$

而同样的编译环境vim3的uboot就可以成功编译:
chase@giga:~/projects/khadas-vims-pie/bootloader/uboot$ ./mk kvim3
Clean up
CLEAN examples/standalone
CLEAN tools
CLEAN tools/lib tools/common
Amlogic img found, use new FIP structure!
Creating “fip/_tmp/fip.bin”
Firmware Image Package ToC:

  • SCP Firmware BL3-0: offset=0x4000, size=0xD400
  • EL3 Runtime Firmware BL3-1: offset=0x14000, size=0x29330
  • Non-Trusted Firmware BL3-3: offset=0x40000, size=0x149E80
    Bootloader build done!

我们重新指定了版本和软连接,现在问题解决了。

sudo ln -s aarch64-linux-gnu-gcc-4.8 aarch64-linux-gnu-gcc

make[1]: /opt/toolchains/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin/aarch64-none-elf-gcc: Command not found



image

请看我上面的几个截图,
/opt/toolchains/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin/aarch64-none-elf-gcc -> aarch64-none-elf-gcc-4.8.3
aarch64-none-elf-gcc是指向aarch64-none-elf-gcc-4.8.3的。
现在不太清楚是找不到tool,还是权限问题。

kevinc@gigad:~/1_Projects/khadas-vims-pie/bootloader/uboot$ echo $PATH
/home/kevinc/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/opt/toolchains/

是权限问题。

你看你的工具链权限全是 1001

你好,修改权限后还是一样的报错。用浏览器重新下载那两个交叉工具,也还是不行。网上也没找到解决方法。。。
这个问题困扰我们很久了,最早这块vim3是可以编译的,然后调试vim2不能编译,接着我们就重装了ubuntu18.04系统,但是vim2/3还不能编译。

交叉tool就在那,编译就提示没法找到

make[1]: /opt/toolchains/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin/aarch64-none-elf-gcc: Command not found
改成root权限


改成user权限

uboot和kernel工具默认解压就是这些权限,工具内容变了?

直接运行可以吗?

/opt/toolchains/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin/aarch64-none-elf-gcc -v

问题解决了!

交叉编译器虽然有了,但是交叉编译器的运行缺少32位库支持。我装了 ib32z1-dev

但我不明白,主机和目标板都是64位的,uboot编译是32位的吗?

image

有用到32位编译器的/opt/toolchains/gcc-arm-none-eabi-6-2017-q2-update/bin/arm-none-eabi-
BL21就是用32位编译器编译的。

OK, thanks! 这次处理编译的问题,学到了很多。

在说明下,这个库是Google官方都要求安装的库,可能你没有看google的文档。