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!