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

Search This thread

yahoo2016

Senior Member
Nov 24, 2015
392
88
I'm confused.

When I used (partition 1):

sudo dd if=/dev/mmcblk0p1 of=l4t24rootfs bs=4194304 count=600 oflag=sync

or whole SD:

sudo dd if=/dev/mmcblk0 of=l4t24rootfs bs=4194304 count=600 oflag=sync

to create the file and use partition 1:

sudo dd if=l4t24rootfs of=/dev/mmcblk0p1 bs=4194304 oflag=sync

or whole SD:

sudo dd if=l4t24rootfs of=/dev/mmcblk0 bs=4194304 oflag=sync

to copy the file, partition 1 disappeared from destination, I got only "/dev/mmcblk0".

The kernel is looking for partition 1, that's why it won't boot.

Does dd keep partitions?
 
Jul 23, 2016
11
1
I'm confused.

When I used (partition 1):

sudo dd if=/dev/mmcblk0p1 of=l4t24rootfs bs=4194304 count=600 oflag=sync

or whole SD:

sudo dd if=/dev/mmcblk0 of=l4t24rootfs bs=4194304 count=600 oflag=sync

to create the file and use partition 1:

sudo dd if=l4t24rootfs of=/dev/mmcblk0p1 bs=4194304 oflag=sync

or whole SD:

sudo dd if=l4t24rootfs of=/dev/mmcblk0 bs=4194304 oflag=sync

to copy the file, partition 1 disappeared from destination, I got only "/dev/mmcblk0".

The kernel is looking for partition 1, that's why it won't boot.

Does dd keep partitions?

I have used dd in the past to backup my running raspberry pi with something like:
sudo dd bs=4M if=/dev/sdb of=~/disk.img
No other options like the ones you put.
But you should definitely do the whole sd card rather than the partition.
If you have a Windows machine, you can use Win32 Disk Imager. That's extremely straightforward.
Thanks again for your effort
 
Last edited:

yahoo2016

Senior Member
Nov 24, 2015
392
88
I have used dd in the past to backup my running raspberry pi with something like:
sudo dd bs=4M if=/dev/sdb of=~/disk.img
No other options like the ones you put.
But you should definitely do the whole sd card rather than the partition.
If you have a Windows machine, you can use Win32 Disk Imager. That's extremely straightforward.
Thanks again for your effort
I'm trying "dd" to copy whole 16 GB SDs to see if it keeps the partitions. It worked, I'll compress it use 7z. It's here:

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

This is rootfs from L4T24.1 with binaries applied, wifi firmware replaced, nothing else has changed.

I tested it on SATV before compression by copying it to a Micro Center 16GB class 4 micro SD card using

sudo dd if=l4t24rootfs of=/dev/mmcblk0 bs=4194304 oflag=sync
 
Last edited:
  • Like
Reactions: emanuelstanciu
Jul 23, 2016
11
1
This is a old post but may be related to your case:
https://devtalk.nvidia.com/default/topic/899021/jetson-tx1/console-mode-framebuffer-settings-/
You can try other HDMI monitors and we can play with kernel configurations and command line options.

Once again, thanks for all your help @yahoo2016!
I managed to get it working finally and it was a mix of things.
So, first it was the dtb that was the issue. You image didn't work, so I ruled out the OS.
The dtb in your G Drive is incorrect (at least for me). I tried to flash the dtb from you and from the Android source. This was the mistake. I needed the foster dtb from the rootfs/boot folder. That did the trick and it started to use the screen.

Then I started to do some advanced configuration and updated the OS to Ubuntu 16.04.1 to get all the ubuntu goodies and to have it a bit more speedy. Also changed the unity with LXDE to reduce the resource consumption.
All is good now, thanks a lot for all your effort. What are you using your rig for? Any interesting projects?
 

yahoo2016

Senior Member
Nov 24, 2015
392
88
Once again, thanks for all your help @yahoo2016!
I managed to get it working finally and it was a mix of things.
So, first it was the dtb that was the issue. You image didn't work, so I ruled out the OS.
The dtb in your G Drive is incorrect (at least for me). I tried to flash the dtb from you and from the Android source. This was the mistake. I needed the foster dtb from the rootfs/boot folder. That did the trick and it started to use the screen.

Then I started to do some advanced configuration and updated the OS to Ubuntu 16.04.1 to get all the ubuntu goodies and to have it a bit more speedy. Also changed the unity with LXDE to reduce the resource consumption.
All is good now, thanks a lot for all your effort. What are you using your rig for? Any interesting projects?

Glad you have it working. I just downloaded and checked the dtb, it has md5sum of:

f188fac0358ea123ad0b88f2d66744e7

Dated 05/17/2016. Same as the one I'm using.

What is md5sum of the dtb you downloaded from Gdrive and the one working for you?

Wrong dtb could bricked SATV (at least for ROM after 2.1 and before 3.0). It's always good idea to run md5sum on dtb before it was used.

BTW, I'm still struggling to have console messages displayed on monitor for SATV. For Jetson TX1, many text messages are displayed before Desktop shows up, The rootfs and kernel image are identical for SATV and TX1, it could be differences in dtb or boot loader.
 
Last edited:

senselessDev

Member
Feb 25, 2016
9
3
Wouldn't be too difficult to do a flex PCB interposer -- could include level shifting. Actually, I don't think the cable's head even occludes the TX/RX pads.

Pull this pad low to power the unit up.

@deerish
One of the pads you have marked and connected on the cable's head is GND. The other one on the head was not probed by me during powerup yet to see if it is a UART pin.
But probably they are the outer ones. I wonder how you figured it out? Is fastboot already printing something so you can start without the IO board connected?

Besides, I'm figuring out what is what on the mainboard pads and the J501 connector. Current status is availabe here.

Another idea i had is to change the dtb to map the uart pins to the left half that is easier accessible. Unfortunatley, I never fiddled around with dtbs so far and hence I guess I will be without success on this one.

Edit: seems that someone already had no luck on dtb uart remapping.
 
Last edited:
  • Like
Reactions: yahoo2016
Jul 23, 2016
11
1
Glad you have it working. I just downloaded and checked the dtb, it has md5sum of:

f188fac0358ea123ad0b88f2d66744e7

Dated 05/17/2016. Same as the one I'm using.

What is md5sum of the dtb you downloaded from Gdrive and the one working for you?

I checked both md5 hashes and they do match, but I flashed the other dtb probably 10 times before the one in the boot folder worked. Not entirely sure what happens, I probably should buy another SATV and do that from scratch and see/document if the steps work. Once again, thanks a lot for all your help.
 
  • Like
Reactions: yahoo2016

ahmed68

Senior Member
hi everybody
I need help from u
that's my work but I cant boot to Linux For Tegra R24.1
sd card sony 64 class 10
sudo fdisk -l
sudo fdisk /dev/sdx # input n, p ,1, enter, enter, w
sudo mkfs.ext4 /dev/sdx
sudo mkdir /mnt/sdx
sudo mount /dev/sdx /mnt/sdx
cd ../
sudo ./apply_binaries.sh
sudo dd if=l4t24rootfs of=/dev/sdx
sudo dd if=Linux_for_Tegra/rootfs of=/dev/sdx
sudo tar -pxvf Tegra210_Linux_R24.1_armhf.tbz2
sudo tar xpfv ../../Tegra_Linux_Sample-Root-Filesystem_R24.1_armhf.tbz2
sudo rsync -av ~/Linux_for_Tegra/rootfs/* /mnt/sdx
dtb i take it from JetPack 2.2.1 (tegra210-foster-e-hdd-p2530-0932-e02-00.dtb),from yahoo2016 (tegra210-foster-e-p2530-0930-e02-00.dtb). foster-e for 16gb , foster-e-hdd for 500gb.
https://mega.nz/#!d0YBBIgb!0_ubz7FYOfLTkqQNqH7vyb-AE1CUIFPdBwLkO7Oeo80
boot.img i try all but i cant boot (all yah002016,i make by "initrd")
i dont need android how i can replace it with ubuntu
i can backup android any time i make backup.img itest it work for any 500gb hdd
https://mega.nz/#!cshkTToa!llfeAfwT7UOx88-NcTVQkukRChw7Xv4RZCJty90-aeI
plz help
 
Last edited:

yahoo2016

Senior Member
Nov 24, 2015
392
88
I recommend following the following steps from Nvidia L4T24.1 "Getting Started" to create SD card by first download the following 3 files:

http://developer.nvidia.com/embedded/dlc/l4t-jetson-tx1-driver-package-24-1-64-bit
http://developer.nvidia.com/embedded/dlc/l4t-sample-root-filesystem-24-1-64-bit
http://developer.nvidia.com/embedded/dlc/l4t-documentation-24-1

To extract Tegra Linux Driver Package
•Extract the package manually by executing the following command:
$ sudo tar -vxjf Tegra210_Linux_R24.1.0_aarch64.tbz2

2. Extract the compressed rootfs as follows:
•Navigate to the rootfs directory of the extracted NVIDIA driver package with this command:
$ cd Linux_for_Tegra/rootfs

$ sudo tar jxpf ../../Tegra_Linux_Sample-Root-Filesystem_R24.1.0_aarch64.tbz2

3. Run the apply_binaries.sh script to copy the NVIDIA user space libraries into the target file system:
$ cd ..
$ sudo ./apply_binaries.sh

To copy the file system to an external storage device (e.g., /dev/mmcblk0p1)
1. If your device is not formatted as Ext4, enter the following command to format it with an Ext4 file system:
$ sudo mkfs.ext4 /dev/mmcblk0p1
2. If needed, mount your device with the following command:
$ sudo mount /dev/mmcblk0p1 /mnt
2. copy the rootfs directory that is included in the release by executing the following commands from <your_L4T_root>/Linux_for_Tegra/:
$ cd rootfs
$ sudo cp -a * /mnt && sync
6. After copying the content to the external disk or device, unmount the disk and connect it to the target Tegra device.

The next step is to replace dtb, it's important to make sure you have SATV ROM 3.x and above. Assuming you have 16GB SATV, you should use "tegra210-foster-e-p2530-0930-e02-00.dtb" dated 05/17/2016 in L4T24.1 and run md5sum:
md5sum tegra210-foster-e-p2530-0930-e02-00.dtb
It should have md5sum:
f188fac0358ea123ad0b88f2d66744e7
Put rooted SATV in recovery mode and run:
sudo fastboot flash dtb tegra210-foster-e-p2530-0930-e02-00

Before you build your boot.img you can try my boot.img from the following link:
http://forum.xda-developers.com/showpost.php?p=67433510&postcount=249
 
Last edited:

yahoo2016

Senior Member
Nov 24, 2015
392
88
@deerish
One of the pads you have marked and connected on the cable's head is GND. The other one on the head was not probed by me during powerup yet to see if it is a UART pin.
But probably they are the outer ones. I wonder how you figured it out? Is fastboot already printing something so you can start without the IO board connected?

Besides, I'm figuring out what is what on the mainboard pads and the J501 connector. Current status is availabe here.

Another idea i had is to change the dtb to map the uart pins to the left half that is easier accessible. Unfortunatley, I never fiddled around with dtbs so far and hence I guess I will be without success on this one.

Edit: seems that someone already had no luck on dtb uart remapping.
You have done and documented very impressive reverse engineering. May be it's possible to build traces out the outer 2 pads (Y10/Y11) which are most likely the TD/RD pins of UART using the following pen:
http://www.mcmelectronics.com/product/20-4930?green=D578E2D4-63AB-56E7-BE94-CA97D24BD086
 
Last edited:

ahmed68

Senior Member
I recommend following the following steps from Nvidia L4T24.1 "Getting Started" to create SD card by first download the following 3 files:

http://developer.nvidia.com/embedded/dlc/l4t-jetson-tx1-driver-package-24-1-64-bit
http://developer.nvidia.com/embedded/dlc/l4t-sample-root-filesystem-24-1-64-bit
http://developer.nvidia.com/embedded/dlc/l4t-documentation-24-1

To extract Tegra Linux Driver Package
•Extract the package manually by executing the following command:
$ sudo tar -vxjf Tegra210_Linux_R24.1.0_aarch64.tbz2

2. Extract the compressed rootfs as follows:
•Navigate to the rootfs directory of the extracted NVIDIA driver package with this command:
$ cd Linux_for_Tegra/rootfs

$ sudo tar jxpf ../../Tegra210_Linux_R24.1.0_aarch64.tbz2

3. Run the apply_binaries.sh script to copy the NVIDIA user space libraries into the target file system:
$ cd ..
$ sudo ./apply_binaries.sh

To copy the file system to an external storage device (e.g., /dev/mmcblk0p1)
1. If your device is not formatted as Ext4, enter the following command to format it with an Ext4 file system:
$ sudo mkfs.ext4 /dev/mmcblk0p1
2. If needed, mount your device with the following command:
$ sudo mount /dev/mmcblk0p1 /mnt
2. copy the rootfs directory that is included in the release by executing the following commands from <your_L4T_root>/Linux_for_Tegra/:
$ cd rootfs
$ sudo cp -a * /mnt && sync
6. After copying the content to the external disk or device, unmount the disk and connect it to the target Tegra device.

The next step is to replace dtb, it's important to make sure you have SATV ROM 3.x and above. Assuming you have 16GM SATV, you should use "tegra210-foster-e-p2530-0930-e02-00.dtb" dated 05/17/2016 in L4T24.1 and run md5sum:
md5sum tegra210-foster-e-p2530-0930-e02-00.dtb
It should have md5sum:
f188fac0358ea123ad0b88f2d66744e7
Put rooted SATV in recovery mode and run:
sudo fastboot flash dtb tegra210-foster-e-p2530-0930-e02-00

Before you build your boot.img you can try my boot.img from the following link:
http://forum.xda-developers.com/showpost.php?p=67433510&postcount=249
dear yahoo2016
I do all and use your boot.img from
http://forum.xda-developers.com/showpost.php?p=67433510&postcount=249[/QUOTE]
but I cant boot black screen then goto android.
when I flash dtb with (tegra210-foster-e-p2530-0930-e02-00.dtb) the shield cant boot at all
I think its for shield 16gb but I have 500gb (foster-e/foster-e-hdd)

---------- Post added at 09:38 PM ---------- Previous post was at 09:34 PM ----------

Once again, thanks for all your help @yahoo2016!
I managed to get it working finally and it was a mix of things.
So, first it was the dtb that was the issue. You image didn't work, so I ruled out the OS.
The dtb in your G Drive is incorrect (at least for me). I tried to flash the dtb from you and from the Android source. This was the mistake. I needed the foster dtb from the rootfs/boot folder. That did the trick and it started to use the screen.

Then I started to do some advanced configuration and updated the OS to Ubuntu 16.04.1 to get all the ubuntu goodies and to have it a bit more speedy. Also changed the unity with LXDE to reduce the resource consumption.
All is good now, thanks a lot for all your effort. What are you using your rig for? Any interesting projects?

dear emanuelstanciu
wish dtb and boot img you use to boot (rootfs/boot) I take it but I cant boot
 

yahoo2016

Senior Member
Nov 24, 2015
392
88
dear yahoo2016
I do all and use your boot.img from
but I cant boot black screen then goto android.
when I flash dtb with (tegra210-foster-e-p2530-0930-e02-00.dtb) the shield cant boot at all
I think its for shield 16gb but I have 500gb (foster-e/foster-e-hdd)
I only have 16GB SATV. To install Linux on SATV Pro may need different approach. I can think about it but I do not have Pro to try.
 

yahoo2016

Senior Member
Nov 24, 2015
392
88
thank you very much for help , if i can make it boot i will inform you
Since you have SATV Pro, did you use the dtb with dm5sum:
02fa295091e044d276bb998c2b5c9c04 tegra210-foster-e-hdd-p2530-0932-e02-00.dtb

When you boot to Andriod, can you check if SD card shows as /dev/mmcblk0p1?

Have you tried:

sudo fastboot boot boot.img?
 

ahmed68

Senior Member
dear yahoo2016
can you tel me how to make SD card /dev/mmcblk0p1
the original (nv-recovery-image-shield-atv-pro-3.2.0-dev_rooted) dtb have dm5sum: c2d642581c733e00b1eebdae08024ae2
I take dtb from l4t/boot/tegra210-foster-e-hdd-p2530-0932-e02-00.dtb have dm5sm:02fa295091e044d276bb998c2b5c9c04
today I try boot-hypriot-shieldtv.img + sd-card-nvidia-shieldtv.img ver0.9 its work only for hypriot OS
 

yahoo2016

Senior Member
Nov 24, 2015
392
88
dear yahoo2016
can you tel me how to make SD card /dev/mmcblk0p1
the original (nv-recovery-image-shield-atv-pro-3.2.0-dev_rooted) dtb have dm5sum: c2d642581c733e00b1eebdae08024ae2
I take dtb from l4t/boot/tegra210-foster-e-hdd-p2530-0932-e02-00.dtb have dm5sm:02fa295091e044d276bb998c2b5c9c04
today I try boot-hypriot-shieldtv.img + sd-card-nvidia-shieldtv.img ver0.9 its work only for hypriot OS
In my previous post, I should say:

When you boot to Android, can you check if SD card shows as /dev/mmcblk1p1?

(/dev/mmcblk0 is 16GB SATV internal emmc). I'm not sure external SD card on SATV Pro shows as /dev/mmcblk0p1 or /dev/mmcblk1p1)

My laptops have SD card slots and the first partition show as "/dev/mmcblk0p1". rootfs should be on partition 1.

From your first post:
sudo mkfs.ext4 /dev/sdx
sudo mkdir /mnt/sdx
sudo mount /dev/sdx /mnt/sdx
It seems you put SD card in SD card to USB adapter but you did not have partition 1, In your case, the first partition should be "/dev/sdx1". Partition 1 on SATV should show as "/dev/mmcblk1p1".

Under Ubuntu, I used "gparted" to create partition 1.
 
Last edited:

yahoo2016

Senior Member
Nov 24, 2015
392
88
@deerish
One of the pads you have marked and connected on the cable's head is GND. The other one on the head was not probed by me during powerup yet to see if it is a UART pin.
But probably they are the outer ones. I wonder how you figured it out? Is fastboot already printing something so you can start without the IO board connected?

Besides, I'm figuring out what is what on the mainboard pads and the J501 connector. Current status is availabe here.

Another idea i had is to change the dtb to map the uart pins to the left half that is easier accessible. Unfortunatley, I never fiddled around with dtbs so far and hence I guess I will be without success on this one.

Edit: seems that someone already had no luck on dtb uart remapping.
I tried to probe Y10 and Y11 pins in your drawing by soldering 2 very thin wires to them, neither showed UART data while boot to Android or Ubuntu.

Then I noticed deerish has different PCB, his PCB does not have Column Y!!! (see attached from deerish's original post and from your link). Deerish's PCB has only one hole for screw and it's on the other side of the PCB.

So Y10/Y11 may no be UART pins.
 

Attachments

  • satvUart.jpg
    satvUart.jpg
    234.6 KB · Views: 97
  • uart1.jpg
    uart1.jpg
    260.4 KB · Views: 84
Last edited:

senselessDev

Member
Feb 25, 2016
9
3
I tried to probe Y10 and Y11 pins in your drawing by soldering 2 very thin wires to them, neither showed UART data while boot to Android or Ubuntu.

Then I noticed deerish has different PCB, his PCB does not have Column Y!!! (see attached from deerish's original post and from your link). Deerish's PCB has only one hole for screw and it's on the other side of the PCB.

So Y10/Y11 may no be UART pins.
I have found UART TX pin: It is Y9 in my counting. Unfortunatley, 1.8V UART - no adapter for this voltage here atm. Therefore probing it with the scope and transferring to the pc -> sigrok to decode. Thats what I'm currently trying.

I'll check deerish's pic soon

Edit: Hmm, very strange, that his UART was also around there when he has another pinout. I guess his spring-contact-header must be another one, too. @deerish was your shield one of the first ones available? I guess my version is the newer one, because I bought it in February this year.

Edit2: It seems to be 115200 8N1 by the way.
 
Last edited:
  • Like
Reactions: yahoo2016

senselessDev

Member
Feb 25, 2016
9
3
Finally, I got the scope -> SCPI -> csv -> sigrok-cli chain up and running.
I have attached the first few lines of the booting process (generated from over 20 MPoints of scope data; for everthing of the boot process i have to sample slower; have to figure out how slow).
 

Attachments

  • bootup.txt
    12.1 KB · Views: 40
  • Like
Reactions: yahoo2016

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://forum.xda-developers.com/showpost.php?p=69202451&postcount=421

    or internal eMMC or HDD (of SATV Pro):
    http://forum.xda-developers.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://forum.xda-developers.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://forum.xda-developers.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 [email protected] 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.