2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

QEMU에서 USB 장치를 에뮬레이트하는 방법은?

_____
Q: QEMU에서 USB 장치를 에뮬레이트하려면 어떻게 하나요?
A: QEMU는 다양한 USB 장치 에뮬레이션을 지원합니다. USB 장치 에뮬레이트 방법은 크게 두 가지로 나누어집니다: 가상 USB 장치 생성과 실제 호스트 USB 장치 패스스루입니다.

---

Q: QEMU에서 가상 USB 장치를 에뮬레이트하려면 어떻게 설정하나요?
A: QEMU 실행 시 `-device` 또는 `-usbdevice` 옵션을 사용합니다. 예를 들어, 기본 USB 키보드, 마우스, 저장장치 등을 추가할 수 있습니다.

예시:
```
qemu-system-x86_64 -m 2G -usb -device usb-mouse -device usb-kbd
```

주요 가상 USB 장치 유형:
- usb-mouse : USB 마우스
- usb-kbd : USB 키보드
- usb-storage : USB 저장 장치(iso, disk 이미지 연결 시)
임의 USB 장치가 아닌 기본적 입력장치/저장장치 등 에뮬레이트용으로 사용됩니다.

---

Q: 실제 호스트 USB 장치를 가상머신에 연결하려면 어떻게 하나요?
A: `-device usb-host` 옵션 또는 `-usbdevice host:bus:device` 옵션을 사용해 USB 패스스루를 설정할 수 있습니다.

1. 호스트 USB 버스 및 디바이스 번호 확인 (Linux 예)
```
lsusb
```
출력 예:
```
Bus 002 Device 004: ID 1234:abcd USB Flash Drive
```

2. QEMU 실행 시 해당 장치를 패스스루 하도록 명령에 추가:
```
qemu-system-x86_64 -m 2G -usb -device usb-host,hostbus=2,hostaddr=4
```

또는
```
qemu-system-x86_64 -m 2G -usb -usbdevice host:002:004
```

*`hostbus`는 "Bus" 번호, `hostaddr`는 "Device" 번호를 의미합니다.*

---

Q: QEMU USB 에뮬레이션 설정 시 필수 옵션은 무엇인가요?
A: USB 인터페이스 활성화를 위해 다음 옵션들이 일반적으로 필요합니다.
- `-usb` : USB 전체 기능 활성화
- `-device [장치이름]` 또는 `-usbdevice [장치이름 또는 host:버스:디바이스]` : 에뮬레이트할 USB 장치 추가

---

Q: QEMU에서 USB 3.0 혹은 USB 2.0을 어떻게 지정하나요?
A: 기본 USB 장치들은 USB 1.1 (UHCI/OHCI)로 에뮬레이트됩니다. USB 호스트 컨트롤러 에뮬레이트를 직접 지정하여 USB 2.0이나 USB 3.0 모드를 사용할 수 있습니다.

예시 USB 컨트롤러 추가:
- USB 1.1: `-device usb-ehci,id=ehci` (EHCI 컨트롤러 - USB 2.0 호환)
- USB 3.0: `-device nec-usb-xhci,id=xhci` (xHCI 컨트롤러 - USB 3.0 지원)

실행 예:
```
qemu-system-x86_64 -m 2G -device nec-usb-xhci,id=xhci -device usb-kbd,bus=xhci.0
```

컨트롤러 위에 개별 USB 장치를 붙이는 방식입니다.

---

Q: USB 디바이스가 인식되지 않을 때 점검할 사항은?
A:
- 호스트에서 USB 장치가 제대로 인식되는지 `lsusb` 등으로 확인
- QEMU 실행 시 USB 옵션(Relevant USB controller/device) 제대로 지정되었는지 점검
- 권한 문제: 패스스루 시 USB 디바이스에 접근 권한이 있어야 함. 보통 `udev` 규칙 변경이나 root 권한으로 실행 필요
- 가상 머신 내부 OS의 USB 드라이버 및 설정 확인
- QEMU 버전 및 옵션 호환성 확인

---

Q: USB 장치를 QEMU 가상 머신 내에서 동적으로 연결/분리할 수 있나요?
A: 네, QEMU 모니터에서 아래 명령어를 사용할 수 있습니다.

- 연결:
```
device_add usb-host,hostbus=BUS,hostaddr=ADDR
```

- 분리:
```
device_del DEV_ID
```

DEV_ID는 `device_add` 후 반환되는 장치 ID입니다.

QEMU를 `-usbdevice` 옵션이 아닌 `-device` 옵션으로 USB 컨트롤러와 장치를 관리하면 동적 관리가 더 편리합니다.

---

Q: 요약: QEMU에서 USB 장치 에뮬레이션 및 패스스루 방법은?
A:
1. `-usb` 옵션으로 USB 지원 활성화
2. 가상 USB 장치는 `-device usb-kbd`, `-device usb-mouse` 등으로 추가
3. 실제 호스트 USB 디바이스는 `-device usb-host,hostbus=X,hostaddr=Y` 형태로 패스스루
4. 필요 시 USB 컨트롤러를 명시적으로 추가(ex: xHCI, EHCI)
5. QEMU 모니터에서 `device_add`/`device_del` 명령어로 동적 관리 가능

---

이상으로 QEMU에서 USB 장치 에뮬레이션 및 패스스루 설정 방법에 대한 FAQ 답변을 마칩니다.
QEMU는 다양한 하드웨어 장치를 에뮬레이트할 수 있는 강력한 가상화 소프트웨어로, USB 장치 에뮬레이션 또한 지원합니다.

USB 장치를 QEMU에서 에뮬레이트하는 방법은 다음과 같습니다: 1. USB 장치 연결 QEMU를 실행할 때 `-usb` 옵션을 사용하여 USB 지원을 활성화하고, `-device` 옵션을 통해 사용할 USB 장치를 지정할 수 있습니다.

예제 명령어: ```bash qemu-system-x86_64 -m 2048 -usb -device usb-ehci,id=uhci -device usb-storage,drive=disk ``` 이 명령어는 다음 작업을 수행합니다: - `-m 2048`: 2048MB의 메모리 할당 - `-usb`: USB 지원 활성화 - `-device usb-ehci,id=uhci`: USB

2.0 에뮬레이터 설정 - `-device usb-storage,drive=disk`: USB 저장 장치로 사용될 드라이브를 설정

2. USB 장치 추가 USB 장치를 VM에 연결하려면, 호스트 시스템에서 USB 장치의 경로를 QEMU에 전달해야 합니다.

```bash qemu-system-x86_64 -m 2048 -usb -device usb-host,hostbus=1,hostaddr=2 ``` 여기서 `hostbus`와 `hostaddr`는 호스트의 USB 장치 정보입니다.

이 정보를 확인하려면 `lsusb` 명령어를 사용할 수 있습니다.

예제: 1. USB 장치 정보 확인: ```bash lsusb ``` 출력 결과에서 USB 장치의 `Bus`와 `Device` 번호를 확인합니다.



2. QEMU 실행: ```bash qemu-system-x86_64 -m 2048 -usb -device usb-host,hostbus=1,hostaddr=2 ```

3. USB 리디렉션 QEMU에서는 USB 장치를 가상 머신으로 리디렉션할 수 있습니다.

이를 위해 USB 장치의 경로를 사용하여 다음과 같이 실행할 수 있습니다.

```bash qemu-system-x86_64 -m 2048 -usb -device usb-host,device=<장치 경로> ``` `<장치 경로>`는 `/dev/bus/usb/<버스>/<디바이스>`의 형식입니다.



4. USB 패스스루 USB 패스스루를 통해 USB 장치를 VM으로 직접 사용할 수 있습니다.

```bash qemu-system-x86_64 -m 2048 -usb -device usb-host,vendorid=0x1234,productid=0x5678 ``` 여기서 `vendorid`와 `productid`는 장치의 USB ID를 나타냅니다.

`lsusb`를 통해 확인할 수 있습니다.



5. USB 포트 관리 QEMU에서 여러 USB 포트를 설정할 수 있습니다.

```bash qemu-system-x86_64 -m 2048 -usb -device usb-ehci,id=ehci -device usb-host,hostbus=1,hostaddr=2 -device usb-host,hostbus=1,hostaddr=3 ``` 이 명령어는 2개의 USB 장치를 서로 다른 포트에 연결합니다.

마무리 위의 방법을 통해 QEMU에서 USB 장치를 에뮬레이트하고 사용할 수 있습니다.

USB 장치의 정확한 정보와 설정 방법을 이해하고 적용하는 것이 중요합니다.

USB 관련 문제나 에러가 발생할 경우, QEMU의 로그를 확인하거나 USB 장치의 권한 설정을 점검해야 할 수도 있습니다.

작성자: 최지후 [비회원] | 작성일자: 1년 전 2025-03-21 00:20:55
조회수: 231 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.