그래픽 & 멀티미디어
리눅스에서 그래픽을 출력할 수 있는 방법은 여러 가지가 있습니다. X-Window를 생각할 수 있지만 임베디드 시스템에서 운영하기에는 부담이 많이 됩니다. 대신에 비디오 메모리를 사용하는 프레임 버퍼를 이용하면 굳이 덩치 큰 X-Window를 사용할 필요가 없습니다.
이번 시간부터 앞으로 몇 차례에 걸쳐서 프레임 버퍼를 이용한 그래픽 프로그래밍에 대해서 알아 보도록 하겠습니다.
프레임 버퍼 세팅
프레임 버퍼를 사용하기 위해서는 리눅스의 기본 출력을 텍스트 모드에서 그래픽 모드(이하 프레임 버퍼 모드) 로 변환해야 합니다. 변환하는 방법은 매우 간단합니다. 부팅을 담당하는 부트 로더에게 텍스트가 아닌 프레임 버퍼 모드로 부팅하라고 지시하면 끝입니다.
자 부트 로더에게 부탁하기 위해서는 부트 로더의 환경 파일을 수정하면 되는데, 부트로더에는 2가지가 있습니다. 전통적으로 사용되는 LILO가 있고, 후에 나온 GRUB가 있습니다.
그럼 내가 어떤 부트로더를 사용하는지 확인해 봐야 겠죠. 부팅 화면이 일반 텍스트 모드 이거나 아래와 같이 /etc/lilo.conf 파일이 있는지 확인했더니 있다면 LILO를 사용하고 있는 것입니다. LILO 부트 로더를 사용할 때의 내용을 확인해 주십시오. 파일이 없거나 부팅 시작이 그래픽이라면 GRUB 부트 로더를 사용할 때의 내용을 봐 주십시오.
LILO 환경 설정 파일을 이용하여 프레임버퍼 모드를 설정해 보겠습니다.
]$ ls -al /etc/lilo.conf
-rw-r--r-- 1 root root 90251 2월 16 15:22 /etc/lilo.conf
에디터를 이용하여 /etc/lilo.conf 를 열고, 아래의 내용을 추가합니다. vga 옵션에 해당하는 숫자는 아래에 자세히 언급되어 있습니다.
......
install=/boot/boot.b
message=/boot/message
vga=791
linear
vga=791 <-- 요렇게 추가
image=/boot/vmlinuz-2.6.9-42.ELsmp
label=linux
........
이제 lilo 명령을 실행하신 후 재부팅하시면 끝입니다.
]# lilo
]#
reboot
/etc/grub.conf 를 편집기로 여신 후, 부팅 기본이 되는 title 에 대해서, 도는 title 에 대해서 커널 부분의 끝에 vga 옵션을 추가하시면 됩니다.
......
title CentOS (2.6.9-42.0.8.EL)
root (hd0,0)
kernel /vmlinuz-2.6.9-42.0.8.EL ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.9-42.0.8.EL.img
title CentOS (2.6.9-42.0.8.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.6.9-42.0.8.ELsmp ro root=LABEL=/ rhgb quiet vga=791
initrd /initrd-2.6.9-42.0.8.ELsmp.img
title CentOS-4 i386 (2.6.9-42.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.6.9-42.ELsmp ro root=LABEL=/ rhgb quiet
initrd /initrd-2.6.9-42.ELsmp.img
......
저장하신 후에 바로 재부팅하시면 끝입니다.
vga 옵션 - 해상도
색상 깊이 |
640x480 |
800x600 |
1024x768 |
1280x1024 |
1600x1200 |
8bit |
789 |
771 |
773 |
775 |
796 |
15bit |
784 |
787 |
790 |
793 |
797 |
16bit |
785 |
788 |
791 |
794 |
798 |
24bit |
786 |
789 |
792 |
795 |
799 |
16진 값으로는,
색상 깊이 |
640x480 |
800x600 |
1024x768 |
1280x1024 |
1600x1200 |
8bit |
0x301 |
0x303 |
0x305 |
0x307 |
0x31C |
15bit |
0x310 |
0x313 |
0x316 |
0x319 |
0x31D |
16bit |
0x311 |
0x314 |
0x317 |
0x31A |
0x31E |
24bit |
0x312 |
0x315 |
0x318 |
0x31B |
0x31F |