반응형

출처 : http://sio4.tistory.com/123

요즘은 "우분투(Ubuntu)"라는 이름의 배포본을 사용하고 있는데 그럭저럭 맘에 든다. (라이브 CD로부터 ) 설치할 때 아무것도 묻지 않고 그냥 판박이를 만든다는 것이 일단 첫번째 불만이었고 그 외에는 그리 흠잡을 곳이 없는 것 같다. (물론 사용하기 편한 것은 이 배포본의 특성에 의한 부분도 있겠지만 한편 그만큼 리눅스 운영체계가 일반 데스크탑 사용자가 사용하기에 불편함이 없을 정도로 발전한 까닭이 클 것이다.)

프레임버퍼 기반의 시험 공간으로 버추얼박스(VirtualBox)에 게스트로 최신의 7.10 버전을 설치해 보았다. 건드리기 귀찮은 내 시스템을 유지한 채 새 버전을 맛보는 목적도 있지만 본래의 목적은 역시 프레임버퍼용 시험환경 구성이다. 그런데, 부팅 명령행에 "vga=0x315" 항목을 추가하는 것 만으로는 이 녀석이 꿈쩍도 하지 않는 것이 아닌가? 혹시 버추얼박스의 제한? 확인된 내용은 우분투의 뭐랄까... 안전설계에 의한 것인 듯 하다. 다음의 단계에 의하여 설정을 마칠 수 있었다.

1) 부팅 옵션 변경 (일반적인 이야기)

한가지 특기할 부분은, 예전에는 각 메뉴 라인을 편집했었는데 이것이 grub 새 버전의 추가된 기능인지 아니면 우분투의 변종인지는 모르겠으나 모든 메뉴 항목을 위한 기본값(defoptions)의 "한 줄" 지정이 가능하고 그것을 명령을 통하여 각각의 메뉴 항목에 적용하는 기법이 사용되고 있었다.

"defoptions"라는 이름을 찾아 "vga=0x315"라는 값을 추가해줬다. (해상도 800x600의 24bit 모드)

  $ sudo vi /boot/grub/menu.list
          add 'vga=0x315' to 'defoptions'
  $ sudo update-grub

2) 모듈 설정과 제한 풀어주기

시스템이 initramfs 방식을 사용하고 있으므로... (이건 언제부터 적용된 것인지는 모르겠으나 내가 처음 사용하기 시작한 지난 버전에도 적용되어 있었다. 이 것 이상의 가짜 파일시스템을 이용한 장난들이 재밌게 보이는데, 다음에 시간이 되면...) 다음과 같이 설정파일을 수정하여 필요한 모듈을 넣어줘야 한다. (그런데 이것들이 모듈로 되어있는지는 몰랐었네...)

$ sudo vi /etc/initramfs-tools/module
        add 'fbcon' and 'vesafb'

그러나 이 중 vesafb는 요주의 모듈 목록에 기본으로 들어있었다. 다음처럼, 설정파일을 편집하여 모듈 등록을 거부하지 않도록 해줘야 한다.

$ sudo vi /etc/modprobe.d/blacklist-framebuffer
        disable 'blacklist vesafb'

이제 initrd 이미지를 다시 만들어야 한다.

$ sudo update-initramfs -u

3) 다시 시작

$ sudo reboot

그런데 왠 일인지 이것으로는 모자람...

4) 부팅 스플래시 설정 바꾸기

이렇게 해놓으니 화면은 800x600으로 잡혀 올라오는데 부팅 스플래시와 진행막대가 엉뚱한 위치에 표시된다. 이전의 설정이 1024x768을 기준으로 되어있어서인데... 바로잡자.

$ sudo vi /etc/usplash.conf
        modify 'xres' and 'yres'

물론 램디스크를 다시 만들어줘야 하고, 다시 시작하면 부팅 화면도 깔끔하게 표시된다.

좀 복잡하다. 왜 복잡해졌나? 편의를 돕기 위한 이런 저런 유틸리티, 설정, 뭔가가 더해지다보니 건드려야 하는 부분도 많아지고 복잡해졌다. 일반 사용자도 편하게 사용할 수 있는 뭔가를 만들려면 그 만큼 속으로 복잡해질 수 밖에 없는... 공짜는 없다고나 할까?

리눅스 어렵다는 말이 여기서 나왔나보다.




콘솔 해상도 설정하려고 구글링 하다가 찾아서 도움 받았습니다.
좋은 포스트 감사합니다.

궁금한게 있는데요
다른건 위에 설명해주신대로 해서 다 잘 되는데
맨 마지막에 램디스크를 다시 만든다는게 무슨 뜻인지 잘 모르겠습니다.



짧게 말씀드리면 2)번 과정 마지막의 다음 명령을 다시 실행해 줘야 한다는 뜻입니다.

$ sudo update-initramfs -u

우분투의 부트 스플래시 해상도를 바꾸기 위해서 그 설정파일인 /etc/usplash.conf 파일을 수정하고 재부팅해보면 아마도 기대한 변화가 나타나지 않을 것입니다. 그것은, 그 설정이 사용되는 시점이 실제의 파일시스템이 마운트된 후가 아닌 initramfs 상태이기 때문입니다.

위의 update-initramfs 명령은 변경된 현재의 설정을 이용하여 initramfs를 갱신해주고 다음 부팅은 이 갱신된 initrd를 이용하게 되는 것입니다.

이와 관련하여 단순히 위에 설명된 과정 말고, 그 속사정에 대하여 알고싶으시면 update-initramfs의 결과물인 /boot/initrd* 파일을 살펴보시면 도움이 될 것입니다.

$ mkdir /tmp/initrd; cd initrd
$ gzip -dc /boot/initrd.img-2.6.22-14-generic |cpio -id
$ ls

오... 가와사키 때를 이끌고 달리는 CT100이라... 상상만 해도 재밌네요. :-)
반응형

'Linux > Linux 일반' 카테고리의 다른 글

SDL 컴파일 방법, directFB  (0) 2009.02.07
Linux kernel에서의 Frame buffer 활성화  (0) 2009.02.07
우분투에서 ffmpeg 설치하기  (2) 2009.02.04
Posted by Real_G