Linux BSP User Guide for jetson series

From ESS-WIKI
Jump to: navigation, search

Linux BSP Version

Ubuntu 18.04

Kernel 4.9.201

Released Image

Build Environment on Host

Currently, we adopt Docker as build environment.

You can get the latest version of advrisc/u18.04-imx8lbv1 Docker image for developing nVidia jetson projects.

Docker command:

$ docker pull advrisc/u18.04-imx8lbv1

Run Docker example

Step1 Run docker container (example)

sudo docker run -it --name jetson_linux_risc -v /home/bsp/myLinux:/home/adv/BSP:rw --privileged advrisc/u18.04-imx8lbv1:latest /bin/bash

Step2 In container, change the user. (example)

 adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP

Install Some tools

$sudo apt-get install expect 

Getting Linux Source Code

EPC-R7200

$ cd ~/BSP
$ mkdir jetson_linux_risc
$ cd jetson_linux_risc
$ git config --global user.name "Your Name"
$ git config --global user.email you@example.com
$ ../repo/repo init -u https://gitlab.wise-paas.com/epc-r7200/manifests.git
$ ../repo/repo sync

AIR-020

$ cd ~/BSP
$ mkdir jetson_linux_risc
$ cd jetson_linux_risc
$ git config --global user.name "Your Name"
$ git config --global user.email you@example.com
$ ../repo/repo init -u https://gitlab.wise-paas.com/air-020/manifests.git
$ ../repo/repo sync

Build Image ( EPC-R7200 / AIR-020 )

Xavier NX / TX2 NX

$ cd $TOP
$ sudo ./scripts/build.sh -s 186

Nano

$ cd $TOP
$ sudo ./scripts/build.sh -s 210

Build Kernel

Xavier NX / TX2 NX

$ cd $TOP
$ sudo ./scripts/build_kernel.sh -s 186

Nano

$ cd $TOP
$ sudo ./scripts/build_kernel.sh -s 210

Enter Download Mode

Press follow button + power ON, or

EPC-R7200 AIR020
Epcr7200 recovery button.jpg]
Air020 recovery button.png

Enter following command in the device,

$ sudo reboot --force forced-recovery

Flash Image

Before flashing the image, power off the DUT, press recovery button and power on.


EPC-R7200
AIR-020
Xavier NX
$ cd $TOP/Linux_for_Tegra/186/
$ sudo ./flash.sh -d ./bootloader/tegra194-epcr7200.dtb  jetson-xavier-nx-devkit-emmc mmcblk0p1
$ cd $TOP/Linux_for_Tegra/186/
$ sudo ./flash.sh jetson-xavier-nx-devkit-emmc mmcblk0p1
TX2 NX
$ cd $TOP/Linux_for_Tegra/186/
$ sudo ./flash.sh -d ./bootloader/tegra186-epcr7200.dtb  jetson-xavier-nx-devkit-tx2-nx mmcblk0p1
$ cd $TOP/Linux_for_Tegra/186/
$ sudo ./flash.sh jetson-xavier-nx-devkit-tx2-nx mmcblk0p1
Nano $ cd $TOP/Linux_for_Tegra/210/
$ sudo ./flash.sh -d ./bootloader/tegra210-epcr7200.dtb  jetson-nano-devkit-emmc mmcblk0p1
$ cd $TOP/Linux_for_Tegra/210/
$ sudo ./flash.sh jetson-nano-devkit-emmc mmcblk0p1

[AIR-020] Flash to NVME

Flash DTB


EPC-R7200
AIR-020
Xavier NX
$ cd $TOP/Linux_for_Tegra/186/
$ sudo ./flash.sh -r -k kernel-dtb xavier-nx-epcr7200 mmcblk0p1
$ cd $TOP/Linux_for_Tegra/186/
$ sudo ./flash.sh -r -k kernel-dtb jetson-xavier-nx-devkit-emmc mmcblk0p1
TX2 NX
$ cd $TOP/Linux_for_Tegra/186/
$ sudo ./flash.sh -r -k kernel-dtb tx2-nx-epcr7200 mmcblk0p1
$ cd $TOP/Linux_for_Tegra/186/
$ sudo ./flash.sh -r -k kernel-dtb jetson-xavier-nx-devkit-tx2-nx mmcblk0p1
Nano $ cd $TOP/Linux_for_Tegra/210/
$ sudo ./flash.sh -r -k DTB nano-epcr7200 mmcblk0p1
$ cd $TOP/Linux_for_Tegra/210/
$ sudo ./flash.sh -r -k kernel-dtb jetson-nano-devkit-emmc mmcblk0p1

Flash Mac Address

GBE in eeprom

$ sudo ./eeprom $SOC $mac_address

Where SOC

  186 : TX2-NX
  194 : XavierNX
  210 : Nano 

Intel I210

$ sudo -s
$ BDF=`lspci | grep 210 | awk '{print $1}'`
$ setpci -s $BDF COMMAND=0007

Get NIC

$./EepromAccessTool

Flash I210 address with mac_address = D4E5F6123456 ( If mac address = D4:E5:F6:12:34:56 )

$ ./EepromAccessTool -nic=<NIC> -f=Dev_Start_I210_Copper_NOMNG_8Mb_A2_3.25_0.03.hex -mac=$mac_address

Cold reboot the device.

Reference

Device PID VID

Open a terminal window on your host and enter the command lsusb.
The Jetson module is in Force Recovery mode if you see this message:

Bus <bbb> Device <ddd>: ID 0955: <nnnn> Nvidia Corp.

Where:

•<bbb> is any three-digit number
•<ddd> is any three-digit number
•<nnnn> is a four-digit number that represents the type of Jetson module:

RTENOTITLE