모두,
나는 호스트의 공유 메모리와 게스트 OS의 공유 메모리 사이에서 물건을 전달하는 방법을 조사해 왔으며 우연히 발견했습니다.이 링크. Ubuntu 20.04 VM을 사용하고 qemu-system-x86_64
. qemu-system-sparc
Solaris 8 게스트에 해당하는 명령이 무엇인지 궁금합니다 .
다음 명령을 시도했습니다.
./qemu-system-sparc -M SS-5 -m 128 -bios ./ss5.bin -drive file=sol8.qcow2,bus=0,unit=0,media=disk -object memory-backend-file,size=16M,share=on,mem-path=/dev/shm/shm1,id=shm1 -device ivshmem-plain,memdev=shm1,bus=pci.0,addr=0x10,master=on
다음과 같은 이유로 실패합니다.
qemu-system-sparc: -device ivshmem-plain,memdev=shm1,bus=pci.0,addr=0x10,master=on: 'ivshmem-plain' is not a valid device model name
공유 메모리를 사용하여 데이터를 전달하려는 욕구가 qemu-system-sparc
가능합니까?
답변1
이는 불가능할 것으로 보입니다.qemu-시스템-sparcPCI를 지원하지 않으며ivshmem장치는 PCI 장치로 에뮬레이션됩니다.qemu-시스템-sparc64반면에하다PCI를 지원하지만 다음 사항을 충족하지 못할 수도 있습니다.MSI_NONBROKEN상태hw/기타/Kconfig(리눅스그리고IVSHMEM게스트 시스템이 아닌 호스트에 따라 다름):
config IVSHMEM_DEVICE
bool
default y if PCI_DEVICES
depends on PCI && LINUX && IVSHMEM && MSI_NONBROKEN
MSI_NONBROKEN
나는 x86/64, 아마도 일부 시스템 주변 장치에 정확히 무엇이 설정되어 있는지 결정적으로 찾을 수 없었습니다 .
다음과 같이 특정 QEMU 에뮬레이터에서 지원되는 장치를 빠르게 확인할 수 있습니다.
qemu-system-sparc -device help
qemu-system-sparc64 -device help
SPARC 에뮬레이터는… 음, 아무것도 지원하지 않는다는 것을 알 수 있습니다. SPARC64는 PCI를 지원하여 조금 더 많은 것을 지원합니다.
내가 보기에 가장 좋은 방법은 읽기-쓰기 공유 가상 디스크를 사용해 보는 것입니다. 하지만 실제로는 어떻게 작동할지 모르겠습니다. QCOW2 등이 아닌 작은 RAW 이미지 파일로 시도해 보세요. 시작점이 문서화되어 있습니다.여기(잠금 비활성화 등) 그러나 거기에서 어떻게 가야할지 모르겠습니다. 어떻게든 VM에 SCSI 가상 하드 드라이브로 추가해야 합니다.