4

I have a NUC 5i3RYH and I wanted to set up a customized xorg.conf file, because using a mini DisplayPort to HDMI adapter (cheaper than mini HDMI to HDMI adapter) overscans (does not fit the screen).

Xorg Configuration

We want to set the resolution and transform it a bit as we would with xrandr -display :0 --output HDMI2 --mode 1920x1080 --transform 1.05,0,-35,0,1.05,-19,0,0,1. To set this boy up, you need to configure what Xorg calls a "Screen". It has two important dependencies: "Device" (link to physical graphics card) and "Monitor" (link to the output port).

  1. I needed to find the video driver (link to graphics device). lspci -nnk | grep -i vga -A3 | grep 'in use' which yielded Kernel driver in use: i915, so naturally, I figured that I needed to put Driver "i915" into my "Device" section. It turned out that this should be "intel" Why, and how would I come to this conclusion? (assuming I do not have access to Google haha) What, in my understanding, is missing?

/etc/X11/xorg.conf.d/10-monitor.conf

Section "Device"
    Identifier             "Intel HD Graphics 5500" #Unique Ref for Screen Section
    Driver                 "intel" #Driver used for physical device
    Option "DPMS"          "false"
EndSection

Section "Monitor"
    Identifier             "monitor-DisplayPort-HDMI2" #Unique Ref for Screen Section
    # I have no idea how this gets linked to my output port
EndSection

Section "Screen"
    Identifier             "Screen0"  #Join Monitor and Device Section Params
    Device                 "Intel HD Graphics 5500" #Mandatory link to Device Section
    Monitor                "monitor-DisplayPort-HDMI2" #Mandatory link to Monitor Section
    DefaultDepth           16 #Choose the depth (16||24)
    SubSection "Display"
        Depth              16
        Modes              "1920x1080_60.00" #Choose the resolution
        Option "TransformationMatrix" "1.05,0,-35,0,1.05,-19,0,0,1" #Not working
    EndSubSection
EndSection

Notes

  • Running Arch Linux: 4.9.11-1-ARCH #1 SMP PREEMPT Sun Feb 19 13:45:52 UTC 2017 x86_64 GNU/Linux
  • I am not sure where to put transform in an Xorg config
  • 3
    There are two separate drivers and as a result you're mistaking the kernel driver for the Xorg graphics driver – don_crissti Feb 25 '17 at 15:18
  • Oh, by the way... I'm not sure what your actual question is (the title doesn't make much sense to me) but wrt transform - there's no such option. The Xorg equivalent is TransformationMatrix – don_crissti Feb 25 '17 at 15:45
  • @don_crissti To clarify: A correct answer would include a stepwise instruction (e.g. the correct commands to execute or place to look in the system) that would result me finding "intel" rather than "i915". I am looking for a sysadmin tip. I think your first comment should probably be an answer with instruction as to how to yield the Xorg graphics driver. – Jonathan Komar Feb 25 '17 at 15:56
  • Btw After your first comment, I see why the title could be different. I think if I change it, some of the context of the question might be lost (my erroroneous approach). That won't so useful for the next confused person who runs into the same problem. – Jonathan Komar Feb 25 '17 at 16:16
  • I guess the answer is "you have to know which version of X you are using, and know (or google) what the current status of the naming is". Same holds for other graphic card families: Drivers have been renamed, merged etc. multiple times, and the transition to fb drivers didn't help. The takeaway "sysadmin tip" should be: Have a look at Xorg.log to see what the X server is actually doing. – dirkt Feb 25 '17 at 20:20
2

Normally if you install "all" X11 video drivers and start X11 the first time it will try to autodetect which driver it has to use (see this other question for an example). See also this explanation (that is not specific to ArchLinux) : https://wiki.archlinux.org/index.php/Xorg#Driver_installation

  • 2
    That is terrible advice. You run lspci and then install the driver(s) that you need. – jasonwryan Feb 26 '17 at 6:51
  • @jasonwryan Good tip! I think Patrick is just stating a fact. X11 will try to auto match the best-suited driver/module based on what is available on the system. It is pretty inefficient (spacewise) to install everything, but it would nonetheless work. lspci is pretty useful on machines with an x86 architecture. It does not do much good with ARM, for example, because there is no standardized bus like pci :/ – Jonathan Komar Feb 26 '17 at 8:39
  • 1
    @jasonwryan if you had read the question you would have seen that the problem was in fact the find the correct driver. lspci just by itself would not give you as is the name of the X11 video driver to install. I see no problems in benefiting from autoprobing: you install everything, you let X11 find what it needs, and then afterwards you can remove all useless drivers. I also believe that most linux distributions will install all drivers by itself (disk space is not a problem nowadays) and/or do autoprobing to find the correct one. – Patrick Mevzek Feb 26 '17 at 11:04
2

It seems like based on don's input, I need to look in the Xorg log. The problem is that with Xorg, you need to know the driver group in advance or install all drivers as Patrick Mevzek suggested.

Only then can you identify the "intel" driver specifically.

Searching for the words "Module" and "driver" and then reading the surrounding lines seems to do the trick (including the full log). My strategy was to search for "Module class" and look for: "X.Org Video Driver"

cat /var/log/Xorg.0.log | grep 'Module class' -B4 -A4

Relevant Lines

See LoadModule: "intel"

[  1065.037] (II) LoadModule: "intel"
[  1065.037] (II) Loading /usr/lib/xorg/modules/drivers/intel_drv.so
[  1065.037] (II) Module intel: vendor="X.Org Foundation"
[  1065.037]    compiled for 1.19.0, module version = 2.99.917
[  1065.037]    Module class: X.Org Video Driver
  • (1) Never grep, always look at the full log and search: It frequently happens that X tries several drivers before it finally ends up with one it can use. (2) Sometimes X picks the wrong driver for the hardware (there's plenty of questions on this site for that case). (3) You really have to google what hardware you use (via lspci etc.), and what the current driver situation is. Very often it "just works", and you needn't bother, but to fix any problems, you need to do that. Sysadmin tip: Never rely on autodetection of drivers if there's trouble. – dirkt Feb 26 '17 at 9:12
  • @dirkt "Never grep"? Like the main sysadmin tool. I think searching for a common term that Xorg uses when loading drivers will reveal every occurrence—including reloading of drivers. If I search for "LoadModule", I will get a list all module reloads, which is much faster (and arguably more reliable given human error) than reading the whole log. :) – Jonathan Komar Feb 26 '17 at 9:22
  • Grep is fine to see if a keyword appears, but always look at the full log if it does. I've seen plenty of questions here where people just provide some grep output, and essentially throw away all the necessary information that comes after or before, and one repeatedly has to ask "please include full log". So please don't, unless you know very well what format the log is in, and that you are grepping all the important information. – dirkt Feb 26 '17 at 10:21
  • @dirkt "Grep is fine" is quite a different tune than "never grep". Admit it, you use grep all the time :) You make a good point though about using tools. It is all about how you use them. I adjusted my answer to incorporate this point. – Jonathan Komar Feb 26 '17 at 10:32
  • I said "never grep, always look at the full log", not "never grep". Maybe I should have said "never grep only". And of course I use grep all the time, and it's a great tool. And yes, it's about how to use it. That's what I wanted to say. Sorry if the phrasing was misleading. – dirkt Feb 26 '17 at 10:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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