[PC-BSD Testing] no sound in 9.1-RC2
Kris Moore
kris at pcbsd.org
Fri Oct 26 09:58:24 PDT 2012
On 10/26/2012 09:38, N V wrote:
> On 26 октября 2012 16:33:28 N V wrote:
>> On 26 октября 2012 00:22:39 Kris Moore wrote:
>>> On 10/25/2012 15:51, Hans Ruhe wrote:
>>>> Hi James,
>>>>
>>>> In the Control Panel there is the sound config icon, where you can
>>>> find the correct soundcard for your system. I had to find out too, but
>>>> after choosing the correct configuration it worked very well :-)
>>>>
>>>> Best regards,
>>>>
>>>> Hans
>>>>
>>>> 2012/10/25 James T. Nixon III <james at ixsystems.com
>>>> <mailto:james at ixsystems.com>>
>>>>
>>>> Hey guise,
>>>>
>>>> A few of us are experiencing issues with sound. Has this been
>>>> discovered already?
>>>>
>>>> --james
>>>> _______________________________________________
>>>> Testing mailing list
>>>> Testing at lists.pcbsd.org <mailto:Testing at lists.pcbsd.org>
>>>> http://lists.pcbsd.org/mailman/listinfo/testing
>>>>
>>>> _______________________________________________
>>>> Testing mailing list
>>>> Testing at lists.pcbsd.org
>>>> http://lists.pcbsd.org/mailman/listinfo/testing
>>> I did find an issue with this from devd calling sound-dev-changed.sh
>>> during system bootup. To fix grab this file:
>>>
>>> # svn co
>>> svn://svn.pcbsd.org/pcbsd/current/overlays/desktop-overlay/usr/local/shar
>>> e/ pcbsd/scripts/sound-dev-changed.sh # mv sound-dev-changed.sh
>>> /usr/local/share/pcbsd/scripts/sound-dev-changed.sh
>>> # chmod 755 /usr/local/share/pcbsd/scripts/sound-dev-changed.sh
>> Hi.
>>
>> I've improved the script one step further, possibly. It set default_unit to
>> the last play capable device previously. Now it just checks if newly
>> attached device is playback capable and if it is sets default_sound_unit.
>> default_sound_unit havn't been restored properly upon detach previously,
>> because default_sound_unit has been set to the device that doesn't
>> disappear/destroy upon detach. So, seems this should solve two possible
>> problems in one shot. :) I have to note again: this script/patch may be
>> ugly or rough.
>>
>> Patch (against pcbsd/current/overlays/desktop-overlay/):
>> Index: etc/devd.conf
>> ===================================================================
>> --- etc/devd.conf (revision 19958)
>> +++ etc/devd.conf (working copy)
>> @@ -271,3 +271,3 @@
>> match "cdev" "mixer[0-9]+";
>> - action "sleep 2 ;
>> /usr/local/share/pcbsd/scripts/sound-dev-changed.sh add";
>> + action "sleep 2 ;
>> /usr/local/share/pcbsd/scripts/sound-dev-changed.sh add $cdev";
>> };
>> @@ -279,3 +279,3 @@
>> match "cdev" "mixer[0-9]+";
>> - action "sleep 2 ;
>> /usr/local/share/pcbsd/scripts/sound-dev-changed.sh del";
>> + action "sleep 2 ;
>> /usr/local/share/pcbsd/scripts/sound-dev-changed.sh del $cdev";
>> };
>> Index: usr/local/share/pcbsd/scripts/sound-dev-changed.sh
>> ===================================================================
>> --- usr/local/share/pcbsd/scripts/sound-dev-changed.sh (revision 19958)
>> +++ usr/local/share/pcbsd/scripts/sound-dev-changed.sh (working copy)
>> @@ -4,2 +4,3 @@
>> action=$1
>> +cdev=$2
>>
>> @@ -17,2 +18,3 @@
>> # pcm-oss plugin configuration
>> +# generated by ${0}
>>
>> @@ -70,6 +72,12 @@
>>
>> - # Get the last pcm device so we can make it the default
>> - newDev=`cat /dev/sndstat | grep play | egrep -o 'pcm[0-9]+' | tail -n
>> 1` - dNum=`echo $newDev | sed 's|pcm||g'`
>> - sysctl hw.snd.default_unit=$dNum
>> + mixerNum=`echo ${cdev} | egrep -o '[0-9]+'`
>> +
>> + # Can new dev play?
>> + cat /dev/sndstat | grep pcm${mixerNum} | grep -q play
>> + if [ $? -ne 0 ] ; then
>> + return
>> + fi
>> +
>> + # make new device the default one
>> + sysctl hw.snd.default_unit=$mixerNum
>> }
>>
>>
>> P.S. If I attach the file instead of copying it's contents into the message
>> body will it reach the list?
>>
>> Regards,
>> Vans.
>> _______________________________________________
>> Testing mailing list
>> Testing at lists.pcbsd.org
>> http://lists.pcbsd.org/mailman/listinfo/testing
>
> Few notes.
>
> - There is a sleep for 2 seconds before script start which slows down the boot
> for about 10 seconds, cause devd notify is triggered some number of times (for
> each sound device in system, I suppose) at boot too. As for me that's ok, but
> boot speedups (including those that were made to rc) become pointless imho.
> Can we push it to the background or make script start without sleep delay? The
> second variant makes us to add some kind of pidfile possibly. Which leads us to
> complicated script imho. If we need such complicated script, isn't it easier
> to make user switch default_sound_unit through pc-bsd's super nice gui? :)
> - Autochange of default_sound_unit adds some kind of automagical stuff that
> advanced user cann't trace easily imho. But may be desired by those users who
> plug in usb speakers/headphones. So it's entirely up to user experience.
> - Btw, active application will stream sound to the current default_sound_unit
> unit the playback is restarted. Than it streams to newly setup
> default_sound_unit. This was tested in Clementine only.
>
> Regards,
> Vans.
> _______________________________________________
> Testing mailing list
> Testing at lists.pcbsd.org
> http://lists.pcbsd.org/mailman/listinfo/testing
Thanks for the suggestions! I removed the sleep statements to speed up
the bootup process. Also, the "play" keyword was put in a few days ago.
Can you check the version in SVN and see if it does what you expect now?
--
Kris Moore
PC-BSD Software
iXsystems
More information about the Testing
mailing list