Eu tive esse trabalho funcionando bem em 16.04 em uma máquina muito similar.
O que eu quero: Quero dizer ao X para iniciar com um determinado display girado, se estiver presente. Eu também quero usar o driver nvidia, não o nouveau, e ter um desempenho decente sem rasgar a tela.
Eu não me importo de nenhuma maneira sobre "nvidia Prime", mas até onde eu posso dizer é por que isso não está funcionando, então meu palpite é que eu quero queimá-lo, purgado com fogo, destruído, removido e completamente impedido de interagir novamente comigo ou com meu laptop. Eu não me importo com o impacto marginal na vida útil da bateria.
No Ubuntu 16.04, eu poderia configurar o xorg.conf e fazer isso:
"MetaModes" "DFP-3: 2560x1600 +0+0 {rotation=left, ForceCompositionPipeline=On}, DFP-4: {ForceCompositionPipeline=On}"
Em 18.04, não existe nenhum valor que funcione aqui, pois quando a nvidia aparece, diz que todos os dispositivos estão desconectados; alguns segundos depois, em um estudo mais aprofundado, ele começa a encontrar coisas com nomes como "DP-1-1", que podem ser conectados ou sondados. Mas esses nomes ainda não existem quando os fragmentos xorg.conf são lidos. Então a linha MetaModes é descartada porque não se aplica a nada.
Eu posso aceitar que eu possa ser forçado a executar o xrandr manualmente mais tarde, mas parece estúpido. Eu não me importo ou quero prima. Se ele desaparecesse, e o driver da nvidia apenas examinasse os displays normalmente, eu teria o comportamento desejado.
Existe uma configuração ou gancho em algum lugar necessário para dizer ao driver nvidia para parar de tentar pensar nisso? Não consigo desinstalar o nvidia-prime; Quer dizer, eu posso, mas tudo quebra então. Existe uma coisa chamada gpu-manager que continua forçando tudo a usar o primo, mas também não tem documentação, e não --help, e é basicamente exatamente o oposto da boa engenharia de software. Se eu fingir (substituindo-o por um script que simplesmente não faz nada), ele pára ativamente de quebrar as coisas, mas as coisas não são consertadas. Se eu desativá-lo, e nuke 11-nvidia-prime.conf, parece que o driver nvidia acaba não sendo usado em todos.
nvidia-settings não pode mais gerar um arquivo de configuração ("xorg-server não foi encontrado no caminho de busca do pkg-config"), e qualquer tentativa de usar uma configuração funcional de uma máquina basicamente idêntica rodando 16.04 não telas válidas encontradas, por causa do problema "tudo é detectado como desconectado inicialmente".
Eu estou supondo que o suporte ao prime fez com que ele desativasse todos os displays até que o principal tivesse a chance de informá-lo para habilitá-los, mas eu não sei como contornar isso ou suprimi-lo.
EDIT: Voltando um pouco mais tarde, verifiquei com mais cuidado. Outro laptop também está usando nvidia-prime, então o próprio primo não é o problema. Laptop mais velho é 16.04 com nvidia-384, mais novo é 18.04 com nvidia-390. Gerações ligeiramente diferentes; mais antigo é um quadro M2000, novo é um quadro M2200, eu acho.
Atualização, alguns meses depois: Por razões, laptop recarregado. Durante a configuração, notou que há uma configuração de BIOS que permitiria desativar totalmente a comutação da GPU e, com isso, as coisas estão mais próximas de funcionar; Eu obtenho nomes semi-consistentes para os dispositivos de exibição e eles são reconhecidos durante a inicialização.
Infelizmente, a linha MetaModes, embora agora pareça estar sendo aplicada, não está aplicando a rotação:
[ 12.087] (II) NVIDIA(0): Setting mode "DP-0:nvidia-auto-select+0+0{rotation=left,ForceCompositionPipeline=On}"
...
[ 13.177] (II) NVIDIA(0): Setting mode "NULL"
[ 13.233] (II) NVIDIA(0): Setting mode "DP-0: nvidia-auto-select @2560x1600 +0+0 {ViewPortIn=2560x1600, ViewPortOut=2560x1600+0+0, ForceCompositionPipeline=On}"
Então, está ignorando a "rotação = esquerda". Eu também notei que o nvidia-settings parece ter removido a especificação explícita de 1600x2560. Eu vou continuar mexendo com isso.