Jetson/FAQ/BSP

How to get fan speed from FAN_TACH?
cat /sys/devices/generic_pwm_tachometer/hwmon/hwmon1/rpm

How to know boot reason when watchdog reset?
Device reset reason can be found in 'dmesg' output like below:  [   0.996297] tegra-pmc: get_secure_pmc_setting: done secure_pmc=0 [   0.996407] tegra-pmc: ### PMC reset source: TEGRA_BCCPLEX_WATCHDOG [   0.996466] tegra-pmc: ### PMC reset level: TEGRA_RESET_LEVEL_L1 [   0.996519] tegra-pmc: ### PMC reset status reg: 0x9 [   0.996627] tegra-pmc: PMC Prod config success

How to get kernel source code by source_sync.sh in L4T driver package?
Run below command to get certain release source code: ./source_sync.sh -t  Where  can be found in Nvidia Jetson Linux Driver Package Release Notes, section 1.0 "About this Release". For example, for L4T 32.2.1, release notes says the release tag name is tegra-l4t-r32.2.1, so below command can get the kernel code: ./source_sync.sh -t tegra-l4t-r32.2.1

How to make text Bold or Italic by NvOSD in Tegra MultiMedia API?
User can refer to sample 02_video_dec_cuda on how to use NvOSD in Tegra MultiMedia API and do below change can make text Italic, Bold is similar.  diff --git a/samples/02_video_dec_cuda/videodec_main.cpp b/samples/02_video_dec_cuda/videodec_main.cpp index 0d63328..45bebff 100644 --- a/samples/02_video_dec_cuda/videodec_main.cpp +++ b/samples/02_video_dec_cuda/videodec_main.cpp @@ -189,7 +189,7 @@ set_text(context_t* ctx) ctx->textParams.display_text = ctx->osd_text ? : strdup("nvosd overlay text"); ctx->textParams.x_offset = 30; ctx->textParams.y_offset = 30; -   ctx->textParams.font_params.font_name = strdup("Arial"); +   ctx->textParams.font_params.font_name = strdup("Italic"); ctx->textParams.font_params.font_size = 18; ctx->textParams.font_params.font_color.red = 1.0; ctx->textParams.font_params.font_color.green = 0.0;

How to get a unique ID for Jetson module?
sudo cat /sys/firmware/devicetree/base/serial-number

EEPROMs on Jetson platforms.
Jetson platform usually has two EEPROMs, one on module and one on carrier board. The EEPROM on carrier is for some Nvidia internal board id storage, not mandatory on customer design. EEPROM on module stores module version, MAC address, etc. Layout of EEPROM on module can be found here.

How to use UART7 on TX2 (UART7 cannot receive data)?
On TX2, UART7 is used for BPMP debug console. User needs to disable BPMP debug console before using UART7 by change.

How to use ttyTHS0 on Xavier?
ttyTHS0 is used for console on Xavier by default by /etc/systemd/system/nvgetty.service. User needs to disable nvgetty service before using ttyTHS0.

Error when processing multi-channel high-resolution video data on Jetson platform
In R32.2.1 and earlier L4T release, when processing multi-channel high-resolution video data, the system may report error like below:  NvRmChannelSubmit: NvError_IoctlFailed with error code 22 NvRmPrivFlush: NvRmChannelSubmit failed (err = 196623, SyncPointIdx = 29, SyncPointValue = 0) NvRmPrivFlush: NvRmChannelSubmit failed (err = 196623, SyncPointIdx = 29, SyncPointValue = 0) NvRmPrivFlush: NvRmChannelSubmit failed (err = 196623, SyncPointIdx = 29, SyncPointValue = 0) The reason is in R32.2.1 and earlier L4T release, dma mask is 32 bit for host1x context device. This causes NVDEC, NVENC, VIC, DLA... can only allocate 4GB dma buffer in total. Apply [[Media:Set_DMA_mask_to_host1x_device.patch|patch]] can fix this issue. The patch is merged in L4T R32.2.2.

Failed to use headless mode oem-config feature on Jetson platform
When using headless mode oem-config, suggest to use putty on host to open tty device to config device. By default, headless mode uses tty device enumerated by USB port which is used to flash device. In this case, the tty device node should be /dev/ttyACMx on host.

Please keep USB cable connected during the whole headless mode oem-config phase, or config will fail and system may ask you to login directly but no valid account is created.

How to create user account on Jetson platform.
Prefer to use the below commands to create new user account on Jetson platform. sudo adduser  Or sudo useradd  -m -s /bin/bash sudo passwd  sudo usermod -a -G video  The new user account need to be added to video group(adduser does it automatically), or the account may have issue when using CUDA related SDK like TensorRT.