Drive PX2 hybrid-cross compilation using NFS - questions?

I am setting up my system for hybrid-cross-compilation using NFS.
I have already setup a private LAN between the Target(dpx2) and my Host.

Question1) The cross compilation doc says.
5. Specify the location where the target file system is to be mounted on the host system.

I am under the impression that I have already done the necessary things on my host.

This is the output i got from my host:
user@kickseed:~$ sudo exportfs
/home/user/NVIDIA/FIRMWARE/DOWNLOAD/VibranteSDK/vibrante-t186ref-linux/targetfs

user@kickseed:~$

This is the output I got from the Target(dpx2)
nvidia@nvidia:~$ sudo exportfs
nvidia@nvidia:~$

Actually there is no output, is this expected?

would you please clarify the purpose of the bullet point 5?

Question2)
9. Make a working copy of the bootburn configuration file and modify the os_args declaration to replace the device name eth0 with usb0.
The modified declaration is as follows:
os_args=“root=/dev/nfs nfsdev=usb0 console=ttyS0,115200n8”

question> The cross compilation doc says
9.Make a working copy of the bootburn configuration file and modify the os_args declaration to replace the device name eth0 with usb0.
The modified declaration is as follows:
os_args=“root=/dev/nfs nfsdev=usb0 console=ttyS0,115200n8”

Please clarify which bootburn file this document is referring to? Is it referring to “quickboot_emmc_linux.cfg” ? or something else? (this is because, the os_args is defined in many other files too)

Thanks
Sam

Hello Nvidia Folks,
Has anyone cross-compiled PCL or any other library using NFS?
Because, I followed the steps mentioned in the spec and I was able to setup the network connection between the target and dpx2. But the steps which are specific to Nvidia’s proprietary files are failing.

I will appreciate if someone from Nvidia replies to my question.

Thanks
Sam

Dear SamJey,

Can I know about below? Thanks.

  1. Are you using DriveWorks or something else? I.e., what Point Cloud Library is he trying to cross-compile?
  2. What specific steps are failing?

Dear Steve,
My Drive PX2 is running with DriveInstall_4.1.8.0L_SDK_b43.run software package.

I am setting up my system for hybrid-cross-compilation using NFS. I have already setup a private LAN between the Target(dpx2) and my Host. However, the I got the following error while flashing the files from my host to NFS

question1) ./bootburn.sh script aborted with the an error msg “There is no supported for specifying kernel-dtb with Hypervisor”. Why is this happening?

user@kickseed:~/NVIDIA/FIRMWARE/DOWNLOAD/VibranteSDK/vibrante-t186ref-foundation/utils/scripts/bootburn$ ./bootburn.sh -b p2379c01-t186a -d kernel-dtb tegra186-vcm31-p2379-0000-c01-00-base-a-air-cooled.dtb

Successfully acquired lock over /var/lock/LCK…bootburn

[sudo] password for user:

There is no supported for specifying kernel-dtb with Hypervisor

user@kickseed:~/NVIDIA/FIRMWARE/DOWNLOAD/VibranteSDK/vibrante-t186ref-foundation/utils/scripts/bootburn$

Here I am providing the full details about the steps that I have followed.

Full Details:

  1. I have verified the existence of the targetfs in my host

user@kickseed:~/NVIDIA/FIRMWARE/DOWNLOAD/VibranteSDK/vibrante-t186ref-linux$ ls
bin-target kernel-rt_patches nvpmodel targetfs-pkgs
data lib-target oss ubuntu-rootfs-licenses.txt
include make samples utils
kernel modules targetfs vulkan_icd
user@kickseed:~/NVIDIA/FIRMWARE/DOWNLOAD/VibranteSDK/vibrante-t186ref-linux$

  1. Connect Target to the host via USB-to-Ethernet dongle type adaptor. An interface eth1 is already consumed by the host, therefore, I am using eth2 for my private LAN

user@kickseed:~$ cat /etc/network/interfaces

This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5).

The loopback network interface

auto lo iface lo inet loopback
auto eth2 allow-hotplug eth2
iface eth2 inet static
address 10.0.0.1
netmask 255.255.255.0
post-up /etc/init.d/isc-dhcp-server restart
user@kickseed:~$

  1. Restart the host networking with the following command sudo /etc/init.d/networking restart

  2. I am skipping the section “DRIVE PX 2 10-Gigabit Ethernet Ownership”. This is because, I do not want to switch the ownership

  3. Configure the DHCP server on the host
    user@kickseed:~$ sudo apt-get install isc-dhcp-server

user@kickseed:~$ cat /etc/default/isc-dhcp-server

… INTERFACES=“eth2”

user@kickseed:~$

user@kickseed:~$ cat /etc/dhcp/dhcpd.conf

ddns-update-style none;
allow bootp;
subnet 10.0.0.0 netmask 255.255.255.0 {
option routers 10.0.0.1;
option domain-name “corp.quanergy.com” ;
option domain-name-servers 10.1.10.8 ;
default-lease-time 345600;
max-lease-time 31557600;
range 10.0.0.2 10.0.0.254;
option root-path “10.0.0.1:/home/user/NVIDIA/FIRMWARE/DOWNLOAD/VibranteSDK/vibrante-t186ref-linux/targetfs,wsize=8192,rsize=8192,v3”;
}

  1. Restart the dhcp server by running the below command
    sudo /etc/init.d/isc-dhcp-server restart

  2. Modified the working copy of the bootburn configuration file with the following line

os_args=“root=/dev/nfs nfsdev=usb0 console=ttyS0,115200n8”

Following is a list of files that has defined the or_args. So, I need to modify all these files.

(quickboot_emmc_linux_initramfs_p3310.cfg, quickboot_qspi_linux_initramfs_e2681.cfg, quickboot_qspi_linux_initramfs.cfg, quickboot_qspi_rt_linux_initramfs.cfg, quickboot_emmc_linux_initramfs.cfg, quickboot_qspi_linux_initramfs_bali.cfg)

  1. I have setup the NFS server and restarted it.

user@kickseed:~$ sudo exportfs /home/user/NVIDIA/FIRMWARE/DOWNLOAD/VibranteSDK/vibrante-t186ref-linux/targetfs user@kickseed:~$

  1. Internet access is enabled. I can ping from target to host’s private IP and vice versa

nvidia@nvidia:~$ ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. 64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.405 ms user@kickseed:~$ ping 10.0.0.3
PING 10.0.0.3 (10.0.0.3) 56(84) bytes of data. 64 bytes from 10.0.0.3: icmp_seq=1 ttl=64 time=0.352 ms

  1. Target routing table

nvidia@nvidia:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.1.11.1 0.0.0.0 UG 1024 0 0 enp3s0
0.0.0.0 10.0.0.1 0.0.0.0 UG 1024 0 0 eth0
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
10.0.0.1 0.0.0.0 255.255.255.255 UH 1024 0 0 eth0
10.1.11.0 0.0.0.0 255.255.255.0 U 0 0 0 enp3s0
10.1.11.1 0.0.0.0 255.255.255.255 UH 1024 0 0 enp3s0
10.42.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0.200
nvidia@nvidia:~$

  1. Host routing table

user@kickseed:~$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.1.11.1 0.0.0.0 UG 0 0 0 eth1
10.0.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
10.1.11.0 0.0.0.0 255.255.255.0 U 1 0 0 eth1
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth2
user@kickseed:~$

  1. I have forced Tegra A in recovery mode (via minicom)

  2. I am flashing the board from my host. However, I got the following error.

user@kickseed:~/NVIDIA/FIRMWARE/DOWNLOAD/VibranteSDK/vibrante-t186ref-foundation/utils/scripts/bootburn$ ./bootburn.sh -b p2379c01-t186a -d kernel-dtb tegra186-vcm31-p2379-0000-c01-00-base-a-air-cooled.dtb

Successfully acquired lock over /var/lock/LCK…bootburn [sudo] password for user: There is no supported for specifying kernel-dtb with Hypervisor

user@kickseed:~/NVIDIA/FIRMWARE/DOWNLOAD/VibranteSDK/vibrante-t186ref-foundation/utils/scripts/bootburn$

Please note I am not using any virtual-machine or hypervisor. I am using a ubuntu 16.04 native machine as my host. But the error seems to be indicating the some issues with the Hypervisor ???

Thanks
Sam