Seu monitor fornece informações sobre si mesmo usando um padrão digital chamado EDID. O kernel lê essas informações ao detectar um dispositivo de exibição e configura automaticamente sua exibição para corresponder o mais próximo possível da resolução nativa do dispositivo de exibição. Os dispositivos LCD podem, na verdade, suportar apenas uma resolução - sua resolução nativa - e emular todos os outros. De wikipedia :
Extended display identification data (EDID) is a data structure provided by a digital display to describe its capabilities to a video source (e.g. graphics card or set-top box). It is what enables a modern personal computer to know what kinds of monitors are connected to it. EDID is defined by a standard published by the Video Electronics Standards Association (VESA). The EDID includes manufacturer name and serial number, product type, phosphor or filter type, timings supported by the display, display size, luminance data and (for digital displays only) pixel mapping data.
O problema com isto é que muitas vezes o EDID errado está errado ou de alguma forma corrupto - isto é geralmente devido a fabricantes preguiçosos ou mal orientados que têm que programar isso informações no firmware do dispositivo. Pode até resultar de um fio HDMI ruim, mas as chances disso são muito menores, já que um cabo digital é muito mais propenso a simplesmente não funcionar. Mas há outras possibilidades, se você usar o KMS, provavelmente achará isso interessante:
Today, with the advent of Kernel Mode Setting, a graphics board is either correctly working because all components follow the standards - or the computer is unusable, because the screen remains dark after booting or it displays the wrong area. Cases when this happens are:
-
A placa gráfica não reconhece o monitor.
-
A placa gráfica não consegue detectar nenhum dado EDID.
-
A placa gráfica encaminha incorretamente os dados EDID para o driver.
-
O monitor envia dados não EDID falsos ou não.
-
Um KVM envia seus próprios dados EDID em vez de consultar o monitor conectado.
Adding the kernel parameter "nomodeset" helps in most cases, but causes restrictions later on.
∆That∆ é um excerto do próprio HOWTO.txt do kernel.org para o KMS EDID. Esse arquivo de texto está localizado na mesma pasta como cinco EDIDs de resolução padrão que você pode fornecer ao kernel durante a inicialização um parâmetro do kernel e initramfs para ignorar o EDID fornecido pelo seu monitor.
Se você estiver usando um dos drivers de exibição de software livre, você está usando a configuração do modo kernel e pode, por exemplo, usar qualquer uma das cinco predefinições de desvio de resolução EDGE do KMS já mencionadas. Alternativamente, você pode fornecer seu próprio arquivo EDID inteiramente que o kernel usará em vez das informações fornecidas pelo dispositivo de exibição.
Veja esta seção do wiki do Arch Linux para mais informações, mas provavelmente Este tópico do AskUbuntu seria melhor direcionado para a sua distribuição.
Se você não estiver usando o KMS e estiver usando os drivers nvidia ou AMD de código fechado, então, até onde eu saiba, suas chances de lidar com as resoluções de tempo de inicialização de forma confiável são quase nulas. Pode ser possível configurá-los em grub
ou outro carregador de inicialização antes de qualquer imagem do initramfs ser montada, mas a probabilidade de isso interferir posteriormente na configuração de resolução do próprio driver de código fechado quando X
starts é bem alto. Se você tiver muito sorte, o fabricante da sua placa-mãe forneceu a você uma configuração no firmware UEFI para configurar a resolução da hora de inicialização e você pode configurá-la antes mesmo de qualquer carregador de inicialização secundário como grub
ser carregado em absoluto. Eu nunca conheci pessoalmente alguém tão sortudo assim.