yashsingh1/xdaforums huggingface dataset:
[Shield Android TV General] yahoo2016:
I turned off Wifi from desktop, it appears booting faster (also from dmesg).

The problem is no booting messages on screen until desktop pops up after long time.
[Shield Android TV General] Thanks_Meter:
I have two sound card entries in the sound settings. "Analog Output tegra-snd-t210ref-mobile-es755" and HDMI. HDMI works for me but I remember that I played around with alsamixer.

Maybe you use a slow sd-card. On my shield tv booting also takes just ~10s and starting Firefox is also very fast.

One open point for me is that shutdown does not really work. The green light remains switched on. Do you also have this problem?
[Shield Android TV General] Steel01:
Now I really need to get multirom running so people can dual boot this.

It might be good idea to reference what [MENTION=4937137]Bogdacutu[/MENTION] did for l4t on the shield tablet, should be possible to use a nigh identical rootfs here. Then if I ever get multirom to work, a very similar .mrom installer should work.

So, what is the status here for l4t? WiFi, Bluetooth, Ethernet, hardware accelerated video all work? Just no sound?

[MENTION=2826079]Gnurou[/MENTION] and I have some interest in getting mainline Linux working, but he has precious little time and I don't have the resources yet (stupid bootloader and non-working multirom...).
[Shield Android TV General] yahoo2016:
The same for me for shutdown, I think the right driver is needed to turn off power.

I used new Kingston 32 GB class 10 MMCs formatted using fdisk and mkfs.ext4. The same SSD was used in Chromebook CB5.

The same shield worked with a Dell 1920 monitor failed to work for a HP 1920 (LP2475) monitor, ctl-alt-F1 also failed to work. I had to add a "/etc/init/lightdm.override" file to boot to command line.

When I tried "sudo depmod" I got "could not open /lib/modules/3.10.61", it seems kernel/rootfs mismatch.

---------- Post added at 06:58 PM ---------- Previous post was at 06:35 PM ----------

It'd be nice to have dual boot.

I believe the main issues now are:

(1). Can't fit L4T kernel to recovery partition.

(2). kernel from OP mismatches with L4T roofs, some drives may not installed correctly, WiFi, Bluetooth have not been proven to work, video driver is unstable (often black screen, no-response from KB/mouse after that).
[Shield Android TV General] Bogdacutu:
not sure if this will help for this device too, but for the shield tablet, the kernel tree I've used for linux is based on the jetson tk1 tree, with drivers from the android tree dropped in as necessary to ensure compatibility (and backported bluetooth drivers because otherwise attempting to use bluetooth would very often hang the kernel). it's somewhat of an ugly solution, but it works fairly well

as for the space issue, I'd suggest building as many parts of the kernel as possible as modules and including them in the rootfs (unless you've already tried this and it doesn't help)
[Shield Android TV General] yahoo2016:
That all make sense.

An expert wrote a script to install ubunto on tegra K1 based Chromebook CB5, it includes many commands to make most drivers work:

http://www.clifford.at/blog/index.p...Ubuntu-on-an-Acer-Chromebook-13-Tegra-K1.html

Then another expert made Cuda working again (by combining files from Chromium and L4T and building new kernel):

https://devtalk.nvidia.com/default/...-acer-chromebook-13-cb5/post/4618122/#4618122

I'm not up to the tasks, hopefully some experts will write a script to help everyone to install ubuntu for Shield TVs.
[Shield Android TV General] Thanks_Meter:
The more interesting information is the speedclass. My sd-card is u3.

I guess my problem why I cannot compile a kernel for the shield tv is because probably my armhf and my aarch64 cross-compiler don't work together. Do you have experience with 64bit arm?
[Shield Android TV General] yahoo2016:
Good new! I have Cuda 7.0 running on my Shield TV.

The bad news is SimpleMultiCopy on Shied (Tegra X1) is slower than on Chromebook CB5 (Tegra K1).

I got glmark2 score 818 with errors:

**Failed to set swap interval. Results may be bounded above by fresh rate.
[Shield Android TV General] DidierLockwood:
Just so we are clear here. Noone has the CUDA drivers working right? If so, what is the output from deviceQuery? The only reason to go to L4T is for the CUDA drivers, IMO.
[Shield Android TV General] yahoo2016:
./deviceQuery Starting...

CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GM20B"

CUDA Driver Version / Runtime Version 7.0 / 7.0

CUDA Capability Major/Minor version number: 5.3

Total amount of global memory: 2807 MBytes (2943270912 bytes)

( 2) Multiprocessors, (128) CUDA Cores/MP: 256 CUDA Cores

GPU Max Clock rate: 72 MHz (0.07 GHz)

Memory Clock rate: 13 Mhz

Memory Bus Width: 64-bit

L2 Cache Size: 262144 bytes

Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)

Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers

Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers

Total amount of constant memory: 65536 bytes

Total amount of shared memory per block: 49152 bytes

Total number of registers available per block: 32768

Warp size: 32

Maximum number of threads per multiprocessor: 2048

Maximum number of threads per block: 1024

Max dimension size of a thread block (x,y,z): (1024, 1024, 64)

Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)

Maximum memory pitch: 2147483647 bytes

Texture alignment: 512 bytes

Concurrent copy and kernel execution: Yes with 2 copy engine(s)

Run time limit on kernels: No

Integrated GPU sharing Host Memory: Yes

Support host page-locked memory mapping: Yes

Alignment requirement for Surfaces: Yes

Device has ECC support: Disabled

Device supports Unified Addressing (UVA): Yes

Device PCI Domain ID / Bus ID / location ID: 0 / 0 / 0

Compute Mode:

< Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 7.0, CUDA Runtime Version = 7.0, NumDevs = 1, Device0 = GM20B

Result = PASS
[Shield Android TV General] DidierLockwood:
Well, the TX1 should be getting about double the performance of the TK1 so something is definitely wedged... 318 vs 157 GFLops... see

pugetsystems .com/labs/articles/NVIDIA-Jetson-TK1-CUDA-performance-569
[Shield Android TV General] yahoo2016:
I did get 309 GFLOPS after running "maxPerf.sh" see here:

https://devtalk.nvidia.com/default/topic/901337/cuda-7-0-jetson-tx1-performance-and-benchmarks/

---------- Post added 5th December 2015 at 12:09 AM ---------- Previous post was 4th December 2015 at 11:21 PM ----------

I tried to run phoronix-test-suite and was able to get system info but faild to run tests for aarch64;

System Information

Hardware:

Processor: Cortex A57 rev 1 @ 2.01GHz (4 Cores), Motherboard: foster_e, Memory: 3072MB, Disk: 16GB SDW16G + 31GB SA32G, Graphics: NVIDIA TEGRA

Software:

OS: Ubuntu 14.04, Kernel: 3.10.61 (aarch64), Desktop: Unity 7.2.2, Display Server: X Server 1.15.1, Display Driver: NVIDIA 1.0.0, Compiler: GCC 4.8 + CUDA 7.0, File-System: ext4, Screen Resolution: 1920x1080

ubuntu@tegra-ubuntu:~$ phoronix-test-suite benchmark unigine

pts/unigine-sanctuary-1.6.2 is not supported on this architecture: aarch64

pts/unigine-tropics-1.6.2 is not supported on this architecture: aarch64

pts/unigine-heaven-1.6.2 is not supported on this architecture: aarch64
[Shield Android TV General] crnkoj:
has anyone tried to natively compile the kernel with the .config from the OP kernel and the l4t kernel on it running ubuntu?
[Shield Android TV General] yahoo2016:
I'm interested in natively building kernel, but can't decide which kernel source to use, the Ubuntu kernel source for Chromebook CB5 (Tegra k1) was from ChromeOs with Cuda driver from Nvidia:

echo "fetch sources"
wget http://commondatastorage.googleapis.com/chromeos-localmirror/distfiles/xhci-firmware-2014.10.10.00.00.tbz2
wget https://chromium.googlesource.com/chromiumos/third_party/kernel/+archive/release-R41-6680.B-chromeos-3.10.tar.gz
# The CUDA repo to use when we are done:
wget http://developer.download.nvidia.com/embedded/L4T/r21_Release_v3.0/cuda-repo-l4t-r21.3-6-5-prod_6.5-42_armhf.deb

echo
ls -l xhci-firmware*tbz2 release-R41-6680.B*tar.gz

mkdir -p $HOME/src/linux
cd $HOME/src/linux
echo
echo "copy firmware"
sudo tar xf $HOME/Downloads/xhci-firmware-2014.10.10.00.00.tbz2 -C /
echo
echo "extract kernel"
tar -xf $HOME/Downloads/release-R41-6680.B-chromeos-3.10.tar.gz

The kernel source or at least some drivers for shield TV may need to be used to build kernel to have all devices working.

Shiled TV may need deffirent drivers than driver in L4T for Jetson TX1.
[Shield Android TV General] crnkoj:
i would use the l4t kernel sources for tx1.

Anyhow jsut recieved mine (16gb), this damn thing force auto updated to 2.1 on first boot and i couldnt do anything to stop it... so bad, i have one more coming, does anyone know how to prevent it from auto updating on first boot, so that the old less broken bootloader stays?
[Shield Android TV General] yahoo2016:
I could not find way to stop OTA update if I want to use Andriod. I reverted to SW 1.3 by flashing rooted ROM version 1.3 from nvidia.

How can I get .config from OP?
[Shield Android TV General] crnkoj:
once you are running the kernel

zcat /proc/config.gz > .config

i guess when its new one can immediately boot into bootloader via button and than instantly flash it.
[Shield Android TV General] yahoo2016:
"zcat /proc/config.gz > .config" worked.

You can flash any SW version with Shiled TV ROM images from Nvidia .

https://developer.nvidia.com/shield-open-source

and rooted ROM images:

https://developer.nvidia.com/shield-developer-os-images
[Shield Android TV General] crnkoj:
thanks, ill perhaps try to get it booting today or tomorrow night with ubuntu, and see how it works with compiling on the device. eventually id like to get gentoo onto it on an usb 3.0 hdd.

and thanks for the images (i currently installed this full android 2.2 for it, but it seems kind of disappoinintg- cant install several apps although the guy writes all apps are installable..., not to speak of the missing remote/controller functionality).

Btw installing the older images from the links you gave, downgrades the firmware/bootloader too ? And one more thing, is your cpu only quadcore a57 as well, cuz i know they advertised it as 8 core with 4x a57 and 4x a53, but this doesnt seem to be the fact anymore...
[Shield Android TV General] yahoo2016:
From the "flash_all.sh" script, it only replaces boot, recovery, system(rootfs) and user data.

I'm not sure if OTA replaces firmware/bootloader.

How can I find firmware/bootloader version without serial console?

It appears my rooted SW 1.3 asks but does not force SW update.

When I tried to compile L4T kernel, I got some gcc errors: "unrecognized command line option '-mgeneral-regs-only'".

I'm wondering those errors are due to native build.
[Shield Android TV General] crnkoj:
generally on android devices it says in the fastboot.
[Shield Android TV General] yahoo2016:
The fastboot from Shield TV does not show version.

"sudo fastboot getver version" from PC prints "version: 0.4".

I assume this is version of fastboot from Shield TV.
[Shield Android TV General] crnkoj:
for bootloader do fastboot getvar all, i have

(bootloader) version-bootloader: 1.0
(bootloader) version-baseband: 2.0
(bootloader) version-mts: NO SUPPORT YET!
(bootloader) version: 0.4

about the gcc error, which gcc version are you using? its a compile option.
[Shield Android TV General] yahoo2016:
"fastboot getvar all" gets me lot of information I need, e.g., size of "boot" and "recovery" for new kernel.

(bootloader) version-bootloader: 1.0

(bootloader) version-baseband: 2.0

(bootloader) version-mts: NO SUPPORT YET!

(bootloader) version: 0.4

(bootloader) 0422215095xxxxxxxxx

(bootloader) mid: 001

(bootloader) product: t210ref

(bootloader) secure: No

(bootloader) unlocked: Yes

(bootloader) partition-size:bootloader: 0x0000000000200000

(bootloader) partition-type:bootloader: basic

(bootloader) partition-size:recovery: 0x0000000001980000

(bootloader) partition-type:recovery: basic

(bootloader) partition-size:boot: 0x0000000001980000

(bootloader) partition-type:boot: basic

(bootloader) partition-size:dtb: 0x0000000000400000

(bootloader) partition-type:dtb: basic

(bootloader) partition-size:system: 0x0000000080000000

(bootloader) partition-type:system: ext4

(bootloader) partition-size:cache: 0x0000000010000000

(bootloader) partition-type:cache: ext4

(bootloader) partition-size:userdata: 0x00000002d8e63e00

(bootloader) partition-type:userdata: ext4

all:

finished. total time: 0.057s

---------- Post added at 09:06 PM ---------- Previous post was at 09:02 PM ----------

I used default gcc.

In case of Chromebook CB5, default compiler worked.

I'm not sure in case of aarch64 what compiler I need to specify.
[Shield Android TV General] crnkoj:
not sure, which one works, but id assume the newer, the better (prolly 5.2 best). You can check the version with gcc-config -l (at least i think so, im using mostly gentoo and there thats the command for it, not sure if on ubuntu its the same)
[Shield Android TV General] yahoo2016:
I tried "gcc -v" and found Shield TV has 32 bit compiler "arm-linux-gnueabihf". It appears L4T for X1 has 64 kernel but 32 bit rootfs.

It seems there is no easy way to natively build kernel on Shield TV.
[Shield Android TV General] crnkoj:
Hmm, I'm at work right now and don't have access to my shield,but, isn't the original Ubuntu from op arm64? One could try doing it there. Otherwise there are arch and gentoo (stage3) arm64 base systems available. Might try your luck with arch aarm64 first, by just changing the rootfs and using it with the already available and working kernel from op?
[Shield Android TV General] yahoo2016:
I had difficulties to boot to OP's compressed "*.2G" rootfs (I did decompress the tar file first).

I'll try archlinx 64 generic rootfs next.

Installing archlinx64 was easy, I got console login. Now I have to use "pacman" instead of "apt-get".
[Shield Android TV General] DidierLockwood:
It appears there is a work around (cross compiling) available at

devtalk.nvidia .com/default/topic/897280/embedded-systems/jetson-tx1-with-l4t-23-1-doesn-t-support-native-aarch64-binaries-/

Maybe a full 64 bit userspace will increase the performance
[Shield Android TV General] yahoo2016:
That's the link members pointed out that L4T for X1 doesn't support native aarch64 binaries. I'm also look into cross compiling. It appears 32bit Linux PC is needed to cross compile 64 bit kernel.

https://devtalk.nvidia.com/default/topic/901677/jetson-tx1/building-tx1-kernel-from-source/

I also want to try native compiling using OP's *.2G rootfs, but could not boot to it (it only worked the first day when I got my shield TV). Is it possible to decompressed the *.2G file on another Linux PC?
[Shield Android TV General] yahoo2016:
After some searches, I could not find native or cross aarch64 compiler for arm64.

I decided to use cross compilers for intel 64 bit Ubuntu.

I was able to build kernel for Tegra X1 . The good news is the new kernel is smaller than the one in L4T, and therefore may fit in boot or recovery partition of Shield TV.

https://devtalk.nvidia.com/default/...ing-tx1-kernel-from-source/?offset=11#4749845
[Shield Android TV General] Steel01:
Side note, arm64 and aarch64 are the same thing. The proper name that most compilers will use is aarch64, however.

Not following this too closely, but something caught my attention. The kernel from l4t 23 boots on the shield tv unmodified? I'm kinda surprised to hear that.

I was surprised to see that l4t 23 was a 32-bit userspace. Made it trivial to back port to the shield tablet, though (thanks, Bogdacutu). One thing to keep in mind here when trying to get aarch64 running: the Nvidia blobs are all 32-bit. So chances are, you'll lose hardware video acceleration in such a move. But, nouveau is pretty close to full support for the X1, so that shouldn't be a huge problem for much longer.
[Shield Android TV General] yahoo2016:
The compiler names have development platform and target platform. "aarch64" is the target platform, e.g., "gcc-unknown-x86_64_aarch64", what I was looking is "gcc-unknown-arm64_aarch64" and "gcc-unknown-arm64_arm" for native compiling (L4T kernel needs both 32 bit and 64 bit compilers).

My first build of L4T kernel was just for testing tool chain for TX1, "./config" from OP must be used or referred to build kernel for Shield TV.

Many people were surprised by L4TX1's 32 bit user space. There must be a lot work from Nvidia to have 64 bit user space and Cuda working for TX1.
[Shield Android TV General] Steel01:
Hmmm... I just don't think arm64 should be in the tuple at all, like on Fedora I have aarch64-linux-gnu-, but whatever.

If all else fails, you can always make your own tool chain. Unfortunately, it doesn't seem crosstools-ng has a profile for aarch64 yet, but there shouldn't be too much difference in config options between armv7 and armv8/aarch64. In theory, make armv7_defconfig (or whatever the generic one is), then change target platform to aarch64 and go. Should get you a working cross-compiler on the shield tv itself.
[Shield Android TV General] yahoo2016:
In the link I referred earlier:

https://devtalk.nvidia.com/default/t...set=11#4749845

I found it's much easier just use the pre-built tools from linaro:

export CROSS_COMPILE=$HOME/crosstools/gcc-linaro-5.2-2015.11-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-

export CROSS32CC=$HOME/crosstools/gcc-linaro-5.2-2015.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabi-gcc
[Shield Android TV General] crnkoj:
yeah, that works too on your desktop etc., but its a bit cumbersome (did it all with pandaboard and rpi2) and if i have the time (which i normally have) i rather do native compiles since than ^ ^

anyhow i had to return my shield tv as the remote didnt work properly and as it was in a bundle i had to return both...

the linaro toolchain is good, best thing is actually to do an emulated aarch64 virtual machine with qemu and than use one of the already available aarch64 distros to build things in there.

for instance https://fedoraproject.org/wiki/Architectures/ARM/HowToQemu

or here https://wiki.gentoo.org/wiki/QEMU https://wiki.gentoo.org/wiki/Cross_Container_Support_Project

to create a working aarch64 rootfs
[Shield Android TV General] yahoo2016:
I want try native compile kernel too, but I could not find any aarch64 compiler running on arm (Tegra K1 or X1). ArchLinx generic aarch64 does not include gcc.
[Shield Android TV General] crnkoj:
You can install those with pacman2on arch for instance.

pacman -S base-devel if I don't mistaken
[Shield Android TV General] yahoo2016:
At least the difference is Shield uses initram while TX1 does not.

OP mentioned the changes to stock .config is minimum. I tried to compare .config from my Shield TV (with kernel from OP) and .config from L4TX1, there are 100's of differences due to kernel configuration version difference: OP used 3.0.61 while L4TX1 used 3.0.67.

The changes mentioned by OP are the same for L4TX1 .config, i.e., both have "CONFIG_ANDROID_PARANOID_NETWORK is not set" and "CONFIG_DEVTMPFS=y"

I noticed OP has "CONFIG_NR_CPUS=4" while L4TX1 has "CONFIG_NR_CPUS=8".

I'm still not sure what exactly changes to L4TX1 .configure are needed for Shield TV.

I have not noticed anyone except OP has built working Shield TV kernel. My first build using L4T default .config failed to boot (flashed to recovery partition).
[Shield Android TV General] crnkoj:
Have you tried OPs .config n l4tx1 sources and first do make oldconfig?
[Shield Android TV General] yahoo2016:
I tried OP's ".config" and "make O=$TEGRA_KERNEL_OUT oldconfig" and was asked the same 30+ questions I'm not sure how to answer them all. If I just hit "enter" 30+ times to accept default values, the build will break (I believe I saw the same errors from other members in previous posts). I do not get the error if I use "make O=$TEGRA_KERNEL_OUT tegra21_defconfig". It's very difficult without seeing any message during boot.

VDSO32C arch/arm64/kernel/vdso32/vgettimeofday.o
VDSO32L arch/arm64/kernel/vdso32/vdso32.so.dbg
/home/eric/crosstools/gcc-linaro-5.2-2015.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/5.2.1/../../../../arm-linux-gnueabihf/bin/ld: BFD (GNU Binutils) 2.25.0 Linaro 2015_10 assertion fail /home/tcwg-buildslave/workspace/tcwg-make-release/label/tcwg-x86_64-ex40/target/arm-linux-gnueabihf/snapshots/binutils-gdb.git~linaro_binutils-2_25-branch/bfd/elf32-arm.c:7827
/home/eric/crosstools/gcc-linaro-5.2-2015.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/5.2.1/../../../../arm-linux-gnueabihf/bin/ld: BFD (GNU Binutils) 2.25.0 Linaro 2015_10 assertion fail /home/tcwg-buildslave/workspace/tcwg-make-release/label/tcwg-x86_64-ex40/target/arm-linux-gnueabihf/snapshots/binutils-gdb.git~linaro_binutils-2_25-branch/bfd/elf32-arm.c:7827
/home/eric/crosstools/gcc-linaro-5.2-2015.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/5.2.1/../../../../arm-linux-gnueabihf/bin/ld: error: required section '.rel.plt' not found in the linker script
/home/eric/crosstools/gcc-linaro-5.2-2015.11-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/5.2.1/../../../../arm-linux-gnueabihf/bin/ld: final link failed: Invalid operation
collect2: error: ld returned 1 exit status
make[3]: *** [arch/arm64/kernel/vdso32/vdso32.so.dbg] Error 1
make[2]: *** [arch/arm64/kernel/vdso32] Error 2
make[1]: *** [arch/arm64/kernel] Error 2
make: *** [sub-make] Error 2
[Shield Android TV General] Steel01:
I had to hack fix that in my CM kernel, should work here as well.

https://github.com/CM-Shield/androi...mmit/6d4d16d17c5c80240a56f4eaadf06df3866bd92c

Might also need this one once the first is cleared, but this might just be needed for 32-bit user space compiles.

https://github.com/CM-Shield/androi...mmit/66805cc48b72a846c98f27763e1a9d5663b6dca7
[Shield Android TV General] yahoo2016:
Is "CM kernel" for Shield TV? Can CM kernel load L4T rootfs?
[Shield Android TV General] Steel01:
CM == CyanogenMod, like the big custom android rom. The kernel I use for my shield tv CM builds is Nvidias upstream android kernel with a couple tweaks to make it compile outside of their aosp tree. One of the errors I saw when doing the port is the same as the one you posted, so I assume the patch I used to fix my problem will fix yours as well.
[Shield Android TV General] yahoo2016:
I saw in the patch, the anroideabi compiler is used

CROSS32CC=arm-linux-androideabi-gcc

instead of

CROSS32CC=arm-linux-gnueabihf-gcc

Was the problem caused by compiler? Should I give up using L4T and use Android environment for Shield TV kernel build?

I really hope multiRom works for Shield TV so I don't have to use Android kernel for Linux rootfs.
[Shield Android TV General] Steel01:
Sorry, had a post written up last night, but my flaky internet for the night lost it on me. So, here goes again.

I'm terrible at explaining stuff like this. Basically, it seems that even though this is a 64-bit kernel, there's still portion that needs compiled 32-bit, presumably part of the comparability layer. So, CROSS32 needs set to whatever your 32-bit compiler triplet is.

I seriously doubt the android kernel would boot l4t unmodified. If you don't have moderate kernel experience, that won't be a simple venture. I'd work on that myself, but I'm not keeping up well with the projects I'm already working on. Including multirom, that's being a lot of pain since this is one of the first 64-bit devices being worked on.