.bitbake core-image-sato
GUI 없이 실행할 수 있습니다.
runqemu nographic
<- 작동
근데 그래픽으로는 실행이 안되네요
runqemu qemux86-64
<- 오류로 인해 실패했습니다:
runqemu - ERROR - Failed to run qemu: Could not initialize SDL(x11 not available) - exiting
하지만 그래픽 모드가 필요해요!
저는 Ubuntu 18.04 + WSL을 사용하여 Windows 10을 구축하고 있습니다.
답변1
문제의 근본 원인은 Linux 환경에서 실행 중인 X GUI SERVER(X11/Xorg)가 부족하기 때문입니다.
이것이 당신이 직면하는 첫 번째 문제입니다. 일반적으로 이를 작동시키려면 Linux 시스템에서 xserver를 시작하기만 하면 됩니다. 이는 일반적으로 배포를 기본적으로 설정되는 그래픽 모드로 전환하여 수행되는 간단한 작업입니다.
그러나 귀하의 경우에는 심각한 혼란이 있습니다. Windows에서 Linux 워크로드를 실행하고 있다고 하셨습니다.
그럼 두 번째 질문이 있습니다. 자세히 알아보고 도움을 받으려면 먼저 실행 중인 WSL 버전을 알아야 합니다.
- WSL 1을 실행하는 경우 Xorg xserver를 실행하고 WSL 환경에 노출시키는 것은 초보자나 심지어 숙련된 Linux 관리자에게도 매우 어렵습니다(Windows와 Linux를 잘 알아야 함). WSL1 이것이 달성되었지만 Linux 환경에는 WSL이 부족했습니다.)
- WSL2를 실행하는 경우 상황은 더 복잡합니다. WSL1에서는 Linux 환경이 Windows 커널 자체에서 제공되었지만(나쁘게) WSL2에서는 매우 특별한 다중 VM 다중 코어 구성 "상자"에서 "Linux"를 실행하고 있습니다. ": WSL2 Linux 인스턴스는 실제로 매우 특별한 Hyper-V 노드, 진정한 VM입니다.
불행하게도 내 클라이언트 중 누구도 WSL2를 필요로 하지 않기 때문에 아직 WSL2를 다룰 시간이 없었지만 올바르게 이해했다면 WSL2의 Linux "에뮬레이션"은 WSL1보다 더 정확하지만 당신이 할 것인지 잘 모르겠습니다. 똑같다. WSL1 환경에 노출하는 것처럼 쉽게 X 서버를 WSL2 환경에 노출할 수 있습니다.
마지막으로 세 번째 문제인 QEMU 문제가 있습니다.
QEMU는 "데스크톱 컴퓨터"부터 "스마트폰/라즈베리 파이" 수준의 단일 보드 컴퓨터에 이르기까지 수십 개의 프로세서, 컴퓨터 및 가상 시스템을 에뮬레이션할 수 있는 범용 에뮬레이션 엔진입니다.
이제 우리는 당신이 무엇을 모방하고 싶은지 알아야 합니다. 귀하의 질문에 따르면 x86-64를 에뮬레이트하는 것 같습니다. x86-64 호스트에서 이 작업을 수행할 때 에뮬레이션은 종종 매우 느립니다.
QEMU는 소프트웨어 에뮬레이션과 하드웨어 지원 가속 에뮬레이션이라는 두 가지 에뮬레이션 모드를 제공한다는 점을 알아야 합니다.
소프트웨어 에뮬레이션은 어디에서나 작동하지만 이미 말했듯이 x86-64의 경우 x86-64(기본값)의 소프트웨어 에뮬레이션은 실제 작업 부하에 대해 매우 느립니다.
거의 실시간/실제 하드웨어 에뮬레이션 속도를 달성하기 위해 Linux 세계에서는 QEMU 시스템 에뮬레이션을 KVM(Kernel Virtual Machine)과 결합하는 경우가 많습니다. KVM은 Hyper-V와 동등한 커널 측이라고 생각할 수 있습니다. 리눅스 . 이 설정에서 QEMU는 Linux 커널 및 KVM의 도움으로 프로세서의 하드웨어 지원 가상화 기능을 사용합니다. 즉, Windows의 Hyper-V = Linux의 QEMU + KVM(그래픽의 경우 xserver)입니다.
하지만 앞서 말했듯이 WSL2를 사용하고 있다면 이미 Hyper-V 가상화를 사용하고 있는 것이므로 QEMU가 실행된다는 사실에 놀랐습니다. 그렇다면 중첩된 KVM 가상화를 사용하거나 순수 가상화를 사용하고 있는 것입니다. 소프트웨어 시뮬레이션 모드에서 실행합니다. 특별한 유형의 중첩된 가상화를 사용하는 경우 성능에 심각한 영향을 미치며(2배/3배) 실제로 소프트웨어 모드에서 실행하는 경우 시뮬레이션이 매우 느려질 것입니다. 놀랍게도 예, 가능합니다. 아무것도 하지도 않습니다.
따라서 실행 중인 WSL 버전과 QEMU 설정에서 KVM이 활성화되어 있는지 여부에 대한 누락된 정보를 추가하세요.
마지막으로 이러한 수준의 중첩과 복잡성으로 인해 Windows를 완전히 버리는 것이 좋습니다.
- 하드웨어 지원 가상화를 통해 지원되는 실제 컴퓨터를 확보하세요.
- 여기에 Linux를 설치하고 xserver, KVM, QEMU를 실행하고 네트워크에 연결합니다.
- 기본 Windows 컴퓨터를 사용하여 네트워크를 통해 이 Linux 가상 호스트를 원격으로 제어하세요.
저를 믿으십시오. QEMU 호스트를 Windows 가상화 Linux에 연결하는 것보다 이 설정을 사용하면 훨씬 더 효과적이고 효율적일 것입니다.
답변2
나는 같은 문제를 가지고있다. 이것이 귀하의 경우인지는 모르겠지만 qemu
루트로 실행 중인 경우 먼저 다음을 수행해야 합니다.
xhost +
user 명령을 사용하여 루트에 X11에 액세스할 수 있는 권한을 부여합니다.