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 .