Abençoe Nouveau, ou sobre o meu tormento com a Nvidia Optimus. Parte 1. A beleza da documentação do Arch

Antes de começar


Antes de começar a história principal, gostaria de esclarecer alguns pontos. O artigo é voltado principalmente para os proprietários de laptops com a tecnologia Nvidia Optimus que desejam instalar o GNU / Linux (doravante o Linux). O material visa garantir que a Ásia Central acima mencionada se familiarize com possíveis soluções para o problema e facilitar e agilizar sua resolução. Além disso, o artigo não é menos motivador e tem como objetivo entender uma verdade simples das pessoas: no Linux, como na vida, sempre há uma solução alternativa e, se você desistir, não ficará melhor (na maioria dos casos) .
Qui quaerit, reperit
- ditado latino

Prefácio


Por enquanto, eu era um Linuxoid comum. Testei diferentes distribuições, aprendi lentamente coisas novas. Só porque eu estava interessado. Como regra, o "conhecimento" era limitado ao Ubuntu e seus garfos, bem como ao Fedora e algumas distribuições "fáceis de usar". Mas, como outro provérbio latino diz, omnia fluunt, omnia mutantur, isto é, tudo flui, tudo muda, e é claro que isso não poderia continuar para sempre.

Tudo começou bem


Deve-se notar que eu não tinha muito espaço para experimentos: um PC relativamente fraco, que mal puxava o GNOME 3, e uma Internet lenta, o que complicou bastante a situação geral. Mas, em seguida, mais para o menino de 12 anos e não era necessário. No final, estou cansado de experimentar, instalei o Windows 10 e esqueci o Linux por alguns anos.

O tempo passou e, após cerca de dois anos, percebi que era hora de atualizar meu pedaço de ferro PC e começamos a economizar dinheiro. Algo foi ganho com a venda de seus pertences, algo foi dado, mais da metade do valor foi jogado por seus pais, ele até teve que sacrificar para vender seu Xbox (!) divertir suas perguntas frequentes para aumentar suas habilidades em Linux. Desta vez, decidi tentar instalar o Arch. Ouvi dizer que ele tem uma documentação muito boa. E ele começou.

A beleza da documentação do Arch


A instalação foi rápida e relativamente indolor. Mais uma vez, graças à documentação. Após instalar o sistema e a DE representada pelo KDE Plasma, tentei conectar o laptop ao meu monitor externo, porque o monitor possui uma diagonal de 24 'e o laptop apenas 15,6'. Nada aconteceu, não havia sinal no monitor. Como sempre, comecei a pesquisar no Google. E, após 30 minutos de pesquisa, descobri que o problema estava com a tecnologia Nvidia Optimus.

Um pouco sobre a Nvidia Optimus


A Nvidia é uma boa companhia. Ao longo de seus 25 anos de história, eles implementaram muitas soluções relativamente boas. A Nvidia Optimus é uma delas. O assunto é uma tecnologia híbrida para garantir a operação correta de duas placas gráficas (geralmente gráficos poderosos da Nvidia e Intel integrado) em laptops. Se funcionar no Windows configurado corretamente, ajudará a economizar recursos de energia e laptop. Tudo isso é excelente, mas o que me levou a escrever essa obra foi que essa bela tecnologia no Linux, segundo os desenvolvedores, funciona apenas parcialmente e, na minha opinião, são necessários muitos, muitos nervos, tempo e esforço para configurá-la.

A beleza da documentação do Arch (continuação)


Depois que descobri a verdadeira raiz do problema, fiquei feliz por ter determinado “onde o cachorro está enterrado” (apenas a placa Nvidia tinha uma saída HDMI), e meu primeiro passo foi ler a documentação oficial do Arch. Sua essência era usar o Xorg.conf e o .xinitrc para forçar o X a usar apenas a placa Nvidia. Após concluir estas etapas e reiniciar ... uma tela preta apareceu. A documentação dizia que, neste caso, é necessário verificar se há e comercial no .xinitrc e, se não houver, use a "Configuração alternativa", que forçou o X a usar apenas uma placa Intel. Isso não combina comigo, já que a placa Intel já foi usada por padrão e essa opção não combina comigo. Havia também opções para vários DMs. Eles também não se encaixavam, pois nenhum deles podia iniciar o servidor X por vários motivos.
Descrever cada um deles separadamente seria um exercício muito longo e sem sentido.

Qui quaerit, reperit


Esta expressão na tradução do latim significa "quem procura, encontra". Não foi em vão que o coloquei no início, porque, quanto a mim, essa expressão se tornará a moral ideal para este artigo.

Eu estava desesperado. Por dois dias, tentei em vão encontrar uma solução, vasculhei os fóruns estrangeiros (apenas neles, uma vez que, na LOR ortodoxa, a resposta era essa: você não pode iniciar o X através da Nvidia de forma alguma. É impossível, reconciliar). Ainda assim, em uma manhã nublada do terceiro dia de pesquisas, deparei-me com um tópico (link no porão) no fórum de desenvolvimento da Nvidia, no qual foi descrito como a Nvidia Optimus é implementada no Arch nos laptops da Dell. Percebi imediatamente - estou salvo! Seguindo as etapas, reiniciei e ... uma tela preta. Obviamente, fiquei chateado, mas lembrei-me: não me registrei na linha .xinitrc para executar o DE. Tendo escrito exec startkde, reiniciei novamente e funcionou. X iniciado via Nvidia. Levei quatro longos dias para instalar e configurar o Arch, e ainda assim eu fiz!

Debriefing


Agora vamos analisar as instruções do tópico acima. Vamos começar:

Primeiro, você precisa habilitar o suporte KMS (Configuração do modo do kernel, o método de configuração da resolução diretamente no kernel) adicionando aos parâmetros do kernel (arquivo / etc / default / grub) na linha GRUB_CMDLINE_LINUX_DEFAULT = parâmetro

nvidia-drm.modeset=1 

Em seguida, criamos um script para o DM (gerenciador de login). Considere a opção com o LightDM. Criamos o script /etc/lightdm/display_setup.sh com o seguinte conteúdo:

 #!/bin/sh xrandr --setprovideroutputsource modesetting NVIDIA-0 xrandr --auto 

Com este script, especificamos o provedor e definimos a resolução de tela máxima possível.

Vamos tornar o script criado executável:

 chmod +x /etc/lightdm/display_setup.sh 

Deixe o LightDM executar o script acima na inicialização. Primeiro, edite o /etc/lightdm/lightdm.conf:

 nano /etc/lightdm/lightdm.conf 

Digite o parâmetro

 display-setup-script=/etc/lightdm/display_setup.sh 

Você pode ver as instruções para SDDM no tópico que eu já mencionei, links no porão.

Agora precisamos atualizar o microcódigo da CPU (mais sobre o microcódigo a partir dos links no porão):

 sudo pacman -S intel-ucode 

Após atualizar o microcódigo, instale vários pacotes da Nvidia:

 sudo pacman -S lib32-mesa-demos mesa-demos libva-vdpau-driver nvidia nvidia-libgl lib32-nvidia-utils nvidia-settings lib32-opencl-nvidia 

Nota: Alguns dos pacotes podem não estar disponíveis. Nesse caso, instale tudo separadamente. Ignore pacotes que não estarão disponíveis.
Ative o daemon nvidia.persistenced, responsável pela persistência (leia mais sobre ele no link do porão) do driver da Nvidia:

 systemctl enable nvidia-persistenced.service 

Configure automaticamente o GRUB:

 sudo grub-mkconfig -o /boot/grub/grub.cfg 

Crie um disco RAM inicializável:

 mkinitcpio -p linux 

Verifique .xinitrc:

 nano ~/.xinitrc 

Se não inserido, insira

 exec gnome-session 

para GNOME e

 exec startkde 

para o KDE Plasma.

Reinicialização:

 reboot 

Após reiniciar o laptop, efetue login usando sua conta e aproveite o mundo do Arch.

Sobre o Bumblebee e o PRIME


Você deve ter notado que eu não disse nada sobre as “muletas” que visam garantir a operação correta do Nvidia Optimus no Linux: Bumblebee e PRIME.
Além disso, só recebi uma placa Nvidia com um driver proprietário, o Nouveau não funcionou (é por isso que o artigo se chama “Bless Nouveau”).
Quanto à minha experiência pessoal com eles, ele é pequeno e deplorável: as duas muletas à queima-roupa não viram minha placa de vídeo Nvidia. Se você estiver interessado neles, no porão você encontrará links para os materiais neles.

Posfácio


Se você ler o artigo inteiro, será um herói (bom ou moderador) .

Ao escrever um artigo, tentei diluí-lo para você com piadas relativamente engraçadas, a fim de justificar a ausência de imagens nele. Espero que você tenha chegado ao zen depois de ler.

Lista de fontes


Sobre o microcódigo: en.wikipedia.org/wiki/ Microcode
Sobre o Bumblebee: wiki.archlinux.org/index.php/Bumblebee_ (russo)
Sobre o PRIME: wiki.archlinux.org/index.php/PRIME
Tópico: devtalk.nvidia.com/default/topic/1027679/linux/optimus-support-for-arch-linux-for-dell-i7559-dual-graphics-intel-nvidia-gtx-960m-laptop-/2
Sobre a persistência: en.wikipedia.org/wiki/Persistency

Source: https://habr.com/ru/post/pt414061/


All Articles