VMPlayer를 aoss로 사용하기...

지리즈의 이미지

이글은 ALSA를 사용하는 리눅스 시스템에서
oss 자원이 공유되지 않아 시스템이 사운드카드가 사용중일 때
vmplayer가 이를 공유하지 못하는 문제를 해결하기 위한 가이드입니다.

일반적으로 alsa환경에서는 aoss라는 가상 oss 래퍼 라이브러리를 통해서,
oss를 사용하는 프로그램들이 동시에 사운드카드를 다중으로 접속할 수 있도록 합니다.

그런데, vmplayer는 suid(일반 사용자가 실행하면, 루트권한으로 실행되도록 하는 퍼미션)가 지정되어 있음으로 일반적인 aoss로는 사용할 수 없습니다.

이에 대한 해결책은 크게 두가지가 있습니다.

처음 방법은 aoss가 사용하는 라이브러리들(이를테면, libaoss.so)들에
suid를 부여하는 것입니다.ldd libaoss.so 해서 나온 일부 라이브러리들에도
suid를 부여해야 합니다. (이 방식을 이후 suid방식이라 부르겠습니다.)

다른 한방법은 단순히 루트 계정으로 aoss를 실행하는 것입니다.
이를테면, su -c "aoss vmplayer" 등과 같은 방식이죠.
(GUI환경에서 바로가기를 생성할 때 일반적으로 "다른 계정으로 실행"이 라는 옵션이 있습니다. 이를 이용하면 보다 편하게 실행이 가능합니다.)

root권한으로 실행할 때 주의점은 보안과 퍼미션입니다.
일단 보안이라는 측면에서는vmplayer 자체가 이미 suid가 부여된 이상 루트권한으로 실행한다고 크게 보안에 위협되지는 않을 것으로 생각이 됩니다.
다른 한편 aoss가 공격대상이 될 경우도 감안해야 합니다만,
위의 해당라이브러리에 suid를 부여했을 경우를 생각한다면,
역시 루트계정으로 실행된 aoss라이브러리들이 suid를
부여했을 때 보다 더 위험하다고 보여지진 않습니다.
오히려, suid방식은 root권한이 필요없는 일반적인 다른 oss프로그램들조차 root로
실행해야 하게 한다는 문제점이 있습니다.

일단 vmware(vmplayer)자체가 어느정도 보안적인 위험을 감수해야 하는 프로그램인 만큼, vmplayer를 루트로 실행했다고 크게 위험이 증가할 것이라 판단되지는 않습니다.

다른 한편은 소유로 인한 퍼미션문제입니다.
일단 vmplayer의 저장된 일부 파일들이 소유가 root로 바뀌게 됩니다.
이는 같은 vm을 일반사용자 혹은 root 계정으로 혼용해서 사용할 경우
일반 사용자로 실행되었을 때 vmplayer가 정상적으로 동작하지 않게 합니다.

이는 vmplayer 실행 후 간단히 소유권을 돌려 놓는 스크립트를 작성해서 사용하여
해결하면 됩니다.

#!/bin/sh
aoss vmplayer /home/foo/vmware/Linux/Linux.vmx
chown foo.bar /home/foo/vmware/Linux/*

이를 aossvm.sh이라는 이름으로 저장하고,
이를 root 계정에서 실행하는 것으로 해결할 수 있습니다.
(위는 bar 그룹의 foo라는 계정의 Linux라는 가상 머신을 실행하는 스크립트 예제입니다.)

참고로 vmware 4.*대는 다른 해결 방법이 필요하다고 합니다.
제가 vmware를 사용하지 않는 관계로 테스트하지는 못했습니다.
관심있으신 분들은 http://www.thepenguin.org.uk/alsa/에 방문해 보시길 바랍니다.

Forums: 
Munsen의 이미지

필요한 강좌였는데

사운드가 필요하다고 생각 안되서 놔두고 있었습니다.

이제 ActiveX로 돌아가는 Vos게임 할 수 있겠어요 ㅜㅜ(건반게임이라죠.. http://www.voshall.com)

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.