Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Jan 2011 09:48:55 +0100
From:      "Nils Holland" <nh@tisys.org>
To:        <x11@freebsd.org>
Subject:   Hybrid Graphics
Message-ID:  <DF0B24345C3641848BD324CB1B448A4D@Nemesis>

next in thread | raw e-mail | index | archive | help
Hi folks,

well ... modern technology! In the past, machines traditionally had one GPU 
and that one GPU actually tended to work. These days, "modern" machines have 
two GPUs and neither of them works. That's progress the way I like it! ;-)

What I'm talking about is, of course, "hybrid graphics", marketted for 
example under the name "nVidia Optimus Technology". In my specific case, I 
have an ASUS Laptop here that has Intel-integrated graphics on its processor 
(an Intel Core i5), as well as a dedicated nVidia GPU (GT335 or something, I 
don't remember for sure as I'm currently at work and can't look this up).

In text mode, FreeBSD works fine on this machine, but trying to set up X11, 
I was facing several problems. For one thing, the Intel X11 drivers the 
ports collection installed by default (2.7 if I remember correctly) don't 
seem to support the Intel GPU at all. I saw that there is also a newer 
version of the Intel drivers (2.9) in the ports, which - according to the 
IGNORE line in the Makefile - doesn't seem like I'm supposed to use it, but 
I installed it any way. These drivers at least recognize my Intel GPU. And 
as far as the nVidia GPU is concerned, the nVidia drivers also recognize 
that one just well.

Now trouble begins: "Xorg -configure" creates me a suggested config file 
that properly recognizes and lists both GPUs and seems to want to set them 
up in a multihead manner. That is not really what I want (and doesn't seem 
to work anyway), as I only have one sole laptop screen that I would like to 
get to work. So I changed the suggested xorg.conf into a traditional 
singlehead setup, either specifying the Intel GPU (by means of the "intel" 
driver) of the nVidia GPU (by means of the "nv" driver) as the only card to 
be used.

The result is, basically, disappointing: X starts, the Xor logfile actually 
contains stuff that looks "good", but unfortunately, I only end up with a 
completely blank laptop screen (in the sense that the backlight of the 
screen is on, but otherwise the screen is totally black). None of the keys 
that would normally get you "out of X" (back to a console) or kill X seem to 
work. The machine itself, however, seems to continue to operate - it would 
more than likely have been possible to SSH into it and reboot it, but as I 
lacked that possibility, I just killed power and restarted. Again, this 
"blank screen and no way out" phenomenon happens both when trying to put the 
Intel GPU to use, as well as when trying to put the nVidia GPU to use, via 
an accordingly set up xorg.conf.

Long story, short question: Has anyone been confronted with this before and 
probably can also offer a solution / workaround / fix? If not, is someone 
already looking at the issue of trying to make "hybrid graphics" work 
properly under FreeBSD, and could maybe use some help in that process? If 
not, I would probably pick up the stick and spend the next few days and 
weeks trying to figure out what I can do to actually "see" something. I've 
already organized myself, for testing purposes, a second such "hybrid 
graphics" machine (also labelled "nVidia Optimus", but featuring graphics 
integrated into an Intel Atom CPU as well as a "dedicated" nVidia ION GPU).

A short search on the web (at 2 am last night, so not too exhaustive) 
suggest that the Linux folks also seem to have their share of difficulties 
with such "hybrid graphics" setup, but they seem to at least have this 
working experimentally via some ACPI hacks that select the proper GPU to be 
"connected" to the one physical screen. I would, if there's not yet a 
solution or work already in progress, do some more thorough research and 
then see what I can do about it.

Greetings,
Nils 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?DF0B24345C3641848BD324CB1B448A4D>