이것은 가상화에 대한 세 번째 기사입니다. 그리고 아마도 가장 어려운 것입니다. 지금까지 우리는 VMware 제품에서 DirectX를 지원하고 VirtualBox에서 OpenGL을 지원했으며 두 경우 모두 Windows 게스트에서만 사용할 수 있습니다. 호스트 플랫폼의 선택은 중요하지 않았습니다. 그러나 Linux 게스트는 어떻습니까? 피>
이러면 안 된다고 생각했다. 그런데 linux.com에서 VMGL이라는 애플리케이션을 사용하여 Linux 게스트에서 3D를 즐길 수 있는 방법을 보여주는 기사를 읽었습니다. 유망한 것 이상으로 보였습니다. 멋져 보였다. 그러나 그것은 또한 어려워 보였다. 이것은 단지 5-10분의 해킹이 아니었습니다. 그 일은 큰 일이었습니다. 그래서 이것이 실제로 가능한지 확인하기로 결정했습니다. 피>
그리고 대답은 ...
대답은 다음과 같습니다. "작동해야 합니다" 및 "당신이 해야 할 일은..."과 같은 문구를 사용하는 기사/튜토리얼/가이드/하우투를 볼 때 - 경고하십시오! 당신은 많은 문제에 처해 있습니다. 피>
원본 기사와 작성자의 응용 프로그램 문서는 목표에 가까워지기 위해 수행해야 하는 더러운 작업의 약 90%를 고려하지 않습니다. 이 튜토리얼에서는 3D가 Linux 가상 머신에서 작동하도록 하는 것과 관련된(어쩌면) 관련된 소름끼치는 세부 사항을 모두 보여드리겠습니다. 추신 처음 두 기사에서 자세한 내용을 읽을 수 있습니다.
가상 머신의 3D 가속 - 1부:VMware 및 DirectX - 자습서
가상 머신의 3D 가속 - 2부:VirtualBox 및 OpenGL - 자습서
VMGL:OpenGL 3D 가속 - 자르지 않은 버전
VMware Server로 시작한 다음 VirtualBox에서 동일한 작업을 시도합니다. 피>
설치
패키지를 다운로드하고 설치하는 것은 쉽습니다. RPM 형식이므로 Debian 기반 배포판(예:Ubuntu)을 실행하는 경우 먼저 Alien 패키지를 설치하고 RPM을 DEB로 변환해야 합니다. 따라서 먼저 외계인을 설치합니다.
sudo apt-get 설치 외계인그런 다음 RPM 패키지를 DEB로 변환합니다.
외계인 -k package.rpm package.deb마지막으로 설치하십시오:
rpm -i 패키지.rpm또는
dpkg -i 패키지.deb
실제 VMGL 패키지의 일반 이름을 대체하고 호스트에 한 번, 게스트에 한 번 설치합니다. 피>
참고:RPM/DEB를 설치할 때 (보이는) 오류가 표시되지 않습니다. 그러나 소스를 사용하여 설치하려는 시도는 완전히 엉망인 것으로 판명되었습니다. 모든 빌드 필수 패키지(gcc, make, 커널 소스, 커널 헤더)와 imake, python 및 opengl 헤더와 같은 다른 많은 패키지를 포함하여 풍부한 종속성을 충족해야 합니다. 피>
불행하게도 작성자는 필요한 종속성의 전체 목록을 제공하지 않으므로 시행 착오를 통해 무엇이 필요할지 필요하지 않을지 추측해야 합니다. 피>
그리고 소스가 완전히 깨진 것 같습니다:
피>
피>
그리고 우분투 게스트에서:
피>
이 단계에서 포기할 가능성이 큽니다. 그러나 RPM/DEB 패키지를 사용했다면 모든 것이 잘 되었다고 생각할 수 있으므로 계속 진행합니다...
로드 모듈
다음 단계는 xorg.conf 파일을 변경하는 것입니다. 다음과 같은 섹션을 추가하십시오.
섹션 "모듈""vmglext" 로드
끝 섹션
변경 사항을 적용하려면 게스트 X 창(Ctrl + Alt + Backspace)을 다시 시작하십시오. 피>
Xvnc 서버 시작
다음으로 게스트에서 모든 마법 같은 OpenGL 터널링을 수행하도록 수정된 Xvnc 서버를 시작합니다. 피>
아, 여기 까다로운 부분이 있습니다. 작성자가 알 수 없는 이유로 구식 버전의 서버를 사용했기 때문에 대학에서 사용한 것을 제외하고 최신 배포판에서는 작동하지 않습니다. 존재하지 않는 파일 및 폴더의 위치를 가정하기 때문입니다. 현대 배포판에. 피>
SUSE 11.0과 Ubuntu 8.10 모두에서 오류 없이 서버를 실행하려면 꽤 많은 해킹을 수행해야 했습니다. 다음과 같은 많은 오류가 발생합니다.
피>
2003 패키지를 사용하여 응용 프로그램을 만들면 이런 일이 발생합니다. 다행히 해결책은 "간단"합니다. 따라서 문제를 해결하려면:
rgb.txt 다운로드
이것이 우리의 첫 번째 오류입니다. 인터넷에서 파일을 찾습니다(Google it). 다운로드하여 패키지에서 찾을 것으로 예상되는 위치에 배치합니다. 구문 오류가 발생하므로 파일 자체에서 빈 줄을 삭제하십시오. 피>
Xvnc 서버가 예상하는 위치에 파일을 배치하거나 /etc/X11/rgb.txt 아래에 배치하고 심볼릭 링크를 생성합니다.
cd /usr/X11R6/lib/X11sudo ln -s /usr/share/X11/rgb.txt
cd /usr/share/X11
sudo ln -s /etc/X11/rgb.txt
따라서 다음과 같이 표시됩니다.
못생겼고, 그렇습니다! 피>
다음 단계는 누락된 모든 글꼴에 대한 심볼릭 링크도 만드는 것입니다. 피> cd /usr/X11R6/lib/X11/글꼴
sudo ln -s /usr/share/fonts/X11/100dpi
sudo ln -s /usr/share/fonts/X11/75dpi
sudo ln -s /usr/share/fonts/X11/encodings
sudo ln -s /usr/share/fonts/X11/misc
sudo ln -s /usr/share/fonts/X11/Type1
sudo ln -s /usr/share/fonts/X11/util
그러면 다음과 같은 결과가 나타납니다.
이제 Xvnc 서버를 시작하면 여전히 오류가 발생하지만 이번에는 작동합니다.
피>
이제 호스트에서 vncviewer를 실행합니다. 말할 필요도 없이 게스트는 호스트에서 연결할 수 있는 IP 주소를 가지고 있어야 합니다. 즉, 게스트 가상 머신을 위한 브리지 또는 NAT 네트워킹이 필요합니다. 피> vncviewer 게스트 IP 주소:1
다음과 같이 표시됩니다.
피>
게스트에서 GLSTUB를 내보냅니다.
내보내기 GLSTUB=게스트 IP 주소:포트우리의 경우에는 GLSTUB이 포트 7001을 가리키는 것을 볼 수 있습니다. 게스트 IP 주소는 192.168.34.129이므로 다음과 같이 GLSTUB를 내보낼 것입니다.
내보내기 GLSTUB=192.168.34.129:7001그리고 지금, 마술! 모든 것이 작동해야 합니다. 피>
음, 그렇지 않습니다. glxinfo를 실행해도 vmglext 드라이버가 사용 중인 것으로 표시되지 않고 제안된 대로 glxgears를 실행하면 이전과 동일한 최악의 성능을 보여줍니다. 깨진 패키지를 고려하면 놀라운 일이 아닙니다. 피>
VirtualBox에서 모든 것을 다시 실행
NAT와 독점 코드가 있는 VMware Server가 문제라고 생각했습니다. 그래서 Ubuntu 게스트와 함께 VirtualBox OSE 에디션을 실행하는 Ubuntu 호스트를 사용하여 동일한 트릭을 시도했습니다. 또한 이 작업을 수행하기 위해 Bridged Networking을 구성했습니다. 피>
브리지 네트워킹 구성은 당면한 주제와 구체적으로 관련이 없지만 호스트와 게스트가 통신하기 위해 실행해야 하는 멋진 명령 집합은 다음과 같습니다. 자세한 내용은 다음을 참조하십시오.
VirtualBox - 커뮤니티 우분투 문서
그래서 제가 한 일은 다음과 같습니다(귀하의 요구/구성이 정확히 반영되지 않을 수 있음).
1. 호스트에 브리지 유틸리티 설치
첫 번째 단계는 네트워크 인터페이스를 연결하고 IP 주소를 공유할 수 있도록 브리지 유틸리티를 설치하는 것입니다. 피> sudo apt-get 설치 브리지 유틸리티
2. 네트워크 스크립트에서 브리지 선언
브리지 유틸리티가 설치된 후 네트워크 구성 파일에서 이를 선언해야 합니다. 여기에 설명된 대로 Debian 기반 시스템에서 구성은 /etc/network/interfaces라는 단일 파일에 보관됩니다. RedHat 기반 배포판은 각 네트워크 어댑터에 개별적으로 개별 구성 스크립트를 사용했습니다. 피>
추신 자신이 선택한 고정 IP 주소를 사용하십시오. 피> sudo gedit /etc/network/인터페이스
위 파일에 추가:
자동 br0
iface br0 inet 정적
주소 192.168.3.100
넷마스크 255.255.255.0
게이트웨이 192.168.3.1
bridge_ports eth0 vbox0
3. VirtualBox용 가상 네트워크 어댑터 선언
이렇게 하면 VirtualBox가 br0 브리지를 사용할 수 있습니다:
sudo gedit /etc/vbox/인터페이스위 파일에 추가:
vbox0 <사용자 이름> br0
4. 네트워크 및 VirtualBox 드라이버 다시 시작
구성 파일에 변경 사항을 추가한 후 변경 사항을 적용하려면 네트워크 서비스와 VirtualBox를 모두 다시 시작해야 합니다. 피> sudo 서비스 네트워킹 재시작
sudo /etc/init.d/virtualbox-ose 재시작
5. 적절한 권한을 얻기 위해 여기저기서 파일을 해킹합니다.
VirtualBox에서도 사용할 수 있도록 네트워크 터널링 장치에 대한 권한을 변경해야 할 수 있습니다. 이것은 다음과 같이 수행됩니다:
sudo chown 루트:vboxusers /dev/net/tunsudo chmod 666 /dev/net/tun
6. vbox0 가상 어댑터를 사용하도록 게스트 구성
이는 관련 가상 머신의 설정 메뉴에 액세스하여 호스트 머신에서 수행됩니다. 다음은 멋진 스크린샷입니다.
피>
7. 게스트 전원 켜기 및 정적 IP 주소 할당
이 주소는 브리지와 같은 서브넷에 속해야 합니다. 즉, 마지막 옥텟을 1씩 증가시키기만 하면 됩니다. 피> sudo ifconfig <장치>
자르지 않은 버전의 시작 부분으로 돌아가서 전체 설정을 다시 실행하십시오. 그리고 다시 말하지만 작동하지 않습니다. 마법? 피>
As it turns out, enjoying 3D acceleration on Linux virtual machines is beyond 99.999995% of users, including knowledgeable geeks like me. The project, apparently someone's PhD, does feel like a true academic work:it's half-finished and it's unusable by normal people. 피>
What beats me, though, is the claim that "you should all be set" after only a few minor hacks, as if we're talking cups of fresh morning dew. And the five-minute hack turns out to be 3-4 hours of misery. Why, on Earth, would someone use a 6-year old version of the Xvnc for the task? 피>
However, I think what really annoys me the most is the fact someone actually released a product in such a shabby state. A shame. Well, not all is lost. We've had 2 out 3 working. VMware support for DirectX in Windows guests and VirtualBox support for OpenGL in Windows guests proved to be gems. 피>
But lament not! VMware and Sun are big shots in the virtualization industry. It is only a matter of time before 3D acceleration becomes a happy reality for Linux users running Linux guests. 피>
When all things are taken into consideration, the need for Linux host / Linux guest 3D acceleration seems less important. Windows users will probably only use Windows. If and when they need Linux, they will most likely dual-boot. Linux users will most likely want Windows guests, so they can use the legacy applications they need, and for this they already have a solution (or two). The Linux-in-Linux virtualization is a wicked idea, but it is not a priority with most people. It will happen. Mark my words. 피>
To wrap it up, let's review what we did so far. We learned a few valuable lessons in this series of articles. We learned how to use VMware Server and VirtualBox so that we can enjoy 3D acceleration in our Windows guests. We learned a few more cool hacks and tricks along the way. Most importantly, we learned that desktop virtualization is in continuous evolution, taking us further in our goals and desires. 피>
건배. 피>
우리의 경우:
sudo ifconfig eth3 192.168.3.101 위로 8. 이전에 수행한 모든 단계를 반복합니다
결론