블로그 이미지
No pain, no gain!
lepoussin

Tag

Notice

Recent Post

Recent Comment

Recent Trackback

Archive

calendar

1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
  • total
  • today
  • yesterday
05-02 09:45
2009. 5. 2. 23:59 Embedded System/Embedded Linux
부트로더가 가져야 하는 필수적인 기능은 다음과 같다.
  1. 하드웨어 초기 : 프로세서를 포함하여 메모리 컨트롤러와 같은 필수 컨트롤러들과 커널을 로드하기 위해 필요한 (플래시와 같은) 하드웨어를 초기화한다.
  2. 커널 로드 : 커널을 다운로드하고 메모리상의 적절한 위치에 복사한다.
x86 프로세서는 보통 기본적인 부트 과정과 OS를 로드하기 위해 2단계 부트로더를 로드하는 작업을 수행하는 BIOS를 보드에 포함하고 있다. 다음에 설명하는 과정은 MIPS나 ARM과 같은 x86 프로세서 외의 프로세서들에 대한 설명이다.
  1. 부팅 : 대부분의 부트로더는 플래시에서 시작되며, 제일 먼저 캐시 및 기본 레지스터의 설정, RAM 확인 등 기본적인 프로세서 초기화 과정을 수행한다. 그리고 메모리, 플래시, 버스 등 부팅 과정에 필요한 하드웨어들을 검증하는 POST 루틴을 실행한다.
  2. 재배치 : 부트로더는 빠른 수행을 위해 자기 자신을 플래시에서 RAM으로 복사(relocate)한다. 이러한 복사 과정을 부트로더가 저장 공간의 절약을 위해 압축되어 있는 경우에 압축을 해제하는 루틴도 포함한다.
  3. 장치 초기화 : 다음으로 부트로더는 사용자와의 상호작용에 필요한 기존 장치들을 초기화한다. 이것은 보통 UI를 띄우기 위해 콘솔을 초기화하는 과정을 의미한다. 또한 커널(과 루트 파일 시스템)을 로드하기 위해 필요한 플래시, 네트워크 카드, USB 등의 장치들도 초기화한다.
  4. UI : 다음으로 사용자가 원하는 커널 이미지를 선택할 수 있도록 UI를 띄운다. 이 단계에서 시간제한을 두어서 사용자가 시간 내에 아무것도 선택하지 않으면 기본으로 지정된 이미지를 다운로드하도록 할 수 있다.
  5. 이미지 다운로드 : 커널 이미지를 메모리로 다운로드한다. 사용자가 initrd의 형태로 루트 파일 시스템을 다운로드하도록 선택한 경우, initrd 이미지도 함께 다운로드한다.
  6. 커널 부트를 위한 준비 : 다음으로 커널로 넘겨질 부트 옵션이 존재하는 경우, 명령행 부트 옵션 인수들을 리눅스 커널에 정해진 특정 위치로 복사한다.
  7. 커널 부팅시키기 : 마지막으로 제어를 커널(의 시작 위치)로 넘긴다. 리눅스 커널이 일단 시작되면 부트로더는 더 이상 필요 없어진다. 부트로더가 사용하던 메모리 영역은 보통 커널이 회수하게 되며, 메모리 맵은 이 영역을 고려하여 설정된다.
LILO와 같은 많은 데스트톱용 부트로덜은 PC BIOS에 의종하고 있기 때문에 임베디드 시스템에서는 사용될 수 없다. 하지만 임베디드 시스템에 사용될 수 있는 일반적인 부트로더들도 많이 존재하며, 주로 U-Boot와 Redboot가 사용된다. 다음은 주로 사용되는 임베디드 프로세서들에 특화된 부트로더들의 목록을 보여준다.
  • MIPS : PMON2000, YAMON
  • ARM : Blob, Angel boot, Compaq bootldr
  • x86 : LILO, GRUB, Etherboot
  • PowerPC : PMON2000

※ 출처 : ITC "임베디드 리눅스 시스템 설계와 개발"
posted by lepoussin
2009. 5. 2. 20:28 Virtual Machine/Sun VirtualBox
[게스트 확장 설치]를 하여도 마우스 통합이 제대로 안 될 것이다.
([게스트 확장 설치]를 수행하지 않았다면 이전 글인 "VirtualBox 2.2.2 상의 Ubuntu 9.04에서 게스트 확장 설치 문제 해결"를 우선 읽도록 하자.)
이 문제는 다음과 같은 과정을 통해 해결할 수 있다.
  1. 우선 다음 파일이 있는지 확인한다.
    $ ls -la /usr/lib/xorg/modules/input/vbox*
    -rw-r--r-- 1 root root 186664 2008-10-25 19:30 /usr/lib/xorg/modules/input/vboxmouse_drv.so

  2. xorg.conf 파일을 수정한다.
    $ sudo gedit /etc/X11/xorg.conf
    ※ vi를 사용해도 무관하다.

  3. xorg.conf 파일의 끝부분에 다음 코드를 넣는다.
    Section "InputDevice"
            Identifier      "Configured Mouse"
            Driver          "vboxmouse"
            Option         "CorePointer"
    EndSection

  4. 재부팅 후, 마우스 통합이 제대로 되었는지 확인한다.

posted by lepoussin
2009. 5. 2. 20:19 Virtual Machine/Sun VirtualBox
VirtualBox 2.2.2 상의 Ubuntu 9.04에 게스트 확장을 설치해도 아무런 반응이 없을 때가 있다.
이 문제를 해결하는 방법은 다음과 같다.
  1. [머신]-[게스트 확장 설치]를 선택한 후, 마운트가 되면 터미널을 열어 마운트가 된 위치로 이동한다.
    $ cd /media/cdrom

  2. 해당 run 파일을 홈디렉토리의 임시 폴더에 푼다.
    /media/cdrom$ sudo ./VBoxLinuxAddition-x86.run --target ~/tmp

  3. 임시 폴더에서 install.sh를 실행하여 설치한다.
    /media/cdrom$ cd ~/tmp
    ~/tmp$ sudo ./install.sh

  4. 재부팅 후, 적용된 것을 확인한다.

posted by lepoussin