<table cellspacing="0" cellpadding="0" border="0" ><tr><td valign="top" style="font: inherit;"><p>Hi</p><p><br></p><p>I had have trouble to get sound working under freebsd 8.1 amd64 arch. So i decide to dig in wine code and I create a simple "proof of concept" patch to get work my sound card. <br>********* SND STAT ********FreeBSD Audio Driver (newpcm: 64bit 2009061500/amd64)<br>Installed devices:<br>pcm0: &lt;HDA Realtek ALC272 PCM #0 Analog&gt; (play/rec) default &lt;- This is my primary snd<br>pcm1: &lt;HDA Realtek ALC272 PCM #1 Digital&gt; (play)<br>pcm2: &lt;HDA NVidia (Unknown) PCM #0 DisplayPort&gt; (play)<br>pcm3: &lt;HDA NVidia (Unknown) PCM #0 DisplayPort&gt; (play)<br>pcm4: &lt;HDA NVidia (Unknown) PCM #0 DisplayPort&gt; (play)<br>pcm5: &lt;HDA NVidia (Unknown) PCM #0 DisplayPort&gt; (play)<br></p><p>****************************</p><p><br></p><p><br></p><p>Patch to get sound from wine ( which is compiled in /compat/i386 ).<br>******** PATCH
 ********<br><br>diff -Nrua audio.c-orig audio.c<br>--- audio.c-orig        2010-11-12 20:20:02.000000000 +0100<br>+++ audio.c     2010-11-14 13:43:41.000000000 +0100<br>@@ -1170,12 +1170,12 @@<br>     }<br>     else<br>     {<br>-        WOutDev[0].ossdev.dev_name = WInDev[0].ossdev.dev_name = StrDup("/dev/dsp",NULL);<br>+        WOutDev[0].ossdev.dev_name = WInDev[0].ossdev.dev_name = StrDup("/dev/dsp0.0",NULL);<br>         WOutDev[0].ossdev.mixer_name = WInDev[0].ossdev.mixer_name = StrDup("/dev/mixer",NULL);<br>         for (i = 1; i &lt; MAX_WAVEDRV; ++i)<br>         {<br>             WOutDev[i].ossdev.dev_name = WInDev[i].ossdev.dev_name = HeapAlloc(GetProcessHeap(),0,11);<br>-            sprintf(WOutDev[i].ossdev.dev_name, "/dev/dsp%u", i);<br>+            sprintf(WOutDev[i].ossdev.dev_name, "/dev/dsp0.%u", i);<br>             WOutDev[i].ossdev.mixer_name = WInDev[i].ossdev.mixer_name = HeapAlloc(GetProcessHeap(),0,13);<br>            
 sprintf(WOutDev[i].ossdev.mixer_name, "/dev/mixer%u", i);<br>         }<br>************************<br></p><p><br></p><p>I don't know what exactly /dev/dsp device is create with other snd drivers, but in my case it is /dev/dsp0.0.</p><p><br></p><p>To get fully work 6 wave_drv channels, i set some sysctls:<br>sysctl dev.pcm.0.play.vchans=6<br>sysctl dev.pcm.0.rec.vchans=6<br>sysctl hw.snd.maxautovchans=6<br><br>I think this is workaround for problems with audio under Linux, but in case of FreeBSD it is clear, so autodetection should be possible in this respect.<br></p><p><br></p><p>Sorry for my english.</p></td></tr></table><br>