O framebuffer do Linux não é revertido para o console de texto quando o netsurf trava

1

Em um computador antigo rodando Linux (usando vesafb, musl libc, busybox), o Netsurf irá ocasionalmente se separar em baixa situações de memória. Quando isso acontece, a última imagem permanece visível no visor, e a digitação parece não fazer nada, inclusive tentando alternar o VT usando Ctrl-Alt-Fx . Eu gostaria de saber por que isso acontece e como consertar isso.

Eu posso sintonizar SSH na máquina e desligá-la, e não parece haver nada no dmesg. Isso não acontece em uma máquina com uma GPU Intel, executando o Arch (systemd). O comportamento é semelhante ao descrito em reinicialize o framebuffer quando o programa trava e também está usando o SDL.

De acordo com o link , o kernel deve estar lidando com a comutação VT, então esse comportamento parece bastante surpreendente para mim.

    
por pypi 28.10.2017 / 10:31

1 resposta

0

Isso é causado pelo SDL definir o modo de terminal como KD_GRAPHICS e entrada para K_MEDIUMRAW . KD_GRAPHICS faz com que o terminal pare de desenhar para a exibição, enquanto K_MEDIUMRAW faz com que a entrada seja passada como códigos de teclas (não caracteres). Ao reconfigurar ambos os valores para KD_TEXT e K_XLATE ou K_UNICODE , o terminal pode ser (pelo menos parcialmente) restaurado.

Eu escrevi (baseado em algum código existente) um pequeno programa para restaurar o console, que parece funcionar bem: link

Veja também Prática recomendada para ocultar o console virtual ao renderizar vídeo no framebuffer e no link .

    
por 16.04.2018 / 09:18