Como eu verifico quais drivers / camadas de código estão sendo usados para minha GPU?

1

Estou executando o Elementary OS em um Macbook Pro. Eu li que o Bumblebee aumenta a eficiência de uma única GPU NVIDIA com pares de CPU Intel, através de algo chamado Optimus que eu não entendo completamente. Mas nenhuma dessas coisas é a questão, apenas algumas informações básicas.

A questão é: Como faço para descobrir o que está lidando com a minha GPU agora? Eu gostaria de saber qual é a minha configuração agora mesmo com um bom entendimento antes de mexer com as coisas. Eu não espero que haja uma única função que me diga tudo, nem que seja sempre a mesma coisa, mas atualmente nem sei por onde começar a cheirar.

    
por Seph Reed 06.01.2018 / 07:07

1 resposta

2

Eu já vi essa pergunta muito, mas parece sempre estar errado. Você pode simplesmente olhar a documentação da sua respectiva distribuição e descobrir quais são os nomes dos pacotes. Mas isso se esbarra em problemas. Isso porque os drivers de código aberto geralmente são distribuídos com o Linux e, se você estiver usando o wayland, não poderá confiar em olhar nos pacotes de vídeo x11.

O Nvidia Optimus é um tipo de tecnologia de comutação de GPU em tempo de execução e destina-se a ativar e desativar a GPU dedicada sob demanda para economizar energia.

O DRM é o subsistema do Linux que expõe sua GPU por meio de uma interface comum para outros módulos e aplicativos do espaço do usuário. Um driver deve existir para cada família de GPUs.

Além disso, o KMS é usado para controlar exibições e buffers de vídeo para e entre dispositivos de saída. Este subsistema é comum entre gpus.

Em última análise, esses dois subsistemas são usados pelo driver de gráficos 3D no caso do X Window System. O driver gráfico na verdade tem várias partes, incluindo o driver DRI, o driver X Window (para aceleração 2d e configuração de modo) e OpenGL. O Wayland usa o EGL para renderização 2D e 3D no servidor de exibição e realiza a configuração de modo e os clientes precisam de bibliotecas 2d extras para aceleração. Isso fica complicado quando se fala de versões mais antigas do Linux, já que o driver proprietário fornece uma "caixa preta" de funcionalidade, simplesmente fornecendo sua própria biblioteca OpenGL e X Window como dependências.

Com o Linux mais moderno, você pode simplesmente ver qual driver DRI está carregado, mas as implementações do OpenGL precisam ser arbitradas através do que é chamado de provedor GLX. A maioria dos drivers proprietários fornece os seus próprios esconder a arquitetura por trás dele. Os drivers de código aberto usam o Mesa. Qual deles é carregado poderia ser facilmente quebrado no passado. Atualmente, o libglvnd é usado para fornecer uma maneira de escolher qual deles usar.

Portanto, o seu driver 3D consiste em vários módulos e bibliotecas de kernel diferentes. Vários drivers podem coexistir e estar em execução ao mesmo tempo.

Então, para ver quais drivers dri estão instalados:

ls /lib/modules/[linux version]/kernel/drivers/gpu/drm/

E para ver quais drivers x11 2d estão instalados:

ls /lib/xorg/modules/drivers/

(espera-se que esses diretórios não variem muito entre distribuições)

E para ver quais estão carregados, você pode ver quais módulos exigem drm.

lsmod | grep drm

Se um módulo também é exigido pelo drm_kms_helper, ele se ajusta à maioria dos drivers gráficos modernos. Então, para descobrir o caminho para o módulo:

modinfo -F filename [module name]

Depois, você pode usar seu respectivo gerenciador de pacotes para encontrar o pacote que o fornece. Com o apt-get / dpkg você pode fazer:

dpkg -S <path to module>

Finalmente, o driver da sua GPU pode fornecer suas próprias interfaces proprietárias. Por exemplo, a nvidia fornece vdpau para codificação e decodificação de vídeo.

    
por 06.01.2018 / 09:58

Tags