답변:
확신 할 수 있도록 지금 답변을 수정하고 있습니다.
ANSI 시퀀스가 BIOS를 통해 또는 커널 외부에서 처리되고 있다는 결론은 잘못되었습니다. 실제로 커널에서 처리됩니다. LinuxNewbies IRC 채널의 hnaz_ 덕분에 내가 놓친 것을 발견 drivers/char/vt.c
했습니다. 가상 터미널 드라이버에서 사용하는 Digital Equipment VT102 터미널의 에뮬레이션을 구현합니다.
가상 터미널의 이스케이프 시퀀스를 처리하는 소스 코드를 검토 한 결정적인 답변으로, 가상 터미널에서 256 색을 지원하려면 이스케이프 시퀀스를 구문 분석하는 코드를 확장 한 후 자체 커널을 빌드해야합니다. 더 넓은 색상 지정을 처리합니다.
함수는 csi_m ()입니다. 변경 사항은 더 풍부한 색상 코드를 지정하는 이스케이프 시퀀스를 처리하도록 X 기반 터미널 에뮬레이터를 확장하는 변경 사항과 유사해야합니다. 다른 변경 사항도 필요할 수 있지만 여기에서 시작할 수 있습니다.
kmscon
터미널을 개선하려고하는 사용자 랜드 터미널 이라고 생각 합니다 (24 비트 색상 포함). 체계적인 대안을 선호하여 개발이 정체되었지만.
256 색 RXVT / xterm / URXVT / etc는 terminfo 및 TERM
변수 설정으로 정의됩니다 . 대부분의 Linux 배포에서 가상 터미널은에 정의되어 /etc/inittab
있으며 터미널이 사용할 수있는 색상 수를 정의하는 기본 터미널 유형을 사용하십시오.
TTY에 8 가지 이상의 색상을 사용하도록 지시하는 방법이 있습니까?
예.
프레임 버퍼 가 올바른 해상도 / 비트 심도를 사용하고 있는지 확인하십시오 . vga=773
예를 들어, 1024x768 및 256 색 (8 비트 색 농도)을 얻으려면 커널 옵션에 추가하십시오 .
다른 TERM을 설정하십시오 (예 :) export TERM=foo
. 올바른 것을 찾으려면 실험해야합니다. 작동하는 것을 찾으면 /etc/inittab
가상 터미널이 기본적으로 실행되도록 수정할 수 있습니다 (다음 섹션 참조).
이 기사 에서는 귀하에게 도움이 될 수있는 다른 옵션에 대해 설명합니다. Qtyy (Qingy is GettY가 아님) 를 게티 대체품으로 권장 하고 TERM 변수 전환이 옵션이 아닌 경우 원하는 것을 제공 할 수 있습니다.
게티 교체에 대해 말하면서, 나는 게티를 GNU screen
다른 곳으로 교체하는 지침을 보았습니다 . 현재 링크를 찾지 못했지만에 대한 256 색 TERM screen
이 있으므로 살펴볼 수 있습니다.
/etc/inittab
다음과 같은 줄을 사용하여 가상 터미널을 설정하십시오.
# Format:
# <id>:<runlevels>:<action>:<process>
#
1:2345:respawn:/sbin/getty 38400 tty1
2:2345:respawn:/sbin/getty 38400 tty2
3:2345:respawn:/sbin/getty 38400 tty3
맨 페이지는 다음과 같습니다 /sbin/getty
(데비안 시스템에서 기술적으로 agetty
프로그램입니다).
SYNOPSIS
agetty [-8ihLmnw] [-f issue_file] [-l login_program] [-I init]
[-t timeout] [-H login_host] baud_rate,... port [term]
baud_rate,... port [term]
끝에 거기에 주목하십시오 . 이는 /etc/inittab
라인 ( /sbin/getty 38400 ttyN
) 의 명령과 일치합니다. [term]
인수가 없으므로 기본값을 얻습니다 ( echo $TERM
시스템이 사용하는 것을보기 위해 가상 콘솔에 로그인 한 직후 실행 ). 맨 페이지에서 다시 :
ARGUMENTS
term The value to be used for the TERM environment variable. This over‐
rides whatever init(8) may have set, and is inherited by login and
the shell.
작동하는 TERM을 찾으면 inittab에서 getty 행을 수정하고 끝에 적절한 TERM을 추가하십시오.
1:2345:respawn:/sbin/getty 38400 tty1 TERM-with-256-colors
2:2345:respawn:/sbin/getty 38400 tty2 TERM-with-256-colors
fbterm을 살펴보십시오-256 색 모드에서 실행할 수있는 교체 프레임 버퍼입니다 (TTY에서 루트로 실행)
나는 그것과 혼합 된 성공을 거두었습니다. 일부 응용 프로그램은 잘 작동하고 256 색을보고합니다. 그러나 Emacs (TTY에서 256 색을 원했던 주된 이유)는 작동하지 않는 것 같습니다. 여기에 약간의 토론이 있지만 실제로 해결되지는 않습니다.
http://lists.gnu.org/archive/html/emacs-devel/2011-08/msg00989.html
그러나 mplayer는 작동해야합니다!
emacs
내부를 실행 tmux
하면 주변 터미널의 이스케이프 시퀀스를 변환하는 데 도움이 될 수 있습니다.
텍스트의 전경색과 배경색을 설정하기위한 ANSI 이스케이프 시퀀스는 여기서 제한적인 요소입니다.
메모리에서이 시퀀스들은 escape와 비슷해 보인다 [01; 34m 포 그라운드에 30 년대 코드가 있고 배경에 40 년대 코드가 있다고 생각한다.
그래서 나는 당신이 찾고있는 것을 성취 할 수있는 방법이 없다고 생각합니다.