Hello,
I have a custom carrier board which is developed for Jetson TX-1. My requirement is two VGA or DVI output to display two different video streams on two monitors.
I have a free PCIe interfaces on our custom carrier board to connect PCIe to VGA converter. I am considering VL-MPEe-V5 from Versalogic which is a video expansion module with following platform and driver details:
Chipset: Silicon Motion SM750. 2D Graphic Accelerator Videocore with 128-bit 2D graphic engine which supports a single display, two cloned displays, or two simultaneous independent displays.
Drivers : The driver is present on the staging directory in the kernel source. We are using Linux kernel 4.9.
I successfully compiled (as a module) and load the driver in the TX-1. One frame buffer node is created in the /dev directory i.e /dev/fb1
.
The logs are available during boot time shown below:
[ 3.264895] sm750fb: module is from the staging directory, the quality is unknown, you have been warned.
[ 3.267812] usb0: HOST MAC 5a:42:20:c8:08:0a
[ 3.267842] usb0: MAC 5a:42:20:c8:08:0b
[ 3.267861] tegra-xudc-new 700d0000.xudc: exiting ELPG
[ 3.268447] tegra-xudc-new 700d0000.xudc: exiting ELPG done
[ 3.268463] tegra-xudc-new 700d0000.xudc: ep 0 (type: 0, dir: out) enabled
[ 3.268489] tegra-xudc-new 700d0000.xudc: entering ELPG
[ 3.268750] tegra-xudc-new 700d0000.xudc: entering ELPG done
[ 3.268761] tegra-xudc-new 700d0000.xudc: exiting ELPG
[ 3.269287] tegra-xudc-new 700d0000.xudc: exiting ELPG done
[ 3.269304] tegra-xudc-new 700d0000.xudc: entering ELPG
[ 3.269573] tegra-xudc-new 700d0000.xudc: entering ELPG done
[ 3.276003] l4tbr0: port 1(rndis0) entered blocking state
[ 3.276007] l4tbr0: port 1(rndis0) entered disabled state
[ 3.276154] device rndis0 entered promiscuous mode
[ 3.276177] no options.
[ 3.279175] sm750fb 0000:02:00.0: enabling device (0000 -> 0002)
[ 3.279187] no specific g_option.
[ 3.282550] mmio phyAddr = 18000000
[ 3.282740] mmio virtual addr = ffffff800d800000
[ 3.282747] video memory phyAddr = 14000000, size = 16777216 bytes
[ 3.283250] video memory vaddr = ffffff800e000000
[ 3.306020] IPv6: ADDRCONF(NETDEV_UP): rndis0: link is not ready
[ 3.341865] l4tbr0: port 2(usb0) entered blocking state
[ 3.341869] l4tbr0: port 2(usb0) entered disabled state
[ 3.346663] device usb0 entered promiscuous mode
[ 3.364876] IPv6: ADDRCONF(NETDEV_UP): usb0: link is not ready
[ 3.563820] use simul primary mode
[ 3.563825] crtc->cursor.mmio = ffffff800d8800f0
[ 3.563833] ret = 5,fb_find_mode failed,with driver prepared modes
[ 3.570706] success! use specified mode:800x600-16@60 in kernel prepared default modedb
[ 3.570712] Member of info->var is :
xres=800
yres=600
xres_virtual=800
yres_virtual=600
xoffset=0
yoffset=0
bits_per_pixel=16
...
[ 3.570715] fix->smem_start = 14000000
[ 3.570717] fix->smem_len = 1000000
[ 3.570719] fix->mmio_start = 18000000
[ 3.570721] fix->mmio_len = 200000
I am trying to access the device node using gstreamer pipeline. But the pipeline is not working. Pipeline is shown below:
gst-launch-1.0 -v videotestsrc ! fbdevsink device="/dev/fb1"
I have the following queries:
- How can I access the framebuffer node to display the output in Jetson TX-1.
- Is it necessary to add the device in the device tree to work correctly.
- What would be the other reason of the problem and how can I solve this.
Thanks,
Asif Ikbal