TX1 can't boot with no HDMI in R28.1

Hi,everybody

I compile a kernel with L4T-Source and update it in TX1.But I had some trouble on it.

I copy the new Image and tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb to /boot and modiy extlinux.conf to let TX1 boot from new kernel.

TIMEOUT 30
DEFAULT primary

MENU TITLE p2371-2180 eMMC boot options

LABEL primary
      MENU LABEL primary kernel
      LINUX /boot/Image
      <b>FDT /boot/tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb</b>
      INITRD /boot/initrd
      APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait

I use my customer carrier board to test.TX1 can not boot with no HDMI.But if I plugin HDMI,TX1 boot normally.
The hardware in okay because it can boot from the official kernel.Also I test my kernel in official dev kit,it boot failed.
The boot log is too long so I put it below.
Could you kindly tell me why?
Best Regards

I see you used the source_sync version:

Linux version 4.4.38<b>+</b>

I’m wondering if perhaps your boot is looking for a module which it can’t find. “uname -r” is determined by base kernel version (4.4.38) and CONFIG_LOCALVERSION (normally “-tegra”…in this case “+”). For this kernel all modules would need to be located in “/lib/modules/4.4.38+/”, but I would be they are only in “/lib/modules/4.4.38-tegra/”. If you download the kernel source instead from here and then set CONFIG_LOCALVERSION to “-tegra” you’d have the correct “uname -r”. See here, kernel source is in the “Source Packages” download:
https://developer.nvidia.com/embedded/linux-tegra

Hi CalmCar,

I think you should put the log when boot failure. Also, please note that the kernel log is too long to put on forum. Please use other space to put your log file. Thanks.

Also,

Could you remove “FDT /boot/tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb” in extlinux.conf?

You should use flash to update your dtb instead of reading it directly from rootfs

Here’s the log

With HDMI
https://github.com/CalmCar/kernel_log/blob/master/hdmi.log

With no HDMI
https://github.com/CalmCar/kernel_log/blob/master/no_hdmi.log

@linuxdev

I change my linux version now.

uname -a
Linux tegra-ubuntu 4.4.38+ #1 SMP PREEMPT Thu Aug 3 11:05:16 CST 2017 aarch64 aarch64 aarch64 GNU/Linux

one of *.ko

modinfo ./crypto/tcrypt.ko
filename:       /lib/modules/4.4.38+/kernel/./crypto/tcrypt.ko
author:         James Morris <jmorris@intercode.com.au>
description:    Quick & dirty crypto testing module
license:        GPL
depends:        
intree:         Y
vermagic:       4.4.38+ SMP preempt mod_unload aarch64
parm:           alg:charp
parm:           type:uint
parm:           mask:uint
parm:           mode:int
parm:           dsize:ulong
parm:           bsize:uint
parm:           bcnt:uint
parm:           sec:Length in seconds of speed tests (uint)

But it can’t boot also.

Sometime,it boot failed even with HDMI plugin.It seems that several kernel thread have been blocked

@WayneWWW
I put the log file into github.Please check

Hi CalmCar,

I don’t see HDMI error on NO_HDMI log, it seems something else cause the trouble.

@WayneWWW
Yep,TX1 boot failure even with HDMI sometimes.Do you meet the same situation?

Do you use flash script or just modify the dtb file in extlinux.conf? After rel-28.1, we don’t suggest to modify dtb file in extlinux.conf anymore.

@WayneWWW
I remove FDT entry form extlinux.conf.It works.
So,how do I flash dtb files only ?I don’t want flash all filesystem.It cost too much time.

Please follow this. It should work.

sudo ./flash -k -r DTB jetson-tx1 mmcblk0p1   --for TX1
sudo ./flash -k -r kernel-dtb jetson-tx2 mmcblk0p1   --for TX2

@WayneWWW

I calculate my dtb file’s md5

md5sum tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb 
6e40d85bd5b597a56ae89808e5d225b3  tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb

I copy my dtb file into Linux_for_Tegra/bootloader
I flash the dtb

sudo ./flash.sh -r -k DTB jetson-tx1 mmcblk0p1

Then I found the dtb is not my dtb file.

md5sum bootloader/tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb 
617c0e74384ff68e7f4cd42581539f5b  bootloader/tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb

When boot up,I confirm it does not my dtb file.My PC does not has this PATH

nvidia@tegra-ubuntu:~$ dmesg|grep DTS                                                                                                        
[    0.028367] DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-4.4/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platfos
[    0.196160] DTS File Name: /dvs/git/dirty/git-master_linux/kernel/kernel-4.4/arch/arm64/boot/dts/../../../../../../hardware/nvidia/platfos

What 's it going on…Where does the dtb file come from?

Hi CalmCar,

It is normal that after flash, the dtb on device would be added some line. You could use dtc to convert the different dtb files and compare the content.

The dtb comes from Linux_for_Tegra/kernel/dtb

Thanks a lot

You can extract the Jetson’s idea of what its current device tree is via:

dtc -I fs -O dts -o extracted.dts /proc/device-tree