강좌 & 팁
저는 지금까지 리눅스하면 CentOS를 사용했습니다. coLinux도 사용했습니다만 gxLib때문에 다시 CentOS를 사용하고 있습니다. coLinux에서 프레임버퍼를 사용할 수만 있었어도 coLinux에 안주 했을지 모릅니다.
그러나 최근에 변수가 생겼네요. 며칠 전에 김효원님께서 "[안드로이드] 안드로이드 소스 전체빌드 해보기" 강좌를 진행하면서 우분투 8.04 또는 상위 버전을 권하셨습니다. 그렇지 않아도 안드로이드에 관심이 있어서 학습하고 싶었고, 포럼 글에 우분투에 대한 말씀도 많아서, 김효원님 글에 따라 우분투를 사용해 보기로 했습니다.
CentOS가 레드헷 계열이고, (주)FALINUX에서 권장하는 페도라와 환경이나 사용하는 방법이 같아서 큰 불편없이 사용해 왔습니다. 그러나 우분투는 조금 다르네요. 그래서 이번 시간에는 제가 우분투를 설치해 보면서, CentOS와 달라서 고생했던 점을 정리하면서, 설치하기 전에 미리 준비해야할 점을 알아 보도록 하겠습니다.
우분투 내려 받기
우분투는 Ubuntu Home Page에서 다운로드 링크를 이용하시면 쉽게 내려 받을 수 있습니다. 대신에,
- 어디서 우분트 설치 이미지를 내려 받을지 FTP 서버를 선택해 주고,
- 사용할 우분투의 버전과
- 32bit 또는 64bit를 선택해 주어야 합니다.
설치 이미지 파일은 ubuntu-8.04.2-desktop-i386.iso 하나 이며, 파일의 크기는 670Mbyte로 제 PC에서는 내려 받는데 약 5분 정도 걸렸습니다.
CentOS의 설치 작업과의 차이점
CentOS는 설치 중에 선택하는 화변이 많습니다만, 우분투는 황당하리만큼 없습니다. 예를 들어 언떤 에플리케이션을 설치할지 선택하는 화면이 있었으면 좋겠는데 없네요. CentOS는 설치하려는 에플리케이션 옵션만도 여러 페이지 아닙니까?
그런데 우분투는 네트워크만 잡으면 Microsoft Windows XP보다 훨씬 빠르게 설치가 완료됩니다. 아, 이점이 좀 마음에 들지 않네요. 내가 원치 않는 프로그램까지 설치된다는 것이 말이죠.
sudo 사용
설치 작업 중에 CentOS와 다른 점 하나가 root 암호를 지정하는 부분이 없습니다. 역시 Desktop 이라는 특징을 보는 듯 합니다만, 설치할 때 등록한 암호가 root 암호도 되더군요. 그리고 평소에는 사용자 계정을 사용하지만, 그래도 시스템 전반에 영향을 끼치는 작업은 root 계정을 이용해야 합니다.
CentOS에서는 su 를 이용하여 root 계정으로 로그인을 한 후에 작업을 하지만, 우분투에서는 Super User 계정에서 작업하는 것 보다는 필요할 때만 잠시 사용하는 것을 권하더군요. 그래서 root 권한으로 명령을 실행 때에는 sudo를 이용합니다.
예를 들어 수정 권한이 없는 /boot/grub/menu.lst 내용을 수정한다면 root 계정으로 로그인할 필요없이 sudo를 사용합니다.
]$ sudo vi /boot/grub/menu.lst
root 계정을 이용하는 것 보다는 사용자 계정을 주로 사용하도록 하는 배려 이겠습니다만, CentOS에서도 root 계정으로 로그인 하는 것 보다는 sudo를 사용하는 습관을 키우는 것이 좋겠다는 생각을 해 봅니다.
한글 문제
흠~ 우분투를 설치하고 처음 사용했을 때 황당한 점은 한글이 깨지네요. CentOS에서는 리눅스가 어떤 한글 코드를 사용하는지 신경을 쓰지 않고 그대로 사용했습니다만, 우분투에서 UTF-8을 사용하기 때문에 주의해야 한다는 것을 알았습니다. 아마도 CentOS는 Microsoft Windows에서처럼 CP949를 사용하는 것으로 생각됩니다.
그렇다고 우분투를 사용하지 못하는 것은 아닙니다. 다만 텔넷에서 한글이 깨진다고 우분투의 환경만 가지고 씨름하지 마시고, 텔넷 프로그램의 문자 변환 옵션을 반드시 UTF-8로 설정하십시오.
제가 애용하는 TuTTY에 대한 설정 화면입니다.
프레임버퍼 설정
처음에는 프레임버퍼를 사용하기 위해서는 어떤 프로그램을 설치해야 되는 줄 알았습니다. 그러나 다행이 환경파일의 내용만 수정해주면 프레임버퍼를 사용할 수 있습니다.
CentOS인 경우에는 /etc/grub.conf 의 내용을 수정했습니다.
......
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
......
그러나 우분투는 /boot/grub/menu.lst 의 내용을 수정하면 됩니다.
title Ubuntu 8.04.2, kernel 2.6.24-24-generic root (hd0,0) kernel /vmlinuz-2.6.24-24-generic root=UUID=88.....ea4e42 ro quiet splash vga=791 initrd /initrd.img-2.6.24-24-generic quiet
그리고 /dev/fb 장치명이 없습니다. 그러나 CentOS나 페도라 모두 /dev/fb0 를 /dev/fb로 링크 파일을 만들어 사용합니다. 그러므로 우분투에서는 이 링크파일을 만들어 사용하면 되겠습니다.
]$ sudo ln -s /dev/fb0 /dev/fb
/etc/init.d/network
사소한 차이겠습니다만, 레드햇 계열에서는 /ect/init.d/network 로 네트워크 상태를 갱신하지만, 우분투는 network가 아니라 networking 이더군요. 흠~ 좀 이름을 통일하면 좋을 텐데 말이죠.
]$ sudo /etc/init.d/networking restart
글을 마치면서
다음 시간에는 우분투를 설치하는 과정을 정리해 보도록 하겠습니다. 정리할 내용은,
- 우분투 설치
- 텔넷 및 삼바 환경 설정
- tftp, nfs 환경 설정
- 프레임 버퍼 설정
- 크로스 컴파일러 설치
- gxLib를 위해 zLib, JPEG, PNG 라이브러리 설치
그리고 필요한 부분이 있으면 계속 추가해 가도록 하겟습니다. 혹, 내용 중에 문제가 있거나 추가할 부분이 있다면 말씀 부탁드립니다. ^^
제 생각에는 안 될 것으로 생각됩니다. 이유는 /dev/fb도 출력 장치인데, coLinux에서 /dev/fb로 사용할
출력 장치가 없기 때문이죠. 대신에 /dev/fb로 사용할 수 있도록 콘솔을 이용할 수 있다면 가능한데,
개발이 중단된 것으로 보입니다. 아이, 계속 버전업되었으면 좋을 텐데, 아마도 VNC를 많이 이용하여
X Window를 사용하는 경우가 많기 때문으로 생각됩니다.
아래는 http://www.henrynestler.com/ 에서 "with framebuffer (cofb): A case study from N. Lucas" 링크에서 보여 주는
스크린 샷 이미지 중 하나입니다. 저도 이것을 가지고 어떻게든 coLinux에서 FrameBuffer를 사용해 보려 했는데,
결국 실패했습니다. 소스까지 제공하기 때문에 버전없을 하면 될 것 같은데, 매우 아쉽습니다.