'Windows Embedded CE 6.0'에 해당되는 글 23건

  1. 2008.06.25 Windows CE 6.0 빌드 메뉴..
  2. 2008.06.04 Platform Builder 5.0 Emulator:x86 에러..
  3. 2008.05.27 LX800에서 이더넷 다운로드 시 리붓되는 문제
  4. 2008.02.05 LX800 QVGA(320x240) 해상도 적용
  5. 2008.01.30 CEPC 해상도 조절
  6. 2008.01.25 제어판에 네트웍 설정 추가하기
  7. 2007.12.24 RDP를 이용한 Seamless환경..
  8. 2007.12.24 Windows CE해상도 수정..
  9. 2007.12.04 LDAP란.. 무엇일까요?
  10. 2007.11.22 LX800(X86) Hive Based Registry 구성..
2008. 6. 25. 13:44

Windows CE 6.0 빌드 메뉴..



Windows Embedded CE 6.0을 가지고 이런 저런 작업들을 하곤 하지만.. 아무 생각없이 Build Solution을 클릭해서 빌드를 하곤 한다.

빌드 시간이야.. 뭐.. 일단 Build Solution 해 놓구선 다른 작업을 하다보면 빌드가 완료되어 있으므로.. 별 신경을 쓰지는 않고 있지만.. 사실 빌드 메뉴에 대한 내용을 알고 사용하는 것도 좋을 것 같다는 생각이 드는건.. ^^;

책이나 문서들을 보면 대충 빌드 메뉴에 대한 자료는 꽤 있는 듯하지만.. 나름 여기 저기 자료를 보구서 살짝 정리를 해보려 한다. 뭐 이 글을 보구서 이거 어디서 본거하고 같니 마니.. 이런 말들은 안해 주었으면.. 하는데.. ^^;

Windows Embedded CE 6.0의 Build menu에는 다음과 같은 것들이 있다.
사용자 삽입 이미지
Windows Embedded CE 6.0 Build Menu


Build Solution
Advanced Build Commands의 Sysgen과 동일한 명령으로 보면 된다.

Rebuild Solution
Advanced Build Commands의 Clean Sysgen과 동일한 명령으로 보면 된다.

Clean Solution
release 디렉토리의 모든 파일을 지운다.


Advanced Build Commands

Sysgen
SYSGEN -> BUILD -> BUILDREL -> MAKEIMG 의 작업을 진행한다.
  • SYSGEN : 현재 플랫폼의 구성요소들의 SYSGEN_XXX와 같은 환경변수를 생성한다. 이 환경변수를 기반으로 플랫폼 빌더가 제공하는 WinCE 를 위한 기본 구성요소들을 $(_PUBLICROOT)에서 개발자가 생성한 작업공간으로 복사를 한다.준비한다.
  • BUILD : 개발자가 생성하려는 플랫폼의 BPS를 빌드하는 과정이다. SYSGEN_XXX 과 같은 환경변수에 의한 선택적인 모듈들이 빌드되도록 작성된다.
  • BUILDREL : 위의 결과물들을 Release 폴더에 복사를 한다.
  • MAKEIMG : .reg, .bib 파일들을 통합하여 reginit.ini, ce.bib 파일을 만들고, 이 파일들의 내용을 기반으로 OS Image를 만든다.
Clean Sysgen
이전에 Sysgen의 결과물로 생성된 파일들을 Clean하고 다시 시스젠을 실행한다.

Build and Sysgen
플랫폼 빌더가 제공하는 Common 요소들을 빌드한다. 그리고 나서 SYSGEN 과정을 진행한다. 이는 Common요소(PUBLIC 폴더)를 수정하였을 경우에 사용한다.
참고로, SYSGEN이 먼저 일어나고, BUILD과정 중에 PUBLIC폴더의 빌드가 일어난다. SYSGEN이 선행되어야 BUILD 시 필요한 요소가 무엇인지 알수 있기때문이다.

Rebuild and Clean Sysgen
Build and Sysgen에 Clean 이 추가된 것으로 볼 수있다. 하지만... 안쓰는게 좋다는..

Build Current BSP and Subprojects
BSP와 subproject를 빌드한다.
하지만 일반적으로 Build Menu에서 Global Build Settings의 Copy Files to Release Directory After Build와 Make Run-Time Image After Build를 체크하기 때문에 빌드와 동시에 결과물을 Release 디렉토리로 복사하고 관련된 파일들을 묶어 OS Image를 만들어 준다.

Rebuild Current BSP and Subprojects
Build Current BSP and Subprojects와 동일한 작업을 한다. 기존의 object 파일을 삭제하고 다시 빌드한다.


2008. 6. 4. 21:20

Platform Builder 5.0 Emulator:x86 에러..



간만에 Windows CE 5.0으로 할 일이 생겨서 기존의 Windows Embedded CE 6.0을 제거했다.
대략 Platform Builder의 버그 정도로.. Windows Embedded CE 6.0을 깐 상태에서는 Windows CE 5.0이 제대로 깔리지 않으니깐... 지우고 새로 까는 그런 노가다를.. -_-

뭐.. 여튼 꽤 시간을 들여 CE 6.0을 제거하고, CE 5.0을 깔고 간단한 테스트로 Emulator로 빌드..

그리고 타겟에 연결을 하려고, Connectivity setting에들어가려하니.. 첨 보는 듯한 에러메시지가 뜨는게 아닌가...-_-

사용자 삽입 이미지

아.. 뭐지?? 하고 여기 저기 검색해보니..

세상에.. Windows Embedded CE 6.0이 제대로 제거되지 않아 생기는 현상이란다.. 제길.. 그렇게 시간을 들여서 그짓을 했건만..
그간 했던 그짓거리가 뻘짓이었다니.. ㅡ.ㅜ

해결책은 더 압권이었다...
대략 PC를 포맷하고 다시 설치하라는...

헐.. 완전 멋지지 않은가??
이게 CE의 세상이다!!! ㅋㅋ


2008. 5. 27. 12:03

LX800에서 이더넷 다운로드 시 리붓되는 문제



LX800을 가지고 Windows Embedded CE 6.0작업을 했었고.. 요즘도 틈틈히 작업을 하고 있는데... ^^;
계속 USB를 가지고 Nk.bin 이미지를 HDD또는 SSD에 하드카피해서 부팅하는 방식을 사용했었다.

그러다 문득.. 하드카피 말고.. eboot를 사용해 이더넷으로 다운로드를 해야할 상황이 발생해 버린것..
여기 저기 자료도 찾고, 아는 분을 통해 질문도 하고 해서 정상적으로 다운로드를 할 수 있게 되었다. 하는 도중 몇가지 팁이랄까? 그런게 있어서 일단 포스팅!!

기억력의 감퇴로.. 다음에 하면.. 해결을 하지 못할 듯 해서.. -_-;;

아... 이것도 대략 두 주 전에 했던 작업이라.. 기억이 ㄷㄷㄷ

음..
아... 이더넷으로 다운로드 할 때 문제점 중 하나가 다운로드 중 자꾸 죽는 현상이 발생했다. 리붓되고,  또 리붓되고... -_-

이에 대한 문제점은 RTL8139의 소스를 약간 손을 보는 것으로 해결을 했다. 물론.. 검색의 힘으로.. ^^;
아.. 참고로 이더넷 다운로드를 하려면.. RTL8139를 사용하는게 가장 나을 듯 하다.. 아니면.. 다른 CE Platform Builder가 제공하는 이더넷 카드를 사용하던지..
이에 대한 부분은 "..\PUBLIC\COMMON\OAK\DRIVERS\ETHDBG" 이 부분을 참조하면 될 듯 하다. CE에서 제공하는 이더넷 드라이버들인듯...

아.. 다시 원점으로 돌아가서.. 다운로드 시 리붓되는 현상을 막기 위해서는..
"..\PUBLIC\COMMON\OAK\DRIVERS\ETHDBG\RTL8139\rtl8139.c"
에서 RTL8139GetFrame()이라는 함수를 수정해 주면 된다... 된다고 한다.. ^^;

RTL8139GetFrame()에서 다음의 부분을 찾아서 주석처리를 해주자!!
if (PacketHeader.usPacketHeader & BAD_RX_PACKET)
{
 /*   
            PRINTF (1, ("Bad RX packet [Header: 0x%x -- Length : [%d]]...\r\n",
                PacketHeader.usPacketHeader,
                PacketHeader.usPacketLength));

            // ack the interrupt so we can get interrupted again
            WRITE_PORT_USHORT(
                RTL_ISR,
                dwISR & 5 );
   
            pucRxBuffer = ExtractData(
                            pucRxBuffer,
                            sRTL8139.pucRxBuffer,
                            sRTL8139.puLastRxAddress,
                            pbData,
                            PacketHeader.usPacketLength);

            sRTL8139.dwCurrentRxOffset =
                (pucRxBuffer - sRTL8139.pucRxBuffer + 3) & ~3;

            WRITE_PORT_USHORT(
                RTL_CAPR,
                (USHORT)(sRTL8139.dwCurrentRxOffset - 0x10));

*/
            return 0x00;
}

다시 빌드하고 이더넷 다운로드를 해보면, 기존의 다운로드 중 리붓되는 현상을 보지 않아도 될 것이다.
괜히 기분이 좋아진다. ㅋ

출처 : WEEG

WEEG 사이트는 CE를 하면서 많은 도움을 받는 곳 중 하나이다. 그것두.. 한글로 되어있다 ㅋㅋ
다만... X86계열의 자료가... -_-;;


'작업장 > LX800' 카테고리의 다른 글

LX800 QVGA(320x240) 해상도 적용  (0) 2008.02.05
LX800(X86) Hive Based Registry 구성..  (0) 2007.11.22
X86 보드에서 HDD로 바로 부팅하기!  (0) 2007.11.15
2008. 2. 5. 14:24

LX800 QVGA(320x240) 해상도 적용



일을 하다보면 자꾸 자꾸 스펙이 바뀌고.. 또 예상치 못한 작업들이 발생한다.. ㅡㅡ;

현재 Windows Embedded CE 6.0에서 LX800으로 하는 작업이 있는데.. 기존에 LCD패널에서 '800x480'로 해상도를 잡으라 하여 잡았더니.. 더 큰 LCD로도 작업을 할 수 있다하여.. '1024x768'로 다시 세팅을 했고, 이번엔.. 3~5인치정도의 LCD도 사용할 수 있을 것 같다 하여.. 'QVGA(320x240)'로 다시 작업하고 있다...

대충 LX800의 해상도는 AMD에서 제공하고 있는 lxvideo라는 디바이스 드라이버에서 몇몇 부분을 수정해 줌으로 해결할 수 있다.
수정 포인트는 대략(지금까지 수정을 하여 LCD혹은 CRT를 통해 정상적으로 이미지를 출력했던 곳) 이 두 파일(lxvideo.reg, cim_modes.c)이었던걸로 기억한다.

처음 lxvideo.reg 파일을 열고 대충 훑어보니... 최저 해상도가 "640x480"으로 되어있어서 LX800은 QVGA가 지원이 되질 않는 줄 알았다. -_-
여기 저기 구글링을 해가며 문서를 뒤지다 보니 LX800제품에도 버젓히 QVGA 해상도의 제품도 있고, 데이터 시트에도 "Supports down to 7.652 MHz Dot Clock (320x240 QVGA)"이란 문구가 딸랑 한줄 있었다.

하기야 embedded용으로 나오는 제품이 QVGA를 제공 안한대서야...ㅡㅡ 쫌 그렇지 않나?

cim_modes.c파일을 보면, 맨 위에 320x240이라는 부분이 있다.
일반적으로 Refresh Rate를 60 Hz로 사용하는 것 같던데.. 여기선 75Hz로 사용 하는 것 같다.
데이터 시트에는 "down to 7.652MHz Dot Clock"라 하여 이부분 맞춰주고 열라 삽질 했었는데... 이리 저리 하다가 기본적으로 제공하는 거(31.2000MHz) 함 써보자 하여, BIOS세팅 대충 맞춰주고, lxvideo.reg 파일 대충 수정해주고 하니.. QVGA로 LCD에 뿌려주더군...ㅡㅡ;

아나... 언제쯤 삽질 안하고 바로 바로 해결할 수 있을지...

QVGA부분은 웹에도 관련 자료가 거의 없고, 대부분 리눅스 자료였는데.. 뭐 어차피 그놈이 그놈이니...
기본적으로  AMD에서 제공하는 내용이 다여서.. 그리 크게 의심이나 심각한 삽질은 안했다고 생각한다.

뭐.. 끝!!!

아... 이런거 사진이라도 찍어서 올려야 하는데... 사진기가 없어서... -_-


2008. 1. 30. 10:24

CEPC 해상도 조절



펜티엄 3에 CEPC를 올리는 작업을 하던 중.. 해상도 문제로 고민(800x600인지.. 600x480인지 모르겠지만.. 여튼 열라 낮은 해상도로 display되고 있음..)을 하고 있다가..

해결을 해버려서.. 즐거운 마음에 포스팅!! ㅋ

LX800같은 경우에는 디스플레이 관련 디바이스 드라이버가 있어서 해당하는 .reg파일 내에서 해상도를 수정해 주었던 것으로 기억한다.
하지만.. CEPC쪽에서는 그런 디스플레이 관련 디바이스 드라이버를 찾을 수 없었다. 있었는데.. 못찾았는지는 모르겠지만.. -_-;

여튼 처음 이미지를 올릴 때 해상도를 고정시킬 수 있는 방법이 있는것 같았다..
전에 loadcepc ~ 를 했을 때 해상도를 입력했던 기억이 있어서...

여기 저기 구글링, 네이버질... 을 하다가 대충 쓸만한 건데기를 건진듯..

WindowsForDevices.com 이라는 사이트인데.. 전에도 여기서 좋은 자료, 도움 되는 자료를 꽤 본 듯 하다.
이 문서에 따르면.. 'Boot.ini' 파일에서 'DisplayWidth', 'DisplayHeight', 'DisplayDepth'를 수정하여 쓸 수 있는 것 같다.

CEPC에서 제공되는 Boot.ini파일을 보니 기본적으로
DisplayWidth=600
DisplayHeight=480
DisplayDepth=16
으로 되어 있었다.

이 부분을 대략 자신이 원하는 해상도로 바꾸어 주면 된다.

본인의 경우는 아래와 같이 수정해 주었다.
# Display screen width
DisplayWidth=1024

# Display screen height
DisplayHeight=768

# Display screen depth
# Possible values: 8, 15, 16, 24, 32
DisplayDepth=16

이렇게 수정하고 이미지를 올리니 진정 원하던 1024x768의 해상도를 구경할 수 있었다!!! 기쁘다..

2008. 1. 25. 11:15

제어판에 네트웍 설정 추가하기



현재 ThinClient를 위한 Windows Embedded CE 6.0 이미지를 제작하고 있다.
디폴트로 이미지를 생성하니.. 아이피를 변경할 수 있는 부분이 없어서.. 한참을 고민했다... -_-

이미지를 생성할 때 이놈의 아이피를 .reg에 넣는 수밖에 없는가... ㅡㅡ; 라고..

이리 저리 ThinClient의 기능을 만지작 거리다 보니 제어판으로 들어갈 수 있는 부분(초기화면에서 F2키를 누름)이 있더군..
근데.. IP를 세팅할 수 있는 부분이 여기도 없다..
그래서 결론은 "이 제어판에 아이피 세팅하는 부분을 추가하자!" 이다.

아래 그림과 같이 OS Design을 할 때 Catalog Items View에서 "Network User Interface"라는 녀석을 추가해 주면 된다.
사용자 삽입 이미지

관련된 정보는 MSDN에서 찾아 확인 할 수 있다.

Network User Interface

Windows Embedded CE provides the Network User Interface (NetUI) that defines configuration settings for the Network and Dial-up Connections icon in Control Panel.

Network User Interface OS Design Development 
        Presents Network User Interface information that is helpful for designing and developing a Windows
        Embedded CE OS. This includes dependency information, the modules and components that
        implement Network User Interface, and implementation considerations.

Network User Interface Migration 
        Presents information that is important to know if you are migrating from one version of Windows
        Embedded CE to another.

Network User Interface Samples 
        Describes sample code that is available in the %_WINCEROOT%\Public\Common\Oak\Drivers
        \netui directory.

Network User Interface Reference 
        Provides language reference information for the Network User Interface functions and structures.

Network User Interface Reference
 
        Provides language reference information for the Network User Interface functions and structures.

Networking - Core 
        Provides conceptual and reference information about general networking technologies.
추가로.. 이녀석을 추가시키니.. 빌드가 되지 않고 자꾸 에러가 발생했다.
원인을 잘 모르겠고.. 사실 안될 구석이 없었기에..
결국 'Build -> Clean Solution'을 해주고나서 'Build -> Build Solution'을 해주니 정상적으로 빌드가 되는 것이다.

뭐 이런게 다있지?? 라는 생각도 있지만, 하나의 경험으로 생각하고 넘어감!! 나중에 이런 경우가 발생한다면 Clean Solution을 하고 다시 Build Solution을 해주면 정상적으로 빌드가 될 수도 있다는 '노하우'를 얻었으니..

2007. 12. 24. 17:44

RDP를 이용한 Seamless환경..



RDP를 이용해서 Seamless한 환경을 구축할 수 있다.
Seamless환경이라는 것은 쉽게 말해 원격에 있는 프로그램을 마치 자신의 기계에서 실행되는 듯한 느낌을 주는 환경이다. 원격의 워드 프로그램을 실행시키지만, 실행되는 환경은 사용자로 하여금 자신의 기계에서 실행되는 듯한 느낌을 주게 되는 것이다.

Windows XP에서는 아주 멋진 Seamless환경을 사용할 수 있는데.. WindowsCE에서는 뭔가 2%가 부족하다.
Windows CE의 경우는.. Seamless한 환경을 제공하는 프로그램을 실행시키게 되면, RDP와 같이 동작하게 된다. 사용자로 하여금 Seamless하다고 느끼지 못하게 한다.

Seamless를 구축한 환경은 Windows Server 2008을 서버로 사용하고 Client로는 Windows Embedded CE 6.0을 사용하였다. 일단 RDP 6을 제공하므로..

기본적으로 CE 이미지를 만들때 Catalog Items View에서 RDP관련된 내용을 추가시켜 주어야 한다.

Windows Server 2008의 제어판을 보게 되면, Administrative Tools라는 것이 있다. 이곳에서 Server Manager라는 곳에 들어가 Roles의 Terminal Services의 TS RemoteApp Manager를 클릭한다.
Control Panel > Administrative Tools > Server Manager > Roles > Terminal Services > TS RemoteApp Manager
이 곳에서 Remote로 동작시킬 프로그램들을 등록하고 .rdp라든지 .msi 형식의 파일을 생성해 낼 수 있다.
이렇게 해서 만들어지는 파일들은 Client에서 원격으로 Seamless한 환경으로 동작될 수 있는 파일들이다.

이 파일들을 Windows CE의 Windows폴더에 복사해 넣고 실행을 시키면, 멋지게 원격 프로그램을 실행시킬 수 있다!!!


2007. 12. 24. 11:32

Windows CE해상도 수정..



현재 개발중인 LX800은 800x480의 해상도를 가지는 LCD패널에 출력을 한다.
잠시 시연을 위해 1024x768의 해상도를 갖는 LCD모니터에 연결을 하여 출력을 하니.. 이거 너무 더럽게 나온다.. ㅡㅡ;

결론은 CE의 해상도를 1024x768로 수정..

Windows Embedded CE 6.0에서는 GeodeLX의 비디오 디바이스 드라이버 쪽에 .reg파일에 해상도에 관련된 부분이 있다. 그 부분을 수정해 주면 된다.

lxvideo.reg
; HIVE BOOT SECTION

;Use anti-aliased fonts ( if uncommented )
;[HKEY_LOCAL_MACHINE\SYSTEM\GDI\FONTSMOOTHING]

[HKEY_LOCAL_MACHINE\Software]
[HKEY_LOCAL_MACHINE\Software\AMD]
[HKEY_LOCAL_MACHINE\Software\AMD\Versions]
    "Graphics"=dword:00010103

[HKEY_LOCAL_MACHINE\Software\Geode]
;"Resolution"="800 480 60"                              ;기존의 해상도 주석..
"Resolution"="1024 768 60"                              ;새로운 해상도 적용..

;"FrameBufferDepth"=dword:20
"FrameBufferDepth"=dword:10

"EnableCompression"=dword:1
"ClearFrameBuffer"=dword:1
"BackBufferSupport"=dword:1
"SimultaneousCRT"=dword:1

"EnablePanel"=dword:1
"BiosInitPanel"=dword:0

;"PanelWidth"=dword:320                                 ; 기존의 해상도 주석처리
;"PanelHeight"=dword:1E0  
"PanelWidth"=dword:400                                 ; 새로운 해상도 적용
"PanelHeight"=dword:300

[HKEY_LOCAL_MACHINE\SYSTEM\GDI\ROTATION]
"Angle"=dword:0    ;0, 5A, B4, 10E;

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\PCI\Template\lxvideo]
   "Prefix"="DDI"
   "Dll"="lxvideo.dll"
   "Order"=dword:0
   "Class"=dword:03
   "SubClass"=dword:00
   "ProgIF"=dword:00
   "VendorID"=multi_sz:"1022"
   "DeviceID"=multi_sz:"2081"

[HKEY_LOCAL_MACHINE\Software\Microsoft\DirectX\DirectShow\Video Renderer]
"MaxBackBuffers"=dword:2

[HKEY_LOCAL_MACHINE\System\GDI\Drivers]
"Display"="lxvideo.dll"

; END HIVE BOOT SECTION

이렇게 수정한 후 빌드하면.. 간단히 적용이 된다는... ^^;

2007. 12. 4. 10:35

LDAP란.. 무엇일까요?



'LDAP(Lightweight Directory Access Protocol)'이란.. 무엇일까요?

[텀즈]에 있는 LDAP의 정의를 보면 다음과 같다.
'LDAP'는 조직이나, 개체, 그리고 인터넷이나 기업 내의 인트라넷 등 네트웍상에 있는 파일이나 장치들과 같은 자원 등의 위치를 찾을 수 있게 해주는 소프트웨어 프로토콜이다. LDAP는 DAP의 경량판(코드의 량이 적다)이며, 네트웍 내의 디렉토리 서비스 표준인 X.500의 일부이다.
네트웍에서 디렉토리란 어떤 자원이 네트웍상의 어디에 있는가를 알려준다. 인터넷을 포함한 TCP/IP 네트웍에서, DNS는 특정 네트웍 주소와 도메인 이름 사이의 관계를 나타내는 디렉토리 시스템이다. 그러나, 때로는 도메인 이름조차 모를 수 있는데, LDAP는 개체가 어디에 있는지 알지 못하더라도 그것을 검색할 수 있게 한다.

LDAP 디렉토리는 다음과 같은 계층으로 구성된 단순한 트리구조이다.
  • 루트 디렉토리(시작 위치 또는 트리 구조의 근원),
  • 국가들
  • 기관들
  • 기관별 단위
  • 개체들(사람, 파일 및 프린터 등과 같은 공유자원들)
LDAP 디렉토리는 많은 서버들 사이에 분포될 수 있고, 각 서버는 전체 디렉토리의 사본을 가질 수 있으며, 그 내용이 주기적으로 동기화된다. LDAP 서버는 DSAc(Directory System Agent)라고도 불린다. 사용자로부터 요청을 받은 LDAP 서버는 요청에 대한 책임을 지며, 필요하다면 그것을 다른 DSA들로 전달하지만, 사용자에게는 공동 작용을 통한 단일 응답을 보장한다.
마이크로소프트에서는 '액티브 디렉토리(Active Directory)'라고 부르는 제품의 일부로서 LDAP를 포함하고 있다.
현재 Windows Embedded CE 6.0에서는 LDAP ver.3.0을 지원하고 있다.

음.. 자세한 내용은 잘 모르겠지만.. 하다보면 알게 되겠지.. ㅡㅡ

'Windows Embedded > Windows Embedded CE 6.0' 카테고리의 다른 글

Windows CE에서 Debug Port 설정  (0) 2007.12.06
Windows CE Boot Loader의 흐름  (0) 2007.12.05
Windows CE Ship Build  (0) 2007.11.30
부트로더(Bootloader)  (0) 2007.11.28
Hive 가반의 Registry..  (0) 2007.11.23
2007. 11. 22. 20:48

LX800(X86) Hive Based Registry 구성..



여기 저기 문서 찾고 삽질하다가 갑자기 Hive가 되는 듯 하다..

정말 잘 모르겠는데.. 왜 되지?? ㅡㅡ;
삽질을 하긴 했지만 동작이 되고나니.. 왠지 촘 뿌듯해지기도 하면서.. 조금 짜증이 나긴 하는데..
흠... ㅡㅡ;

ARM이나 다른 것들은 어렵게 하는것 같던데.. 하고 보니 LX800은 이상하리만큼 간단(?)했다.

Hive Registry를 구성한 환경은 다음과 같다.
  • Platform Builder 6.0 R2
  • LX800
  • HDD(20G)
Hive Registry를 구성한 방법(?)
1. Catalog Items View에서 다음 컴포넌트를 추가한다.
  • ROM-only File System
  • Hive-based Registry
  • FAT File System
2. 환경변수를 세팅한다.
  • PRJ_BOOTDEVICE_ATAPI=1
  • PRJ_ENABLE_FSMOUNTASROOT=1
  • PRJ_ENABLE_FSREGHIVE=1
3. .reg파일에 다음과 같은 내용이 포함되어 있어야 한다.
; HIVE BOOT SECTION
IF SYSGEN_FSREGHIVE
[HKEY_LOCAL_MACHINE\init\BootVars]

   "SystemHive"="\\Documents and Settings\\system.hv"
   "ProfileDir"="\\Documents and Settings"

   "RegistryFlags"=dword:1               ; Flush hive on every RegCloseKey call
   "SystemHiveInitialSize"=dword:19000   ; Initial size for hive-registry file is 100K bytes
[HKEY_LOCAL_MACHINE\System\StorageManager\Profiles]
    "MountFlags"=dword:2
;[HKEY_LOCAL_MACHINE\System\ObjectStore]
;    "RegistryType"=dword:1
ENDIF ;SYSGEN_FSREGHIVE

[$(PCI_BUS_ROOT)\Template\OHCI]
   "HcdCapability"=dword:0      ;HCD_SUSPEND_ON_REQUEST|HCD_SUSPEND_RESUME

; END HIVE BOOT SECTION

4. 레지스트리에서 Hive를 적용하고자 하는 부분에 다음 부분을 추가한다.
  • ;HIVE BOOT SECTION (시작 부분)
  • ;END HIVE BOOT SECTION (끝 부분)
5. Build!!!!!

테스트...
  • Hive Registry구성을 한 이미지를 보드에 올리고 눈에 보일만한 약간의 수정을 가한다.
  • 재부팅!!
  • 아까 눈에 보일만한 약간의 수정의 상태로 부팅을 하는지를 본다.
환경변수에 대한 참고 : MSDN