Windows상에서 QEMU를 컴파일 하는 방법.
1. MinGW, MSYS 설치
- MinGW 자동설치 파일 "MinGW-5.1.6.exe" 다운로드
- MSYS 설치파일 "MSYS-1.0.11.exe" 다운로드
다운로드한 MinGW와 MSYS를 설치한다.
2.QEMU 소스코드 다운로드.
QEMU사이트 에서 최신 소스코드(qemu-0.12.2.tar.gz)를 다운로드 한다.
(현재 링크된게 "qemu-0.12.3.tar.gz"으로 되어 있을것이다. 그리고 다운로드도 안될것이다.
실제로 파일들을 보면 최신 버전은 "qemu-0.12.2.tar.gz"이며 이 파일밖에 존재하지 않는다.)
3. zlib 소스코드 다운로드
zlib-1.2.3.tar.gz 다운로드
4. SDL-1.2.14.tar.gz 소스코드 다운로드
5. 소스코드 컴파일
- "c:\msys\work"에 소스코드들(qemu-0.12.2.tar.gz, zlib-1.2.3.tar.gz, SDL_1.2.14.tar.gz)을 복사한다.
("c:\msys\work"의 작업 경로는 편의상 정한것임. 다른곳에 해도 무방)
- MSYS를 실행.("C:\msys\1.0\msys.bat"를 실행.)
MSYS가 실행되고 리눅스 콘솔과 같은 까만 화면의 창이 하나 실행된다.
이후 부터는 MSYS에서 작업을 한다.
- 작업경로로 이동해 압축을 해제한다.
- zlib 컴파일
- SDL 컴파일
- QEMU 컴파일
빌드가 성공 했다면 "c:\msys\1.0\work\qemu_bin"에 바이너리 파일이 존재하는것을 확인할수 있다.
빌드 참고
컴파일 참고 사이트
1. MinGW, MSYS 설치
- MinGW 자동설치 파일 "MinGW-5.1.6.exe" 다운로드
- MSYS 설치파일 "MSYS-1.0.11.exe" 다운로드
다운로드한 MinGW와 MSYS를 설치한다.
2.QEMU 소스코드 다운로드.
QEMU사이트 에서 최신 소스코드(qemu-0.12.2.tar.gz)를 다운로드 한다.
(현재 링크된게 "qemu-0.12.3.tar.gz"으로 되어 있을것이다. 그리고 다운로드도 안될것이다.
실제로 파일들을 보면 최신 버전은 "qemu-0.12.2.tar.gz"이며 이 파일밖에 존재하지 않는다.)
3. zlib 소스코드 다운로드
zlib-1.2.3.tar.gz 다운로드
4. SDL-1.2.14.tar.gz 소스코드 다운로드
5. 소스코드 컴파일
- "c:\msys\work"에 소스코드들(qemu-0.12.2.tar.gz, zlib-1.2.3.tar.gz, SDL_1.2.14.tar.gz)을 복사한다.
("c:\msys\work"의 작업 경로는 편의상 정한것임. 다른곳에 해도 무방)
- MSYS를 실행.("C:\msys\1.0\msys.bat"를 실행.)
MSYS가 실행되고 리눅스 콘솔과 같은 까만 화면의 창이 하나 실행된다.
이후 부터는 MSYS에서 작업을 한다.
- 작업경로로 이동해 압축을 해제한다.
$ cd /work $ tar zxf zlib-1.2.3.tar.gz $ tar zxf SDL-1.2.14.tar.gz $ tar zxf qemu-0.12.2.tar.gz |
- zlib 컴파일
$ cd ./zlib-1.2.3 $ ./configure $ make $ make install |
- SDL 컴파일
$ cd ../SDL-1.2.14 $ ./configure --prefix=/mingw $ make $ make install |
- QEMU 컴파일
$ cd ../qemu-0.12.2 $ ./configure --target-list="i386-softmmu x86_64-softmmu arm-softmmu" --prefix=/c/msys/1.0/work/qemu_bin $ make $ make install |
빌드가 성공 했다면 "c:\msys\1.0\work\qemu_bin"에 바이너리 파일이 존재하는것을 확인할수 있다.
빌드 참고
qemu 빌드시 signrom.sh에서 에러가 발생하는 경우. "size=$(( $x * 512 - 1 ))"이 부분에서 syntex error가 발생할 경우 "x"의 값을 알수 없어서 나오는 경우다. x 를 살펴보면 "x=`dd if="$1" bs=1 count=1 skip=2 2>/dev/null | od -t u1 -A n`" 이렇게 되어 있는데 msys에서 dd명령어가 없거나 할 경우 해당 라인이 수행되지 않아서 그렇다. msys에 'dd'명령어가 수행 가능하도록 유틸리티를 설치 해준다. MSYS의 기타 파일은 http://sourceforge.net/projects/mingw/files/에서 구할수 있다. |
컴파일 참고 사이트
'작업일지 > QEMU' 카테고리의 다른 글
zlib 컴파일 (0) | 2011.01.26 |
---|---|
ARM Emulation With QEMU (0) | 2010.11.19 |
qemu, colinux network 작업 (0) | 2010.03.11 |
QEMU로 ARM에뮬레이팅 하기 (0) | 2010.03.01 |
QEMU (0) | 2009.12.27 |