<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  
  
  <channel>
    <title>chrisjrob: sound</title>
    <link>https://chrisjrob.com</link>
    <atom:link href="https://chrisjrob.com/tag/sound/feed/index.xml" rel="self" type="application/rss+xml" />
    <description>GNU Linux, Perl and FLOSS</description>
    <language>en-gb</language>
    <pubDate>Fri, 13 Feb 2026 17:22:31 +0000</pubDate>
    <lastBuildDate>Fri, 13 Feb 2026 17:22:31 +0000</lastBuildDate>
    
    <item>
      <title>Fixing Album Art in SONOS Under Linux</title>
      <link>https://chrisjrob.com/2018/09/23/fixing-album-art-in-sonos-under-linux/</link>
      <pubDate>Sun, 23 Sep 2018 13:00:00 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2018/09/23/fixing-album-art-in-sonos-under-linux</guid>
      <description>
       <![CDATA[
         
           <img src="https://chrisjrob.com/assets/sonos-play-3.jpg" align="right" alt="Featured Image">
         
         <p>Following my purchase of a <a href="/2016/02/20/sonos-review/">SONOS system</a>, I wanted to be able to play my music collection through it.
Unfortunately many of the album covers were missing.
After considerable googling I eventually determined that the missing covers were missing because I had embedded the album cover with a higher resolution than SONOS can cope with.</p>

<p>To fix this problem I needed to extract the embedded images, change the resolution, remove the current images, and re-embed the new lower resolution image.
I needed to do this for each album that was missing its cover.</p>

<!--more-->

<h2 id="adding-your-music-library-to-sonos">Adding your music library to SONOS</h2>

<p>Firstly, a word about adding my music library to SONOS. 
This involved transferring my MP3 music collection onto an external hard drive and plugging it into my router and sharing it as a Samba share.
The final step is to add Music Library as a service within the SONOS app, and specify the location of the Samba share created above.</p>

<p>If your router doesn’t offer a Samba option, then you might consider a Raspberry Pi with a simple samba share, or using NextCloud or a dedicated plug-in device like the <a href="/2011/02/25/tonidoplug-tnd003sp1a03-65-tonido-store/">Tonido Plug</a>, or pretty much any NAS device.</p>

<h2 id="important-notice">Important Notice</h2>

<p>Unfortunately, whilst I made some key notes at the time, a couple of years has passed before I finally found the time to type up this post.
As a result there may be some errors, or you might need need to interpret / adjust some of these commands.</p>

<p>I do not wish to be responsible for you losing your music collection, please do take a backup of your music before you start.</p>

<p>Please do let me know if you spot any mistakes, by commenting below.</p>

<h2 id="preparation">Preparation</h2>

<p>These instructions only require eyeD3 and either grapicsmagick or imagemagick.
These instructions were written for Ubuntu GNU Linux, you will need to adapt these instructions if you use a different distribution.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo apt install eyed3 graphicsmagick
</code></pre></div></div>

<p>If you already have Imagemagick installed, then you may use that instead, just remove the “gm “ from the relevant commands below.</p>

<h2 id="step-1-extract-image-from-music">Step 1: Extract image from music</h2>

<p><strong>Please change directory into the first album that requires fixing, and stay in that directory until you have finished all steps.</strong></p>

<p>As the album cover is embedded in each track in the album, you only need to extract this once per album:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ eyeD3 --write-images=./ "01 - Track 1 name.mp3"
</code></pre></div></div>

<p>This will extract the embedded image from the file as:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>FRONT_COVER.JPG
</code></pre></div></div>

<h2 id="step-2-identify-current-resolution">Step 2: Identify current resolution</h2>

<p>The next step is to identify the size of the image, to do this I use graphicsmagick, but imagemagick will work the same (just omit the <code class="language-plaintext highlighter-rouge">gm</code>):</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ gm identify FRONT_COVER.JPG
</code></pre></div></div>

<p>If the size of the image is already smaller than 300x300 pixels, then it <em>should</em> already be working, otherwise we need to reduce its size.</p>

<h2 id="step-3-convert">Step 3: Convert</h2>

<p>To reduce the size of the image, do a simple convert:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ gm convert FRONT_COVER.JPG -geometry 300x300 folder.jpg
</code></pre></div></div>

<p>If you would like to check that this has worked just run:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ gm identify folder.jpg
</code></pre></div></div>

<h2 id="step-4-remove-images-from-mp3-files">Step 4: Remove images from MP3 files</h2>

<p>Before we can add the newly sized image, we need to remove all the embedded images in the tracks.</p>

<p>Please note that this command alters your music, please do take a backup to ensure that you can restore the tracks if necessary.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ eyeD3 --remove-images *.mp3
</code></pre></div></div>

<h2 id="step-5-add-new-image-to-mp3-files">Step 5: Add new image to MP3 files</h2>

<p>And finally we can now embed the smaller image:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ eyeD3 --add-image=./folder.jpg:FRONT_COVER *.mp3
</code></pre></div></div>

<h2 id="step-6-update-music-index">Step 6: Update music index</h2>

<p>I cannot remember whether or not I needed to update the music index, but if your album covers haven’t appeared already - try this:</p>

<ul>
  <li>Open the SONOS app</li>
  <li>Settings</li>
  <li>Manage Music Library</li>
  <li>Update Music Index Now</li>
</ul>

<h2 id="conclusion">Conclusion</h2>

<p>I was in two minds as to whether to post this, given the time elapsed, but hopefully it will prove useful to someone. 
Please do comment below if you spot any errors, or found it useful.</p>

<p>Thank you.</p>

       ]]>
      </description>
    </item>
    
    <item>
      <title>Home Theatre PC - Test Boot</title>
      <link>https://chrisjrob.com/2010/05/13/home-theatre-test-boot/</link>
      <pubDate>Thu, 13 May 2010 00:00:00 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2010/05/13/home-theatre-test-boot</guid>
      <description>
       <![CDATA[
         
         <p>At last the 24-pin ATX PSU extension cable has arrived - enabling me to perform a test boot.</p>

<p>It switched on okay, but the front LEDs were not working, neither the power nor the disk LED; so it seems that they are not wired up correctly, although I really can’t see how I could have got it wrong.</p>

<!--more-->

<p>It booted into a Kubuntu 10.04 USB stick without any problems.  The network card was detected correctly and I was able to browse the Internet without any configuration.  The Nvidia card was detected correctly, using the open source driver, obviously I will install the Nvidia binary driver.  The only strangeness was the lack of sound via the HDMI cable, but looking in the BIOS afterward I noticed an option “Audio via HDMI” which I have enabled, it was set to auto, but maybe that’ll make a difference.</p>

<p>It is difficult to say how quiet it is at present, as any sound it was making was being drowned out by our noisy old mythbox.</p>

<p>I can’t wait to have a decent chunk of time to start the installation.</p>


       ]]>
      </description>
    </item>
    
    <item>
      <title>LTSP | LTSP5 Client Sound</title>
      <link>https://chrisjrob.com/2009/05/06/ltsp5-sound-client/</link>
      <pubDate>Wed, 06 May 2009 16:17:00 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2009/05/06/ltsp5-sound-client</guid>
      <description>
       <![CDATA[
         
           <img src="https://chrisjrob.com/assets/ltsp_logo.png" align="right" alt="Featured Image">
         
         <h2 id="background">Background</h2>

<p>On Ubuntu and Debian sound on the client gets started automatically during boot by default (the distros udev and the alsa scripts will detect your soundcard and start all needed services if a soundcard was detected on your client).  LDM (the default display manager we use in ltsp5) then sets up a virtual ALSA device in the users session during login.  The tunnel ALSA uses as endpoint is set up through LDM by setting the <code class="language-plaintext highlighter-rouge">PULSE_SERVER</code> variable, it should point to the clients IP at port 4713 (check that by runing “env” in a terminal when logged in).</p>

<!--more-->

<p><strong>The pulse server only runs on the client, it has nothing to do with sound but being the transport endpoint… do not play with any pulse audio on the server, it’s all ALSA.</strong></p>

<h2 id="warning">Warning</h2>

<p>This document is the LTSP 4.2 Client Sound document, which I am in the process of migrating to LTSP 5.  I think it’s pretty much there now down to the last step, which may or may not be appropriate for LTSP 5.</p>

<h2 id="step-1---ensure-users-are-in-the-audio-group">Step 1 - Ensure users are in the audio group</h2>

<p>LDM (the default display manager we use in ltsp5) then sets up a virtual ALSA device in the users session during login.  The users that shall use sound need to be in the audio group to have access to the virtual sound device and volume control.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo adduser kate audio
Password: *******
The user `kate' is already a member of `audio'.
</code></pre></div></div>

<h2 id="step-2---switch-on-sound">Step 2 - Switch on sound</h2>

<p>You need to switch sound on for the clients, either for all clients by adding to <code class="language-plaintext highlighter-rouge">[default]</code> group at the top of the <code class="language-plaintext highlighter-rouge">lts.conf</code> file, or by adding to the specific client in the usual way.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># File: /opt/ltsp/i386/etc/lts.conf
#
[default] 
    SOUND_DAEMON       = pulse
    SOUND              = True
</code></pre></div></div>

<h2 id="step-3---check-alsa-set-up">Step 3 - Check alsa set-up</h2>

<p>To check the alsa setup is proper, have a look at <code class="language-plaintext highlighter-rouge">/etc/asound.conf</code>.  There should be two lines like the following:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pcm.!default { type pulse }
ctl.!default { type pulse }
</code></pre></div></div>

<p>You may also have a file in the user’s home directory <code class="language-plaintext highlighter-rouge">.asound.conf</code>, which should probably be removed in order to default to the global setting?</p>

<h2 id="step-4---check-port">Step 4 - Check port</h2>

<p>The tunnel ALSA uses as endpoint is set up through LDM by setting the <code class="language-plaintext highlighter-rouge">PULSE_SERVER</code> variable, it should point to the clients IP at port 4713 (check that by runing “env” in a terminal when logged in).</p>

<p>Open a shell and type:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ env | grep PULSE
PULSE_SERVER=tcp:192.168.0.48:4713
$
</code></pre></div></div>

<h2 id="step-5---identify-soundcard">Step 5 - Identify soundcard</h2>

<p>To determine what Soundcard is installed in your PC, key [Ctrl]+[Alt]+[F1] and log in as root.  If you cannot log in, you may need to set the LTSP Client Root Password.</p>

<p>In the shell, to show any PCI Soundcards, type:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># lspci -v | more
</code></pre></div></div>

<p>Look for a device stating “audio” and make a note of the salient details.</p>

<h2 id="step-5b---check-sound-not-muted">Step 5b - Check Sound not Muted</h2>

<p>Some soundcards seem to suffer from a problem that they start-up muted.  To test this, whilst logged onto the client type:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># alsamixer
</code></pre></div></div>

<p>If for example the main volume is at nil and there is “MM” (Muted left and Muted right) at the bottom of the slider, then pressing M to unmute, and the cursor keys to increase the volume, will resolve the problem.  The only thing is that this fix will be lost next time you boot the client.</p>

<p>See <a href="/2009/02/17/ltsp5-sound-client-unmute-fix/">Unmute Fix</a> for details on how to permanently cure this problem.</p>

<h2 id="step-6---identify-sound-module-with-knoppix">Step 6 - Identify sound module with Knoppix</h2>

<p>Boot the client with Knoppix or another live CD and from a terminal window type <code class="language-plaintext highlighter-rouge">lsmod</code> to identify the sound module.  Use this information to help you in the next step.</p>

<h2 id="step-7---determine-appropriate-driver">Step 7 - Determine appropriate driver</h2>

<p>To decide the appropriate driver to use, typing the following command on the server or functioning client, will give you a list of available drivers:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ find /opt/ltsp/i386/lib/modules/ | grep snd
</code></pre></div></div>

<h2 id="step-8---trial-and-error">Step 8 - Trial and error</h2>

<p>At this point it’s probably worth removing, or commenting out the sound options, so that the client boots without any sound modules loaded. Once booted key Ctrl+Alt+F1.</p>

<p>Unless you have a good knowledge of sound drives, this is going to be a little bit of trial and error - remember Google is your friend. In this instance I Googled for “LTSP Intel 82801EB” and found a page detailing the following:</p>

<blockquote>
  <blockquote>
    <p>Intel Corp. 82801EB/ER (ICH5/ICH5R) AC’97 Audio Controller</p>
  </blockquote>

  <table>
    <tbody>
      <tr>
        <td>lsmod</td>
        <td>grep -i intel</td>
      </tr>
    </tbody>
  </table>

  <p>snd_intel8x0m 20036 1</p>
</blockquote>

<p>I compared this with the output from Step 4 and decided the best match was <code class="language-plaintext highlighter-rouge">snd-intel8x0</code>.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># modprobe snd-intel8x0
</code></pre></div></div>

<p>The command responded with some clean output. I therefore added the following to LTS.CONF:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SMODULE_01         = "snd-intel8x0"
</code></pre></div></div>

<p>And success!</p>

<p>A common Soundblaster compatible card is:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># File: /opt/ltsp/i386/etc/lts.conf
#
SMODULE_01 = "sb io=0x220 irq=5 dma=1"
</code></pre></div></div>

<h2 id="related-pages">Related Pages</h2>

<ul>
  <li><a href="/2008/06/21/ltsp-sound-on-compaq-ensff-pcs/">LTSP5 Sound Client :: Configure Compaq Deskpro ENSFF</a></li>
  <li><a href="/2009/02/17/ltsp5-sound-client-unmute-fix/">LTSP5 Sound Client :: Unmute Fix</a></li>
</ul>

       ]]>
      </description>
    </item>
    
    <item>
      <title>LTSP | LTSP5 Sound</title>
      <link>https://chrisjrob.com/2009/04/30/ltsp5-sound/</link>
      <pubDate>Thu, 30 Apr 2009 08:32:19 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2009/04/30/ltsp5-sound</guid>
      <description>
       <![CDATA[
         
           <img src="https://chrisjrob.com/assets/ltsp_logo.png" align="right" alt="Featured Image">
         
         <h2 id="introduction">Introduction</h2>

<p>One of the many benefits of LTSP5 is that it does away with the need for ESD sound (or other hacks), and instead utilises Pulseaudio on the client and Alsa on the server.</p>

<p>The rest of this document is largely based on the following Ubuntu/Gnome instructions:</p>

<ul>
  <li>http://developer.novell.com/wiki/index.php/Feisty/HOWTO:_PulseAudio</li>
</ul>

<!--more-->

<p>Those instruction now state that they are obsolete for new versions of Ubuntu; however they still seem to be required for Debian Lenny.</p>

<h2 id="install-packages-on-server">Install packages on server</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo apt-get install pulseaudio liboil0.3 pulseaudio-utils libpulse-browse0 libpulse-mainloop-glib0 padevchooser pulseaudio-esound-compat
$ sudo apt-get install libao-pulse (for etch)
$ sudo apt-get install libao2 (for lenny)
$ sudo apt-get install alsa-base alsa-utils libasound2-plugins
</code></pre></div></div>

<h2 id="install-packages-on-client">Install packages on client</h2>

<p>I believe that these packages are already installed in Lenny, but no harm in checking:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo chroot /opt/ltsp/i386/
# apt-get install pulseaudio pulseaudio-esound-compat pulseaudio-module-x11
# exit
</code></pre></div></div>

<h2 id="alsa-configuration">ALSA configuration</h2>

<p>On the server, configure ALSA to forward audio to PulseAudio by creating a file <code class="language-plaintext highlighter-rouge">/etc/asound.conf</code> with the following:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>pcm.!default {
        type pulse
}

ctl.!default {
        type pulse
}
</code></pre></div></div>

<h2 id="pulseaudio-configuration">PulseAudio configuration</h2>

<p>Configure the PulseAudio daemon, create <code class="language-plaintext highlighter-rouge">/opt/ltsp/i386/etc/pulse/daemon.conf</code> as follows:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>daemonize = 1
high-priority = 1
log-target = stderr
resample-method = trivial
no-cpu-limit = 1
system-instance = 1
disable-shm = 1
</code></pre></div></div>

<h2 id="conclusion">Conclusion</h2>

<p>In my experience there is no need to reboot the server, in KDE I just restarted the sound system by switching sound off and back on in the KDE Control Panel, and clicked Test button.  I could probably just have logged off/on.</p>

<h2 id="references">References</h2>

<ul>
  <li>http://developer.novell.com/wiki/index.php/Feisty/HOWTO:_PulseAudio</li>
</ul>


       ]]>
      </description>
    </item>
    
    <item>
      <title>LTSP | LTSP Rdesktop Sound</title>
      <link>https://chrisjrob.com/2009/03/21/ltsp5-sound-rdesktop/</link>
      <pubDate>Sat, 21 Mar 2009 06:28:35 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2009/03/21/ltsp5-sound-rdesktop</guid>
      <description>
       <![CDATA[
         
           <img src="https://chrisjrob.com/assets/ltsp_logo.png" align="right" alt="Featured Image">
         
         <h2 id="background">Background</h2>

<p>Rdesktop is a problem, because it uses <code class="language-plaintext highlighter-rouge">/dev/dsp</code> as the sound device (for version 1.5 at least).  This is incompatible with ALSA.</p>

<h2 id="solution">Solution</h2>

<!--more-->

<p>Specifying “oss” as the sound driver, instead of the default, worked fine:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ padsp rdesktop -r sound:local:oss 192.168.0.1
</code></pre></div></div>


       ]]>
      </description>
    </item>
    
    <item>
      <title>LTSP | LTSP4.2 Client Sound</title>
      <link>https://chrisjrob.com/2009/03/21/ltsp4.2-sound-client/</link>
      <pubDate>Sat, 21 Mar 2009 06:26:08 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2009/03/21/ltsp4.2-sound-client</guid>
      <description>
       <![CDATA[
         
           <img src="https://chrisjrob.com/assets/ltsp_logo.png" align="right" alt="Featured Image">
         
         <h2 id="step-1---switch-on-sound">Step 1 - Switch on sound</h2>

<p>Firstly, you need to switch sound on for the clients.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># File: /opt/ltsp/i386/etc/lts.conf
#
# enable sound by default
SOUND                   = Y
# choose either esd or nasd to be the default (esd only on x86_64)
SOUND_DAEMON            = esd
VOLUME                  = 100 # Speaker &amp; WAVE volume pecentage
MIC_VOLUME              = 100 # Microphone volume
CD_VOLUME               = 75  # CD Audio volume
</code></pre></div></div>

<!--more-->

<h2 id="step-2---identify-soundcard">Step 2 - Identify soundcard</h2>

<p>To determine what Soundcard is installed in your PC, add the line:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># File: /opt/ltsp/i386/etc/lts.conf
#
SCREEN_02          = shell
</code></pre></div></div>

<p>Then enter after rebooting, enter shell by typing Ctrl+Alt+F2. In the shell, to show any PCI Soundcards, type:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># lspci -v | more
</code></pre></div></div>

<p>Look for a device stating “audio” and make a note of the salient details. For example my test PC has the following details:</p>

<p>Intel 82801EB/ER AC97 IRQ5 IO Port d400 @ 256k and d800 @ 64k.</p>

<h2 id="step-3---check-ltsporg">Step 3 - Check LTSP.org</h2>

<p>Check the following website - you might strike lucky!</p>

<ul>
  <li>http://wiki.ltsp.org/twiki/bin/view/Ltsp/SoundCards</li>
</ul>

<h2 id="step-4---determine-appropriate-driver">Step 4 - Determine appropriate driver</h2>

<p>To decide the appropriate driver to use, typing the following command on the server or functioning client, will give you a list of available drivers:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ find /opt/ltsp/i386/lib/modules/ | grep snd
</code></pre></div></div>

<h2 id="step-5---identify-sound-module-with-knoppix">Step 5 - Identify sound module with Knoppix</h2>

<p>Boot the client with Knoppix and from a terminal window type “lsmod” to identify the sound module.</p>

<h2 id="step-6---trial-and-error">Step 6 - Trial and error</h2>

<p>At this point it’s probably worth removing, or commenting out the sound options, so that the client boots without any sound modules loaded. Once booted key Ctrl+Alt+F2.</p>

<p>Unless you have a good knowledge of sound drives, this is going to be a little bit of trial and error - remember Google is your friend. In this instance I Googled for “LTSP Intel 82801EB” and found a page detailing the following:</p>

<blockquote>
  <blockquote>
    <p>Intel Corp. 82801EB/ER (ICH5/ICH5R) AC’97 Audio Controller</p>
  </blockquote>

  <table>
    <tbody>
      <tr>
        <td>lsmod</td>
        <td>grep -i intel</td>
      </tr>
    </tbody>
  </table>

  <p>snd_intel8x0m 20036 1</p>
</blockquote>

<p>I compared this with the output from Step 4 and decided the best match was “snd-intel8x0”.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># modprobe snd-intel8x0
</code></pre></div></div>

<p>The command responded with some clean output. I therefore added the following to LTS.CONF:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SMODULE_01         = "snd-intel8x0"
</code></pre></div></div>

<p>And success!</p>

<p>A common Soundblaster compatible card is:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># File: /opt/ltsp/i386/etc/lts.conf
#
SMODULE_01 = "sb io=0x220 irq=5 dma=1"
</code></pre></div></div>

<h2 id="other-issues">Other issues</h2>

<h3 id="soundcard-okay-but-no-sound">Soundcard okay but no sound</h3>

<p>If you are confident that the soundcard is being identified correctly and there are no errors on boot-up, then perhaps the volume is muted. The only volume controls at our disposal are:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>VOLUME                  = 100 # Speaker &amp; WAVE volume pecentage
MIC_VOLUME              = 100 # Microphone volume
CD_VOLUME               = 75  # CD Audio volume
</code></pre></div></div>

<p>However from a client shell you can try the following:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ cd /share/sounds/alsa
$ esdplay Noise.wav
$ amixer scontrols              # Take a note of them
$ amixer sget Front             # To view each control
$ amixer sset Front 75% unmute   # To set a control called Front to 75% volume
</code></pre></div></div>

<h2 id="snd-hda-intel-issues">snd-hda-intel issues</h2>

<p>Oh, so may issues. Try each of the following in <code class="language-plaintext highlighter-rouge">lts.conf</code>:</p>

<p><strong>Google for ALSA-Configuration.txt and review section on snd-hda-intel.</strong></p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SMODULE_01              = "snd-hda-intel model=auto"
SMODULE_01              = "snd-hda-intel model=3stack"
SMODULE_01              = "snd-hda-intel model=3stack-dig"
SMODULE_01              = "snd-hda-intel index=0 probe_mask=3 position_fix=3"
SMODULE_01              = "snd-hda-intel position_fix=1 model=3stack"
</code></pre></div></div>

<h2 id="sound-muted">Sound muted</h2>

<p>All working but sound muted. Save this script as “unmute” in <code class="language-plaintext highlighter-rouge">/opt/ltsp/i386/etc/rc.d</code>:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>#!/bin/bash
#
# Copyright Gideon Romm, Symbio Technologies
#
# Released under GPLv2
#
# This is a script to set up certain things 
# that are not already setup in an SBA environment
#
# Specifically:
#   1. restore sound levels
#

# Set up local environment
if [ -f /etc/lts.conf ]; then
    eval `getltscfg -a`
fi

# Set up sound
if [ -n "$VOLUME" ]; then
    amixer sset Master,0 ${VOLUME}% unmute 2&gt;/dev/null
    amixer sset 'Master Digital',0 ${VOLUME}% unmute 2&gt;/dev/null
    amixer sset Headphone,0 ${HEADPHONE_VOLUME:-$VOLUME}% unmute 2&gt;/dev/null
fi

if [ -n "$PCM_VOLUME" ]; then
    amixer sset PCM,0 ${PCM_VOLUME}% unmute 2&gt;/dev/null
fi

if [ -n "$MIC_VOLUME" ]; then
    amixer sset Mic,0 ${MIC_VOLUME}% unmute cap 2&gt;/dev/null
fi

if [ -n "$CD_VOLUME" ]; then
    amixer sset CD,0 ${CD_VOLUME}% unmute 2&gt;/dev/null
fi

if [ -n "$FRONT_VOLUME" ]; then
    amixer sset Front,0 ${FRONT_VOLUME}% unmute 2&gt;/dev/null
fi
</code></pre></div></div>

<p>Then add the following line to LTS.conf:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>RCFILE_01          = unmute
</code></pre></div></div>

<p>This unmute script also adds the functionality of FRONT_VOLUME, which may be set in LTS.CONF:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>FRONT_VOLUME       = 100
</code></pre></div></div>

<p>The script could be easily modified to enable other volume controls is required.</p>

       ]]>
      </description>
    </item>
    
    <item>
      <title>LTSP | LTSP4.2 Sound</title>
      <link>https://chrisjrob.com/2009/03/21/ltsp4.2-sound/</link>
      <pubDate>Sat, 21 Mar 2009 06:25:59 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2009/03/21/ltsp4.2-sound</guid>
      <description>
       <![CDATA[
         
           <img src="https://chrisjrob.com/assets/ltsp_logo.png" align="right" alt="Featured Image">
         
         <h2 id="introduction">Introduction</h2>

<p>Warning: sound on LTSP should only be contemplated by those who enjoy good health and have no history of heart disease in their family. If you are of a nervous disposition you should not attempt sound on LTSP.</p>

<p>Please note that this solution, at best, result in poor quality sound. High fidelity it is not.</p>

<!--more-->

<p>The absolute gospel according to LTSP sound is the following web page. You may consider this page to be disjointed and contradictory, that is because it is disjointed and contradictory.</p>

<ul>
  <li>http://wiki.ltsp.org/twiki/bin/view/Ltsp/Sound</li>
</ul>

<p>Good luck!</p>

<h2 id="esd-socket">ESD Socket</h2>

<p>ESD requires a socket to run, but if your server doesn’t have a sound card, then the odds are that you do not have a socket. You will need to create this manually:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo mkdir /tmp/.esd
$ sudo touch /tmp/.esd/socket
</code></pre></div></div>

<p>You will need some form of script and cron job in order to make this persist beyond server reboots.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>#!/bin/bash
if [ ! -e /tmp/.esd/socket ]; then
    /bin/mkdir /tmp/.esd
    /bin/touch /tmp/.esd/socket
fi
</code></pre></div></div>

<p>Save this script somewhere, make it executable and add it to crontab.</p>

<h2 id="oss-transparent-redirection-to-esd">OSS transparent redirection to esd</h2>

<p>There are other ways of getting sound, but this seems to work. Most Linux application can use <code class="language-plaintext highlighter-rouge">/dev/oss</code>, KDE, RealPlayer, Skype, … support it. Also if sound redirection by OSS might not be the best quality, in order to listen voicemails and/or online training it is more than enough.</p>

<p>The other nice thing with OSS redirection, is that from a system admin point of view it is a piece of cake !!! After you’ve started esound server from <code class="language-plaintext highlighter-rouge">lts.conf</code> as explained before, make it available automatically from X11 startup. In order to do so add in <code class="language-plaintext highlighter-rouge">/etc/X11/Xsession</code> somewhere before it launches your window manager.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>REMOTE_X11=${DISPLAY%:*}
if test "$REMOTE_X11" == ""
then
  export REMOTEX_11=false
else
  export ESPEAKER=$REMOTE_X11:16001
  export ESDDSP_MIXER=1
# export LD_PRELOAD="/usr/lib/libesddsp.so.0 /usr/lib/libesd.so.0 $LD_PRELOAD"        # Non-debian
  export LD_PRELOAD="/usr/lib/esound/libesddsp.so.0 /usr/lib/libesd.so.0 $LD_PRELOAD" # Debian
  export REMOTE_X11=true
fi
</code></pre></div></div>

<p>Note that the line:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>export LD_PRELOAD="/usr/lib/libesddsp.so.0 /usr/lib/libesd.so.0 $LD_PRELOAD"
</code></pre></div></div>

<p>must be changed to</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>export LD_PRELOAD="/usr/lib/esound/libesddsp.so.0 /usr/lib/libesd.so.0 $LD_PRELOAD"
</code></pre></div></div>

<p>In order to check, connect from your LSTP client and check <code class="language-plaintext highlighter-rouge">$ESPEAKER</code>. It’s value should look like ltsp-client-name:16001.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ echo $ESPEAKER
ws179.ltsp:16001
</code></pre></div></div>

<p>Next step is to try it, by finding a .wav file somewhere is <code class="language-plaintext highlighter-rouge">/usr/share/sounds</code> and run it using esdplay:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ esdplay /usr/share/sounds/alsa/test.wav
</code></pre></div></div>

<p>Hopefully you heard some sound?</p>

<h2 id="flash-sound">Flash Sound</h2>

<p>For YouTube and other flash websites, if you want sound, you should download and run this deb:</p>

<ul>
  <li>http://pulseaudio.vdbonline.net/libflashsupport/</li>
</ul>

<p>This is experimental and unsupported, but it worked first time.</p>

<h2 id="realplayer">Realplayer</h2>

<h3 id="references">References</h3>

<ul>
  <li>http://forms.real.com/real/player/blackjack.html</li>
  <li>http://linux.derkeiler.com/Mailing-Lists/Debian/2004-02/3778.html</li>
</ul>

<h3 id="step-1-create-download-directory">Step 1: Create download directory</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ cd ~
$ mkdir realplayer8
$ cd realplayer8
</code></pre></div></div>

<h3 id="step-2-download-realplayer-8">Step 2: Download Realplayer 8</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ wget http://software-dl.real.com/2241543e04bd76d81218//support/unix/rp8_linux20_libc6_i386_cs1_rpm.htm
</code></pre></div></div>

<h3 id="step-3-correct-name-of-downloaded-file">Step 3: Correct name of downloaded file</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ mv rp8_linux20_libc6_i386_cs1_rpm.htm rp8_linux20_libc6_i386_cs1.rpm
</code></pre></div></div>

<h3 id="step-4-convert-and-install-deb">Step 4: Convert and install deb</h3>

<p>I have tested and the –scripts option seems to work well.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ alien --scripts rp8_linux20_libc6_i386_cs1.rpm
$ dpkg -i rp8_linux20_libc6_i386_cs1.deb
</code></pre></div></div>

<h3 id="step-5-create-symlink-to-mozilla-plugins">Step 5: Create symlink to Mozilla Plugins</h3>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo ln -s /usr/local/netscape/plugins/rpnp.so /usr/lib/mozilla/plugins/rpnp.so
</code></pre></div></div>

<h2 id="esound-on-vmware">ESound on VMWare</h2>

<p>If Enlightenment Sound Daemon is enabled on the Linux host, the software opens the host machine’s sound device by the time X starts. When a virtual machine with sound configured is started on a host with ESD running, Workstation will not be able to access the sound device because it is in use. As a workaround, you can start the Workstation session using the esddsp wrapper. Start the session by typing <code class="language-plaintext highlighter-rouge">esddsp vmware</code> or <code class="language-plaintext highlighter-rouge">esddsp &lt;virtualmachinename&gt;.cfg</code>. The wrapper will pass the sound output generated by the virtual machine as an audio stream to the ESD audio server.</p>

<h2 id="mplayer">MPlayer</h2>

<p>MPlayer must be configured</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/etc/mplayer$ sudo nano mplayer.conf
vo=x11
ao=esd
framedrop=1

$ sudo nano /etc/mplayerplug-in.conf

# See http://mplayerplug-in.sourceforge.net/config.php
# for a description of these options
vo=x11
ao=esd
cachesize=512
cache-percent=25
dload-dir=$HOME/tmp
autostart=1
enable-wmp=1
enable-qt=1
enable-rm=1
enable-gmp=1
enable-dvx=1
enable-mpeg=1
enable-mp3=1
enable-midi=0
enable-pls=1
enable-ogg=1
enable-smil=1
enable-helix=1
nomediacache=0
nopauseonhide=0
rtsp-use-tcp=0
rtsp-use-http=0
framedrop=1
</code></pre></div></div>

<ul>
  <li>http://mplayerplug-in.sourceforge.net/config.php</li>
</ul>


       ]]>
      </description>
    </item>
    
    <item>
      <title>Howto | Debug Debian Sound</title>
      <link>https://chrisjrob.com/2009/03/21/debug-debian-sound/</link>
      <pubDate>Sat, 21 Mar 2009 05:58:43 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2009/03/21/debug-debian-sound</guid>
      <description>
       <![CDATA[
         
           <img src="https://chrisjrob.com/assets/debian_logo.png" align="right" alt="Featured Image">
         
         <p>Sound is one of those things in Linux which either works out-of-the-box, or drives you berserk. The following instructions did not solve my problems, but I leave them here for future reference.</p>

<p>The gospel for sound according to Debian:</p>

<ul>
  <li>http://www.debianhelp.co.uk/sound.htm</li>
</ul>

<!--more-->

<h2 id="step-1-make-sure-you-have-the-sound-system-fully-installed">Step 1: Make sure you have the sound system fully installed</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># apt-get install alsa-base alsa-oss alsa-source alsa-utils
# apt-get install alsamixergui alsaplayer alsaplayer-common alsaplayer-gtk alsaplayer-jack
# apt-get install alsaplayer-oss snd-gtk-alsa vlc-plugin-alsa alsaplayer-jack jack jackd
</code></pre></div></div>

<h2 id="step-2-determine-your-sound-card">Step 2: Determine your sound card</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># lspci -v | grep -A 6 Audio
00:14.2 Audio device: ATI Technologies Inc SB600 Azalia
        Subsystem: Micro-Star International Co., Ltd. Unknown device 7297
        Flags: bus master, slow devsel, latency 64, IRQ 22
        Memory at fe020000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: [50] Power Management version 2
</code></pre></div></div>

<h2 id="step-3-run-module-assistant">Step 3: Run module-assistant</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># apt-get install module-assistant
# module-assistant
</code></pre></div></div>

<p>If this fails stating cannot find <code class="language-plaintext highlighter-rouge">config.h</code>, then:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># cd /usr/src/linux-headers/linux-headers-2.6.21-2-k7/include/linux
# ln -s autoconf.h config.h
</code></pre></div></div>

<p>Next run:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># alsaconf
</code></pre></div></div>

<p>The solution to the problem is often as simple as adding a line at the end of <code class="language-plaintext highlighter-rouge">/etc/modprobe.d/alsa-base</code> along the lines of:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ options snd-hda-intel model=xyz
</code></pre></div></div>

<p>To determine sound chip model:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: SB [HDA ATI SB], device 0: ALC861VD Analog [ALC861VD Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0

# cat /proc/asound/cards
0 [SB             ]: HDA-Intel - HDA ATI SB
                    HDA ATI SB at 0xfe020000 irq 22
</code></pre></div></div>

<p>Then gunzip <code class="language-plaintext highlighter-rouge">/usr/share/doc/alsa-base/driver/ALSA-Configuration.txt.gz</code>. Open with nano and search for your soundcard chip as shown above.</p>

<p><code class="language-plaintext highlighter-rouge">options snd-hda-intel model=3stack</code> works for many motherboard integrated chips with shared surrounds. Sometimes it is also possible to use the more generic <code class="language-plaintext highlighter-rouge">options snd-hda-intel model=ref</code>, which the hda driver uses to load manufacturer specfic presets (SigmaTel, Realtek, etc.). The full list is available in ALSA-Configuration.txt in the driver tarball under alsa-kernel/Documentation/.</p>

<h2 id="restart-sound-system">Restart sound system</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># cd /etc/init.d
# then ./alsasound restart
</code></pre></div></div>

<h2 id="play-test-sound">Play Test Sound</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># locate *.wav
/usr/share/sounds/KDE_Beep_RingRing.wav
/usr/share/sounds/KDE_Beep_ShortBeep.wav

# aplay /usr/share/sounds/KDE_Beep_RingRing.wav
Playing WAVE '/usr/share/sounds/KDE_Beep_RingRing.wav' : Unsigned 8 bit, Rate 22254 Hz, Mono
</code></pre></div></div>

<h2 id="external-references">External references</h2>

<ul>
  <li>http://www.debianhelp.co.uk/sound.htm</li>
  <li>http://ubuntuforums.org/showthread.php?t=205449</li>
  <li>http://bugs.archlinux.org/task/6978</li>
  <li>http://ubuntuforums.org/showthread.php?t=314383</li>
  <li>http://ubuntuforums.org/showthread.php?p=3267595</li>
  <li>https://wiki.ubuntu.com/LaptopTestingTeam/Lenovo3000C200_89224MG</li>
  <li>https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.20/+bug/107821</li>
  <li>https://help.ubuntu.com/community/HdaIntelSoundHowto</li>
  <li>https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.17/+bug/85869</li>
</ul>

       ]]>
      </description>
    </item>
    
    <item>
      <title>LTSP | LTSP5 Client Sound | Unmute Fix</title>
      <link>https://chrisjrob.com/2009/02/17/ltsp5-sound-client-unmute-fix/</link>
      <pubDate>Tue, 17 Feb 2009 16:22:15 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2009/02/17/ltsp5-sound-client-unmute-fix</guid>
      <description>
       <![CDATA[
         
           <img src="https://chrisjrob.com/assets/mute.png" align="right" alt="Featured Image">
         
         <h2 id="introduction">Introduction</h2>

<p>There is a problem with some sound cards that start up muted.  This installs a script which responds to settings in lts.conf.</p>

<p>To test this, whilst logged onto the client type:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># alsamixer
</code></pre></div></div>

<!--more-->

<p>If the main volume is at nil and there is “MM” (Muted left and Muted right) at the bottom of the slider, then pressing M to unmute, and the cursor keys to increase the volume, will resolve the problem.  You can experiment with the different channels, like PCM, FRONT and MASTER.  Play to your heart’s content, any changes will be lost on reboot.</p>

<p>The only thing is that this fix will be lost next time you boot the client.</p>

<h2 id="step-1-install-script">Step 1: Install Script</h2>

<div class="language-bash highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="c">#!/bin/bash</span>
<span class="c">#</span>
<span class="c"># Copyright Gideon Romm, Symbio Technologies</span>
<span class="c">#</span>
<span class="c"># Released under GPLv2</span>
<span class="c">#</span>
<span class="c"># This is a script to set up certain things </span>
<span class="c"># that are not already setup in an SBA environment</span>
<span class="c">#</span>
<span class="c"># Specifically:</span>
<span class="c">#   1. restore sound levels</span>
<span class="c">#</span>
<span class="c"># lts.conf:</span>
<span class="c"># VOLUME</span>
<span class="c"># PCM_VOLUME</span>
<span class="c"># MIC_VOLUME</span>
<span class="c"># CD_VOLUME</span>
<span class="c"># FRONT_VOLUME</span>

<span class="nb">echo</span> <span class="s2">"Restoring sound levels"</span> <span class="o">&gt;</span> /tmp/unmute.log

amixer
<span class="k">while</span> <span class="o">[</span> <span class="nv">$?</span> <span class="o">!=</span> 0 <span class="o">]</span><span class="p">;</span> <span class="k">do
</span><span class="nb">sleep </span>1
amixer
<span class="k">done</span>

<span class="c"># Set up local environment</span>
<span class="k">if</span> <span class="o">[</span> <span class="nt">-f</span> /etc/lts.conf <span class="o">]</span><span class="p">;</span> <span class="k">then
    </span><span class="nb">eval</span> <span class="sb">`</span>getltscfg <span class="nt">-a</span><span class="sb">`</span>
<span class="k">fi</span>

<span class="c"># Set up sound</span>
<span class="k">if</span> <span class="o">[</span> <span class="nt">-n</span> <span class="s2">"</span><span class="nv">$VOLUME</span><span class="s2">"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then
</span>amixer sset Master,0 <span class="k">${</span><span class="nv">VOLUME</span><span class="k">}</span>% unmute 2&gt;/dev/null
<span class="nb">echo</span> <span class="s2">"amixer sset Master,0 </span><span class="k">${</span><span class="nv">VOLUME</span><span class="k">}</span><span class="s2">% unmute 2: </span><span class="nv">$?</span><span class="s2">"</span> <span class="o">&gt;&gt;</span> /tmp/unmute.log
amixer sset <span class="s1">'Master Digital'</span>,0 <span class="k">${</span><span class="nv">VOLUME</span><span class="k">}</span>% unmute 2&gt;/dev/null
<span class="nb">echo</span> <span class="s2">"amixer sset 'Master Digital',0 </span><span class="k">${</span><span class="nv">VOLUME</span><span class="k">}</span><span class="s2">% unmute 2: </span><span class="nv">$?</span><span class="s2">"</span> <span class="o">&gt;&gt;</span> /tmp/unmute.log
amixer sset Headphone,0 <span class="k">${</span><span class="nv">HEADPHONE_VOLUME</span><span class="k">:-</span><span class="nv">$VOLUME</span><span class="k">}</span>% unmute 2&gt;/dev/null
<span class="nb">echo</span> <span class="s2">"amixer sset Headphone,0 </span><span class="k">${</span><span class="nv">HEADPHONE_VOLUME</span><span class="k">}</span><span class="s2">% unmute 2: </span><span class="nv">$?</span><span class="s2">"</span> <span class="o">&gt;&gt;</span> /tmp/unmute.log
<span class="k">fi

if</span> <span class="o">[</span> <span class="nt">-n</span> <span class="s2">"</span><span class="nv">$PCM_VOLUME</span><span class="s2">"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then
</span>amixer sset PCM,0 <span class="k">${</span><span class="nv">PCM_VOLUME</span><span class="k">}</span>% unmute 2&gt;/dev/null
<span class="nb">echo</span> <span class="s2">"amixer sset PCM,0 </span><span class="k">${</span><span class="nv">PCM_VOLUME</span><span class="k">}</span><span class="s2">% unmute 2: </span><span class="nv">$?</span><span class="s2">"</span> <span class="o">&gt;&gt;</span> /tmp/unmute.log
<span class="k">fi

if</span> <span class="o">[</span> <span class="nt">-n</span> <span class="s2">"</span><span class="nv">$MIC_VOLUME</span><span class="s2">"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then
</span>amixer sset Mic,0 <span class="k">${</span><span class="nv">MIC_VOLUME</span><span class="k">}</span>% unmute cap 2&gt;/dev/null
<span class="nb">echo</span> <span class="s2">"amixer sset Mic,0 </span><span class="k">${</span><span class="nv">MIC_VOLUME</span><span class="k">}</span><span class="s2">% unmute 2: </span><span class="nv">$?</span><span class="s2">"</span> <span class="o">&gt;&gt;</span> /tmp/unmute.log
<span class="k">fi

if</span> <span class="o">[</span> <span class="nt">-n</span> <span class="s2">"</span><span class="nv">$CD_VOLUME</span><span class="s2">"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then
</span>amixer sset CD,0 <span class="k">${</span><span class="nv">CD_VOLUME</span><span class="k">}</span>% unmute 2&gt;/dev/null
<span class="nb">echo</span> <span class="s2">"amixer sset CD,0 </span><span class="k">${</span><span class="nv">CD_VOLUME</span><span class="k">}</span><span class="s2">% unmute 2: </span><span class="nv">$?</span><span class="s2">"</span> <span class="o">&gt;&gt;</span> /tmp/unmute.log
<span class="k">fi

if</span> <span class="o">[</span> <span class="nt">-n</span> <span class="s2">"</span><span class="nv">$FRONT_VOLUME</span><span class="s2">"</span> <span class="o">]</span><span class="p">;</span> <span class="k">then
</span>amixer sset Front,0 <span class="k">${</span><span class="nv">FRONT_VOLUME</span><span class="k">}</span>% unmute 2&gt;/dev/null
<span class="nb">echo</span> <span class="s2">"amixer sset Front,0 </span><span class="k">${</span><span class="nv">FRONT_VOLUME</span><span class="k">}</span><span class="s2">% unmute 2: </span><span class="nv">$?</span><span class="s2">"</span> <span class="o">&gt;&gt;</span> /tmp/unmute.log
<span class="k">fi

</span><span class="nb">echo</span> <span class="s2">"Sound levels restored"</span> <span class="o">&gt;&gt;</span> /tmp/unmute.log
</code></pre></div></div>

<h2 id="step-2-generate-rcd">Step 2: Generate rc.d</h2>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ sudo chroot /opt/ltsp/i386
# update-rc.d unmute defaults
# exit
$ sudo ltsp-update-image
</code></pre></div></div>

<h2 id="step-3-configure-ltsconf">Step 3: Configure lts.conf</h2>

<p>Use the following settings for the particular client:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>VOLUME            = 100
PCM_VOLUME        = 100
MIC_VOLUME        = 100
CD_VOLUME         = 100
FRONT_VOLUME      = 100
</code></pre></div></div>

<h2 id="step-4-reboot-client">Step 4: Reboot client</h2>

<p>Reboot the client.  You can check that the script has run by looking at <code class="language-plaintext highlighter-rouge">/tmp/unmute.log</code> on the client.  You can get to the client by pressing Ctrl-Alt-F1 and logging in with the root password.</p>

<h2 id="references">References</h2>

<ul>
  <li>http://www.debian-administration.org/articles/28</li>
</ul>

       ]]>
      </description>
    </item>
    
    <item>
      <title>LTSP | Sound on Compaq ENSFF PCs</title>
      <link>https://chrisjrob.com/2008/06/21/ltsp-sound-on-compaq-ensff-pcs/</link>
      <pubDate>Sat, 21 Jun 2008 00:00:00 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2008/06/21/ltsp-sound-on-compaq-ensff-pcs</guid>
      <description>
       <![CDATA[
         
           <img src="https://chrisjrob.com/assets/ltsp_logo.png" align="right" alt="Featured Image">
         
         <p>We have a number of Compaq Deskpro ENSFF P450s for which sound stopped working since our <a href="/2010/06/25/ltsp5-upgrade/">LTSP5 Upgrade</a>.  I spent some time this morning solving this problem and have detailed <a href="#configure-compaq-deskpro-ensff-for-ltsp5-sound">my solution below</a>.</p>

<p>The bulk of the fix was simply changing <code class="language-plaintext highlighter-rouge">SMODULE_01</code> to <code class="language-plaintext highlighter-rouge">MODULE_01</code> in LTS.conf, although this particular PC was a little more involved.</p>

<!--more-->

<h2 id="configure-compaq-deskpro-ensff-for-ltsp5-sound">Configure Compaq Deskpro ENSFF for LTSP5 Sound</h2>

<h3 id="introduction">Introduction</h3>

<p>We have a number of Compaq Deskpro EN-SFF P450 PCs.  These are small-form-factor Pentium IIIs with Compaq quality.  I believe these have the ESS1869 soundcard.</p>

<p><strong>The BIOS settings on our PCs are io=0x220 irq=5 dma=1 dma16=5; your settings may be different!</strong></p>

<h2 id="ltsp42">LTSP4.2</h2>

<p>They worked flawlessly under LTSP4.2 with the following LTS.conf configuration:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SMODULE_01         = "snd-es18xx irq=5"
</code></pre></div></div>

<p>Since upgrading to LTSP5, sound has ceased to function.</p>

<h2 id="testing">Testing</h2>

<p>I booted the client and typed [Ctrl]+[Alt]+[F1] to bring up the client console and typed:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># lsmod | grep snd
</code></pre></div></div>

<p>Which returned nothing, showing that sound was definitely not loaded (no surprise there!).</p>

<p>Next I tried typing:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># modprobe snd-es18xx
ESS AudioDrive ES18xx soundcard not found or device busy
FATAL: Error inserting snd_es18xx (/lib/modules/2.6.18-6-486/kernel/sound/isa/snd-es18xx.ko): No such device
</code></pre></div></div>

<h2 id="research">Research</h2>

<table>
  <tbody>
    <tr>
      <td>Next I Googled “(ltsp5</td>
      <td>edubuntu) snd-es18xx” which produced the following thread:</td>
    </tr>
  </tbody>
</table>

<ul>
  <li>http://ubuntuforums.org/showthread.php?t=148077</li>
</ul>

<p>This was not specific to LTSP5, nevertheless it gave a useful configuration:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>/etc/modprobe.d/alsa-base

alias char-major-116 snd
alias snd-card-0 snd-es18xx
options snd-es18xx index=0 enable=1 isapnp=0 port=0x220 mpu_port=0x388 fm_port=0x330 irq=5 dma1=1 dma2=0

alias char-major-14 soundcore
alias sound-slot-0 snd-card-0

alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
</code></pre></div></div>

<p>In particular the following line looked useful:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>options snd-es18xx index=0 enable=1 isapnp=0 port=0x220 mpu_port=0x388 fm_port=0x330 irq=5 dma1=1 dma2=0
</code></pre></div></div>

<p>Still in the client console I typed:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># modprobe snd-es18xx index=0 enable=1 isapnp=0 port=0x220 mpu_port=0x388 fm_port=0x330 irq=5 dma1=1 dma2=0
</code></pre></div></div>

<p>And the sound module loaded fine.  I then ran:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># speaker-test
speaker-test 1.0.13
Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
...
</code></pre></div></div>

<p>And sound was working fine.</p>

<h2 id="ltsconf">LTS.conf</h2>

<p>So obviously all we need to do is to set in LTS.conf and we should be sorted:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SMODULE_01         = "snd-es18xx index=0 enable=1 isapnp=0 port=0x220 mpu_port=0x388 fm_port=0x330 irq=5 dma1=1 dma2=0"
</code></pre></div></div>

<p>But no joy!  Thinking that the issue was with an incompatibility with one of the above switches and LTSP, I experimented with removing all the switches and just adding some back; the aim being to end up with a minimal set of switches that worked.  On a hunch I tried:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># modprobe snd-es18xx isapnp=0
</code></pre></div></div>

<p>And the speaker-test worked.  Adding this to LTS.conf</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>SMODULE_01         = "snd-es18xx isapnp=0"
</code></pre></div></div>

<p>And it <em>still</em> didn’t work.  For some reason, that I cannot find documented, SMODULE is no longer working, and needs replacing with MODULE - thus:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>MODULE_01         = "snd-es18xx isapnp=0"
</code></pre></div></div>

<p>All now working.</p>

       ]]>
      </description>
    </item>
    
    <item>
      <title>LTSP | Sound problem fixed</title>
      <link>https://chrisjrob.com/2008/06/18/sound-problem-fixed/</link>
      <pubDate>Wed, 18 Jun 2008 00:00:00 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2008/06/18/sound-problem-fixed</guid>
      <description>
       <![CDATA[
         
           <img src="https://chrisjrob.com/assets/ltsp_logo.png" align="right" alt="Featured Image">
         
         <p>Further to <a href="/2008/06/17/ltsp-sound-in-rdesktop-sessions/">my recent post</a>, it transpired that rdesktop uses <code class="language-plaintext highlighter-rouge">/dev/dsp</code> which is incompatible with alsa.  Specifying “oss” as the sound driver, instead of the default, worked fine.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ padsp rdesktop -r sound:local:oss 192.168.0.1
</code></pre></div></div>

<!--more-->

<p>This is apparently because rdesktop version 1.5 does not support alsa, but still uses <code class="language-plaintext highlighter-rouge">/dev/dsp</code> as the sound device.  A new version 1.6 of rdesktop is now available (albeit not in the debian etch or etch-backports repositories), which should address this issue.  Unfortunately we are using a patched version of rdesktop, provided by fontis, and I know they were struggling to integrate their patches into the latest versions.  I should probably attempt to contact them at some point.</p>

<p>This also represented my first attempt at using IRC #ltsp - which proved invaluable.  Installed Konversation, as I could not get on with Kirc.</p>

       ]]>
      </description>
    </item>
    
    <item>
      <title>LTSP | Sound in rdesktop sessions</title>
      <link>https://chrisjrob.com/2008/06/17/ltsp-sound-in-rdesktop-sessions/</link>
      <pubDate>Tue, 17 Jun 2008 00:00:00 +0000</pubDate>
      <author>chrisjrob@gmail.com (Chris Roberts)</author>
      <guid>https://chrisjrob.com/2008/06/17/ltsp-sound-in-rdesktop-sessions</guid>
      <description>
       <![CDATA[
         
           <img src="https://chrisjrob.com/assets/ltsp_logo.png" align="right" alt="Featured Image">
         
         <p>Today I discovered that since our upgrade to LTSP5, sound has stopped working in rdesktop sessions.  Worse, it bombs users out of their Windows session with the error:</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>rdesktop: pcm_params.c:2351: sndrv_pcm_hw_params: Assertion `err &gt;= 0' failed.
Aborted
</code></pre></div></div>

<!--more-->

<p>Under 4.2 it was working beautifully simply by prefixing rdesktop with esddsp, 
e.g.</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ esddsp rdesktop -r sound:local 192.168.0.1
</code></pre></div></div>

<p>But removing esddsp or replacing with padsp causes exactly the same error 
message.  I suspect with alsa the esddsp/padsp fix is no longer required, but 
why does it not work?</p>

<p>I have even tried pointing padsp at the client pulseaudio device…</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>$ padsp -d -s 192.168.0.41:4713 -n rdesktop rdesktop -r sound:local 192.168.0.1
</code></pre></div></div>

<p>I have posted this as <a href="http://sourceforge.net/p/ltsp/mailman/message/19679055/">a question on the LTSP Mailing List</a> and am hopeful of a solution!</p>


       ]]>
      </description>
    </item>
    
  </channel> 
</rss>
