IMX6 solo VPU unit test failed

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX6 solo VPU unit test failed

787 Views
jlsampayo
Contributor I

Hi all, I'm trying to perform video playback on a custom board using IMX6 Solo with Linux 4.14.98,

for that I build Gstreamer using the Yocto recipes:

DISTRO=fsl-imx-fb MACHINE=imx6solosabreauto source fsl-setup-release.sh -b mybuilddir

Then:

bitbake gstreamer1.0

bitbake gstreamer1.0-plugins-base

bitbake gstreamer1.0-plugins-good

bitbake gstreamer1.0-plugins-bad

bitbake gstreamer1.0-libav

bitbake imx-vpuwrap

bitbake imx-gst1.0-plugin

bitbake libimxvpuapi

bitbake gstreamer1.0-plugins-ugly

bitbake gstreamer1.0-libav

bitbake firmware-imx

Afterwards put the resulted plugins, libraries, firmware and binaries into my target.

But when I execute a pipeline that uses vpudec, such as:

# GST_DEBUG=3 ./gst-launch-1.0 filesrc location=/mnt/file.avi typefind=true ! av idemux ! vpudec ! imxv4l2sink

Or

# GST_DEBUG=3 ./gst-launch-1.0 -v playbin uri=file:///mnt/temp.mp4

Then the following error occurs:

open failed: No such file or directory
[ERR] Error: Unable to open vpu shared memory file
[ERR] IOSystemInit() failure.

The same error occurs by executing the VPU unit test

# ./mxc_vpu_test.out -D "-i ./akiyo.mp4 -f 0 -t 1"

---- Running < ./mxc_vpu_test.out > test ----

[INFO] VPU test program built on Mar 14 2021 23:38:06
open failed: No such file or directory
[ERR] Error: Unable to open vpu shared memory file
[ERR] IOSystemInit() failure.
[ERR] VPU Init Failure.

Even though the vpu device is listed under /dev/.

This error is not showing when using IMXVPUDEC and a different videosink, nevertheless I'm not able to see anything on the screen (attached log).

 # GST_DEBUG=4 ./gst-launch-1.0 filesrc location=/mnt/temp.mp4 typefind=true ! qt demux ! queue ! imxvpudec ! imxipuvideosink

 

0 Kudos
3 Replies

778 Views
igorpadykov
NXP Employee
NXP Employee

Hi jlsampayo

 

one can try Linux 4.14.98_2.0.0  Demo Images

use Linux Guide vpu commands from   Documentation

 

Best regards
igor

0 Kudos

757 Views
jlsampayo
Contributor I

Hi,

 

The problem related to VPU:

open failed: No such file or directory
[ERR] Error: Unable to open vpu shared memory file
[ERR] IOSystemInit() failure.

is solved by enabling in Kernel the following option: CONFIG_TMPFS

I noticed in the source code of vpu_util.c, that the failure came when it tried to open the "/dev/shm/vpu" which was not in my target, then looking further I found how to generate and use the /dev/shm.

Now Im able to run the unit test and verify VPU.

 

Kind Regards

Jose Sampayo

0 Kudos

756 Views
jlsampayo
Contributor I

forgot to mention that in the documentation for TMPFS, said that, one must create first the subdirectory where we are going to mount the tmpfs, in this case, create the /dev/shm directory in the target before mount the tmpfs.

 

So, in the target:

mkdir /dev/shm

mount -t tmpfs tmpfs /dev/shm 

 

0 Kudos