Determina qual driver gráfico o Xorg usa

4

em uma nova instalação do Arch Linux, tive dificuldades com os drivers gráficos. No processo eu instalei um monte de drivers diferentes para de alguma forma obter o funcionamento do visor.

Agora eu preciso determinar qual driver X está usando. Como fazer isso?

Os pacotes instalados incluem xf86-video-intel , xf86-video-nouveau , nvidia , xorg-drivers . Para resolver um problema estranho ao iniciar qualquer gerenciador gráfico de desktop, tive que substituir nividia-libgl por mesa-libgl .

Gráficos: Intel HD Graphics 4000 / Nvidia GT 750M

O conteúdo de Xorg.0.log é: link

Agradecemos antecipadamente:)

    
por Alex 07.12.2015 / 20:36

3 respostas

4

Você pode verificar o arquivo de log de inicialização do Xorg, geralmente /var/log/Xorg.0.log e verificar quais módulos ele está carregando. Por padrão, o Xorg pode tentar autodetectar, mas você pode forçar manualmente um driver, colocando uma sub-rotina Device em um arquivo conf Xorg. Aqui está como será o log de inicialização do Xorg para uma placa nvidia e o driver proprietário da nvidia.

[  3702.470] (II) xfree86: Adding drm device (/dev/dri/card0)
[  3702.472] (--) PCI:*(0:3:0:0) 10de:1184:3842:3774 rev 161, Mem @ 0xfa000000/16777216, 0xd8000000/134217728, 0xd6000000/33554432, I/O @ 0x0000cc00/128, BIOS @ 0x????????/524288
[  3702.472] (II) LoadModule: "glx"
[  3702.473] (II) Loading /usr/lib64/opengl/nvidia/extensions/libglx.so
[  3702.476] (II) Module glx: vendor="NVIDIA Corporation"
[  3702.476]    compiled for 4.0.2, module version = 1.0.0
[  3702.476]    Module class: X.Org Server Extension
[  3702.476] (II) NVIDIA GLX Module  355.11  Wed Aug 26 16:02:11 PDT 2015
[  3702.476] (II) LoadModule: "nvidia"
[  3702.476] (II) Loading /usr/lib64/xorg/modules/drivers/nvidia_drv.so
[  3702.476] (II) Module nvidia: vendor="NVIDIA Corporation"
[  3702.476]    compiled for 4.0.2, module version = 1.0.0
[  3702.476]    Module class: X.Org Video Driver
[  3702.476] (II) NVIDIA dlloader X Driver  355.11  Wed Aug 26 15:38:55 PDT 2015
[  3702.476] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[  3702.476] (++) using VT number 7
    
por 07.12.2015 / 20:55
2

Uma solução que encontrei é verificar quais drivers estão realmente carregados enquanto o X está sendo executado. No meu sistema, os drivers são instalados em

  • /usr/lib/xorg/modules/drivers/
  • /usr/lib/x86_64-linux-gnu/nvidia/xorg/

para que eu possa verificar o que está atualmente carregado com

sudo lsof +D /usr/lib/xorg/modules/drivers/ +D /usr/lib/x86_64-linux-gnu/nvidia/xorg/

Agora eu recebo

COMMAND  PID USER  FD   TYPE DEVICE SIZE/OFF   NODE NAME
Xorg    4473 root mem    REG  253,0    90360 536108 /usr/lib/xorg/modules/drivers/modesetting_drv.so

então eu acho que estou usando o driver modesetting .

    
por 29.06.2018 / 09:24
1

Aqui está uma tentativa de automatizar a análise do log:

#!/bin/bash

if [ -z "$1" ]; then
    logfile=/var/log/Xorg.0.log
else
    logfile="$1"
fi

sed -n 's@.* Loading .*/\(.*\)_drv.so@@p' "$logfile" |
    while read driver; do
        if ! grep -q "Unloading $driver" "$logfile"; then
            echo $driver
            break
        fi
    done

Qualquer ideia de como simplificar é bem-vinda. Idealmente, gostaria de ter uma solução direta - por meio de uma consulta ao Xorg, em vez de analisar seus logs.

    
por 14.06.2016 / 19:09