리눅스와 윈도우, 어찌보면 자장면과 짬뽕과 같은 관계다.
요즘에는 리눅스에서 Wine 같은 에뮬레이터나 VMware, Virtualbox 같은 가상머신들의 완성도가 좋아져서 둘 중 하나를 포기해야 하는 일은 별로 없다.
하지만, 이것에도 Trade-off 는 있기 마련이다. 횟수로 9년이 되는 나의 노트북에 위의 에뮬레이터나 가상머신을 돌린다면 그야말로 버거운 일이다.
처음 목적은 윈도우 드라이버만 제공되는 USB-JTAG(EZ-AT7) 제품을 리눅스 환경에서 사용가능하게 하는 것이었다.
그래서 여러가지 삽질을 시도했었다.
- Wine : 단순히 워드나 오피스 같은 프로그램만 실행하는 것이라면 괜찮은 선택일 수 있다. 하지만 하드웨어와 연하는 드라이버 프로그램이라면 불가능하다.
- Virtualbox : USB-JTAG 장비를 인식하지 못했다. 하긴 Host OS 에서 인식을 못하니 그렇겠지만.
- VMware : 최근 버전은 노트북의 사양이 너무 낮아 설치가 불가능했고, 옛날 버전은 커널과의 충돌 때문에 역시 설치가 불가능했다.
결국 다른 방법을 찾아보게 되었고, Windows PE 라는 기술을 알게 되었다. Windows Preinstallation Environment의 약자로 이동매체 등에 넣을 수있는 윈도우를 말한다.
다시말해 Linux Live CD 같은 개념이다.
번거롭게 하드에 설치하여 윈도우를 사용하거나, 리눅스를 사용하는 동안 불필요하게 용량을 차지하는 일 없이, 윈도우를 이동식 디스크에 설치하여 필요할 때만 부팅해서 사용할 수 있다면 괜찮다 싶었다.
인터넷 검색 끝에 필요한 프로그램을 구해서 시도한 끝에, PE 환경에서 USB-JTAG 장비를 사용할 수 있었다.
준비운동 하기
필요한 소프트웨어는 다음과 같다.
- HP USB 프로그램 usb.zip
- Grub4Dos grubinst-1.1.zip
- 패치 파일 100120fix.zip
- Windows XP PE ISO 파일 winpe.by.athene20_2010.01.20_.iso.torrent : 토렌트를 통해 다운받는다
- DAEMON-Tools http://www.daemon-tools.cc/kor/downloads
USB 메모리 포맷
Grub4Dos 설정
리눅스 부트로더에 grub 가 있듯이 윈도우용 grub 가 있다. 앞서 받은 Grub4Dos 파일을 실행한다.
아래 그림의 순서대로 체크한 후에 Install 버튼을 누른다.
아래 창에서 엔터를 입력한다.
Windows PE 복사
DAEMON-Tools 프로그램을 설치한다. 설치하고, Windows XP PE 의 ISO 파일을 마운트한다. 마운트한 드라이브에 가서 모든 파일을 USB 메모리에 복사한다.
패치 하기
패치 파일(100120fix.zip)의 압축을 풀면 아래처럼 파일이 나오는 데, 이것을 USB 메모리에 복사한다.
복사 도중 아래 처럼 덮어쓸 것인지 묻는 창이 뜬다. 'Yes' 를 선택한다.
복사가 완료되면, 아래 그림과 같을 것이다.
여기서 BKMODIFIER 디렉토리로 들어간다.
여기서 DISK SIGNATURE, MBR CHECKSUM.CMD 를 실행한다.
아무키나 누른다.
역시 아무키나 누르면 창이 닫힌다. 이제 모든 과정은 끝났다.
지금껏 만든 USB 로 부팅시켜 확인해보자!
동작 확인하기
메인보드의 부팅 순서를 USB 로 정하고, 부팅시켜보자.
아래 그림과 같은 화면이 나온다면, 일단 부트로더까지는 성공이다.
위의 메뉴에 대해 잠깐 설명하고 넘어가야 겠다.
Universal Wndows PE 라는 항목이 2개가 보인다.
Uniprocessor과 Multiprocessor 2개가 있는데, 멀티코어 지원 유무에 따라서 선택하면 된다.
Hiren's BootCD 지원, Mini Windows XP 접속 가능(영문), 메모리 검사등이 있다.
나의 경우 싱글코어이기 때문에 Uniprocessor 를 선택했다. 아래 그림처럼 부팅화면이 뜬다.
윈도우 시작 전에 필요한 드라이버 파일들을 설치하는 과정이다.
모든 과정이 끝나고, 윈도우 부팅된 상태다.
마치 윈도우 별반 차이없이 느껴진다. 기본적으로 설치되어 있는 프로그램들은 시스템 고장이나 장애가 발생했을 때 필요한 유틸리티들이다.
부팅하면, 몇몇의 디바이스들이 안 잡혀 있는 경우가 많다. 이럴때는 '시작 → 프로그램 → System Tools → Hardware PNP → Install Devices(+Unknown Devices)' 를 실행한다.
나의 경우, 일부 디바이스(WiFi)를 제외하고 모든 디바이스들이 잡혀 있었다. 당연히 유선을 통해 인터넷도 가능하다.
USB-JTAG 사용하기
Winodow XP PE 를 만든 제작자가 사용자의 편의를 위해 왠만한 디바이스 드라이버(대개는 저장장치)는 설치를 해두었지만, 내가 사용하려는 장치는 인식하지 못했다.
Native 윈도우에서는 USB 디바이스를 꼽으면 플러그앤플래이로서 새 하드웨어 발견 창이 뜨지만 PE 의 경우는 그렇지 않았다.
아무런 메세지나 창도 뜨지 않았고, 시스템의 하드웨어 정보 창에도 별다른 변화가 감지 되지 않았다.
기본적으로 설치된 드라이버 이외의 드라이버를 추가로 설치하기 위해서는 별도의 프로그램이 필요하다.
'시작 → 프로그램 → System Tools → Driver Import(Remote)' 를 실행하여 'Folder(Inf-file)' 을 선택하면 드라이버 파일을 지정하여 설치할 수 있다.
ezjtag.zip 파일을 다운받으면, 드라이버 파일(inf) 이 들어있다. 2개의 파일을 설치하는데, 설치하면 하드웨어 정보 창에 USB 쪽에 'CP210X' 로 시작하는 디바이스가 보일 것이다. 또, 통신포트 쪽에 'CP210x' 로 시작하는 디바이스가 보일 것이다.
이제 모든 준비가 끝났다. USB-JTAG 장비를 꼽고, 부트로더를 보드에 써보자. 자세한 방법은 ez-at7_사용하기 를 참고한다.
Wi-Fi 사용하기(실패)
위와 같은 방법으로 노트북에 내장된 Wi-Fi 드라이버를 설치하여 인식하는 데는 성공했다. 하지만, 시작해야할 WCZ 서비스가 보이지 않았다. 그래서 사용할 수 없었다.