Jump to content
Mortis1369

Compiling Android

Recommended Posts

I have no idea how active this community is, but I chose the Tinker Board 2s as a platform for one of my projects. The github repo link is dead. I managed to find a fork that was functional, but it isn't complete. Is there some other source where I can draw all of the files necessary (minus the source code for AOSP as I already have it) in order to begin developing my operating system for this board? Or should I just resort to brute force and make a blob?

Share this post


Link to post
Share on other sites

Hello all,

is there a reference page with build instruction?
I just found the reference page with the download instruction here manifest .

Nevertheless, I couldn't find any guide with a procedure that describes it.

Share this post


Link to post
Share on other sites

Hello,

thank you for the feedback. The link was very useful, nevertheless I had some issues when building u-boot and the kernel (for the moment I tests these).
For u-boot I get

Error: arch/arm/dts/.rk3036-sdk.dtb.pre.tmp:77.1-10 syntax error
FATAL ERROR: Unable to parse input tree
make[2]: *** [scripts/Makefile.lib:319: arch/arm/dts/rk3036-sdk.dtb] Error 1
make[2]: *** Waiting for unfinished jobs....
Error: arch/arm/dts/.rk3368-px5-evb.dtb.pre.tmp:335.1-10 syntax error
FATAL ERROR: Unable to parse input tree
make[2]: *** [scripts/Makefile.lib:319: arch/arm/dts/rk3368-px5-evb.dtb] Error 1
Error: arch/arm/dts/.rk3328-evb.dtb.pre.tmp:301.1-10 syntax error
FATAL ERROR: Unable to parse input tree
make[2]: *** [scripts/Makefile.lib:319: arch/arm/dts/rk3328-evb.dtb] Error 1
Error: arch/arm/dts/.rk3368-sheep.dtb.pre.tmp:288.1-10 syntax error
FATAL ERROR: Unable to parse input tree
make[2]: *** [scripts/Makefile.lib:319: arch/arm/dts/rk3368-sheep.dtb] Error 1
arch/arm/dts/rk3126-evb.dtb: Warning (reg_format): "reg" property in /syscon@20008000/usb2-phy@17c has invalid length (8 bytes) (#address-cells == 2, #size-cells == 1)
arch/arm/dts/rk3126-evb.dtb: Warning (avoid_default_addr_size): Relying on default #address-cells value for /syscon@20008000/usb2-phy@17c
arch/arm/dts/rk3126-evb.dtb: Warning (avoid_default_addr_size): Relying on default #size-cells value for /syscon@20008000/usb2-phy@17c
arch/arm/dts/rk3128-evb.dtb: Warning (reg_format): "reg" property in /syscon@20008000/usb2-phy@17c has invalid length (8 bytes) (#address-cells == 2, #size-cells == 1)
arch/arm/dts/rk3128-evb.dtb: Warning (avoid_default_addr_size): Relying on default #address-cells value for /syscon@20008000/usb2-phy@17c
arch/arm/dts/rk3128-evb.dtb: Warning (avoid_default_addr_size): Relying on default #size-cells value for /syscon@20008000/usb2-phy@17c
Error: arch/arm/dts/.rk3188-radxarock.dtb.pre.tmp:383.1-10 syntax error
FATAL ERROR: Unable to parse input tree
make[2]: *** [scripts/Makefile.lib:319: arch/arm/dts/rk3188-radxarock.dtb] Error 1
Error: arch/arm/dts/.rk3368-geekbox.dtb.pre.tmp:320.1-10 syntax error
FATAL ERROR: Unable to parse input tree
make[2]: *** [scripts/Makefile.lib:319: arch/arm/dts/rk3368-geekbox.dtb] Error 1
Error: arch/arm/dts/.rk3368-lion.dtb.pre.tmp:196.1-10 syntax error
FATAL ERROR: Unable to parse input tree
make[2]: *** [scripts/Makefile.lib:319: arch/arm/dts/rk3368-lion.dtb] Error 1
make[1]: *** [dts/Makefile:101: arch-dtbs] Error 2
make: *** [Makefile:882: dts/dt.dtb] Error 2
Build uboot failed!
ms@c64416174e4e:/source$ ls u-boot/:

I fixed it modifying the Makefile in /source/u-boot/arch/arm/dts so that only mk3399 is listed.

New content of /source/u-boot/arch/arm/dts/Makefile

...
dtb-$(CONFIG_ARCH_ROCKCHIP) += \
	rk3399-evb.dtb \
	rk3399-firefly.dtb \
	rk3399-puma-ddr1333.dtb \
	rk3399-puma-ddr1600.dtb \
	rk3399-puma-ddr1866.dtb
dtb-$(CONFIG_ARCH_MESON) += \
...

This allowed me to discard all other board and build only for rk3399.

@tooz Do you know if this may cause future issue or it can be accepted?

About the kernel instead:

I was never able to build the kernel with clang. I got the error:

ms@92fa117c0cc6:/source$ ./build.sh -C 
will build kernel with Clang
-------------------KERNEL_DTS:rk3399-tinker-board-2
Start build kernel
  CLEAN   .
  CLEAN   certs
  CLEAN   drivers/scsi
  CLEAN   fs/unicode
  CLEAN   kernel
  CLEAN   lib
  CLEAN   net/wireless
  CLEAN   security/selinux
  CLEAN   usr
  CLEAN   .tmp_versions

#### build completed successfully (8 seconds) ####

/bin/sh: 1: ../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang: not found
  HOSTCC  scripts/basic/fixdep
/bin/sh: 1: ../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang: not found
  HOSTCC  scripts/kconfig/conf.o
  YACC    scripts/kconfig/zconf.tab.c
  LEX     scripts/kconfig/zconf.lex.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
./scripts/gcc-version.sh: 26: ../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang: not found
./scripts/gcc-version.sh: 27: ../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang: not found
./scripts/gcc-version.sh: 29: ../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang: not found
./scripts/gcc-version.sh: 26: ../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang: not found
./scripts/gcc-version.sh: 27: ../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang: not found
./scripts/gcc-version.sh: 29: ../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang: not found
init/Kconfig:17: syntax error
init/Kconfig:16: invalid option
./scripts/clang-version.sh: 15: ../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang: not found
./scripts/gcc-plugin.sh: 11: ../prebuilts/clang/host/linux-x86/clang-r383902b/bin/clang: not found
make[2]: *** [scripts/kconfig/Makefile:104: tinker_board_2_defconfig] Error 1
make[1]: *** [Makefile:578: tinker_board_2_defconfig] Error 2
make: *** [Makefile:286: __build_one_by_one] Error 2

#### failed to build some targets (2 seconds) ####

Build kernel failed!

@tooz Do you know a fix?

 

Building the kernel with $ ./build.sh -K return the following error

make[4]: *** No rule to make target 'drivers/media/i2c/cam_sensor/cam_sensor.o', needed by 'drivers/media/i2c/cam_sensor/built-in.a'.  Stop.
make[3]: *** [scripts/Makefile.build:637: drivers/media/i2c/cam_sensor] Error 2
make[2]: *** [scripts/Makefile.build:637: drivers/media/i2c] Error 2
make[1]: *** [scripts/Makefile.build:637: drivers/media] Error 2

 

I checked in the folders and no objects for cam_imx219.c,  cam_ov5647.c, cam_sensor_code.c are present in the folder. It is like they are not compiled at all so they cannot be added during the build process.

I've also tried to use only one job to build but nothing changed.

The only thing I've found to have the kernel compilation working was by changing the file kernel/drivers/media/i2c/cam_sensor/Makefile with the content:

#cam_sensor-objs	:= \
#		cam_sensor_core.o \
#		cam_imx219.o \
#		cam_ov5647.o

cam_sensor_objs :=

#obj-$(CONFIG_VIDEO_CAM_SENSOR)	+= cam_sensor.o

obj-$(CONFIG_VIDEO_CAN_SENSOR) += 

Nevertheless this means that no camera sensor are added at all.

@tooz do you know if this is due to the missing step with clang? Do you know if there is a way to fix it?

 

Thank you!

Share this post


Link to post
Share on other sites

Hell @tooz,

to download I used 

$ repo init -u https://github.com/TinkerBoard2-Android/manifest.git -b android11-rk3399 -m tinker_board_2-android11-2.0.1.xml
$ repo sync

and to build I used the these instruction from 2.1 Build image 

source build/envsetup.sh
lunch WW_Tinker_Board_2-userdebug
./build.sh -UKAu

Note that I removed the option C build kernel with Clang because it was failing and I wasn't able to fix it.

Share this post


Link to post
Share on other sites

hello @MarciS

./build.sh -UCKAu not working is not an expected result, what is your build environment?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...