Linux 콘솔 글꼴을 커널 내장 글꼴로 복원하는 방법은 무엇입니까?

Linux 콘솔 글꼴을 커널 내장 글꼴로 복원하는 방법은 무엇입니까?

기본적으로 내 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

관련 정보