Jetson TX2 nvidia - pxe boot

Preliminary information:
I have a server that has MAAS installed, The maas server is configured to serve as both DHCP SERVER and Images deploy.
Anyway I’m trying to set the Nvidia tx2 jetson as a pxe boot so that in its rise it gets the image from the Maas server.
What i did was purchase a serial cable and connect the board to the server through a serial cable.
I installed minicom and set it to default from ttyUSB0.
Anyway nothing happens, am I doing something wrong or can I get detailed help / guide that I can use?
@@: ~ $ lsusb
Bus 002 Device 001: ID 1d6b: 0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 8087: 0a2b Intel Corp.
Bus 001 Device 003: ID 0bda: 568c Realtek Semiconductor Corp.
Bus 001 Device 015: ID 0403: 6001 Future Technology Devices International, Ltd FT232 USB Serial (UART) IC
Bus 001 Device 005: ID 0a5c: 5834 Broadcom Corp.
Bus 001 Device 013: ID 046d: c534 Logitech, Inc. Unifying Receiver
Bus 001 Device 001: ID 1d6b: 0002 Linux Foundation 2.0 root hub.

  • Serial Device : /dev/ttyUSB0 |
    | B - Lockfile Location : /var/lock |
    | C - Callin Program : |
    | D - Callout Program : |
    | E - Bps/Par/Bits : 115200 8N1 |
    | F - Hardware Flow Control : No |
    | G - Software Flow Control : Yes |
    | |
    | Change which setting?

Are saying nothing happens when you try to use serial console? Or are you saying nothing happens in booting, but serial console works?

The lsusb shows an FTDI serial USB UART, which is correct from the host side. Assuming the host has the FTDI driver, then “/dev/ttyUSB0” is produced; if not produced, then you don’t have the driver. Sounds like the driver is there.

If the UART voltage level isn’t 3.3V (TTL), then it wouldn’t work anyway. The settings 115200 8N1 are correct. I prefer gtkterm since it doesn’t have the baggage from modem init strings:

sudo apt-get install gtkterm
# If your user has group "dialout" as a secondary group, then this doesn't need "sudo"
# ...otherwise it does.
gtkterm -b 8 -t 1 -s 115200 -p /dev/ttyUSB0

Thanks for your quick response.
I get this error " GtkDialog mapped without a transient parent. This is discouraged.
Control signals read: Input/output error"

Btw, I’m assuming you are logged in to a GUI. You can ignore the GtkDialog warning, and if the GUI application shows up, then you know gtkterm itself is ok.

What do you see from:

ls -l /dev/ttyUSB0

Does using sudo with gtkterm help? Perhaps it is a permission error.

444/5000
BTW you were right.
I did not specify why I am trying to mount the device through PXE.
I manage a cluster of edge devices such as(NUC and NVIDIA).
The entire cluster is managed by MAAS software which is intended to be both DHCP SERVER and image deploy.
MAAS has images of arm64 among others and when I upload the Jetson TX2 through PXE I get errors that some of the folders doesn’t exists and so it fails.
After searching I found an answer that probably the image arm64 provided by MAAS is not suitable for nvidia devices.
Moreover the device is geting an IP address from MAAS but still it can complete the process.

Is there anything I can do?
I attach some of the error when I run through the minicom:

BOOTP broadcast 1
BOOTP broadcast 2
BOOTP broadcast 3
*** Unhandled DHCP Option in OFFER/ACK: 210
*** Unhandled DHCP Option in OFFER/ACK: 210
DHCP client bound to address 192.168.150.116 (1339 ms)
Using ethernet@2490000 device
TFTP from server 192.168.150.3; our IP address is 192.168.150.116
Filename ‘lpxelinux.0’.
Load address: 0x82600000
Loading: ######
70.3 KiB/s
done
Bytes transferred = 74321 (12251 hex)

Executing script at 82600000

Wrong image format for “source” command
ethernet@2490000 Waiting for PHY auto negotiation to complete… done
BOOTP broadcast 1
DHCP client bound to address 192.168.150.116 (79 ms)
Using ethernet@2490000 device
TFTP from server 192.168.150.3; our IP address is 192.168.150.116
Filename ‘grubaa64.efi’.
Load address: 0x80280000
Loading: ##############################################T ###################
#################################################################
#################
367.2 KiB/s
done
Bytes transferred = 2153472 (20dc00 hex)
ethernet@2490000 Waiting for PHY auto negotiation to complete… done
Using ethernet@2490000 device
TFTP from server 192.168.150.3; our IP address is 192.168.150.116
Filename ‘dtb/’.
Load address: 0x82400000
Loading: *
TFTP error: ‘File not found’ (1)
Not retrying…
libfdt fdt_check_header(): FDT_ERR_BADMAGIC

Starting EFI application at 0x80280000 …

WARNING: could not set reg FDT_ERR_NOSPACE.
ERROR: arch-specific fdt fixup failed

  • must RESET the board to recover.

ERROR: Failed to process device tree

Application terminated, r = -22

starting USB…
No controllers found
ethernet@2490000 Waiting for PHY auto negotiation to complete… done
BOOTP broadcast 1
*** Unhandled DHCP Option in OFFER/ACK: 210
*** Unhandled DHCP Option in OFFER/ACK: 210
DHCP client bound to address 192.168.150.116 (80 ms)
Using ethernet@2490000 device
TFTP from server 192.168.150.3; our IP address is 192.168.150.116
Filename ‘lpxelinux.0’.
Load address: 0x80280000
Loading: ######
2.3 MiB/s
done
Bytes transferred = 74321 (12251 hex)
missing environment variable: pxeuuid
Retrieving file: pxelinux.cfg/01-00-04-4b-c5-83-e4
ethernet@2490000 Waiting for PHY auto negotiation to complete… done
Using ethernet@2490000 device
TFTP from server 192.168.150.3; our IP address is 192.168.150.116
Filename ‘pxelinux.cfg/01-00-04-4b-c5-83-e4’.
Load address: 0x82800000
Loading: *
TFTP error: ‘File not found’ (1)
Not retrying…
Retrieving file: pxelinux.cfg/C0A89674
ethernet@2490000 Waiting for PHY auto negotiation to complete… done
Using ethernet@2490000 device
TFTP from server 192.168.150.3; our IP address is 192.168.150.116
Filename ‘pxelinux.cfg/C0A89674’.
Load address: 0x82800000
Loading: *
TFTP error: ‘File not found’ (1)
Not retrying…
Retrieving file: pxelinux.cfg/C0A8967
ethernet@2490000 Waiting for PHY auto negotiation to complete… done
Using ethernet@2490000 device
TFTP from server 192.168.150.3; our IP address is 192.168.150.116
Filename ‘pxelinux.cfg/C0A8967’.
Load address: 0x82800000
Loading: *
TFTP error: ‘File not found’ (1)
Not retrying…
Retrieving file: pxelinux.cfg/C0A896
ethernet@2490000 Waiting for PHY auto negotiation to complete… done
Using ethernet@2490000 device
TFTP from server 192.168.150.3; our IP address is 192.168.150.116
Filename ‘pxelinux.cfg/C0A896’.
Load address: 0x82800000
Loading: *
TFTP error: ‘File not found’ (1)
Not retrying…
Retrieving file: pxelinux.cfg/C0A89
ethernet@2490000 Waiting for PHY auto negotiation to complete… done
Using ethernet@2490000 device
TFTP from server 192.168.150.3; our IP address is 192.168.150.116
Filename ‘pxelinux.cfg/C0A89’.
Load address: 0x82800000
Loading: *
TFTP error: ‘File not found’ (1)
Not retrying…
Retrieving file: pxelinux.cfg/C0A8
ethernet@2490000 Waiting for PHY auto negotiation to complete… done
Using ethernet@2490000 device
TFTP from server 192.168.150.3; our IP address is 192.168.150.116
Filename ‘pxelinux.cfg/C0A8’.
Load address: 0x82800000
Loading: *
TFTP error: ‘File not found’ (1)
Not retrying…
Retrieving file: pxelinux.cfg/C0A
ethernet@2490000 Waiting for PHY auto negotiation to complete… done
Using ethernet@2490000 device
TFTP from server 192.168.150.3; our IP address is 192.168.150.116
Filename ‘pxelinux.cfg/C0A’.
Load address: 0x82800000
Loading: *
TFTP error: ‘File not found’ (1)
Not retrying…
Retrieving file: pxelinux.cfg/C0
ethernet@2490000 Waiting for PHY auto negotiation to complete… done
Using ethernet@2490000 device
TFTP from server 192.168.150.3; our IP address is 192.168.150.116
Filename ‘pxelinux.cfg/C0’.
Load address: 0x82800000
Loading: *
TFTP error: ‘File not found’ (1)
Not retrying…
Retrieving file: pxelinux.cfg/C
ethernet@2490000 Waiting for PHY auto negotiation to complete… done
Using ethernet@2490000 device
TFTP from server 192.168.150.3; our IP address is 192.168.150.116
Filename ‘pxelinux.cfg/C’.
Load address: 0x82800000
Loading: *
TFTP error: ‘File not found’ (1)
Not retrying…
Retrieving file: pxelinux.cfg/default-arm-tegra186
ethernet@2490000 Waiting for PHY auto negotiation to complete… done
Using ethernet@2490000 device
TFTP from server 192.168.150.3; our IP address is 192.168.150.116
Filename ‘pxelinux.cfg/default-arm-tegra186’.
Load address: 0x82800000
Loading: *
TFTP error: ‘(b’UNHANDLED’, 'Unknown Error [maas-server:pid=1805:cmd=GetBootCon)
Starting again

Retrieving file: pxelinux.cfg/default-arm
ethernet@2490000 Waiting for PHY auto negotiation to complete… done
Using ethernet@2490000 device
TFTP from server 192.168.150.3; our IP address is 192.168.150.116
Filename ‘pxelinux.cfg/default-arm’.
Load address: 0x82800000
Loading: #
8.8 KiB/s
done
Bytes transferred = 558 (22e hex)
Config file found
1: execute
Retrieving file: ubuntu/arm64/hwe-18.04-edge/bionic/daily/boot-initrd
ethernet@2490000 Waiting for PHY auto negotiation to complete… done
Using ethernet@2490000 device
TFTP from server 192.168.150.3; our IP address is 192.168.150.116
Filename ‘ubuntu/arm64/hwe-18.04-edge/bionic/daily/boot-initrd’.
Load address: 0x82a00000
Loading: #################################################################

done
Bytes transferred = 63194446 (3c4454e hex)
Retrieving file: ubuntu/arm64/hwe-18.04-edge/bionic/daily/boot-kernel
ethernet@2490000 Waiting for PHY auto negotiation to complete… done
Using ethernet@2490000 device
TFTP from server 192.168.150.3; our IP address is 192.168.150.116
Filename ‘ubuntu/arm64/hwe-18.04-edge/bionic/daily/boot-kernel’.
Load address: 0x80280000
Loading: #################################################################
done
Bytes transferred = 9147126 (8b92f6 hex)
append: nomodeset ro root=squash:http://192.168.150.3:5248/images/ubuntu/arm64/4
Bad Linux ARM64 Image magic!
starting USB…
No controllers found
USB is stopped. Please issue ‘usb start’ first.
MMC: no card present
switch to partitions #0, OK
mmc0(part 0) is current device
Scanning mmc 0:1…
Found /boot/extlinux/extlinux.conf
Retrieving file: /boot/extlinux/extlinux.conf
213 bytes read in 66 ms (2.9 KiB/s)
p2771-0000 eMMC boot options
1: primary kernel
Enter choice: 1: primary kernel
Retrieving file: /boot/Image
34048008 bytes read in 854 ms (38 MiB/s)
append: root=/dev/mmcblk0p1 rw rootwait console=ttyS0,115200n8 console=tty0 fbc4

Flattened Device Tree blob at 80000000

Booting using the fdt blob at 0x80000000
reserving fdt memory region: addr=80000000 size=10000
Using Device Tree in place at 0000000080000000, end 0000000080058fd4

Starting kernel …

ERROR: ARI request timed out: req 89 on CPU 4
ASSERT: plat/nvidia/tegra/soc/t186/drivers/mce/ari.c <127> : retries != 0U

My understanding is that probably PXE booting is not supported (but I could be wrong on that…if someone knows for certain, then please comment).

Is it correct that you got serial console working (I assume this is how you got the log)?

A topic perhaps related to this is that more recent releases started signing content, and some content moved out of “/boot” into partitions. If for some reason you have some “/boot” content (such as device tree), then I would expect anything needing that content to fail. So as a test (and I hope someone can say for sure whether PXE boot is supported or not) one of the first things I would do is actually flash the image you use in PXE and see if boot works without PXE using that same image. This might reveal more about what is or is not missing for that image relative to all of the other partitions (and right now you don’t know if that image is compatible for a case where the image is local…if you know the image works when flashed to eMMC, then you also know that any PXE boot failure is not due to the image itself).

1 Like