Just that. Go to the kernel/linaro/hisilicon
folder and run the device/linaro/l-loader/cc
script from there.
../scripts/gcc-version.sh: line 25: aarch64-linux-android-gcc: command not found
../scripts/gcc-version.sh: line 26: aarch64-linux-android-gcc: command not found
make[1]: aarch64-linux-android-gcc: Command not found
make[1]: aarch64-linux-android-gcc: Command not found
I have aarch64-linux-android-gcc but I think there is a version problem. How can I change this? I can not find it.
Secondly, it has “ANDROID_BUILD_TOP not found problem” line 67 in cc file. I changed $(ANDROID_BUILD_TOP) as ${ANDROID_BUILD_TOP} then problem is solved.
Did you run . ./build/envsetup.sh
first before running cc
?
Also, I fixed ANDROID_BUILD_TOP problem, so please update l-loader
.
cd device/linaro/l-loader
repo sync .
cd ../../../kernel/linaro/hisilicon
make ARCH=arm64 distclean
../../../device/linaro/l-loader/cc
If cc
doesn’t run due to permission error, make sure you set it to be an executable, i.e. chmod +x cc
.
This is my aarch64-linux-android-gcc
version. Yours should be the same since it’s part of the aosp source code.
$ aarch64-linux-android-gcc --version
real-aarch64-linux-android-gcc (GCC) 4.9.x 20150123 (prerelease)
Copyright (C) 2014 Free Software Foundation, Inc.
I updated l-loader. I could run make TARGET_BUILD_UEFI=true TARGET_TEE_IS_OPTEE=true
via sudo
. So, I think I need to sudo
command while I am working ../../../device/linaro/l-loader/cc
despite cc is executable. What do you think about is this problem?
This is my aarch64-linux-android-gcc
version:
aarch64-linux-android-gcc (GCC) 4.9.x 20150123 (prerelease)
Copyright (C) 2014 Free Software Foundation, Inc.
But, error is same: command not found. (I used . ./build/envsetup.sh
). I am working on solving this problem.
I don’t use sudo
for make
and cc
. Sounds like something off with the system.
What is the output of uname -a
?
From which folder did you run aarch64-linux-android-gcc
?
Run echo $PATH
. Among the folders listed, is there one that contains aarch64-linux-android-gcc
?
Linux martin 4.4.0-98-generic #121~14.04.1-Ubuntu SMP Wed Oct 11 11:54:55 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
/home/martin/Android/Sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin
/home/martin/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/martin/Android/Sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin:/home/martin/optee_android_manifest/device/linaro/gcc-linaro-5.4.1-2017.05-x86_64_aarch64-linux-gnu/bin:/home/martin/optee_android_manifest/device/linaro/gcc-linaro-5.4.1-2017.05-x86_64_arm-linux-gnueabihf/bin
Problem is solved. root does not show aarch64-linux-android-gcc. Now it is compiling. But, I dont understand why make TARGET_BUILD_UEFI=true TARGET_TEE_IS_OPTEE=true
doesn’t run without sudo.
What’s the error with make
without sudo
?
$ ld -v
GNU ld (GNU Binutils for Ubuntu) 2.24
What is your binutils version?
Edit: I think problem is this. I can not use binutils 2.27 in toolchain
We talked about : OpTEE + Android in Hikey960 - #37 by tesmnorth
No, we didn’t really talked about it. The system sends out notification only when a new post is made, not when one is edited, so if the edit is not trivial, as in your case above, it might be better to make a new post instead, else I wouldn’t know of your updates.
I re-installed Ubuntu as 14.04.5. I did everything step by step. I used linaro toolchain. But, Error is same.
I’m not sure about the cross toolchains that come with Ubuntu 14.04. It might be ok. The linaro ones I suggested earlier above are wrong! Sorry about that! They shouldn’t have worked. Not sure why my previous built was successful. See https://github.com/ARM-software/tf-issues/issues/401 for details, especially https://github.com/ARM-software/tf-issues/issues/401#issuecomment-316450010. Have you seen this (or a similar thread) and is this why you’re asking about the binutils version? In any case, you need to check the cross compilers binutils version, e.g. aarch64-linux-gnu-ld, not the native (ld) one, but for linaro toolchain, the version might not give you enough info due to backporting.
I’ve also updated the makefile to use linaro gcc 7 instead, so below commands should work.
cd <aosp main>
repo sync device/linaro/hikey
make TARGET_BUILD_UEFI=true TARGET_TEE_IS_OPTEE=true #no sudo!
Again, the makefile automatically downloads and uses the toolchain so you shouldn’t have to download manually.
I solved the problem. make TARGET_BUILD_UEFI=true TARGET_TEE_IS_OPTEE=true command needs root priviliges.
I don’t think this is a result of the build needing root privileges. Rather that as a result of sudo
, you’re now using a different toolchain that doesn’t trigger the build error. Also, using sudo
might possibly make the images not work properly due to file permissions, so not recommended.
I believe everything should now be ok with the build instructions. Please make sure you don’t have any toolchains that you’ve downloaded manually[1] in your $PATH that might interfere with the build, and try again without sudo
.
[1] The ones installed with apt-get
and the ones downloaded in /home/martin/Android/Sdk/ndk-bundle
. The android toolchains should already be in /home/martin/optee_android_manifest/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin
so you shouldn’t need the others.
2017-11-10 10:18:59 (5,56 MB/s) - ‘gcc-linaro-5.4.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz.1’ saved [88614724/88614724]
tar: gcc-linaro-7.1.1-2017.08-x86_64_aarch64-linux-gnu.tar.xz: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now
Makefile:34: recipe for target '/home/martin/optee_android_manifest/device/linaro/gcc-linaro-7.1.1-2017.08-x86_64_aarch64-linux-gnu' failed
make: *** [/home/martin/optee_android_manifest/device/linaro/gcc-linaro-7.1.1-2017.08-x86_64_aarch64-linux-gnu] Error 2
Sorry, typo.
cd <aosp main>
repo sync device/linaro/hikey
rm -f device/linaro/gcc-linaro-*.tar.xz
make TARGET_BUILD_UEFI=true TARGET_TEE_IS_OPTEE=true #no sudo!
[ 1% 1389/76662] target C: e2fsdroid_stati...e2fsprogs/contrib/android/basefs_allocator.c
In file included from external/e2fsprogs/contrib/android/basefs_allocator.c:3:
In file included from external/e2fsprogs/contrib/android/basefs_allocator.h:5:
In file included from external/e2fsprogs/lib/ext2fs/ext2fs.h:71:
external/e2fsprogs/lib/ext2fs/ext2_types.h:30:9: warning: '__bitwise' macro redefined [-Wmacro-redefined]
#define __bitwise
^
bionic/libc/kernel/uapi/linux/types.h:25:9: note: previous definition is here
#define __bitwise __bitwise__
^
1 warning generated.
[ 1% 1392/76662] target C: e2fsdroid_stati...= external/e2fsprogs/contrib/android/perms.c
In file included from external/e2fsprogs/contrib/android/perms.c:4:
In file included from external/e2fsprogs/contrib/android/perms.h:5:
In file included from external/e2fsprogs/lib/ext2fs/ext2fs.h:71:
external/e2fsprogs/lib/ext2fs/ext2_types.h:30:9: warning: '__bitwise' macro redefined [-Wmacro-redefined]
#define __bitwise
^
bionic/libc/kernel/uapi/linux/types.h:25:9: note: previous definition is here
#define __bitwise __bitwise__
^
1 warning generated.
ninja: build stopped: subcommand failed.
10:55:36 ninja failed with: exit status 1
#### failed to build some targets (01:47 (mm:ss)) ####
Please, ignore above log.
Connecting to releases.linaro.org (releases.linaro.org)|52.77.230.32|:80... connected.
HTTP request sent, awaiting response... 404 NOT FOUND
2017-11-10 10:55:03 ERROR 404: NOT FOUND.
Makefile:34: recipe for target '/home/martin/optee_android_manifest/device/linaro/gcc-linaro-7.1.1-2017.08-x86_64_aarch64-linux-gnu' failed
make: *** [/home/martin/optee_android_manifest/device/linaro/gcc-linaro-7.1.1-2017.08-x86_64_aarch64-linux-gnu] Error 8
Sorry, please try again using latest instructions above.
In the following error, there is a directory which name is RELEASE_GCC49. But, I have RELEASE_GCC5 in this path.
Do I have to modify MakeFile as “_GCC5” in directory “/home/martin/optee_android_manifest/device/linaro/hikey/bootloader/”?
------------------------------------------------------------
Hikey960 RELEASE pass
------------------------------------------------------------
pass 1
fail 0
cd /home/martin/optee_android_manifest/device/linaro/l-loader && \
ln -sf /home/martin/optee_android_manifest/device/linaro/edk2/Build/HiKey960/RELEASE_GCC49/FV/bl1.bin && \
ln -sf /home/martin/optee_android_manifest/device/linaro/edk2/Build/HiKey960/RELEASE_GCC49/FV/BL33_AP_UEFI.fd && \
python gen_loader_hikey960.py -o l-loader.bin --img_bl1=bl1.bin --img_ns_bl1u=BL33_AP_UEFI.fd && \
cp l-loader.bin /home/martin/optee_android_manifest/out/dist/ && \
cp l-loader.bin /home/martin/optee_android_manifest/device/linaro/hikey/installer/hikey960/
+-----------------------------------------------------------+
Input Images:
bl1: bl1.bin
ns_bl1u: BL33_AP_UEFI.fd
Ouput Image: l-loader.bin
+-----------------------------------------------------------+
Traceback (most recent call last):
File "gen_loader_hikey960.py", line 129, in <module>
main(sys.argv[1:])
File "gen_loader_hikey960.py", line 124, in main
loader.create(img_bl1, img_ns_bl1u, output_img)
File "gen_loader_hikey960.py", line 92, in create
self.add(0, img_bl1)
File "gen_loader_hikey960.py", line 32, in add
fsize = os.path.getsize(fname)
File "/usr/lib/python2.7/genericpath.py", line 49, in getsize
return os.stat(filename).st_size
OSError: [Errno 2] No such file or directory: 'bl1.bin'
make: *** [/home/martin/optee_android_manifest/out/dist/l-loader.bin] Error 1
make: Leaving directory `/home/martin/optee_android_manifest/device/linaro/hikey/bootloader'
[ 2% 2268/76660] target C++: libv8src <= external/v8/src/builtins/builtins-handler.cc
ninja: build stopped: subcommand failed.
09:10:16 ninja failed with: exit status 1
Sorry but i’m not feeling well. Can we pick this back up next week?