yashsingh1/xdaforums huggingface dataset:
[Shield Android TV General] jmtatsch:
Okay, I downgraded to the rooted 1.3 fw and with your and my boot.img at least the nvidia logo shows up but is stuck there. I think there is some issue with my root filesystem or my sd card.

On linux vm it fscks just fine but on android It see this in dmesg

<4>[ 323.922971] mmc2: host does not support reading read-only switch. assuming write-enable.
<6>[ 323.926247] mmc2: new high speed SDHC card at address 0002
<6>[ 323.928901] mmcblk1: mmc2:0002 N/A 3.75 GiB
<6>[ 323.947123] mmcblk1: unknown partition table

Repartitioned and formatted the sd several times but that didn't help. Ordered a new micro sd just in case...

In the meantime, would someone be so kind to make an dd image of a working root filesystem and upload it?
[Shield Android TV General] yahoo2016:
Did you make ext4 partition for rootfs? (Android should see rootfs on "/dev/mmcblk1p1". Did you use L4T rootfs?

I have not received my Shield TV yet, I have compressed L4T rootfs saved in:

https://drive.google.com/open?id=0Bz5kaPQJx_AgNVYzSUIwZW5oYVU

You need to uncompressed it to the first partition of SD card (e.g., "sudo tar -xpf rootfs.tbz2").
[Shield Android TV General] jmtatsch:
Yes, I used mkfs.ext4 for the partition and the L4T rootfs. I finally got it to work now. The trick was to:

sudo fdisk /dev/sdc # input n, p ,1, enter, enter, w
sudo mkfs.ext4 /dev/sdc[COLOR="Red"]1[/COLOR]

instead of:

sudo fdisk /dev/sdc # input n, p ,1, enter, enter, w
sudo mkfs.ext4 /dev/sdc

because mkfs.ext4 on the whole device will mess up the partition table...
[Shield Android TV General] yahoo2016:
Glad it's working.

If you use SD/micro SD card adapter you should have /dev/mmcblkxp1 as the first partition.

If you use USB/micro SD card adapter you should have /dev/sdx1 as the first partition.
[Shield Android TV General] ericvh:
I tried a U1 today with the same problem, will try to find vanilla SD card today to use it with.
[Shield Android TV General] :
had a look into 4.4 seems like some bindings have changed should be fairly possible though,
[Shield Android TV General] chtulu:
What do you mean some bindings?

I tried everything and it seems impossible.
[Shield Android TV General] :
use kernel-tx1 package from https://developer.nvidia.com/embedded/dlc/l4t-sources-28-1 see hardware dir also, it would probably be easier to use the mainline kernel
[Shield Android TV General] chtulu:
Done that, and made a missing dtb file for kernel 4.4, it does not go past the nvidia logo.

Without new dtb file, it just reboots.
[Shield Android TV General] sunxishan:
JetPack-L4T-3.1-linux-x64.run is with R28.1, it may have some issues here.

You can try to download JetPack 3.0. I tested it and everything works just fine.
[Shield Android TV General] :
You will need to add the shields DTSes (not dtb) to the hardware/something/something dir and diff the Jetson dtses with 3.10 for what you need to change [MENTION=7098998]yahoo2016[/MENTION]
[Shield Android TV General] chtulu:
Well, I'm not that dumb, I know that, I spent hours, not only to add the missing dts and dtsi, but also to verify them against the existing similar one. Unfortunately with the new dtb file it does not go past the Nvidia logo.
[Shield Android TV General] :
I would see if there is any earlyprintk output
[Shield Android TV General] chtulu:
Tried earlyprintk, nothing. I do not have a console so I can not see the reason why with the new dtb, the shield does not go past the Nvidia logo. I need someone with shield tv 2017 and console to try the new dtb.
[Shield Android TV General] sunxishan:
hi yahoo2016,

When I use this boot image mmcblk0p33.img for new Shield TV 2017, it can boot up without problems but it seems some problem with some internal driver?

when I hooked up a usb camera I cannot see /dev/video0 device.

If I switch back to sda1.img and use roofs on my USB drive everything works just fine. I think it should not be my roofs problem.

when boot from sda1.img,

ubuntu@tegra-ubuntu:~$ sudo dmesg | grep video
[ 7.145279] uvcvideo: Found UVC 1.00 device HD Pro Webcam C920 (046d:082d)

while boot with mmcblk0p33.img,

ubuntu@tegra-ubuntu:~$ sudo dmesg | grep video
[ 0.336250] Linux video capture interface: v2.00

I think here is the problem.

If you can share some hint how to build this boot image maybe i can debug to see what is the issue.

Thanks,

Xishan
[Shield Android TV General] crnkoj:
hey guys, been longer away, but still have one of my shields 2015 running the L4T on it (not entirely sure which version though anymore), lsb_release says 16.0.4.1 LTS Xenial.

Now I was wondering if I can update it without breaking it and which packages need to be held back? Thanks!
[Shield Android TV General] yahoo2016:
L4T R24.2.1 is still the last known working version for SATV.

I have been trying L4T R28 on Jetson TX1/TX2, there are many issues.

There is no DTS for SATV (foster) in L4T R28. It appears Nvidia dropped L4T support for SATV since release of TX2.
[Shield Android TV General] crnkoj:
Thanks. But what about the Ubuntu updates through apt-get, can I do those? BTW are you updating the latest usable kernel with security updates?

edit> one more thing, did we give up on chainloading o-boot after the android bootloader? This guy got it working for the old OMAP devices, perhaps useable ideas?

https://xdaforums.com/galaxy-nexus/development/bootloader-boot-multi-boot-support-t2201146

https://xdaforums.com/galaxy-s2/general/uboot-bootloader-true-multiboot-t1680898
[Shield Android TV General] yahoo2016:
I do not see issues for "sudo apt-get update".

I have not touched my SATVs for long time. I have been busy with TX1s/TX2s at work.
[Shield Android TV General] crnkoj:
Thanks mate.

Speaking of tx1/2, I saw the tx1 costs 239e now, whole the tx2 costs 600e. Is everything working fine with those? Is it possible to compile kernels natively on those, eventually use a different distronic than Ubuntu with working nvidia drivers (eg like for desktop cards in PCs for instance with gentoo)?
[Shield Android TV General] yahoo2016:
Unless more GPU cores are needed, TX1s are better valued. TX1s are compatible with earlier versions of L4Ts, TX2s only support L4T 27 and later.

There are significant differences between kernel of L4T 24.2.1 and kernels of L4T 27 and later.

L4T 24.2.1 has been stable and everything seems working (the same for SATV) as far as I know.

There have been many issues reported for TX2s on Nvidia Devtalk.

I have been natively compiling L4T kernels for both TX1s and TX2s. 32 bit compilers are not needed for later L4Ts.

We are more hardware oriented to use TX1s/TX2s for sensor (e.g., MIPI cameras, IMUs) related work and have not tried to use OSs other than L4T. The vendors only supply drivers for L4T.
[Shield Android TV General] Mogster2K:
Will the kernels in the first post work for L4T 24.2.2? Also, which file(s) need to be changed to select the rootfs location?
[Shield Android TV General] deerish:
Please provide your work thus far. The UART is on the debug connector next to the fan header.
[Shield Android TV General] chtulu:
Hi, I have already lost one shield tv, trying to get the last kernel working, so I am not going to use the UART, besides the shield is running 24/7 with cuda code, so no chance.

I have made the new dtb for shield tv 2017 and not the one this thread is about, but as I said the shield is stuck at the logo when using it, so I gave up. If someone want to have a look to the entire source code dtb, dts etc I can upload somewhere.
[Shield Android TV General] deerish:
Sorry if I wasn't clear -- the UART for the Shield TV 2017 is easily accessible on the debug connector next to the fan header. I would like to look at your device-tree files, in case they will save me some time.

Thanks.
[Shield Android TV General] chtulu:
Yes, that would be easy but the system now is in 24/7 so no chance. Do you know about the new structure of source code? Do you have the shield 2017?
[Shield Android TV General] chtulu:
OK I will upload the hardware folder somewhere.

---------- Post added at 07:10 PM ---------- Previous post was at 06:50 PM ----------

Here we go, the entire hardware directory zipped at https://nofile.io/f/7dYaaaGrwrV/hardware.tar

The files related to the SHIELD TV 2017 are tegra210-darcy* and also the Makefile has been update to compile the darcy file.
[Shield Android TV General] deerish:
You can chain into U-Boot, just replace your kernel image with u-boot.bin.

I created an ext2 filesystem on mmcblk0p19 ("APP") for "/boot", which contains "extlinux/extlinux.conf", as well as the kernel and initrd.

You must set the "legacy BIOS bootable" flag on the partition containing "/boot"; "sgdisk /dev/mmcblk0 --attributes=19:set:2", in my case. Otherwise, U-Boot's boot script will fail.
[Shield Android TV General] chtulu:
Will the latest kernel, the 4.4 (L4T 28.1) work?

Where do you find u-boot.bin?

What about LNX -> /dev/block/mmcblk0p18 ?

So you replace ZImage with u-boot.bin and that you combine the u-boot.bin with initrd, is that correct?

When you created the ext2 filesystem on mmcblk0p19 ("APP"), what happened to system.bin?

Is the "extlinux/extlinux.conf" from L4T 28.1?

What about the dtb file? Do you still need it?
[Shield Android TV General] deerish:
I have the latest kernel booting -- U-Boot just helped the debug process. Yes, the device-tree needs updating.
[Shield Android TV General] chtulu:
Can you give us more information on that?

How did you get the latest kernel booting without the new device-tree?

Is there any improvement with new kernel in term of cuda speed?
[Shield Android TV General] deerish:
I built a new device-tree. You had a good start, but missed many changes. I will post the blob soon -- there are still some issues.
[Shield Android TV General] chtulu:
Great! Looking forward to it!
[Shield Android TV General] crnkoj:
How did you get /compile a working uboot??? This is really good to load various oses
[Shield Android TV General] deerish:
You can use the U-Boot binary release from Linux for Tegra, just pass it to mkbootimg or abootimg.

I've compiled my own U-Boot, with changes to target the p2894 board -- including enabling ethernet.
[Shield Android TV General] deerish:
@@ -424,7 +424,7 @@

return (pg_ops ? 0 : -EINVAL);
}
-arch_initcall(tegra_powergate_init);
+subsys_initcall(tegra_powergate_init);

#ifdef CONFIG_DEBUG_FS

Small patch to "drivers/platform/tegra/powergate/powergate.c" in the 28.1 kernel source-tree. The device-tree blob that I'll be posting will not boot without this change.
[Shield Android TV General] deerish:
This device-tree is valid only for darcy (Shield TV 2017), though adapting it to foster-e should be fairly trivial. Use at your own risk.
[Shield Android TV General] chtulu:
Thanks, but could you upload the hardware folder?
[Shield Android TV General] deerish:
You can decompile the blob if you want to make changes.
[Shield Android TV General] chtulu:
And that is what I did and seems I did not miss a lot.

...And I guess you have patched powergate.c

However, would be nice to have a blog about changes needed and u-boot.
[Shield Android TV General] deerish:
You're right, it seemed like more at the time. I think I confused your directory with another in the midst of things. Your device-tree will probably boot with the patch.

For U-Boot, follow the "Jetson TX1 Platform Adaptation and Bring-Up Guide". I wrote a script to generate the pinmux header from the .dtsi. To make ethernet work, set the LDO3 regulator to 3.3V (0xF2).
[Shield Android TV General] chtulu:
Why subsys_initcall is needed instead of arch_initcall? what is the difference?
[Shield Android TV General] deerish:
"tegra_powergate_init()" will hang the board when it attempts to powergate the XUSBC partition during boot -- I believe due to USB clock configuration coming out of the bootloader. Moving "tegra_powergate_init()" to subsys ensures that the clocks are properly initialized before it's called.
[Shield Android TV General] chtulu:
Ha! I see, thanks
[Shield Android TV General] deerish:
It's safe to use "saveenv" in U-Boot, by the way. It writes at the end of mmcblk0boot1, which is totally empty in any case.
[Shield Android TV General] chtulu:
[MENTION=7191545]deerish[/MENTION]

Do you know what gk20a 57000000.gpu: railgate is disabled and tegra_soctherm 700e2000.soctherm: soctherm: trip temperature -2147483647 forced to -127000 mean?
[Shield Android TV General] deerish:
I'm not sure where the soctherm driver picks up those values, but the message indicates clamping into the valid trip temperature range -- the unit is millicelsius. Maybe some missing nodes in the device-tree?

If the "railgate is disabled," the GPU will not enter a low-power state. I don't get that message. What does "/sys/devices/57000000.gpu/railgate_enable" say?
[Shield Android TV General] chtulu:
Can the clamping message be safely ignored? Do you get that message?

/sys/devices/57000000.gpu/railgate_enable says: 0

Ok, seems that jetson_clocks.sh set railgate_enable to 0 therefore the message railgate is disabled

Also I noticed that the following scaling_available_frequencies are missing: 1836000 1938000 2014500 2116500 2218500 2320500

so the max set by jetson_clocks.sh is 1734000

I remember in 24.2.2 after running jetson_clocks.sh the max freq was 2000000 something
[Shield Android TV General] deerish:
I thought that you may be using jetson_clocks.sh. I also get those soctherm messages, not too concerned about them.

You might try editing the "cpu-scaling-data" under "cpufreq".
[Shield Android TV General] chtulu:
Yes, but I would need the dts source code in order to do that, so if you could provide that.....
[Shield Android TV General] chtulu:
Anyway, thanks for your great work, but I am puzzled why you changed all the TEGRA_PINCONF_PARAM_E_IO_HV to TEGRA_PINCONF_PARAM_RCV_SEL.

And how do you add frequencies for the GPU?
[Shield Android TV General] deerish:
That is a mistake, thanks for catching it. I didn't read the driver, so I assumed that "nvidia,io-hv" was simply an alias for "nvidia,io-high-voltage".

I don't know if GPU frequencies can be specified through the device-tree.
[Shield Android TV General] chtulu:
Does not matter, I found out that, as for pinctrl-tegra.h, rcv_sel_bit and e_io_hv_bit set the same bit.

No, they can not be changed in the device-tree, I was hoping that you knew about the UCM1 and UCM2 tables for GPU.
[Shield Android TV General] deerish:
Haven't looked into it, sorry. I think you're probably already poking around in these, but if not, look at "speedo-tegra210.c" and "tegra210-dvfs.c" to get started.
[Shield Android TV General] chtulu:
Hi, I found in dmesg this line:

pci 0000:00:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring

some errors in device tree's pcie-controller section perhaps?

and also: xhci-tegra 70090000.xusb: can't get usb3-1 phy (-517)
[Shield Android TV General] nathan6:
I understand this thread is old and must be pretty much obsolete, but how do you boot from 33rd or 34th partition?

I was able to add partitions with gdisk and hex edit, then cp rootfs just like on the sd card, but the booting crashes.

Are there any extra steps need to be done? Could anyone guide me on this?
[Shield Android TV General] Diliz:
Hello there,

Actually I would like to know all the steps to have l4t running on my 2017 shield tv too, if anyone have all the steps that needs to be done, I'm a little confused with all the things provided there to actually making a bootable l4t distro, I saw some are on 24.1, and some can boot on 28.1 kernel, but I'm not able to making it bootable.

Thanks a lot for reading/answering :highfive:
[Shield Android TV General] nathan6:
I made it bootable on L4T 24.2.1 with micro sd card on Pro (500GB) version, but not 2017 version.

I read pretty much every reply on this thread, several other threads and other websites trying to figure out how to do this. I made a md doc in my github (github.com/na6an/ShieldTV) pulling all relevant info in one place. You can also check this doc out (gravity.phy.umassd.edu/ShieldDIY.pdf) - which is basically the same procedure as this post, but more step by step style. (sorry, cannot post links yet)

TRY NOT TO FLASH NEW DTB IF YOU DECIDED TO STICK ON 2017 MODEL.

Like I briefly mentioned in my github, I actually tried on two 2017 versions before tried on Pro version but hard bricked twice by flashing wrong dtb (tried several dtb's because method posted here didn't seem to work on my 2017), had to returned them both.

I failed booting from usb by following this post with "sda1.img"

One thing I noticed that mine works on "mmcblk0p1.img" with external micro sd card, not "mmcblk1p1.img" although this post says it's for internal eMMC. So, my guess is the port name could be different. 2017 version doesn't have micro sd card slot, so you might want to try with sd card reader usb.
[Shield Android TV General] chtulu:
Hi, Do you have the device tree for L4T 28.2?
[Shield Android TV General] efecto369:
Hi,

¿Did you get any succes on booting 2017 model ?, I tried all that i found but, i can boot but when need to read the rootfs it say that "JBD2: Unrecognised features on Journal" and " EXT-4fs (sda1):error loading journal."

If anyone with more knowledge want to work on this or know more info , i will support with all my help.
[Shield Android TV General] Diliz:
Thanks for answering me, this is cool to have some advice, maybe i'll try testing with an external usb and check if the port name is different :)

Actually I would love to put l4t on my 2017 shield, hope It will work or someone will one day put some work on this xD
[Shield Android TV General] nathan6:
"when need to read the rootfs" - do you mean during the boot?

Like I mentioned, I was NOT able to boot in 2017 version. After I bricked 2 and returned, I didn't really want to give another try. So far, booting from SD card on Pro version was the only way worked for me.

I didn't run into any error message like yours (just dead screen) but base on what it says, few things I can think of.

1. Your booting usb is not formatted in ext4 properly. (or if you didn't use the first partition of usb - it has to be primary partition)

2. Try other ports (2 usb ports and 1 micro-usb) if not tried yet. One of usb ports need to be "USB Debugging enabled" may or may not be the port you want to use for L4T flashing. I forgot which one it was on 2017 model.

3. Perhaps your usb is not compatible. Even if it was from the same brand or same 2.0 / 3.0 type usb, compatibility could vary. Try a couple of different usb's if you have spare.

I know it's hard to capture the booting screen, but googling exact error message might be helpful identifying the problem.

Or, maybe this booting from "sda1.img" is not universal because sda1.img didn't work on me either.

I wonder how yahoo2016 created these boot img files. So I could try other ports maybe like sdb1 or sdc1.

---------- Post added at 05:08 AM ---------- Previous post was at 04:58 AM ----------

Yeah, I wished I could be able to boot on 2017, too. Either original (2015 16GB) or Pro version is considerably bigger size compared to 2017. But, then, I like Pro more now because of sd card slot and more spacious between usb ports + more flexibility (like replacing with speedier ssd, easy fix from bricks, etc) With sd card slot, you can keep it plugged in without anything sticking out. You won't have enough space to install anything on L4T after flashing with 16GB, too.

Anyways, good luck with your 2017 shield flashing. Hope you don't end up having to return like I did.
[Shield Android TV General] efecto369:
Hi,

I cheked many times before all the points that you suggest, anyway i checked again (I really want to get this working).

I can miss something but i tried many many options.

I format all usb devices from lubuntu machine with:

sudo mkfs.ext4 /dev/sdb1

And Gtparted say only one partition.

Today, when i was launching all the boot images again with a litle hard disk attached, i found one detail that i didn't realised before:

-With boot image mmcblk0p29.img there are some messages before the boot process crash whith my USB2 external hard disk attached on usb port near Hdmi conector, is recognised during boot process like "sd 0:0:0:0:[sda]" , and after there is message that say: "Assuming drive cache: write through sda: sda1", but the strange thing is that with "sda1.img" there is no message regarding to hard disk detection, only the "EXT-4 (sda1): error loading Journal" message.

-Note:This model only has two usb ports, no sd , no mini usb.

ID of my device is: tegra210-darcy-p2894-0050-a04-00.dtb.

Sorry about my english.
[Shield Android TV General] nathan6:
"USB2 external hard disk attached on usb port" - So, you're using external hdd instead of usb flash drive?

Make sure there is no bad sector in that hdd. When I searched the error message "EXT-4 (sda1): error loading Journal", many threads I found suggest corrupted disk. Corruption could be either the image file or the hardware disk itself. So, I'd suggest re-doing from scratch, downloading fresh new files, with a different drive.

* and sorry I forgot 2017 version didn't have micro-usb. Maybe I was confused with Pro version.
[Shield Android TV General] TrivasZhang:
I met the same problem about reboot back to android.

I was using the shield 2017 to install ubuntu and it seemd start installing but reboots back to android in 10 seconds. How didi you fixed that? I was using usb driver mode because there is no sd slot in 2017 version.

I did't flash the dtb file, though I knew the dtb name but I didn't know where to download the dtb file. Is dtb file very important? Or should I turn on the develop mode?

Can you help me?

---------- Post added at 11:44 AM ---------- Previous post was at 11:39 AM ----------

I am using 2017 16gb, and it will reboots back to android after start installing ubuntu in 10 seconds.

Your previous method is just for dowloading the rootfs to usb or sd card.

Hope for your reply, thanks!
[Shield Android TV General] laharl_22:
Can i boot l4t on USB drive and stay to Android TV os on primary?
[Shield Android TV General] laharl_22:
Me too on 2017 TV ubuntu dont work
[Shield Android TV General] wejgomi:
Anyone had luck setting this up over latest Oreo update ? Every attempt through USB/microSD ends up with kernel panic so far.
[Shield Android TV General] Mogster2K:
AFAIK the only release that works is R24.x, which is based on Ubuntu 14.04. The newer ones were only made for the Jetson development boards and won't run on the Shield TV.
[Shield Android TV General] wejgomi:
Yes, that's exactly the releases I've been trying on latest update, both 24.1 and 24.2.1 results in kernel panic, even the rootfs' image files on forum, flashing them through dd to no avail.

I was wondering if it's something related to kernel/bootloader version..
[Shield Android TV General] Mogster2K:
It seems to be working fine on my 2015 system with 7.0.2 bootloader. I used one of the kernels in this thread to boot from an sdcard with fastboot.
[Shield Android TV General] wejgomi:
That's weird. Any extra steps you take apart from flashing correct boot.img, preparing SD card according to that post and .dtb flash ? I've seen 1-2 posts with same issue and resolved, but there isn't any follow-up explaining how they did.

How it boots with output on screen suggests it's a media related issue, but already tried both microSD/USB, with correct boot.img as explained. It's a 2015 16gb.
[Shield Android TV General] Mogster2K:
I haven't actually flashed the boot image - I use "fastboot boot mmcblk1p1.img" instead. And I'm using the stock .dtb.

Oh, I also formatted the sdcard on my PC, probably with a live system. I have noticed that the Shield and PCs seem to format cards differently - PCs usually leave a 1 MB gap before the first partition to prevent any alignment issues, while the Shield seems to format without a gap. I think the gap is required for Linux, even tho' Android will refuse to mount it.

Edit: added more info and a screenshot