./source_sync.sh -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))
GCOV_PROFILE := n
-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,-soname=linux-vdso32.so.1 \
$(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,
break;
case USB_SPEED_HIGH:
/* 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.
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.