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.