Toshiba TC358840 Linux driver for Jetson TX1 and TX2

From RidgeRun Developer Wiki




Problems running the pipelines shown on this page? Please see our GStreamer Debugging guide for help.


Driver List Information
Refer to the RidgeRun Linux Camera Drivers to meet all the list of Drivers available


TC358840 features

Reference: Toshiba TC358840 bridge chip

TC358840XBG, Ultra HD to CSI-2, bridge converts high resolution (higher than 4 Gbps) HDMI® stream to MIPI® CSI-2 Tx video. It is a follow-up device of TC358840XBG.

  • Tested resolutions are 1280x720 and 1920x1080, both at 30 and 60 fps. The tested format is UYVY.
  • TC358840 supports Dual links CSI-2 (CSI0 and CSI1), each link supports 4 data lanes @ 1 Gbps/data for Video resolution up to 4K×2K / 30fps (under development)

Build driver

This driver consists of a patch to the default kernel provided by Nvidia, so you must apply the patch to the kernel source code and compile it, to use the built kernel image with the supported driver. Please refer Compiling_Tegra_X1/X2_source_code for step-by-step instruction on how to compile Tegra X1/X2 source code.

Also, below you will find specific instructions on how to get the kernel source code, apply the driver patch, and compile it, for the different currently supported versions.

TX1 L4T-24.2 Kernel-3.10.96 Jetpack-3.0 version

Let's call $DEVDIR the path where you download the kernel.

1. In a browser, navigate to https://developer.nvidia.com/embedded/downloads, Locate and download the L4T Sources (L4T Sources 24.2.1 2016/11/21). Also, you can use wget command:

wget http://developer2.download.nvidia.com/embedded/L4T/r24_Release_v2.1/BSP/sources_r24.2.1.tbz2

2. Copy L4T kernel sources into DEVDIR.

cp sources_r24.2.1.tbz2 $DEVDIR

3. Expand tarball file.

tar -vxjf sources_r24.2.1.tbz2
# Decompress kernel
cd sources/
sudo tar -xjf kernel_src.tbz2

4. Download tc358840-r24.2.1-j130.tar.gz file and apply the patches.

cp tc358840-r24.2.1-j130.tar.gz $DEVDIR
cd $DEVDIR
tar -xzvf tc358840-r24.2.1-j130.tar.gz
quilt push -a

5. Compile the kernel. Specify the path to the toolchain and architecture: Compiling_Jetson_TX1/TX2_source_code#Toolchain

export CROSS_COMPILE=/opt/linaro/gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
export CROSS32CC=/opt/linaro/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
export ARCH=arm64

6. Define and create destination directories.

export TEGRA_KERNEL_OUT=/home/$USER/sources_tc358840/images
export TEGRA_MODULES_OUT=/home/$USER/sources_tc358840/modules
mkdir -p $TEGRA_KERNEL_OUT
mkdir -p $TEGRA_MODULES_OUT

7. Configure your kernel

make -C sources/kernel/ O=$TEGRA_KERNEL_OUT tegra21_defconfig

8. Enable driver

make -C sources/kernel/ O=$TEGRA_KERNEL_OUT menuconfig

Select the driver. The menu option is located:

-> Device Drivers
  -> Multimedia support (MEDIA_SUPPORT [=y])
    -> Encoders, decoders, sensors and other helper chips
       <*> Toshiba TC358840 decoder

Save your new configuration.

9. Compile kernel, device tree and modules. To speed up compilation on multiprocessor systems, use -j n, this option tells make to execute many recipes simultaneously.

make -C sources/kernel/ O=$TEGRA_KERNEL_OUT zImage
make -C sources/kernel/ O=$TEGRA_KERNEL_OUT dtbs
make -C sources/kernel/ O=$TEGRA_KERNEL_OUT modules
make -C sources/kernel/ O=$TEGRA_KERNEL_OUT modules_install INSTALL_MOD_PATH=$TEGRA_MODULES_OUT

TX2 L4T-28.1 Kernel-4.4.38 Jetpack-3.1 version

1. Let's call $DEVDIR the path to "Linux for Tegra" where you have installed Jetpack 3.1.

export DEVDIR=$HOME/JetPack-L4T-3.1/64_TX2/Linux_for_Tegra_tx2

2. Download the kernel source code

cd $DEVDIR/
./source_sync.sh

This will download the bootloader and kernel. When syncing, you'll be asked for a tag, let's use tegra-l4t-r28.1 for both Kernel and uboot.

3. Download tc358840-tx2-l4t28.1-j130.tar.gz file and apply the patches.

cp tc358840-tx2-l4t28.1-j130.tar.gz $DEVDIR/sources
cd $DEVDIR/sources
tar -xzvf tc358840-tx2-l4t28.1-j130.tar.gz
quilt push -a

4. Compile the kernel. Specify the path to the toolchain and architecture: Compiling_Tegra_X1/X2_source_code#Toolchain

export CROSS_COMPILE=/opt/linaro/gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
export CROSS32CC=/opt/linaro/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
export ARCH=arm64

5. Define and create destination directories.

export TEGRA_KERNEL_OUT=/home/$USER/sources_tc358840/images
export TEGRA_MODULES_OUT=/home/$USER/sources_tc358840/modules
export TEGRA_FS_BOOT_DIR=/home/$USER/sources_tc358840/recompiled_image/boot
export TEGRA_FS_LIB_DIR=/home/$USER/sources_tc358840/recompiled_image/lib
mkdir -p $TEGRA_KERNEL_OUT
mkdir -p $TEGRA_MODULES_OUT
mkdir -p $TEGRA_FS_BOOT_DIR
mkdir -p $TEGRA_FS_LIB_DIR

6. Configure your kernel

cd $DEVDIR/
make -C sources/kernel/kernel-4.4/ O=$TEGRA_KERNEL_OUT tegra18_defconfig

7. Enable driver

make -C sources/kernel/kernel-4.4/ O=$TEGRA_KERNEL_OUT menuconfig

Select the driver. The menu option is located:

-> Device Drivers
  -> Multimedia support (MEDIA_SUPPORT [=y])
    -> Encoders, decoders, sensors and other helper chips
       <*> Toshiba TC358840 decoder

Save your new configuration.

8. Compile kernel, device tree, and modules. To speed up compilation on multiprocessor systems, use -j n, this option tells make to execute many recipes simultaneously.

make -C sources/kernel/kernel-4.4/ O=$TEGRA_KERNEL_OUT zImage
make -C sources/kernel/kernel-4.4/ O=$TEGRA_KERNEL_OUT dtbs
make -C sources/kernel/kernel-4.4/ O=$TEGRA_KERNEL_OUT modules
make -C sources/kernel/kernel-4.4/ O=$TEGRA_KERNEL_OUT modules_install INSTALL_MOD_PATH=$TEGRA_MODULES_OUT

9. Save your compiled Kernel Image, modules, and device tree ready to flash to /boot and /lib directories of Tegra File System image:

cp $TEGRA_KERNEL_OUT/arch/arm64/boot/Image $TEGRA_KERNEL_OUT/arch/arm64/boot/zImage $TEGRA_FS_BOOT_DIR
cp -r $TEGRA_KERNEL_OUT/arch/arm64/boot/dts/* $TEGRA_FS_BOOT_DIR
cp -a $TEGRA_MODULES_OUT/lib/* $TEGRA_FS_LIB_DIR

10. Copy the recompiled kernel image, device tree, and modules to Tegra File System image:

sudo cp -a $TEGRA_FS_BOOT_DIR/* <TEGRA-DEVICE-ROOT-FS>/boot/ 
sudo cp -a $TEGRA_FS_LIB_DIR/* <TEGRA-DEVICE-ROOT-FS>/lib/

The <TEGRA-DEVICE-ROOT-FS> could be an SD card with the TX File System image or the EMMC of your TX containing the File System image.


11. Updating target DTB In previous versions of jetpack, updating the DTB was as easy as replacing the on 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.

  • Replace the dtb in $DEVDIR/kernel/dtb/ with yours (you might want to make a backup of the original DTB, just in case):
cp $TEGRA_KERNEL_OUT/arch/arm64/boot/dts/tegra186-quill-p3310-1000-c03-00-base.dtb $DEVDIR/kernel/dtb/
cd $DEVDIR/
#Put the board into recovery mode and flash the DTB
sudo ./flash.sh -r -k kernel-dtb jetson-tx2 mmcblk1p1 #if using SDcard
sudo ./flash.sh -r -k kernel-dtb jetson-tx2 mmcblk0p1 #if using EMMC 

TX2 L4T-28.2 Kernel-4.4.38+ Jetpack-3.2 version

1. Let's call $DEVDIR the path to "Linux for Tegra" where you have installed Jetpack 3.2.

export DEVDIR=$HOME/JetPack-L4T-3.2/64_TX2/Linux_for_Tegra_tx2

Download the kernel source code

2.1 RECOMMENDED

Download kernel sources from the next link:

https://developer.nvidia.com/embedded/dlc/sources-r2821#Getting_kernel

Untar the sources and copy kernel_src.tbz2 to $HOME/JetPack-L4T-3.2.1/64_TX2/Linux_for_Tegra/sources

tar -xf public_sources.tbz2
cd public_release/
cp kernel_src.tbz2 $HOME/JetPack-L4T-3.2.1/64_TX2/Linux_for_Tegra/sources
cd $HOME/JetPack-L4T-3.2.1/64_TX2/Linux_for_Tegra/sources
tar -xf kernel_src.tbz2

2.2 Option 2

cd $DEVDIR/
./source_sync.sh

This will download the bootloader and kernel. When syncing, you'll be asked for a tag, let's use tegra-l4t-r28.1 for both Kernel and uboot.

3. Download tc358840-tx2-l4t28.2-j130.tar.gz file and apply the patches.

cp tc358840-tx2-l4t28.2-j130.tar.gz $DEVDIR/sources
cd $DEVDIR/sources
tar -xzvf tc358840-tx2-l4t28.2-j130.tar.gz
quilt push -a

4. Compile the kernel. Specify the path to the toolchain and architecture: Compiling_Tegra_X1/X2_source_code#Toolchain

export CROSS_COMPILE=/opt/linaro/gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
export CROSS32CC=/opt/linaro/gcc-linaro-5.3-2016.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc
export ARCH=arm64

5. Define and create destination directories.

export TEGRA_KERNEL_OUT=/home/$USER/sources_tc358840/images
export TEGRA_MODULES_OUT=/home/$USER/sources_tc358840/modules
export TEGRA_FS_BOOT_DIR=/home/$USER/sources_tc358840/recompiled_image/boot
export TEGRA_FS_LIB_DIR=/home/$USER/sources_tc358840/recompiled_image/lib
mkdir -p $TEGRA_KERNEL_OUT
mkdir -p $TEGRA_MODULES_OUT
mkdir -p $TEGRA_FS_BOOT_DIR
mkdir -p $TEGRA_FS_LIB_DIR

6. Configure your kernel

cd $DEVDIR/
make -C sources/kernel/kernel-4.4/ O=$TEGRA_KERNEL_OUT tegra18_defconfig

7. Enable driver

make -C sources/kernel/kernel-4.4/ O=$TEGRA_KERNEL_OUT menuconfig

Select the driver. The menu option is located:

-> Device Drivers
  -> Multimedia support (MEDIA_SUPPORT [=y])
    -> Encoders, decoders, sensors and other helper chips
       <*> Toshiba TC358840 decoder

Save your new configuration.

8. Compile kernel, device tree and modules. To speed up compilation on multiprocessor systems, use -j n, this option tells make to execute many recipes simultaneously.

make -C sources/kernel/kernel-4.4/ O=$TEGRA_KERNEL_OUT zImage
make -C sources/kernel/kernel-4.4/ O=$TEGRA_KERNEL_OUT dtbs
make -C sources/kernel/kernel-4.4/ O=$TEGRA_KERNEL_OUT modules
make -C sources/kernel/kernel-4.4/ O=$TEGRA_KERNEL_OUT modules_install INSTALL_MOD_PATH=$TEGRA_MODULES_OUT

9. Save your compiled Kernel Image, modules, and device tree ready to flash to /boot and /lib directories of Tegra File System image:

cp $TEGRA_KERNEL_OUT/arch/arm64/boot/Image $TEGRA_KERNEL_OUT/arch/arm64/boot/zImage $TEGRA_FS_BOOT_DIR
cp -r $TEGRA_KERNEL_OUT/arch/arm64/boot/dts/* $TEGRA_FS_BOOT_DIR
cp -a $TEGRA_MODULES_OUT/lib/* $TEGRA_FS_LIB_DIR

10. Copy the recompiled kernel image, device tree, and modules to Tegra File System image:

sudo cp -a $TEGRA_FS_BOOT_DIR/* <TEGRA-DEVICE-ROOT-FS>/boot/ 
sudo cp -a $TEGRA_FS_LIB_DIR/* <TEGRA-DEVICE-ROOT-FS>/lib/

The <TEGRA-DEVICE-ROOT-FS> could be an SD card with the TX File System image or the EMMC of your TX containing the File System image.


11. Updating target DTB In previous versions of jetpack, updating the DTB was as easy as replacing the on 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.

  • Replace the dtb in $DEVDIR/kernel/dtb/ with yours (you might want to make a backup of the original DTB, just in case):
cp $TEGRA_KERNEL_OUT/arch/arm64/boot/dts/tegra186-quill-p3310-1000-c03-00-base.dtb $DEVDIR/kernel/dtb/
cd $DEVDIR/
#Put the board into recovery mode and flash the DTB
sudo ./flash.sh -r -k kernel-dtb jetson-tx2 mmcblk1p1 #if using SDcard
sudo ./flash.sh -r -k kernel-dtb jetson-tx2 mmcblk0p1 #if using EMMC 

Examples

Yavta

Yavta (Yet Another V4L2 Test Application) can be used for testing the driver, according to the input video resolution:

./yavta /dev/video1 -c600 -n4 -s1920x1080 --enum-formats -fUYVY

v4l2-ctl

v4l2-ctl is an application to control video4linux drivers.

v4l2-ctl -d /dev/video1 --set-fmt-video=width=1920,height=1080, --set-ctrl bypass_mode=0 --stream-mmap --stream-count=600

GStreamer

Simple capture pipeline:

gst-launch-1.0 v4l2src device=/dev/video1 ! 'video/x-raw,format=UYVY,width=1920,height=1080' ! perf print-arm-load=true ! fakesink async=false sync=false enable-last-sample=false

Capture to Display pipeline (Live preview):

The following pipeline can be used to visualize the input video in the Jetson TX1/TX2:

DISPLAY=:0 gst-launch-1.0 v4l2src device=/dev/video1 do-timestamp=true ! \
perf print-arm-load=true ! 'video/x-raw,format=UYVY,width=1920,height=1080,framerate=60/1' ! \
nvvidconv ! 'video/x-raw(memory:NVMM),format=I420,width=1920,height=1080,framerate=60/1' ! \
nvoverlaysink async=false sync=false enable-last-sample=false -v

Performance Measurements

The following performance measurements were executed on a Jetson TX2 platform with L4T-28.1 Kernel-4.4.38 Jetpack-3.1 version on an Auvidea J130 board. The tests were performed after executing the "jetson_clocks.sh" script provided by default in standard Jetpack images. This script configures the TX in high-performance mode. The CPU load percentage measurement reported by perf is an average of the 4 ARM cores available in the TX2.

Simple capture pipeline at 1080p@60fps=

gst-launch-1.0 v4l2src device=/dev/video1 ! 'video/x-raw,format=UYVY,width=1920,height=1080,framerate=60/1' ! perf print-arm-load=true ! fakesink async=false sync=false enable-last-sample=false
INFO:
Timestamp: 0:12:58.940864119; Bps: 4081889; fps: 60.3; CPU: 0; 
INFO:
Timestamp: 0:12:59.957496320; Bps: 4081889; fps: 60.3; CPU: 0; 
INFO:
Timestamp: 0:13:00.974133184; Bps: 4081889; fps: 60.3; CPU: 0; 
INFO:
Timestamp: 0:13:01.990764211; Bps: 4081889; fps: 60.3; CPU: 0; 
INFO:
Timestamp: 0:13:03.007399893; Bps: 4081889; fps: 60.3; CPU: 0; 
INFO:
Timestamp: 0:13:04.024039268; Bps: 4081889; fps: 60.3; CPU: 1; 
INFO:
Timestamp: 0:13:05.040669662; Bps: 4081889; fps: 60.3; CPU: 2; 
INFO:
Timestamp: 0:13:06.057302655; Bps: 4081889; fps: 60.3; CPU: 1; 
INFO:
Timestamp: 0:13:07.073937797; Bps: 4081889; fps: 60.3; CPU: 0; 
INFO:
Timestamp: 0:13:08.090571214; Bps: 4081889; fps: 60.3; CPU: 0; 
INFO:
Timestamp: 0:13:09.107213209; Bps: 4081889; fps: 60.3; CPU: 0; 
INFO:
Timestamp: 0:13:10.123846273; Bps: 4081889; fps: 60.3; CPU: 0; 
INFO:
Timestamp: 0:13:11.140480709; Bps: 4081889; fps: 60.3; CPU: 0; 
INFO:
Timestamp: 0:13:12.157117219; Bps: 4081889; fps: 60.3; CPU: 0; 
INFO:
Timestamp: 0:13:13.173759285; Bps: 4081889; fps: 60.3; CPU: 0; 
INFO:
Timestamp: 0:13:14.190394301; Bps: 4081889; fps: 60.3; CPU: 0; 
INFO:
Timestamp: 0:13:15.207033717; Bps: 4081889; fps: 60.3; CPU: 0; 
INFO:
Timestamp: 0:13:16.223669499; Bps: 4081889; fps: 60.3; CPU: 0; 

Capture-Live preview at 1080p@60fps


DISPLAY=:0 gst-launch-1.0 v4l2src device=/dev/video1 do-timestamp=true ! \
perf print-arm-load=true ! 'video/x-raw,format=UYVY,width=1920,height=1080,framerate=60/1' ! \
nvvidconv ! 'video/x-raw(memory:NVMM),format=I420,width=1920,height=1080,framerate=60/1' ! \
nvoverlaysink async=false sync=false enable-last-sample=false -v
INFO:
Timestamp: 0:08:02.989948507; Bps: 4081889; fps: 60.3; CPU: 13; 
INFO:
Timestamp: 0:08:03.989966271; Bps: 4147200; fps: 60.0; CPU: 12; 
INFO:
Timestamp: 0:08:04.989995933; Bps: 4147200; fps: 60.0; CPU: 13; 
INFO:
Timestamp: 0:08:05.990025299; Bps: 4147200; fps: 60.0; CPU: 13; 
INFO:
Timestamp: 0:08:06.990053154; Bps: 4147200; fps: 60.0; CPU: 13; 
INFO:
Timestamp: 0:08:07.990083370; Bps: 4147200; fps: 60.0; CPU: 11; 
INFO:
Timestamp: 0:08:08.990110923; Bps: 4147200; fps: 60.0; CPU: 10; 
INFO:
Timestamp: 0:08:09.990139620; Bps: 4147200; fps: 60.0; CPU: 10; 
INFO:
Timestamp: 0:08:10.990166517; Bps: 4147200; fps: 60.0; CPU: 10; 
INFO:
Timestamp: 0:08:11.990196477; Bps: 4147200; fps: 60.0; CPU: 10; 
INFO:
Timestamp: 0:08:12.990230011; Bps: 4147200; fps: 60.0; CPU: 11; 
INFO:
Timestamp: 0:08:13.990254320; Bps: 4147200; fps: 60.0; CPU: 11; 
INFO:
Timestamp: 0:08:14.990283354; Bps: 4147200; fps: 60.0; CPU: 11; 
INFO:
Timestamp: 0:08:15.990310108; Bps: 4147200; fps: 60.0; CPU: 11; 
INFO:
Timestamp: 0:08:16.990335409; Bps: 4147200; fps: 60.0; CPU: 11; 
INFO:
Timestamp: 0:08:17.990371036; Bps: 4147200; fps: 60.0; CPU: 11; 
INFO:
Timestamp: 0:08:18.990394650; Bps: 4147200; fps: 60.0; CPU: 12; 
INFO:
Timestamp: 0:08:19.990422989; Bps: 4147200; fps: 60.0; CPU: 15; 

Capture-Live preview at 1080p@30fps

DISPLAY=:0 gst-launch-1.0 v4l2src device=/dev/video1 do-timestamp=true ! \
perf print-arm-load=true ! 'video/x-raw,format=UYVY,width=1920,height=1080,framerate=30/1' ! \
nvvidconv ! 'video/x-raw(memory:NVMM),format=I420,width=1920,height=1080,framerate=30/1' ! \
nvoverlaysink async=false sync=false enable-last-sample=false -v
INFO:
INFO:
Timestamp: 0:09:31.462594179; Bps: 4014714; fps: 30.0; CPU: 7; 
INFO:
Timestamp: 0:09:32.462622018; Bps: 4147200; fps: 30.0; CPU: 6; 
INFO:
Timestamp: 0:09:33.462655465; Bps: 4147200; fps: 30.0; CPU: 7; 
INFO:
Timestamp: 0:09:34.462684023; Bps: 4147200; fps: 30.0; CPU: 8; 
INFO:
Timestamp: 0:09:35.462715689; Bps: 4147200; fps: 30.0; CPU: 8; 
INFO:
Timestamp: 0:09:36.462743682; Bps: 4147200; fps: 30.0; CPU: 7; 
INFO:
Timestamp: 0:09:37.462774656; Bps: 4147200; fps: 30.0; CPU: 6; 
INFO:
Timestamp: 0:09:38.462801188; Bps: 4147200; fps: 30.0; CPU: 6; 
INFO:
Timestamp: 0:09:39.462832432; Bps: 4147200; fps: 30.0; CPU: 7; 
INFO:
Timestamp: 0:09:40.462859680; Bps: 4147200; fps: 30.0; CPU: 6; 
INFO:
Timestamp: 0:09:41.462890935; Bps: 4147200; fps: 30.0; CPU: 5; 
INFO:
Timestamp: 0:09:42.462919762; Bps: 4147200; fps: 30.0; CPU: 5; 
INFO:
Timestamp: 0:09:43.462951317; Bps: 4147200; fps: 30.0; CPU: 5; 

Capture-Live preview at 720p@60fps

​
DISPLAY=:0 gst-launch-1.0 v4l2src device=/dev/video1 do-timestamp=true ! \
perf print-arm-load=true ! 'video/x-raw,format=UYVY,width=1280,height=720,framerate=60/1' ! \
nvvidconv ! 'video/x-raw(memory:NVMM),format=I420,width=1280,height=720,framerate=60/1' ! \
nvoverlaysink async=false sync=false enable-last-sample=false -v
​
INFO:
Timestamp: 0:01:49.661574440; Bps: 0; fps: 0.0; CPU: 13; 
INFO:
Timestamp: 0:01:50.678068687; Bps: 1814173; fps: 60.3; CPU: 4; 
INFO:
Timestamp: 0:01:51.694653853; Bps: 1814173; fps: 60.3; CPU: 5; 
INFO:
Timestamp: 0:01:52.711245768; Bps: 1814173; fps: 60.3; CPU: 6; 
INFO:
Timestamp: 0:01:53.727842543; Bps: 1814173; fps: 60.3; CPU: 6; 
INFO:
Timestamp: 0:01:54.744441368; Bps: 1814173; fps: 60.3; CPU: 5; 
INFO:
Timestamp: 0:01:55.761048260; Bps: 1814173; fps: 60.3; CPU: 6; 
INFO:
Timestamp: 0:01:56.777655010; Bps: 1814173; fps: 60.3; CPU: 5; 
INFO:
Timestamp: 0:01:57.794274563; Bps: 1814173; fps: 60.3; CPU: 5; 
INFO:
Timestamp: 0:01:58.810885062; Bps: 1814173; fps: 60.3; CPU: 5; 
INFO:
Timestamp: 0:01:59.827506633; Bps: 1814173; fps: 60.3; CPU: 5; 
INFO:
Timestamp: 0:02:00.844129340; Bps: 1814173; fps: 60.3; CPU: 5; 
INFO:
Timestamp: 0:02:01.860753501; Bps: 1814173; fps: 60.3; CPU: 5; 
INFO:
Timestamp: 0:02:02.877381687; Bps: 1814173; fps: 60.3; CPU: 4; 

See also

Toshiba TC358743 Linux driver for iMX6



For direct inquiries, please refer to the contact information available on our Contact page. Alternatively, you may complete and submit the form provided at the same link. We will respond to your request at our earliest opportunity.


Links to RidgeRun Resources and RidgeRun Artificial Intelligence Solutions can be found in the footer below.