Jetson TX1 24.1 Release need help with complier directions , can not complie

Well this is what I did:

./ -k tegra-l4t-r24.1 -u tegra-l4t-r24.1
git apply compiled.patch
//... Normal build steps as you detailed earlier.
//... Flashed to eMMC using Jetpack (mainly so that I can install cuda, opencv...
//... Booted (installed jetpack stuff) rebooted,
//... So far so good

The changes applied (ignore USB ones, they are for the DUO camera)

diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile
index 0c2bc73..d0a2925 100644
--- a/arch/arm64/kernel/vdso32/Makefile
+++ b/arch/arm64/kernel/vdso32/Makefile
@@ -11,7 +11,7 @@ obj-vdso32 := $(addprefix $(obj)/, $(obj-vdso32))
-ccflags-y := -shared -fPIC -fno-common -fno-builtin -march=armv7-a
+ccflags-y := -shared -fPIC -fomit-frame-pointer -fno-common -fno-builtin -march=armv8-a
 ccflags-y += -nostdlib -Wl, \
 		$(call cc-ldoption, -Wl$(comma)--hash-style=sysv)
 asflags-y := -D__VDSO32__ -s
diff --git a/drivers/platform/tegra/tegra21_clocks.c b/drivers/platform/tegra/tegra21_clocks.c
index 9ae33d2..6f4d12b 100644
--- a/drivers/platform/tegra/tegra21_clocks.c
+++ b/drivers/platform/tegra/tegra21_clocks.c
@@ -1061,7 +1061,7 @@ static struct clk_ops tegra_super_ops = {
 static void tegra21_cpu_clk_init(struct clk *c)
-	c->state = (!is_lp_cluster() == (c->u.cpu.mode == MODE_G)) ? ON : OFF;
+	c->state = ((!is_lp_cluster()) == (c->u.cpu.mode == MODE_G)) ? ON : OFF;
 static int tegra21_cpu_clk_enable(struct clk *c)
diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
index 87e82e6..6baace7 100644
--- a/drivers/usb/host/xhci-mem.c
+++ b/drivers/usb/host/xhci-mem.c
@@ -1436,8 +1436,10 @@ int xhci_endpoint_init(struct xhci_hcd *xhci,
 		/* Some devices get this wrong */
+//Duo3D Kernel Patch, applied 13/05/2016
 		if (usb_endpoint_xfer_bulk(&ep->desc))
-			max_packet = 512;
+			//max_packet = 512; //Support for DuoMLX larger packets.
+			max_packet = 1024;
 		/* bits 11:12 specify the number of additional transaction
 		 * opportunities per microframe (USB 2.0, section 9.6.6)

Note the change to Makefile. It boots and seems normal so far. How can I check if this has had any effect?

I don’t know about completely validating this, but the fact that it compiled and runs at least partially tells you the armv8-a and -fomit-frame-pointer changes succeeded. The changes which clarify the cstate line must also work, as the compiler did not reject it. I suspect that for testing the USB patch you won’t know until something which previously failed no longer fails.

I am getting same error from R24.2 how you solved those errors?

Hi RiteshPanchal,

Please try release 24.2.1 toolchain. Thanks!

Download link:

I have to revive this thread because I’m getting exactly the same error. I’m using the 24.2.1 toolchain. Following the doc from:

When executing “make O=$TEGRA_KERNEL_OUT zImage” I get the error:

/home/sd2/jetson_tx1/toolchain-build-aarch64/install/bin/aarch64-unknown-linux-gnu-ld: cannot find libgcc.a: No such file or directory
/home/sd2/jetson_tx1/toolchain-build-aarch64/install/bin/aarch64-unknown-linux-gnu-ld: cannot find libgcc.a: No such file or directory

It wasn’t easy to get to this point, and now I’m stuck.
I’m trying to build the kernel on a Ubuntu 14.04 system.

I want to install the following patch:

Eventually I want to install the patch on our TX2 system, but that’s a different code basis. On the TX1 I want to verify if the patch solves my issue. For the TX2 I’ve found a tutorial which is easy to follow:

Is there a similar tutorial for the TX1?

There is a similar JetsonHacks article for building the kernel on the Jetson TX1:

Good luck!

Here are some notes on TX1 kernel compile:

I have a Fedora host so I use Linaro instead of deb packages (or the compiler tools in the documentation). If interested, here are some precompiled binaries:

This is a little embarrassing that I didn’t find the page on jetsonhacks. Worked eventually, after overcoming the space limitations of the TX1 :)

Thanks guys!