Build kernel from source and boot to Ubuntu using L4T (Linux for Tegra) rootfs

Search This thread

crnkoj

Senior Member
Feb 16, 2011
1,844
398
I edited the first post to include your even simpler one command to sync rootfs.

I found "sudo tar -cpf" did not compression rootfs (2GB), I should use "sudo tar -cjpf" to generate compressed rootfs (700 MB).
That is true, can use uncompressed, or bz2, xz, gz compressed. Btw I was thinking, it might even be possible to netboot it, have kernel and initramfs that brings up Ethernet in booting, than boot your shield from the network, possibly even boot several shields from same.
 
  • Like
Reactions: yahoo2016

yahoo2016

Senior Member
Nov 24, 2015
392
88
That is true, can use uncompressed, or bz2, xz, gz compressed. Btw I was thinking, it might even be possible to netboot it, have kernel and initramfs that brings up Ethernet in booting, than boot your shield from the network, possibly even boot several shields from same.
I found rootfs on SD cards could be problematic. The kernel/ramdisk are very stable as long as the "boot.img" was built right, I had many issues with SD cards, e.g., the Kingston U3s haven't worked for me, SD cards flashed with older HP 6910 always worked but the same rootfs flashed with newer HP Z-book failed to work (although "rsync" worked 10 times faster on Z-Book).

Many other people also had SD card issues due to wide range of makers and grades.

I'm tempting to shrink one of the large user partitions ( 8GB?) of internal emmc and put 2GB rootfs there.
 

yahoo2016

Senior Member
Nov 24, 2015
392
88
Is having the rootfs on USB an option? Would sure as heck be faster than SD.
I have not tried, but I believe the "Image" would be the save, only "init.c" in "initrs" directory needs to be changed from:
mount("/dev/mmcblk1p1", "/dest", "ext4", 0, NULL);
to, e.g.
mount("/dev/sda1", "/dest", "ext4", 0, NULL);
The device name "/dev/sda1" might change.
USB3 drives could be faster than SD card (I could not have Kingston 32 GB U3 SD cards working).
 

crnkoj

Senior Member
Feb 16, 2011
1,844
398
First time trying to build an rootfs image here, I probably did it wrong since the screen went dark right after booting and never go anywhere.
I followed OP's steps to build L4T rootfs. Then under Linux_for_Tegra/rootfs, I did
find ./ | cpio -H newc -o > ../rootfs.img
Then I dumped the image to my sd card:
dd if=../rootfs.img of=/dev/mmcblk0 bs=4194304 oflag=sync

Can anyone point out the correct way of making a L4T image? Many Thanks!

I should finish the post with ways to flash rootfs. The contents of Linux_for_Tegra/rootfs should be copied to sd card with permissions preserved. The way I do it is.

(1). cd to Linux_for_Tegra/rootfs.
(2). "sudo tar -cpf ../rootfs.tar *
(3). format SD card ("sudo mkfs.ext4 /dev/mmvblk0p1")
(4). Mount SD card "sudo mount /dev/mmcblk0p1 /mnt".
(5). "cd /mnt"
(6). sudo tar -xpf [path to rootfs.tar]

I updated first post for steps of copying rootfs to SD card.

I have not tried, but I believe the "Image" would be the save, only "init.c" in "initrs" directory needs to be changed from:
mount("/dev/mmcblk1p1", "/dest", "ext4", 0, NULL);
to, e.g.
mount("/dev/sda1", "/dest", "ext4", 0, NULL);
The device name "/dev/sda1" might change.
USB3 drives could be faster than SD card (I could not have Kingston 32 GB U3 SD cards working).
I might have some time to try it out...
On a second note,
I just received this email from nvidia:
Code:
CodeWorks for ANDROID
NVIDIA CodeWorks for Android 1R4 with full tools, SDK, libraries, samples support for the latest Android M (Marshmallow) is now available for download.

CodeWorks for Android is a professional grade solution providing a comprehensive set of GPU and CPU tools with debugging, profiling and system trace capabilities and accompanying SDKs and libraries for Android development - not only on Tegra powered devices.

Install all software tools required to develop for Android with CodeWorks for Android to reduce the complex process of configuring an Android development system

Release Highlights

Updated suite of Android NDK, SDK, Build/Platform Tools to latest available version. (Refer to Developer Zone for more details.) 
Nsight Tegra 3.3, Visual Studio Edition
Support for Android-M
Support for API 23
Improved SIGSEGV signal handling
Support watch window comma operator
Various performance improvements and bug fixes.
Tegra Graphics Debugger 2.1
Support for Android-M
Various performance improvements and bug fixes.
Tegra System Profiler 2.5
Support for Android-M
Support for automatic process launch.
Timeline tooltips update to show the thread blocked state call-stack.
NVTX (NVIDIA Tools Extensions) are now supported on 64-bit processes.
Various performance and backtrace quality improvements, bug fixes, and performance improvements.
PerfKit 4.5 support for Android-M.
IncrediBuild 7.1 for Visual Studio with full Microsoft Visual Studio 2015 integration.
NVIDIA GameWorks OpenGL Samples 2.11 a with Android-M support.
CUDA 7.0 on NVIDIA SHIELD Android TV
Available on Ubuntu Linux x64 host with Android cross compile support for select devices only. See documentation for details.
CUDA 6.5 on NVIDIA Tegra K1 devices
Available on Ubuntu Linux x64 host with Android cross compile support for select devices only. See documentation for details.
The included tools, APIs and SDKs provide developers support to build, debug, analyze and profile for Java, native C/C++, CUDA 6.5/7.0, OpenGL ES 2.0, OpenGL ES 3.0, OpenGL ES 3.1, OpenGL ES 3.1 Android Extension Pack, and OpenGL 4.x on ARM based SOCs.

A complete list of features can be found at CodeWorks for Android and are available for download under the NVIDIA GameWorks Download Center.

Download CodeWorks for Android 1R4 now!

To download CodeWorks for Android, you must be a member of the NVIDIA GameWorks Registered Developer Program and signed into your account.  To join, simply create a new account (it's free and easy) and then view the available CodeWorks for Android downloads here.

Enjoy!

The NVIDIA Developer Tools Team

 

 

Manage My Preferences | Unsubscribe
© 2015 NVIDIA Corporation. All rights reserved.
NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050.
Cuda 7.0 with android cross compile support. Apparently it supports cuda on Android??? On the shield tv? What the he'll? Is there a new Android m release for the shield TV?
Btw my test finished. It appears the shield TV is 5 times slower at cuda dynamics compared to an i7 2600k and a 960 gtx. Which would actually fit from the shader amounts and the gpu speed.
 

yahoo2016

Senior Member
Nov 24, 2015
392
88
I might have some time to try it out...
On a second note,
I just received this email from nvidia:
Code:
CodeWorks for ANDROID
NVIDIA CodeWorks for Android 1R4 with full tools, SDK, libraries, samples support for the latest Android M (Marshmallow) is now available for download.

CodeWorks for Android is a professional grade solution providing a comprehensive set of GPU and CPU tools with debugging, profiling and system trace capabilities and accompanying SDKs and libraries for Android development - not only on Tegra powered devices.

Install all software tools required to develop for Android with CodeWorks for Android to reduce the complex process of configuring an Android development system

Release Highlights

Updated suite of Android NDK, SDK, Build/Platform Tools to latest available version. (Refer to Developer Zone for more details.) 
Nsight Tegra 3.3, Visual Studio Edition
Support for Android-M
Support for API 23
Improved SIGSEGV signal handling
Support watch window comma operator
Various performance improvements and bug fixes.
Tegra Graphics Debugger 2.1
Support for Android-M
Various performance improvements and bug fixes.
Tegra System Profiler 2.5
Support for Android-M
Support for automatic process launch.
Timeline tooltips update to show the thread blocked state call-stack.
NVTX (NVIDIA Tools Extensions) are now supported on 64-bit processes.
Various performance and backtrace quality improvements, bug fixes, and performance improvements.
PerfKit 4.5 support for Android-M.
IncrediBuild 7.1 for Visual Studio with full Microsoft Visual Studio 2015 integration.
NVIDIA GameWorks OpenGL Samples 2.11 a with Android-M support.
CUDA 7.0 on NVIDIA SHIELD Android TV
Available on Ubuntu Linux x64 host with Android cross compile support for select devices only. See documentation for details.
CUDA 6.5 on NVIDIA Tegra K1 devices
Available on Ubuntu Linux x64 host with Android cross compile support for select devices only. See documentation for details.
The included tools, APIs and SDKs provide developers support to build, debug, analyze and profile for Java, native C/C++, CUDA 6.5/7.0, OpenGL ES 2.0, OpenGL ES 3.0, OpenGL ES 3.1, OpenGL ES 3.1 Android Extension Pack, and OpenGL 4.x on ARM based SOCs.

A complete list of features can be found at CodeWorks for Android and are available for download under the NVIDIA GameWorks Download Center.

Download CodeWorks for Android 1R4 now!

To download CodeWorks for Android, you must be a member of the NVIDIA GameWorks Registered Developer Program and signed into your account.  To join, simply create a new account (it's free and easy) and then view the available CodeWorks for Android downloads here.

Enjoy!

The NVIDIA Developer Tools Team

 

 

Manage My Preferences | Unsubscribe
© 2015 NVIDIA Corporation. All rights reserved.
NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050.
Cuda 7.0 with android cross compile support. Apparently it supports cuda on Android??? On the shield tv? What the he'll? Is there a new Android m release for the shield TV?
Btw my test finished. It appears the shield TV is 5 times slower at cuda dynamics compared to an i7 2600k and a 960 gtx. Which would actually fit from the shader amounts and the gpu speed.

I installed Cuda 7.0 for Android on my Shield TV a week ago but did not have a chance to test it. Linux development on Shield TV is my main objective.

My Shield TV was bricked yesterday right after I installed Nivdia official rooted ROM 2.1 (I had some issues with 1.3). I'm still waiting for RMA.

BTW, I tried to put L4T rootfs on internal emmc "userdata" partition (/dev/mmcblk0p29) and changed "init.c" to load L4T rootfs from "/dev/mmcblk0p29" and it worked, but I could not create 1 more partition for L4T rootfs because the maximum number of primary partitions is 29. I don't understand why Shield Android TV created 29 partitions with only less than 10 meaningful.

Android won't start when "userdata" is overwritten.
 
Last edited:

Helios747

Member
Dec 8, 2012
34
13
My Shield TV was bricked yesterday right after I installed Nivdia official rooted ROM 2.1 (I had some issues with 1.3). I'm still waiting for RMA.

I had the EXACT same thing happen rooting that version.

They RMA'd mine without issue. I just got it from FedEx today.

I think I'll just root my shield tv the old fashioned way with TWRP. I don't know what they did with their image that caused that to happen.
 

crnkoj

Senior Member
Feb 16, 2011
1,844
398
I installed Cuda 7.0 for Android on my Shield TV a week ago but did not have a chance to test it. Linux development on Shield TV is my main objective.

My Shield TV was bricked yesterday right after I installed Nivdia official rooted ROM 2.1 (I had some issues with 1.3). I'm still waiting for RMA.

BTW, I tried to put L4T rootfs on internal emmc "userdata" partition (/dev/mmcblk0p29) and changed "init.c" to load L4T rootfs from "/dev/mmcblk0p29" and it worked, but I could not create 1 more partition for L4T rootfs because the maximum number of primary partitions is 29. I don't understand why Shield Android TV created 29 partitions with only less than 10 meaningful.

Android won't start when "userdata" is overwritten.

I had the EXACT same thing happen rooting that version.

They RMA'd mine without issue. I just got it from FedEx today.

I think I'll just root my shield tv the old fashioned way with TWRP. I don't know what they did with their image that caused that to happen.

weird, i did the same with the first one and it all worked fine. BTW where did you RMA it to (where you bought or nvidia directly)?
about creating the boot.img, mind writing the process for that ?
 

yahoo2016

Senior Member
Nov 24, 2015
392
88
weird, i did the same with the first one and it all worked fine. BTW where did you RMA it to (where you bought or nvidia directly)?
about creating the boot.img, mind writing the process for that ?
Many members of this forum and other forums have reported the same issue for Shield TV:
https://forums.geforce.com/default/topic/893616/bootloader-issues/?offset=5
http://xdaforums.com/showpost.php?p=64371396&postcount=178
http://xdaforums.com/showpost.php?p=64456425&postcount=26
http://xdaforums.com/showpost.php?p=64456825&postcount=27
https://forums.geforce.com/default/...flashing-2-0-shield-tv-firmware-brick-device/
https://www.reddit.com/r/ShieldAndr...d_android_tv_update_14_can_brick_pro_devices/
and more for Shield Tablet:
http://xdaforums.com/shield-tablet/help/shield-tablet-stuck-apx-mode-black-t3074446
http://www.ez-pg.com/q-shield-tablet-stuck-in-apx-mode-black-screen-no-bootloader.html
https://devtalk.nvidia.com/default/topic/852145/nvidia-shield-tablet-bricked-/

My shield TV was bought by company for research, I'm not in hurry to have it repaired during holidays. It was not purchased from Nvidia, I though I could get technical support from Nvidia and bring attention to them for the issue. I did receive RMA from Nvidia and should get replacement in a week.

Do you mean generating "boot.img" from "Image"? From the first post, you can download my "initrd", make changed to "init.c" and run "make".
 
Last edited:
  • Like
Reactions: crnkoj

crnkoj

Senior Member
Feb 16, 2011
1,844
398
At least 4 members of this forum have reported the same issue. My shield TV was bought by company for research, I'm not in hurry to have it repaired during holidays. It was not purchased from Nvidia, I though I could get technical support from Nvidia and bring attention to them for the issue, but they are not helpful and have not issued RMA. If I do not get RMA from Nvidia after the holidays, I'll ask our buyer to handle RMA and return the Shield TV. If it was for personal use, I'd buy from local store and get replacement in the same day.

Do you mean generating "boot.img" from "Image"? From the first post, you can download my "initrd", make changed to "init.c" and run "make".
I see. Is it not necessary to use this abootimg tool/program to package the initrd and the zimage together?
 

yahoo2016

Senior Member
Nov 24, 2015
392
88
ooops missed that. Thanks.
You only need the last line if you don't make change to the ramdisk (you could change the path to ramdisk from /tmp to other locations).

I started to learn u-boot, I have built u-boot for TK1 and TX1 (I have TK1s and have TX1 in order). I'll see if it's possible to install u-boot as 2nd stage bootloader for Shield TV and enable u-boot netconsole.
 
Last edited:
  • Like
Reactions: Segitz and crnkoj

dieter.reuter

Member
Aug 3, 2015
13
1
ooops missed that. Thanks.

If you only want to replace the kernel in boot.img you can use the following command, which is easier to use.
Code:
abootimg -u boot.img -k Image
Here we just replace the kernel "Image" in the boot image file "boot.img".

---------- Post added at 02:14 PM ---------- Previous post was at 01:59 PM ----------

@yahoo2016:
Do you have an idea how to change the kernel or settings, so that it uses a specific video resolution by default?
Right now, I can only use a video monitor (like a TV). As soon as I attach my large screen computer monitor I didn't get a display at all.

I'd like to use a computer resolution like 1920x1080p60 or smaller (or 3440x1440p50 for my LG widescreen display), but the ShieldTV is only using 1280*720p60 or 1920x1080i60 - both resolutions didn't work on my monitor at all.

If the ShieldTV would detect the right resolution or using at least a default computer resolution, it would be even better to use.
 

yahoo2016

Senior Member
Nov 24, 2015
392
88
@yahoo2016:
Do you have an idea how to change the kernel or settings, so that it uses a specific video resolution by default?
Right now, I can only use a video monitor (like a TV). As soon as I attach my large screen computer monitor I didn't get a display at all.

I'd like to use a computer resolution like 1920x1080p60 or smaller (or 3440x1440p50 for my LG widescreen display), but the ShieldTV is only using 1280*720p60 or 1920x1080i60 - both resolutions didn't work on my monitor at all.

If the ShieldTV would detect the right resolution or using at least a default computer resolution, it would be even better to use.

I have not tried it but I recall a member posted changing kernel command line for default resolution (I can't try it now without a working Shield).

I believe if correct nvidia drivers are loaded correctly, most resolutions should be supported. I believe my setup using the kernel/ramdisk and rootfs in the first post worked for many resolutions including lower res computer monitors.
 

dieter.reuter

Member
Aug 3, 2015
13
1
I have not tried it but I recall a member posted changing kernel command line for default resolution (I can't try it now without a working Shield).

I believe if correct nvidia drivers are loaded correctly, most resolutions should be supported. I believe my setup using the kernel/ramdisk and rootfs in the first post worked for many resolutions including lower res computer monitors.

Ok, I understand.

I'm running my own built root filesystem right now only. It's based on Debian Jessie for ARM64 and will be the next generation of our HypriotOS (see http://blog.hypriot.com) to run Docker container technology on the Nvidia boards. I'd like to support the ShieldTV and Jetson TX1, maybe the TK1 later on with 32-bit (I do have a Jetson TK1 DevKit in my lab too).

But until now, I didn't installed any of the specific Nvidia drivers or software on it. So, I think I'll try it again with the L4T roots which is based on Ubuntu 14.04, just to check if there is a better support of the correct monitor modes.
 

yahoo2016

Senior Member
Nov 24, 2015
392
88
Ok, I understand.

I'm running my own built root filesystem right now only. It's based on Debian Jessie for ARM64 and will be the next generation of our HypriotOS (see http://blog.hypriot.com) to run Docker container technology on the Nvidia boards. I'd like to support the ShieldTV and Jetson TX1, maybe the TK1 later on with 32-bit (I do have a Jetson TK1 DevKit in my lab too).

But until now, I didn't installed any of the specific Nvidia drivers or software on it. So, I think I'll try it again with the L4T roots which is based on Ubuntu 14.04, just to check if there is a better support of the correct monitor modes.
If you want to try kernel command line, you can edit the last line of "bootimg.cfg" file included in my "initrd" tar file from the first post:
Code:
bootsize = 0x18d5800
pagesize = 0x800
kerneladdr = 0x10008000
ramdiskaddr = 0x11000000
secondaddr = 0x10f00000
tagsaddr = 0x10000100
name = mrom20150630-01
cmdline =

I could not remember exactly, but it could be something like
cmdline = "res=1280x720"
 

crnkoj

Senior Member
Feb 16, 2011
1,844
398
If you want to try kernel command line, you can edit the last line of "bootimg.cfg" file included in my "initrd" tar file from the first post:
Code:
bootsize = 0x18d5800
pagesize = 0x800
kerneladdr = 0x10008000
ramdiskaddr = 0x11000000
secondaddr = 0x10f00000
tagsaddr = 0x10000100
name = mrom20150630-01
cmdline =

I could not remember exactly, but it could be something like
cmdline = "res=1280x720"

Hey, did you use Ubuntu 15.10 or 14.04 for compiling this, i did all as you described with ubuntu 64 15.10 and i keep getting compile errors...
 

yahoo2016

Senior Member
Nov 24, 2015
392
88
Hey, did you use Ubuntu 15.10 or 14.04 for compiling this, i did all as you described with ubuntu 64 15.10 and i keep getting compile errors...

I was using ubuntu X64 14.04 LTS (I updated OP to clarify), but I'll install Ubuntu 15 on one of my laptops.

I may need to update OP after trying Ubuntu 15.
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 18
    Update (08/26/2017) Update:

    I updated my SATV Pro 2015 to ROM 5.x, I did not have to replace dtb file. The img files from link below seem still working.


    The following have been tested for SATV ROM 3.x.

    Latest boot images based on L4T24.2 for external SD card, USB drive, internal EMMC and internal HDD can be downloaded from:
    https://drive.google.com/file/d/0Bz5kaPQJx_AgZ3lvWWZFNmJFcmM/view?usp=sharing

    Where,
    "mmcblk1p1.img" is for booting to rootfs on external SD card.
    "sda1.img" is for booting to rootfs on external USB drive (or SD card in USB adapter), or internal SATA HDD of modified 16GB SATV.
    "mmcblk0p29.img" is for booting to rootfs on partition 29 (User Data) of internal eMMC of 16GB SATV if only Ubuntu is needed.
    "mmcblk0p1.img" is for boot to rootfs on partition 1 of internal eMMC of SATV Pro.
    "sda32.img" is for booting to rootfs on partition 32 (User Data) of HDD of 500GB SATV Pro if only Ubuntu is needed.
    "sda33.img" is for booting to rootfs on partition 33 of HDD of 500GB SATV Pro for Ubuntu (modification of HDD partition table is needed).
    "sda34.img" is for booting to rootfs on partition 34 of HDD of 500GB SATV Pro for Ubuntu (modification of HDD partition table is needed).


    You will need to download L4T24.2 driver package and rootfs from Nvidia (https://developer.nvidia.com/embedded/linux-tegra), apply binary drivers to rootfs and copy it to external SD card/USB drive, see this post:

    http://xdaforums.com/showpost.php?p=69202451&postcount=421

    or internal eMMC or HDD (of SATV Pro):
    http://xdaforums.com/showpost.php?p=69202672&postcount=422

    L4T24.2 dtb from L4T24.2 rootfs "/boot" needs to be flashed. To find dtb name for your SATV, type the following in recovery mode:
    sudo fastboot oem dtbname

    Flash the wrong dtb will likely brick the SATV!!!

    To have Wifi working, "/lib/firmware/brcm/fw_bcmdhd.bin" need to be replaced with the one from SATV (in /system/vendor/firmware/bcm4354).

    To build kernel from source, download the latest L4T kernel source, modify tegra21_defconfig by adding "CONFIG_ANDROID=y", example configuration file can be downloaded from the following link

    https://xdaforums.com/showpost.php?p=69078331&postcount=417
    4
    I was able to build kernel using cm13.0 source and boot to L4T R23.1 rootfs.

    Configuration file for CM13.0, kernel image, and "boot.img" can be downloaded from the following link:

    https://drive.google.com/file/d/0Bz...0Bz5kaPQJx_AgT1ZTWGxtQzBzSW8/view?usp=sharing

    To have wifi working, the following 2 files from your SATV need to be copied to linux rootfs:

    CONFIG_BCMDHD_FW_PATH="/data/misc/wifi/firmware/fw_bcmdhd.bin"
    CONFIG_BCMDHD_NVRAM_PATH="/data/misc/wifi/firmware/nvram.txt"


    Maybe someone is interested.

    I got a functional kernel from the official resources for the shield 3.0 version.

    How to get it, see here:
    http://nv-tegra.nvidia.com/gitweb/?p=manifest/android/binary.git;a=blob_plain;f=README_SHIELD;hb=rel-24-foster-r2-partner

    You need to install 'repo' on your computer. Be careful, you get the full android sources. You need a lot
    of space.

    You can go into the kernel-subdirectory and compile a kernel (same procedure and Enviroment-Variables
    as usual).

    But you can use 'tegra21_defconfig' without corrections to get a kernel, that boots Ubuntu from L4T 23.1 or 23.2. I don't know if wifi or bluetooth is running.

    My experience is, the main thing is to find a Kernel that fits to 'tegra210-foster-e-p2530-0930-e02-00.dtb' from the new 3.0 Version, if you like to use android and linux (from recovery partition or vice versa) together.
    3
    Hello yahoo2016,

    you are right, if you use the kernel and tegra210-foster-e-p2530-0930-e02-00.dtb from L4T24.1 64bit over SATV ROM 3.1, you can successfully start the ubuntu desktop with 4k resolution But at this point android is broken. But you can switch back to SATV ROM 3.1 without a problem. That was differnt with version 2.1.

    Maybe you are interested to know this.

    One correction,

    I made a mistake. SATV ROM 3.1 works with the tegra210-foster-e-p2530-0930-e02-00.dtb from L4T24.1.

    So you can run android and ubuntu from sd-card parallel without a problem.
    2
    Thank you very much for sharing how to install L4T on Shield TV!
    I found this post and I'm using this boot.img, because I am lazy.
    http://xdaforums.com/showpost.php?p=64589752&postcount=53
    It worked very well and I can run CUDA samples and develop my CUDA program on it.

    I'm using my Shield TVwith lastest update 2.1.
    I flashed linux boot.img to boot partition and boot.img in NVIDIA SHIELD ANDROID TV Recovery OS Image 2.1.0 to recovery partition.
    So I can boot both Ubuntu and Android.
    When I use ubuntu, just turn on Shield TV or reboot.
    When I use android, I boot fastboot and select "boot recovery kernel".
    This is how to get fastboot menu with update 2.1.
    1. Turn off shield
    Touch and hold about 10s in android or "sudo shutdown -h now" in ubuntu.
    2. Tap power button once to turn on. Don't keep touching.
    3. Wait for about 1 second.
    4. Touch and hold power button until you see fastboot menu.
    Shield TV need to be connect to PC with use-otg cable.
    I can get fastboot menu without unpluging power supply.
    It works in 1 or 2 tries.
    2
    I read first post in this thread, built my boot.img and flashed it to my shield TV.
    I could connect to my shield using ssh, but it couldn’t display a desktop.
    And “sudo shutdown -h now” didn’t work.
    The boot.img built by yahoo2016 can display desktop and shutdown/reboot worked fine.
    My display is “SEIKI SE39UY04” and it supports 3840x2160@30Hz mode.

    I compared shieldTv_defconfig and cyanogenmod_foster_defconfig, and I found that some framebuffer options are set in shieldTv_defconfig.
    CONFIG_FB_NVIDIA=y
    CONFIG_FB_NVIDIA_BACKLIGHT=y
    CONFIG_FB_SIMPLE=y
    They are set yes in shieldTV_defconfig, but they are not set in cyanogenmod_foster_defconfig.
    They are also not set in Jetson TK1, but it displays console message to my display before desktop screen comes.
    I remember that Gentoo wiki for x86/64 says in-kernel nvidia framebuffer driver conflicts with the nvidia binary driver.
    I don’t know wether it also true or not in arm64 CPU or Shield TV, I removed these options and rebuilt the kernel.
    But I still didn’t see desktop and shutdown deosn’t work.
    Then, I removed “CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y”, but no change.
    Then, I removed following options:
    CONFIG_DUMMY_CONSOLE=y
    CONFIG_FRAMEBUFFER_CONSOLE=y
    CONFIG_FONT_8x8=y
    CONFIG_FONT_8x16=y
    They are enabled in Jetson TK1 but I disabled them.
    It worked! I got desktop and shutdown/reboot worked from a ssh client.
    But I found a problem. When I connect display to my shield TV but don’t connect mouse and keyboard, my shield TV displays NVIDIA logo forever and I cannot connect to my shield TV from a ssh client.
    When I connect display, mouse and keyboard, I can get the desktop.
    When I disconnect both display, mouse and keyboard, I can use shield from ssh client and my console CUDA program works.
    No matter if framebuffer related options are set yes or not, I don’t see console message from my display.

    I should try more combinations of kernel options to find out which options do wrong.
    But I will do it later.
    I'm going to talk about L4T on Shield TV on Jetson meet up event in Japan next week.
    I have to make the slide which compare shield TV and jetson TX1, explains why installing linux on shield tv, and how to do it in Japanese.
    I will put link to this topic on my slide.
    I think there are many people who are interested in shield TV as linux machine in my country.