Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm using a Lenovo x220i thinkpad, running crunchbang linux (which uses the openbox window manager). The laptop has a DP and VGA plug on the side.

Hooking up the DP and VGA cables and running xrandr, I notice that the following outputs are available/active:

VGA1
DP1
LVDS1  <- the laptop screen

If I try to enable more that 2 (using any combination), then I get the error "cannot find crtc for output for [VGA1/DP1/LVDS1]"

What is crtc? How do I find out how many are available? Is it possible to add more in software or perhaps through a PCI card?

Thanks.

share|improve this question

crtc stands for cathode ray tube controller. In ancient times, monitors used to use a CRT rather than the LED display of today.

share|improve this answer
1  
+1 for knowing about the 'ancient times'. However, why would the mentioned error message appear if the crt IS actually connected? I'm only getting this message if I'm trying to activate a 3rd output. edit: whoops, I need 15 points to upvote :/ – neildaemond Sep 16 '13 at 16:42

CRTC stands for "Cathode Ray Tube Controller" but wikipedia prefers "Video Display Controller".

They are still often called CRTCs - technical terms can be slow to change sometimes.

There is always a more complicated explanation, but an adequate summary is that each CRTC corresponds to a video buffer on a video card that is destined to be output. I chose this specific wording to highlight some nuances:

  • A software screen, such as the one used for a headless VNC server, will use RAM for video memory and not have anything to do with a video card, or get any hardware acceleration from one. No CRTCc needed because it's not on the video card.
  • If you're using a video card to render a scene and then getting the final result's buffer back into memory/disk, there is no CRTC involved because it's not bound for output, despite using the video card's memory.
  • A video card may support outputting one CRTC to multiple displays. They must be the same resolution and may or may not have to be the same frequency. Simply using display settings to "Show the same screen" on two or more displays is likely to not take advantage of this, and be mirroring the final buffer on two CRTCs. Making sure that a single CRTC is being cloned onto two displays is, so far, beyond my technical ability.

So to answer your other questions:

How do I find out how many [CRTCs] are available?

$ xrandr --listproviders Providers: number : 1 Provider 0: id: 0x4d cap: 0xb, Source Output, Sink Output, Sink Offload crtcs: 4 outputs: 10 associated providers: 0 name:Intel

Notice that like you I have more outputs than CRTCs: crtcs: 4 outputs: 10, there are good reasons that outputs are numerous, mostly coming down to video ports having a lot of convenience baked in:

  • A DisplayPort connector may have 2 or 3 outputs associated with it if daisy-chaining is supported.
  • A DVI-I connector may be split into its digital and analog components to run one monitor of each type. The old lazy solution was to clone these in hardware, but it's now common for video devices to have a DVI and a VGA output associated with such a port.
  • A laptop dock can easily double the number of outputs, and then some, because they want to offer the convenience of abundant extra connectors on the dock.
  • A video device may have unimplemented connectors because it's been rushed to production or because it's a re-implementation of another device, but has some connectors omitted.

Is it possible to add more [CRTCs] in software or perhaps through a PCI card?

Since CRTCs are provided by a GPU, the only way to have more is to add a video device that will work simultaneously with the one you already have. I know this is possible, and that there are many limitations, but nothing more. You'll have to research multiple GPU setups to see if this is even feasible for you.


P.S. I am learning a lot of this just today and stumbled upon your question during my own research.

share|improve this answer

I'm afaid that it's hardware limitation in your display device. I've simmilar situation - laptop(t430) with docking station. I can use in parallel 3 of monitors - 2*DP and LVDS or 3*DP or LVDS and DP and HDMI.. but enabling any monitor more show me the same error like yours.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.