전제:
자동차 도어 자동화 시나리오에서 저는 Ubuntu 헤드리스 서버에서 실행될 것으로 생각되는 데몬을 구축하고 있습니다.
linux headless host
+----------------------+
| |
| |
| |
| +--------------+ |
| | graphic card | |
+---+------+-------+---+
| HDMI
|
|
+--------------v---------------+
| |
| Please contact the operator. |
| Push the emergency button |
| |
| |
| |
| |
+------------------------------+
high resolution screen
표적:
데몬은 화면에 간단한 텍스트를 표시해야 합니다. 기본적으로 stdout에 텍스트 줄을 작성하면 되지만 데스크톱 환경에서 gnome 터미널을 사용하는 것처럼 구성 가능한 큰 크기 글꼴과 기하학적 모양을 사용하면 됩니다. 요점은 단지 문제를 해결하기 위해 데스크탑 환경을 설치하는 것을 피한다는 것입니다.
clear && echo "Please contact operator"
스크린샷에서는 글꼴 크기 설정이 다른 gnome 터미널의 명령을 보여줍니다.
그런데 큰 글꼴을 요구하는 이유는 트럭 운전자가 컴퓨터 모니터로부터 1/2미터 거리에서 표시된 텍스트를 읽을 것이기 때문입니다.
노트:
내가 탐구한 한 가지 방법은 TTY 문자 설정(GRUB 수준에서)을 지정하는 것입니다. 안타깝게도 글꼴 설정이 매우 제한되어 있기 때문에 이는 좋은 옵션이 아닌 것 같습니다.
읽다Linux에는 그래픽 운영 체제가 없지만 그래픽 리소스가 있습니다., 아마도 프레임버퍼 모드가 옵션이 될 수 있을까요?
질문:
헤드리스 컴퓨터에서 큰 전면 텍스트(그래픽 모드)를 어떻게 표시합니까?
답변1
나는 최악의 IMHO에서 최고의 IMHO까지 내가 찾은 3가지 솔루션을 공유하기 위해 스스로 대답했습니다.
toilet
또는 같은 프로그램을 사용하십시오 .figlet
clear && printf "push the\nemergency\nbutton" | toilet -t --font=mono12
▄▄ ▄▄
██ ██ ██
██▄███▄ ██ ██ ▄▄█████▄ ██▄████▄ ███████ ██▄████▄ ▄████▄
██▀ ▀██ ██ ██ ██▄▄▄▄ ▀ ██▀ ██ ██ ██▀ ██ ██▄▄▄▄██
██ ██ ██ ██ ▀▀▀▀██▄ ██ ██ ██ ██ ██ ██▀▀▀▀▀▀
███▄▄██▀ ██▄▄▄███ █▄▄▄▄▄██ ██ ██ ██▄▄▄ ██ ██ ▀██▄▄▄▄█
██ ▀▀▀ ▀▀▀▀ ▀▀ ▀▀▀▀▀▀ ▀▀ ▀▀ ▀▀▀▀ ▀▀ ▀▀ ▀▀▀▀▀
██
▄████▄ ████▄██▄ ▄████▄ ██▄████ ▄███▄██ ▄████▄ ██▄████▄ ▄█████▄ ▀██ ███
██▄▄▄▄██ ██ ██ ██ ██▄▄▄▄██ ██▀ ██▀ ▀██ ██▄▄▄▄██ ██▀ ██ ██▀ ▀ ██▄ ██
██▀▀▀▀▀▀ ██ ██ ██ ██▀▀▀▀▀▀ ██ ██ ██ ██▀▀▀▀▀▀ ██ ██ ██ ████▀
▀██▄▄▄▄█ ██ ██ ██ ▀██▄▄▄▄█ ██ ▀██▄▄███ ▀██▄▄▄▄█ ██ ██ ▀██▄▄▄▄█ ███
▀▀▀▀▀ ▀▀ ▀▀ ▀▀ ▀▀▀▀▀ ▀▀ ▄▀▀▀ ██ ▀▀▀▀▀ ▀▀ ▀▀ ▀▀▀▀▀ ██
▀████▀▀ ███
▄▄
██ ██ ██
██▄███▄ ██ ██ ███████ ███████ ▄████▄ ██▄████▄
██▀ ▀██ ██ ██ ██ ██ ██▀ ▀██ ██▀ ██
██ ██ ██ ██ ██ ██ ██ ██ ██ ██
███▄▄██▀ ██▄▄▄███ ██▄▄▄ ██▄▄▄ ▀██▄▄██▀ ██ ██
▀▀ ▀▀▀ ▀▀▀▀ ▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀▀ ▀▀
- 프레임 버퍼에서 이미지 시각화
텍스트가 "정적"(고정)인 경우 해결 방법은 프레임 버퍼에 비트맵(원하는 텍스트가 포함된 이미지)을 표시하는 것입니다.
오래되었지만 좋은 유틸리티는 다음과 같습니다 fbi
.
$ sudo apt install fbi
따라서 이미지가 fullscreen_text_image.PNG
전체 화면 비트맵(예: PNG 형식)인 경우 이미지를 5초 동안 표시하는 명령(트릭)은 다음과 같습니다.
sudo fbi --noverbose --timeout 5 --once fullscreen_text_image.PNG
- 프레임버퍼 터미널 에뮬레이션
fbterm
오래된 프레임버퍼 터미널 에뮬레이션 프로그램입니다. 좋은 기능은 선택할 수 있는 옵션이 많다는 것입니다. 예를 들어 매우 큰 글꼴 크기를 사용할 수 있습니다.
sudo apt install fbterm
# run the terminal emulation on the framebuffer
fbterm --font-size=300
# remove prompt
PS1=''
# remove cursor
setterm --cursor off
# other settings (e.g. change background color)
# setterm --background red
# font change
# setfont /usr/share/consolefonts/Uni3-Terminus32x16.psf.gz
표시된 대로 fbterm을 실행하면 "일반" stdout을 얻을 수 있지만 매우 높은 그래픽 품질을 갖춘 매우 큰 텍스트를 얻을 수 있습니다! 그림을 참조하십시오: