기본적으로 내 Linux 커널은 프레임 버퍼 콘솔에 커널에 내장된 16x32 Terminus 큰 글꼴(CONFIG_FONT_TER16X32 사용)을 사용합니다.
방금 "kbd" 패키지를 설치하고 setfont
인수 없이 실행했는데 화면에서 작게 보이는 다른 글꼴로 전환되었습니다. setfont
커널에 내장된 글꼴 중 하나가 아닌 파일에서 글꼴을 로드하는 것만 지원되는 것 같습니다. 또한 16x32 Terminus 글꼴은 kbd 패키지에 포함되어 있지 않습니다.
그렇다면 시스템이 시작될 때 표시되는 기본 내장 글꼴로 콘솔을 다시 전환하려면 어떻게 해야 할까요? 인수 없이 실행하면 setfont
이 작업이 수행되지 않습니다. 배포판이 아닌 특정 솔루션을 찾고 있습니다.
답변1
이 작업을 수행할 수 있는 기성 도구를 찾을 수 없지만 다음 C 프로그램은 /dev/tty
(Linux VT의 경우) 기본 글꼴로 재설정됩니다.
#include <fcntl.h>
#include <linux/kd.h>
#include <stdio.h>
#include <sys/ioctl.h>
#include <sys/stat.h>
#include <sys/types.h>
int main(int argc, char **argv) {
struct console_font_op cfo = { .op = KD_FONT_OP_SET_DEFAULT };
int fd;
fd = open("/dev/tty", O_RDONLY);
if (fd < 0) perror("Opening /dev/tty");
else if (ioctl(fd, KDFONTOP, &cfo)) perror("Setting the default font");
}
그것을 저장하고 defaultfont.c
(Makefile이 필요하지 않음) 사용하여 빌드하고 실행하십시오.make defaultfont
./defaultfont