cRIO Display Port Is Disabled When a Monitor Is Disconnected and Reconnected

Updated May 15, 2023

Reported In

Hardware

  • cRIO-9039
  • cRIO-9037
  • cRIO-9038
  • cRIO-9036
  • cRIO-9034

Operating System

  • NI Linux Real-Time

Issue Details

When I disconnect and reconnect a DisplayPort monitor on my cRIO, the Mini DisplayPort interface becomes disabled. How can I re-enable the port without power cycling my device?

Solution

LabVIEW 2017:

Run the command xrandr --display :0 --auto from a script or within LabVIEW. This will re-run the cRIO's auto-detection and the Embedded UI should appear on the monitor. The command doesn't need special privileges and can be run as lvuser. For more information on user privileges, read the Access Control section of the NI Linux Real-Time Security User Guide.
 

LabVIEW 2015 or LabVIEW 2015 SP1:

  1. Download the attached 80-video-hotplug.rules file.
  2. Log in to your cRIO as an administrator. Note: The directory you will need to access is a system folder that requires administrator privileges to modify.
  3. Copy 80-video-hotplug.rules to /etc/udev/rules.d/
  4. Restart your cRIO.
You may now disconnect and reconnect the monitor from the cRIO and the Embedded UI will reappear on your monitor.

Alternatively, you can also create and move 80-video-hotplug.rules via SSH:
  1. Log into your cRIO via SSH as an administrator.
  2. Enter the following command into the console: cd /etc/udev/rules.d/ && echo 'ACTION=="change", SUBSYSTEM=="drm", RUN+="/usr/bin/xrandr --auto --display :0"' >80-video-hotplug.rules
  3. Confirm the file has been created in the correct location.
  4. Restart the cRIO.

Additional Information

This is a known issue of the Embedded UI, which is a feature available on NI Linux Real-Time Intel x64-based targets. Disconnecting the display from the cRIO Mini DisplayPort causes the Embedded UI to disappear and the display adapter cannot detect the display after it has been reconnected to the cRIO.

For debugging purposes, you can monitor what events are received by udev by running the following command as an administrator: udevadm monitor.