2014년 2월 27일 목요일

쿠분투 13.10에서 3D 가속 가능하도록 Vmware 세팅하기

Linux 환경에서 윈도우즈를 사용하기 위해서는 2가지 방법이 존재한다 (wine 제외).

첫째, virtual box를 사용하는 것.
: 이 방법은 linux community에서 많이 추천하고 사용하는 방법이긴 한데, 단점으로는,

  1. 인터넷 뱅킹 시에 USB에 기들어있는 공인인증서를 제대로 인식 못하는 문제. 요즘 버전은 해결됐나 모르겠다..
  2. MS-word 사용 시에 mathtype으로 입력된 수식의 폰트가 좀 이상해진다..

예전에 이 두가지 문제를 해결해 보려고 노력했으나, 포기.

두번째, vmware를 사용하는 것.
: 이 프로그램은 상용이지만, vmware player는 무료로 사용할 수 있다. vmplayer는 당연히 기능 제약이 있긴 하겠지만, 현재 내가 사용하는 한도 내에는 불편함이 없다.
위 두 가지 문제가 발생하지 않는다..

이런 이유로 Vmplayer에 안착했지만, Kubuntu 13.10을 설치하고 난 후로 vmplayer를 설치하면 vmplayer guest OS에서 3D 가속 지원이 안되었다. 참고로 내가 사용하는 노트북은 Gigabyte U2442 라는 모델로, NVIDIA 칩셋이 존재하긴 하지만 Intel graphic chip + NVIDIA chipset 으로 돌아가는 구조로 Intel 칩셋이 기본적으로 사용되고 필요시에 NVIDIA chipset이 사용되는 구조다. 이러한 NVIDIA chipset을 NVIDIA Discrete 이라고 하는 듯?

이를 해결하기 위해 다음의 링크를 참조하여 세팅하였다.
https://communities.vmware.com/message/2155185#2155185
1.  sudo apt-add-repository ppa:zhurikhin/primus
2. sudo apt-get update; sudo apt-get install primus primus-libs primus-libs:i386
3. Check that primus works. Try primusrun glxspheres.

4. If you don't have vmware installed, install it now.
5. sudo chmod a+s /usr/lib/x86_64-linux-gnu/primus/libGL.so.1
6. sudo ln -s /usr/lib/nvidia-current/tls/libnvidia-tls.so.304.43 /usr/lib/x86_64-linux-gnu/
sudo ln -s /usr/lib/nvidia-current/libnvidia-glcore.so.304.43 /usr/lib/x86_64-linux-gnu/
sudo ldconfig

7. sudo /etc/init.d/vmware stop
sudo mv /usr/lib/vmware/bin/vmware-vmx /usr/lib/vmware/bin/vmware-vmx.real
8. sudo gedit /usr/lib/vmware/bin/vmware-vmx
(paste in the following)
#!/bin/bash
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/primus/libGL.so.1 exec primusrun /usr/lib/vmware/bin/vmware-vmx.real "$@"
9. sudo chmod u+s,a+x /usr/lib/vmware/bin/vmware-vmx
sudo /etc/init.d/vmware start
10. Run vmware, AS ROOT (sudo vmware)
11. Enjoy 3d acceleration.
 주된 내용으로는,

  1. vmplayer를 NVIDIA chipset으로 돌리기 위한 bumblebee 프로그램 세팅.
  2. Bumblebee에 관련된 라이브러리들의 링크.
  3. Vmware를 bumblebee로 구동하기 위한 스크립트 작성.
Kubuntu 13.10에서는 위 과정 중 6번 항목을 다음과 같이 변경하여야 함.

6. sudo ln -s /usr/lib/nvidia-304/tls/libnvidia-tls.so.304.88 /usr/lib/x86_64-linux-gnu/
sudo ln -s /usr/lib/nvidia-304/libnvidia-glcore.so.304.88 /usr/lib/x86_64-linux-gnu/
sudo ldconfig

 위와 같이 하면 vmplayer의 guest OS에서 3D effect을 구현할 수 있다.
Vmplayer에서 Windows XP를 깔아서 테스트 해 본 바, 처음 구동 시에 약간의 불안정한 면이 있긴 하지만..... 구동만 잘 되면, 다음 그림과 같이 3D 효과가 요구되는 프로그램들을 무난히 구동할 수 있었다.

처음 시동 시에 불안정함을 좀 없애기 위해 다음 링크의 내용으로 /etc/bumblebee/bumblebee.conf 화일을 수정해 주었는데, 아직 까지는 stable하지만 잘 될 지는 좀 더 사용해 봐야 할 듯..

http://askubuntu.com/questions/164785/how-to-configure-bumblebee-in-ubuntu-12-04




* 추가사항:
앞의 과정을 통해서 /etc/bumblebee/bumblebee.conf 화일의 Driver 부분을 Driver=nvidia로 세팅하니까 안정적으로 잘 작동된다.

하지만, 여러가지 OS에 관련된 업데이트를 하다보니 어느순간,
 Cannot access secondary GPU - error: [XORG] (EE) No devices detected'Cannot access secondary GPU' error with Bumblebee
라는 에러가 뜨면서 실행이 안된다...

Googling을 해보고 여러 방법을 적용해 보았는데 나는 다음과 같은 방법으로 위 문제를 해결할 수 있었다.

1. 다음과 같은 방법으로 nvidia driver를 업데이트.
https://github.com/Bumblebee-Project/Bumblebee/wiki/Troubleshooting
sudo apt-add-repository ppa:ubuntu-x-swat/x-updates
sudo apt-get update
sudo apt-get upgrade
2. 그리고 bumblebee 관련 모듈을 재 설치.
http://askubuntu.com/questions/202644/how-to-install-nvidia-optimus-driver

3. 이렇게 했을 때, primusrun 프로그램이 자동으로 설치가 안되었다. 그래서 Muon Package Manager 프로그램에서 검색해서 수동을 설치. 그리고 앞의 6번과정에서 라이브러리 관련 링크를 다시 해 줄 필요가 있다.





댓글 없음:

댓글 쓰기