Compiling Jetson TX1/TX2 source code: Difference between revisions

Line 340: Line 340:
It will notice that everything is already build and will install your new images. If you have problems detecting the IP address wait like 2 minutes and it will give you the option to enter it manually. Username and password: ubuntu. You can see the ipaddress connecting a keyboard, mouse and monitor to the board at this point since ubuntu would be already booted.
It will notice that everything is already build and will install your new images. If you have problems detecting the IP address wait like 2 minutes and it will give you the option to enter it manually. Username and password: ubuntu. You can see the ipaddress connecting a keyboard, mouse and monitor to the board at this point since ubuntu would be already booted.


== DTB ==
== Installing DTB ==


Looking into the file $DEVDIR/TX1/Linux_for_Tegra_tx1/jetson-tx1.conf the dtb used by jetson x1 is: '''tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb'''
In previous versions of jetpack, updating the DTB was as easy as replacing the one in the boot folder of the boot directory and you could also just change the FDT entry in '''/boot/extlinux/extlinux.conf''' to use a different one. For Jetpack 3.1 this was changed and a separate partition is used to flash the DTB file and Nvidia says you can only update it by flashing it again using the provided '''flash''' script.
 
Here is how to do it:
 
$DEVDIR/images/arch/arm64/boot/dts/*.dtb
 
*'''TX1'''
 
Replace the dtb in '''$DEVDIR/kernel/dtb''' with yours (you might want to make a backup of the original DTB, just in case):
 
<pre>
cp $DEVDIR/images/arch/arm64/boot/dts/tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb $DEVDIR/kernel/dtb
</pre>
 
Put the board into recovery mode and flash the DTB:
 
<pre>
cd $DEVDIR
sudo ./flash.sh -r -k DTB jetson-tx1 mmcblk1p1
</pre>
 
*'''TX2'''
 
Replace the dtb in '''$DEVDIR/kernel/dtb''' with yours (you might want to make a backup of the original DTB, just in case):
 
<pre>
cp $DEVDIR/images/arch/arm64/boot/dts/tegra186-quill-p3310-1000-c03-00-base.dtb $DEVDIR/kernel/dtb
</pre>
 
Put the board into recovery mode and flash the DTB:
 
<pre>
cd $DEVDIR
sudo ./flash.sh -r -k kernel-dtb jetson-tx2 mmcblk1p1
</pre>
 
 
'''NOTE:''' I also found this way to do it from the board, but it could cause errors (see [https://devtalk.nvidia.com/default/topic/1021660/is-there-any-other-method-in-l4t-r28-1-to-update-dtb-file-for-tx1-besides-flashing-the-dtb-partitio-/ here]):


<pre>
<pre>
ODMDATA=0x84000;
sudo dd if=tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb of=/dev/mmcblk0p13
NET_BSF=;
EMMC_BSF=;
EMMC_BCT=P2180_A00_LP4_DSC_204Mhz.cfg;
EMMC_CFG=gnu_linux_tegraboot_emmc_full.xml;
BOOTPARTSIZE=8388608;
EMMCSIZE=31276924928;
ITS_FILE=;
SYSBOOTFILE=p2371-2180-devkit/extlinux.conf;
DTB_FILE=tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb
DFLT_KERNEL=Image;
ROOTFSSIZE=14GiB;
CMDLINE_ADD="fbcon=map:0";
UBOOT_TEXT_BASE=0x8010e000;
UIMAGE_LABEL="Linux-tegra21";
target_board="t210ref";
ROOT_DEV="mmcblk0p1 ------------ internal eMMC.
        sda1 ----------------- external USB devices. (USB memory stick, HDD)
        eth0 ----------------- nfsroot via RJ45 Ethernet port.
        eth1 ----------------- nfsroot via USB Ethernet interface.";
TEGRABOOT="bootloader/${target_board}/nvtboot.bin";
SOSFILE="bootloader/nvtboot_recovery.bin";
WB0BOOT="bootloader/${target_board}/warmboot.bin";
FLASHAPP="bootloader/tegraflash.py";
FLASHER="bootloader/${target_board}/cboot.bin";
BOOTLOADER="bootloader/${target_board}/p2371-2180/u-boot-dtb.bin";
UBOOT_WITH_TBOOT=yes;
BCFFILE="bootloader/${target_board}/cfg/board_config_p2597-devkit.xml";
INITRD="bootloader/l4t_initrd.img";
TBCFILE="bootloader/nvtboot_cpu.bin";
BPFFILE="bootloader/bpmp.bin";
TOSFILE="bootloader/tos.img";
EKSFILE="bootloader/eks.img";
FBFILE="bootloader/reserved_fb.xml";
</pre>
</pre>