27

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.

3 Answers 3

51

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 CRTCs 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 rendering capabilities and memory.
  • A video card may support outputting one CRTC to multiple displays. They must be the same resolution and may or may not (I don't know) 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.

3

crtc stands for cathode ray tube controller. In ancient times, monitors used to use a CRT (the heavy devices made of glass) rather than the LCD display of today.

2
  • 3
    +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 :/ Commented Sep 16, 2013 at 16:42
  • LCDs are also made of glass, although they are comparatively light devices.
    – Ruslan
    Commented Mar 24, 2020 at 20:22
2

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.

2
  • 1
    Just like there is an equal and opposite loophole for every regulation, there is an ingenious workaround for every hardware limitation. For example: Use 2nd CRTC to output double wide display and mirror it to 2 displays, and then use the displays themselves to each discard half of the screen.... Hmmmmm..... happy driver hacking :-D
    – Dagelf
    Commented Apr 18, 2020 at 9:14
  • 1
    W H A T ?... ;-D How do you achieve such "cooking"? By using xrandr, or by, as you say, "hacking the drivers"?
    – Pierre
    Commented Jul 8, 2020 at 17:48

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .