/dev/dsp , /dev/dsp1 랜덤하게 할당되는문제

chazzy1의 이미지

사운드카드가 두개인데요

/dev/dsp
/dev/dsp1

이렇게 잡히는데 실제로 보니까 어느놈이 dsp 고 어느놈이 dsp1 인지가 부팅할때마다 지멋대로 바뀌더군요.

ALSA 쓰는 프로그램들은 상관없는데 vmware 는 /dev/dsp 를 직접 지정하게 되있거든요.

그래서 vmware 쪽 사운드가 어디에서 나오는지가 부팅시마다 랜덤하게 정해지고 있습니다.

이걸 어떻게 고정시킬 방법이 없을까요?

Prentice의 이미지

http://alsa.opensrc.org/index.php?page=MultipleCards

모듈 로딩 순서를 지정해주시거나 index를 지정해주시면 되나봅니다.

사랑천사의 이미지

솔직히.. UDEV나 자동화된 모듈 로딩 과정에서 늘상 발생하는 것 같습니다... 이전엔 잘 안 그랬던 거 같은데 말입니다.

UDEV같은게 도입 되면서 Ethernet 카드도 여러 개면 문제가 생기고... 지 멋대로 순서가 자꾸 바뀌고 말이죠... 사운드도 그렇고.. 비디오도 ... 이건 잘 모르겠군요. 이건 아닌 거 같은데.. 하드디스크나 블록 디바이스야 구별 하는 방법이 여럿 있다지만 솔직히 난감하죠 흠.. 특히 네트워크 카드는 여럿 꽂혀 있고 여기 저기 장비 여러 개 연결 되어 잇는데 이걸 고정으로 다 할당 해 줘야 한다면.. 부팅 때 마다 순서 바뀌고 이러는거 상당이 안 좋죠 후훗... 하드웨어 전체적으로 이걸 체계화 해서 순서 정하고 잡을 방법이 없나 궁금하군요 전...
----
Lee Yeosong(이여송 사도요한)
E-Mail: yeosong@gmail.com
MSN: ysnglee2000@hotmail.com
----
웃음... 행복... 평화... (진정한...) 희망... 사랑... 이 세상 모든것이 그렇다면 얼마나 좋을까...(꿈 속의 바램일 뿐인가...)

사람천사

chazzy1의 이미지

위 링크대로 해볼려고 했는데 글을 봐도 상당히 난감하군요.

ubuntu 쓰는데 링크에 있는 파일 구조가 제꺼하고는 다르군요.

뭘 어디를 건드려야 할지 감도 안잡히고 있습니다.

삽질의 길은 멀고도 험하군요...

1day1의 이미지

사운드 카드에 해당되지는 않지만, 모듈을 로딩하는 순서대로 할당이 되는 것인가요?
랜카드로 제가 몇번 테스트를 해보았는데, 이상한 것 같습니다.

제가 테스트한 상황은
eth0 -> rtl8139 , eth1 -> 3c59x 였습니다. (pci 슬롯에 연결되어 있는데, pci 슬롯의 위부터 번호를 매기자면)
pci1(8139) , pci3(3c59x) 의 순서이구요.

eth0 을 rtl8139 로 하지 않고, 3c59x 를 eth0 으로 설정하고자.(pci 는 그대로 하구요.)

module 에서 3c59x 를 먼저 띄우기를 시도했는데도, 여전히 3c59x 는 eth1 으로 잡히더라구요.
pci 순서가 eth0,1 의 순서가 되는 것인가요?

ps. 잠깐 테스트 한것이라 정확하지 않을 수 있습니다.
다시 정확히 시도를 해보고 이 쓰레드에 리포트를 남겨 놓겠습니다.

F/OSS 가 함께하길.. (F/OSS서포터즈 : [[FOSS/Supporters]], [[FOSS/Supporters/Group]]) - 블로그 활성화 프로젝트 : 하루에 하나씩 블로그 글 남기기 -

F/OSS 가 함께하길..

사랑천사의 이미지

NIC를 두 개 ... 더 꽂아서 테스트 했는데... 즉 원래 온보드 NIC가 하나 있었습니다. 거기에 RTL8139를 2 개 더 꽂았습니다. 근대 이게 지 멋대로 순서가 바뀌더군요. 처음엔 이게 슬롯 순서대로 되나 했는데 그것도 아니고... 이전에도 랜카드 때문에 이런 글이 올라 왔어씁니다. 순서 좀 고정 시킬 수 없냐 하는.. 그 때도 뾰족한 수가 없었죠 훗... 이거 하드웨어 매핑을 고정 시킬 방법이 없는 건지...

전 NIC에 MAC 주소가 있는 점에 착안하여 MAC 주소 별로 eth0, eth1등을 할당 하려고 설정 파일을 건드려 봤는데 이것 역시 허사였습니다. 만약 이걸 건드렸는데 처음에 모듈에서 카드들을 잡을 때 지 멋대로 잡아 버리면 ifconfig나 ifup, ifdown시 아예 동작을 안 해 버립니다... 무서운 일이죠 훗... 그래서 좀 무식하지만 PHP로 스크립트를 짜고 이걸 부팅 과정에서 네트워크 설정 이전에 넣어서 설정 파일을 자동으로 생성 하게 해 버렸습니다. 이렇게 하니 대강은 잡히더군요... 그래도 거슬리기는 마찬가집니다. 언제 무슨 일이 생길 지 모르기 때문이죠 윽...
----
Lee Yeosong(이여송 사도요한)
E-Mail: yeosong@gmail.com
MSN: ysnglee2000@hotmail.com
----
웃음... 행복... 평화... (진정한...) 희망... 사랑... 이 세상 모든것이 그렇다면 얼마나 좋을까...(꿈 속의 바램일 뿐인가...)

사람천사

freesky의 이미지

랜카드의 경우, modules.conf(현재는 modprobe.conf)에 alias를 추가해서 장치명을 지정할 수 있지 않나요?

alias 장치명 모듈명

이런 식으로요.

---------------------------------------
올해에는 꼭 노트북이 생기게 해 주세요.

올해에는 꼭 노트북이 생기게 해 주세요.

사랑천사의 이미지

랜 카드 여러 개가 각각 다 다른 모듈을 쓸 경우에 쉽게 가능한 일이지만, 8139too를 모든 하드웨어에 사용 해야 할 때나.. 3c95xxxx 식의 모듈... (3COM 랜카드에 쓰이는.)여러 랜카드에 쓰게 되면 문제는 심각해 집니다. 지 멋대로 자꾸 순서가 바뀌니까요 윽! 사운드 카드도 지멋대로지만 랜카드와 같은 종류의 컨트롤러 같은게 여러 개 있어도 사실상 좀 머리 아파 집니다 윽!
----
Lee Yeosong(이여송 사도요한)
E-Mail: yeosong@gmail.com
MSN: ysnglee2000@hotmail.com
----
웃음... 행복... 평화... (진정한...) 희망... 사랑... 이 세상 모든것이 그렇다면 얼마나 좋을까...(꿈 속의 바램일 뿐인가...)

사람천사

wish의 이미지

udev 스크립트 (아마 /etc 밑에 있을 것입니다) 를 이용해서 특정한 장치를 특정한 이름으로 지정해 줄 수 있습니다.

네트워크 장치의 경우 MAC address 를 기준으로 정하는 방법 등이 있고, 사운드 카드도 PCI 헤더를 이용해서 특정 하드웨어를 특정 이름으로 맵핑 가능합니다. 한번 구글링 해 보셔요~

사랑천사의 이미지

udev를 생각 하긴 했지만 udev를 탓하기만 했지 해결 할려고 하지 않고 꽁수만 썼군요 흠흠! 한번 해 봐야 겠습니다.
----
Lee Yeosong(이여송 사도요한)
E-Mail: yeosong@gmail.com
MSN: ysnglee2000@hotmail.com
----
웃음... 행복... 평화... (진정한...) 희망... 사랑... 이 세상 모든것이 그렇다면 얼마나 좋을까...(꿈 속의 바램일 뿐인가...)

사람천사

chazzy1의 이미지

udev 를 쓸려고 구글링을 해봤습니다.

http://www.linuxjournal.com/article/7316

이걸 참고했는데요, 글을 읽을때는 뭔가 이거다 싶었는데 해보니까 또 안되네요

ubuntu 쓰고있는데 일단 /etc/udev/rules.d 안의 내용물이 생긴게 다릅니다.

00-init.rules 60-symlinks.rules 85-kino.rules
20-names.rules 65-persistent-disk.rules 85-pcmcia.rules
20-names.rules~ 80-programs.rules 90-hal.rules
25-iftab.rules 85-alsa.rules 90-modprobe.rules
40-permissions.rules 85-hal.rules 99-udevmonitor.rules
45-libgphoto2.rules 85-hdparm.rules 99-udevmonitor.rules~
45-libsane.rules 85-hwclock.rules
45-logitechmouse.rules 85-ifupdown.rules

위 문서처럼 udev.rules 가 하나 있는게 아니라 이렇게 여러 파일이 들어있는데

여기다가 udev.rules 를 만들어 보기도 하고 있는 파일 여기저기에 추가도 해봤습니다만 결과는 실패네요

BUS="pci", ID="00:11.5", NAME="dsp1"
BUS="pci", ID="00:0a.0", NAME="dsp2"

이걸 넣었는데 제가 넣는거 무시하고 그냥 dsp, dsp1 로 잡히고 사운드카드 순서도 지멋대로 잡아버립니다.

뭘 잘못했는지 잘 모르겠군요...

chazzy1의 이미지

이거 되는분 없으신가요...아 결국 포기해야하나..

chazzy1의 이미지

/etc/udev/rules.d/10-local.rules 에다가

BUS=="pci", ID=="0000:00:11.5", NAME="dsp1"
BUS=="pci", ID=="0000:00:0a.0", NAME="dsp2"

이렇게 넣어주고 나니 사운드카드를 강제로 할당은 하는거 같은데요

문제는 일케해버리니 소리가 안나버리는군요.
dsp1, dsp2 작동을 안하고 alsa 에서도 사운드카드가 없는걸로 잡히는군요.

아 돌아버리겠습니다...

chazzy1의 이미지

삽질끝에 결국 해결했습니다.

/etc/udev/rules.d/ 밑에 있는 규칙 파일들을 파일 이름순으로 로딩하게 되는데요

처음에 로딩되도록 10-local.rules 라는 파일을 만들고 그 안에다가

BUS=="pci",ID=="0000:00:11.5",DRIVER=="VIA 82xx Audio",KERNEL=="dsp*",SYMLINK+="sound1"
BUS=="pci",ID=="0000:00:0a.0",DRIVER=="Yamaha DS-XG PCI",KERNEL=="dsp*",SYMLINK+="sound2"

와 같이 넣어서 해결했습니다.

이렇게 하면 기존의 dsp, dsp1 등은 건드리지 않고 해당하는 장비에 대한 고정적인 링크 sound1,sound2 만 생깁니다.

그리고 KERNEL=="dsp*" 이게 있어야 사운드 장비가 mixer 등으로 랜덤하게 지정되는걸 막고 항상 dsp 로 지정되도록 할수 있더군요.

여튼 결국 해결입니다. udev 에 대한 정보를 주신분들 감사합니다.

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.