Reduzindo a alternância do modo de vídeo durante a inicialização do Linux

12

Quando eu inicializo meu computador desktop, que possui apenas o Linux, o modo de vídeo e / ou a fonte do console são alterados quatro vezes:

  • Quando o GRUB é iniciado, ele alterna do texto de 80x25 para o modo gráfico, para que possa desenhar um plano de fundo bonito por trás do menu;
  • O GRUB volta ao texto de 80x25 depois que eu seleciono algo no menu;
  • Quando o driver KMS da minha placa de vídeo é carregado, ele muda para um modo de texto de resolução muito mais alta (não sei se esse é um modo de texto de hardware ou não);
  • Finalmente, o X começa e vai para gráficos e permanece assim. Eu acho que essa última opção não altera a resolução do modo de vídeo, apenas a gráfica.

Eu gostaria de me livrar do maior número possível dessas opções de modo. Idealmente, quando o GRUB substitui o BIOS, ele entra diretamente no mesmo modo de texto de alta resolução que o driver KMS seleciona e a tela permanece nesse modo até o X iniciar e exibir gráficos. Estou com a impressão de que isso é possível mexendo na linha de comando do kernel e / ou nos parâmetros de carregamento do módulo do console GRUB, mas não conheço os detalhes.

GRUB 1.98 + 20100706, kernel 2.6.32.15 usando drivers de vídeo Nouveau. Distro é o Debian instável. Por favor, não responda a respostas que envolvam recompilar qualquer coisa ou misturar combinações de kernel / driver de ponta, não me importo o suficiente com isso para causar tantos problemas.

EDIT: Tobu sugere definir GRUB_GFXMODEa resolução total de pixels do monitor e GRUB_GFXPAYLOAD_LINUX=keepevitar o interruptor de modo após o menu desaparecer. Isso faz parte do que eu quero, mas acaba sendo pior no geral. Não há mudança de modo após o menu, mas ainda há uma repintura de tela dolorosamente lenta (eu provavelmente deveria desistir do modo gfx do GRUB, é muito lento em 1920x1200). Mais a sério, agora existe um comutador de modo duplo quando o nouveaufb é carregado, juntamente com mensagens de erro divertidas emdmesg

[    5.923798] [drm] nouveau 0000:02:00.0: allocated 1920x1200 fb: 0x40250000, bo ffff8801ba5f4600
[    5.923802] fb: conflicting fb hw usage nouveaufb vs EFI VGA - removing generic driver
[    5.923821] [drm] nouveau 0000:02:00.0: PFIFO_INTR 0x00000010 - Ch 1
("PFIFO_INTR" message repeats 400+ times)
[    5.925609] Console: switching to colour dummy device 80x25
[    5.925802] Console: switching to colour frame buffer device 240x75
zwol
fonte
Estou curioso sobre o que é "graficidade".
Pausado até novo aviso.
1
Para qualquer resolução de pixel, um modo de vídeo pode ser gráfico (cada pixel individual é endereçável) ou texto (simula um terminal da célula de caracteres desde os dias anteriores). O que eu quis dizer com "graficidade" foi que o quarto comutador de modo de vídeo que listei passa de texto para gráfico sem alterar a resolução de pixels.
Zwol 12/07/10

Respostas:

2

O Plymouth foi projetado para ajudar a esse respeito:

A idéia é que, no início do processo de inicialização, o modo nativo para o computador seja definido, o plymouth use esse modo e esse modo permaneça durante todo o processo de inicialização até e após o X ser iniciado. Idealmente, o objetivo é livrar-se de todos os tremores durante a inicialização.

Como você tem apenas um único sistema operacional instalado, desabilitar as alterações na resolução do grub (sem gráfico de plano de fundo) e até o próprio menu, deixando 80x25, resultaria em nenhuma alteração até que Plymouth assuma o controle.

chris
fonte
1

Teste sua resolução e profundidade de cor:

xrandr -q
xdpyinfo | grep 'depth of root window' | awk '{ print $5 }'

Situado GRUB_GFXMODE=<width>x<height>x<depth>no /etc/default/grubpara que a resolução do menu grub corresponde à resolução KMS.

Talvez adicione também GRUB_GFXPAYLOAD_LINUX=keepos padrões, para que não haja etapa intermediária após o menu grub e antes de configurar o KMS. O X11 deve manter o que o KMS usa, o que significa que não há opção para o X11 com que se preocupar.

Aplique suas edições com

sudo update-grub
Tobu
fonte
Obrigado! Isso fez parte do que eu quero, mas teve efeitos colaterais negativos que pioraram o status quo. Eu adicionei os detalhes à pergunta.
Zwol 12/07/10
0

Você pode ter o KMS ativo logo após o GRUB, e isso geralmente inclui um parâmetro na linha de comando do kernel que o ativa. Para a Intel, é i910.modeset=1, mas além disso você teria que verificar os documentos da sua distribuição sobre isso.

Daenyth
fonte
O KMS está ativo a partir do momento em que o driver nouveau é carregado, acredito, mas isso acontece apenas durante a verificação inicial do dispositivo do udev, algum tempo após a execução do espaço do usuário. Eu brinquei com as opções de linha de comando video = e vga = um pouco, mas não tive sorte.
Zwol 12/07/10
Você pode dizer que para carregar antes em seguida, com este método
Daenyth
Antes de reconstruir o kernel com o nouveaumódulo compilado (o que é muito problemático), o melhor que pude fazer foi instalar o nouveau /etc/initramfs-tools/modules... mas tudo o que faz é mover a chave de modo duplo anteriormente, de dentro "Waiting for / dev a ser preenchido "para a direita após" Carregando, aguarde ... "O objetivo é eliminar as opções de modo.
Zwol
Nesse caso, você precisa usar um carregador de inicialização que seja capaz de KMS. Eu acho que o grub2 pode fazer isso, mas se isso não acontecer, você estará completamente sem sorte.
Daenyth
O grub2 define o modo e o deixa definido (é o que GRUB_GFXPAYLOAD_LINUX = mantém), mas de alguma forma não é bom o suficiente para o nouveau e / ou o subsistema fb, daí as mensagens de erro "Conflicting fb hw use". Aliás, exatamente o mesmo comportamento com o i915 no meu laptop.
Zwol