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
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.