Tx1 kernel build fail base on Jetpack3.1-R28.1 code

Dear Sir,
My compile environment is set as follows:
export CROSS_COMPILE=/opt/gcc-linaro-5.4.1-2017.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
export CROSS32CC=/opt/gcc-linaro-5.4.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
export ARCH=arm64

export TEGRA_KERNEL_OUT=$basepath/images
export TEGRA_MODULES_OUT=$basepath/modules

if [ “$1” != “” ]; then
case $1 in

clean)
make -C kernel-4.4 mrproper
;;

kernel)
make -C kernel-4.4 O=$TEGRA_KERNEL_OUT tegra21_defconfig
make -C kernel-4.4 O=$TEGRA_KERNEL_OUT Image
;;

dtb)
make -C kernel-4.4 O=$TEGRA_KERNEL_OUT tegra21_defconfig
make -C kernel-4.4 O=$TEGRA_KERNEL_OUT dtbs
;;

When build kernel ,it is fail ,error message is :

No rule to make target firmware/audience/es755/audience-es755-fw.bin', needed by firmware/audience/es755/audience-es755-fw.bin.gen.o’. Stop.

  Would you please help to give me some advice ,Thanks

My compile worked. Here are some notes (in no particular order) on the build:

  • My source is from source_sync.sh.
  • My 64-bit cross compiler is from gcc-linaro-5.3-2016.02-rc1.
  • You don't need CROSS32CC on this build. I did not set this, not sure if that is causing a problem. Try without CROSS32CC (CROSS32CC was used on the R24.x builds where 64-bit kernel space was used, but user space was 32-bit).
  • "make -C kernel-4.4 mrproper" may not be what you expect. It is good to do this to make sure your source tree is pristine, but you also should do this on the build output area:
    make -C kernel-4.4 <b>O=$TEGRA_KERNEL_OUT</b> mrproper
    
  • Don't know if your source will hit some older bugs I have fixed in my source, but those are unrelated to the "No rule to make target" error you have.
  • Instead of just the "make mrproper" I usually start by recursively deleting all content of "$TEGRA_KERNEL_OUT". When some of the external references to other subdirectories not directly in the kernel tree are used the "clean" and "mrproper" won't remove their intermediate build content. This only occurs if you are using the source_sync.sh version where more directories than those directly within kernel source are used, but those directories will be mandatory most of the time anyway.
  • I didn't use the "make -C", my build was directly in the "kernel-4.4" directory (the top of the source tree with the parent Makefile).

My code lost something in kernel, after re-download code by source_sync.sh, the error disappeared, Thanks!