윈도우 XP 임베디드 개발 팁&테크

일반입력 :2003/05/23 00:00

최태영 이주영

Q. XPE 시작시 자동 로그온 방법을 알려주세요.

A. 다음과 같이 레지스트리에 등록하면 된다. 다음 보기는 On 설정법이고 이와 반대로 하면 Off가 된다. regedit를 실행한 후 >HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon 항목에서 오른쪽 마우스를 클릭하여 새 문자열 값으로 다음 값을 등록한다.

Q. File 에러 해결 방법은 무엇인가요.

A.「TD->Tools->Options->Build」에서 Extras의 내용을 해당 드라이버 파일이 있는 디렉토리로 지정한다.

Q. 블루 스크린(BAD_SYSTEM_CONFIG_INFO 에러) 해결 방법을 알려주세요.

A. 윈도우 2000과 윈도우 XP 임베디드는 멀티 부팅이 안된다. 윈도우 2000을 윈도우 XP로 바꾸거나 ‘C:’로 부팅해 본다.

Q. TCP/IP 컴포넌트를 이용해 네트워크 설정을 어떻게 하나요.

A. 「TD->Option」 항목을 보면 어드밴스드의 컴포넌트 값이 1000이라면 100으로 변경한다. 그러면 감추어진 컴포넌트를 볼 수 있다. 네트워크 구성 컴포넌트가 추가되어 있는지 확인한다. 그리고 빌드 후 시작 메뉴에서 제어판으로 이동해야 하는 데, 이때 제어판 메뉴가 나오지 않을 경우 CMD.EXE 실행 후 control.exe를 입력한다. TCP/IP수동 변경 레지스트리를 이용하기 위해서는 먼저 regedit를 실행한다. 그리고 다음과 같이 레지스트리를 수정한다.

① HKEY_LOCAL_MACHINE->System->ControlSet001->Service->

{...}->parameters->TCP/IP

② HKEY_LOCAL_MACHINE->System->ControlSet001->Service->

TCP/IP->parameters->interface->{...}

Q. 이미지 빌드 후 한글이 깨지는 현상이 발생했습니다. 어떻게 해야 하나요.

A. status bar나 menu bar의 한글이 그냥 ‘네모’로 표시되어 한글이 깨지는 현상으로 Korean MUI(Multilingual User Interface) 컴포넌트가 업데이트되지 않아서 생기는 것이다. http://www.microsoft.com/windows/embedded/xp/downloads/default.asp에서 MUI Pack Korean를 선택하여 다운받은 후 LANGKOR.EXE 파일의 압축을 해제한다. Component Database Manager에서 LANGKOR.SLD 파일을 임포트한 후 TD에서 새로 이미지를 빌드하면 된다. Regional and Language Option 컴포넌트를 Korean으로 설정한다. 그리고 TD의 구성 메뉴에서 Upgrade 구성을 하고 빌드하면 된다.

참고로 중국어, 일본어 등의 언어 지원도 앞과 같이 MUI 설치하면 된다. http://www.microsoft.com/windows/Embedded/xp/downloads/mui/default.asp를 참조하면 된다.

Q. XPE에서 응용 프로그램을 돌릴 때 “The paging file is to small for this operation complete”와 같은 에러가 발생했습니다. XPE에서 이와 같은 에러 메시지가 발생하는 이유는 무엇인가요.

A. 관련 시스템을 설정할 수 있는 것은 컴포넌트 중에 standard PC 컴포넌트가 있는데, setting을 보면 오른쪽 창에 system와 advanced라는 두 개의 탭으로 나눠진 창에 보이게 된다. available에 보면 세 가지 항목에 대해setting을 할 수 있다.

① system identification : 컴퓨터 이름, 등록된 사용자, 등록 기구, 작업그룹 멤버십에 대해 작성할 수 있다.

② system pagefile : 여기서 pagefile 크기를 조정하면 된다.

③ power management setting :타겟 보드의 용도에 따라 전원 관리에 적당한 항목을 선택해 주면 된다.

* ACPI를 사용하면 ACPI 컴포넌트에서, 사용하지 않으면 Standard PC에서 설정 가능하다.

Q. 컴포넌트 디자이너에서 ‘Component Create’ 시에 오류가 발생했습니다. 어떻게 해야 하나요.

A. 컴포넌트 디자이너에서는 드라이버 파일의 정보 중에 inf, DLL 등의 파일을 필요로 한다. 그러나 Setup이 들어 있는 경우에는 DLL 파일이 Dll_dkdk 등 압축되어 있다. 이 경우에는 Setup이 설치되면서 이 압축을 풀기 때문에 컴포넌트를 생성하고 사용시에 DLL 파일을 참조할 수 없는 오류가 발생한다. 직접 FBA가 끝난 다음에 Setup를 실행하여 드라이버를 설치하면 해결할 수 있다.

Q. 제어판 관련 컴포넌트는 무엇인가요.

A. 제어판이 보이지 않는다면 User Interface Core 컴포넌트 설정 값을 수정한다. 제어판을 실행하는 명령어는CMD.exe에서 control.exe를 실행한다. 제어판 관련 컴포넌트는 ‘Software -> System -> User Interface -> Shells -> Windows Shell에 있다.

Q. EWF시에 USB 관련 장치를 설치하려고 합니다. 예를 들어 USB용 마우스나 키보드, 프린터를 설치하여 제품에서 쓰려고 하는데 USB와 관련된 컴포넌트는 무엇인가요.

A. System Services-Class Installer Universal Serial Bus Controllers를 이용한다. 예를 들어 로지텍 USB 마우스를 이용할 경우 H/W 섹션에서 관련 컴포넌트를 추가하면 된다.

Q. XPE 툴 설치시에 ‘Setup will now create a READ ONLY file share on this system called ’Repositories‘’ 오류가 발생했습니다. 어떻게 해결해야 하나요.

A. XPE를 설치하는 컴퓨터에 이름이 중복되어 일어나는 현상이므로 같은 네트워크에 있는 컴퓨터 이름과 중복이 안되도록 설정한 다음 툴을 설치하면 된다.

Q. 응용 프로그램이 설치가 안될 경우

A. Windows Installer Component, Win32 API 컴포넌트를 추가하면 된다.

Q. El-torito CD 작업시에 Delay Write Failed 오류가 발생했습니다. 어떻게 해결해야 하나요.

A. EWF 설정에서 Lazy write enable이 uncheck가 되어 있는데 check로 수정하면 된다.

Q. 네트워킹을 하기 위해 필요한 컴포넌트는 무엇인가요.

A. Platform은 P3 700Mhz(PFU), Peripheral은 Realtek RTL8139, basic tcp/ip networking, tcp/ip networking with client for ms network, tcp/ip networking with file sharing, Network Wizard setup 등을 추가하면 된다.

Q. 왜 FBA가 진행되는 과정에 한글 글꼴이 깨지는가요.

A. FBA가 진행하는 동안에만 한글이 깨지는 현상으로 SP1을 적용해 문제가 발생하는 것으로, 운용상에는 별 문제가 없다. 뉴스그룹에서 확인한 내용으로는 버그로 추정되며, 한국만 유독 이러한 버그가 있는 것으로 추후 패치가 공개된다고 한다.

Q. 프린터를 설치하면 디폴트 프린터가 동작하지 않는 이유는 무엇인가요.

A. 윈도우 XP 임베디드의 버그로 프로그램에서 프린팅시키면 디폴트 프린터가 없다고 표시되는 현상으로 이 버그는 SP1을 깔면 자동 해결된다.

팁 1. W32.Slammer 웜에 대한 대처 방안

W32.Slammer는 UDP 포트 1434를 통해 전파되는 메모리 상주형 웜으로, MS의 MS02-039 패치를 적용하지 않은 SQL 서버 시스템의 취약점을 이용하여 침투한다. 이 웜에 의해 인터넷 마비 현상이 발생했으며 윈도우 XP임베디드 툴에 포함되어 있는 SQL 서버 2000 MSDE(Microsoft Database Engine)의 영향을 받는다.

SQL 서버 2000 SP2 인스톨 후 MS02-039 패치를 적용하는 방법, UDP 1434 포트 차단 방법, SQL 서버 2000 SP3 적용 방법이 있다. 이중에서 SQL 서버 2003 SP3 방법을 권하며 적용 방법은 다음과 같다.

① 영문 MSDE 2000 SP3 다운로드(http://download.microsoft.com/download/e/9/4/e943e32d-1e1c-4700-abd9-4b3df9c9c495/SQL2KDeskSP3.exe)

② 상기에 다운로드한 파일을 실행하여 압축 해제(기본 폴더는 c:sql2ksp3임)

③ ‘시작->실행’에서 cmd.exe를 실행하여 프롬프트 창 호출

④ 상기 파일이 있는 폴더로 이동( 예 : C:> cd sql2ksp3msde)

⑤ 셋업 파일 실행(C:sql2ksp3msde> setup /upgradesp SQLRUN BLANKSAPWD=1)

⑥ 인스톨이 끝나면 재부팅 후 트레이 아이콘에 있는 SQL 서비스의 ‘about'을 통해 버전 확인(버전 8.00.760이면 정상적으로 업그레이드 완료된 것임)

참고로 W32.Slammer 웜은 SQL 서버가 이용하는 포트를 통해 감염되는 것이므로, XPE 툴과 상관이 있을 뿐 빌드된 이미지 혹은 이미 동작중인 윈도우 XP 임베디드 기반 시스템에는 전혀 영향이 없다.

팁 2. 파일 시스템 캐싱 메모리 증가시키기

NT 계열은 I/O 작업에 묶이는 램의 양을 제한하고 있다. IoPageLockLimit 값의 데이터를 다음과 같이 증가시키면어느 정도의 성능 향상을 기대할 수 있다.

키 : [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManageMemory Management]

값 이름 : IoPageLockLimit

값 형식 : REG_DWORD(DWORD Value)

값 데이터 : 0 = default

팁 3. 연속하는 파일 할당 크기 조정하기

다음의 설정은 파일 시스템의 연속하는 파일 할당 크기를 최적화하는 것이다. 다음의 키 값에 ‘200’을 설정하면, 디스크를 과도하게 사용하는 응용 프로그램에 아주 유용하다.

키 : [HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlFileSystemt]

값 이름 : ConfigFileAllocSize

값 형식 : REG_DWORD(DWORD Value)

값 데이터 : 200(hex) or 512(decimal)

팁 4. 파일 시스템 최적화

윈도우 XP에는 부팅시에 자동으로 디스크를 최적화하는 새로운 기능이 포함되어 있다. 다음의 키 값에 ‘Y’를 설정하면 윈도우 XP는 부팅하면서 디스크를 자동으로 최적화한다.

키 : [HKEY_LOCAL_MACHINESOFTWAREMicrosoftDfrgBootOptimizeFunction]

값 이름 : Enable

값 형식 : REG_SZ(String Value)

값 데이터 : (Y = enable, N = Disabled)

팁 5. 부팅 속도 향상

다음에 설명하는 방법은 MS에서 권장하는 방법이 아닌 ‘꽁수’에 해당한다(Prefetch 기술). Prefetch에 대해 설명하면 윈도우의 부팅 커널까지 포함하여 모든 프로그램 실행시 실행됐던 기계어와 실행하는 데 필요한 DLL 파일들의 주소를 파일에 저장해 놓고, 다음 번에 실행시 정보를 저장한 파일을 읽어 미리 하드디스크에서 RAM으로 로딩하게끔 하는 기술이다

① regedit 실행

② HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl

Session ManagerMemory ManagementPrefetchParameters로 이동

③ EnalbePrefetcher를 더블클릭해 값을 0으로 해준다.

④ 재부팅시에는 windowsprefetch에 파일이 저장되지 않는다. 참고로 1은 응용 프로그램 실행시, 2는 부팅시, 3은 언제나 사용하게끔 되어 있다. 기본 값은 3.

팁 6. 컴퓨터 끄기/재시작 단축 아이콘 만들기

일단 바탕화면에서 마우스 오른쪽 버튼을 누르고 ‘새로만들기 -> 바로가기’를 클릭해 명령줄에 다음과 같이 적는다.

◆컴퓨터 끄기 : C:WINDOWSsystem32shutdown.exe -s -t 01

◆컴퓨터 재시작 : C:WINDOWSsystem32shutdown.exe -s -t 01

◆GUI 모드 & 로그오프 : C:WINDOWSsystem32shutdown.exe -i

팁 7. DNS 캐시 설정으로 인터넷 속도 향상시키는 방법

특정 네트워크에 속한 특정 호스트에 접속하기 위해 일일이 숫자로 된 IP 주소를 기억하지 않고 도메인 네임만으로도 가능하게 하기 위하여 도메인 네임을 IP 주소로 전환시켜 주는 시스템을 DNS 서버라고 한다. DNS는 브라우저에도메인 네임을 적으면 도메인 네임을 IP로 전환하는 작업을 하게 된다. 이 작업 시간을 줄이는 방법으로 DNS맵핑 정보를 DNS 캐시에 저장해 접속할 때마다 DNS를 조회하지 않고 해당 사이트에 바로 접속하게 할 수 있다.

① 시작->실행->REGEDIT를 실행

② HKEY_LOCAL_MACHINESYSTEMCurrentControlSet

ServicesDnscacheParameters로 이동

③ 해당 경로에서 마우스 오른쪽 단추를 눌러 새로만들기 -dword 값을 만든다.

CacheHashTableBucketSize값 : 1

CacheHashTableSize값 : 384

MaxCacheEntryTtlLimit값 : 40000

MaxSOACacheEntryTtlLimit값 : 301

* 모든 값은 10진수 값임

④ 시작->실행->msconfig 서비스에서 DNS Client 서비스가 작동중인지 확인하고 체크아웃되어 있으면 체크한다.

팁 8. 디스크 공간 부족 메시지 디저블하기

기본으로 이 메시지를 디저블하는 옵션은 없다. 그래서 다음과 같이 XPE가 동작되는 이미지에서 직접 레지스트리로이동해 디저블시켜야 한다.

HKCUSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer

HACU(=HKEY_Current_User)

NoLowDiskSpaceChecks라는 이름으로 REG_DWARD 값을 1로 설정한다.

팁 9. XPE에서 회사와 사용자 이름 바꾸기

간단한 레지스트리 수정을 통해 바꾼다. 「시작 -> 실행 -> regedit 입력 -> 엔터 -> HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersion」에 들어가면 RegisteredOrganization과 RegisteredOwner 값이 있는데, 전자는 회사 이름이고 후자는 사용자 이름이다. 두 값의 데이터를 수정한 후 로그오프나 시스템 다시 시작을 하면 변경사항이 적용된다.

팁 10. MS 디바이스 드라이버 인증 사이트 WHQL

디바이스 드라이버 제작 후 MS의 인증을 받은 드라이버는 WHQL이라는 네임이 붙는데, http://www.microsoft.com/hwtest/default.asp 사이트에 접속하면 이에 대한 정보를 볼 수 있다.

임베디드 디바이스 개발의 애로사항

지금까지 윈도우 XP 임베디드의 기본 개념은 물론, 실무에서 많이 다뤄지는 FAQ와 팁을 살펴봤다. 모든 임베디드 디바이스 개발의 애로점이라고 하면, 너무나 다양한 사양의 디바이스로 인해 업체간에 서로 공유할 수 있는 부분이 많지 않다는 점이다. 그래도 윈도우 XP 임베디드는 타 임베디드 OS에 비해 이미 검증된 수많은 드라이버들을 구하기가 쉽고, 개발 기간이 가장 짧아 상대적으로 손쉽게 접근할 수 있는 임베디드 OS가 아닌가 생각한다.@