RE: Standard VGA console with DRI/DRM under X?

From: Deucher, Alexander
Date: Tue Oct 28 2014 - 12:08:12 EST


> -----Original Message-----
> From: Bjorn Helgaas [mailto:bhelgaas@xxxxxxxxxx]
> Sent: Tuesday, October 28, 2014 11:48 AM
> To: Michael Shell
> Cc: linux-kernel@xxxxxxxxxxxxxxx; David Airlie; DRI mailing list; Deucher,
> Alexander; Koenig, Christian
> Subject: Re: Standard VGA console with DRI/DRM under X?
>
> [+cc David, Alex, Christian, dri-devel]
>
> On Tue, Oct 28, 2014 at 12:32 AM, Michael Shell <list1@xxxxxxxxxxxxxxxx>
> wrote:
> >
> >
> > Greetings,
> >
> > Well, I want to be able to have my cake and eat it too. I want to be able to
> > have the standard VGA/"hardware" classic console (not the framebuffer)
> but
> > I still want the /dev/dri/cardX devices so that I can use DRI under Xorg.
> >
> > Is this possible and if not, why not?
> >
> >

It's not currently possible. When the driver loads it needs to reprogram the GPU memory controller which requires disabling (or at least blanking the displays). Additionally there is currently no code in the driver to setup the vga text mode emulation. Moreover, there is no legacy vga text mode on UEFI systems when the GPU has a GOP driver.

> > (I do hope I'm not bring up an issue with an obvious fix, but my searching
> > has not yielded an answer yet. For the record, I'm running modern kernel
> > (3.16.3) with much older x86 hardware [r100 Radeon video card].)
> >
> >
> > If I boot with the kernel nomodeset option I can get the classic
> > VGA/"hardware" console, but then I lose support for DRI/DRM:
> >
> > Oct 27 15:11:09 X kernel: [drm] Initialized drm 1.1.0 20060810
> > Oct 27 15:11:09 X kernel: [drm] VGACON disable radeon kernel
> modesetting.
> > Oct 27 15:11:09 X kernel: [drm:radeon_init] *ERROR* No UMS support in
> radeon module
> >
> > and glxgears et al. turns slow. In more modern Xorg releases, DRI is
> > required for all hardware acceleration, so having /dev/dri/cardX is very
> > important:
> >
> > http://askubuntu.com/questions/463142/why-x-is-relying-on-software-
> instead-of-hardware-with-nomodeset-kernel-paramet
> >

UMS is deprecated in the kernel and support for UMS has been dropped from the X ddx and the mesa drivers. Moreover, UMS had a lot of limitations that make it much less useful for modern desktops (no DRI2 support, no display hotplug support, etc.).

> >
> > One reason I do not wish to use the framebuffer console is because of the
> > small font. 160 columns makes it difficult to tell which [OK] belongs with
> > which service. The selection of console fonts should always include a
> > set that gives us an 80 column screen and the docs should point this out.
> >
> > And I dislike any blanking or video mode changes during boot.
> >
> > Can't the kernel just declare that it is capable of setting the video mode,
> > provide the /dev/dri/cardX devices and leave the console alone, but still
> > allow Xorg to call for a new mode and use /dev/dri/cardX if/when it sees
> fit?
> >
> > In an ideal world, there would be some kernel option such as fbcon=no.
> >
> > In the kernel Documentation fbcon.txt it mentions "fbcon=map:1 tells
> fbcon not
> > to take over the console." But, IIRC, from my tests I wasn't able to use this
> > to get a VGA/"hardware" console and still be able to have /dev/dri/cardX
> devices.
> >

The driver disables the legacy vga text mode hardware when it loads. I think configuring a different mode or font for the fb console would probably get you what you want. See the Forcing Modes section of this page (http://nouveau.freedesktop.org/wiki/KernelModeSetting/) for how to select a custom mode for your display with KMS

Alex

> >
> >
> > Cheers and thank you,
> >
> > Mike Shell
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > the body of a message to majordomo@xxxxxxxxxxxxxxx
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
N‹§²æ¸›yú²X¬¶ÇvØ–)Þ{.nlj·¥Š{±‘êX§¶›¡Ü}©ž²ÆzÚj:+v‰¨¾«‘êZ+€Êzf£¢·hšˆ§~†­†Ûÿû®w¥¢¸?™¨è&¢)ßf”ùy§m…á«a¶Úÿ 0¶ìå