Translation(s): French German Portuguese

Sound for most Eee PC models with Alsa should ‘just work’. The following are tips to make it work optimally for certain applications or to work around problems with specific models.

Model 900A, 901, 1000, 1000H, and 1000HE front Microphone

See Install an updated Alsa driver below.

1001PX [a.k.a. R101 in Germany] built-in microphone

With Linux 2.6.32-29, built-in microphone of my 1001PX did not work (it recorded just a noise). How I made it to work: install Linux 2.6.37~rc7-1~experimental.1, boot to the original Windows XP, record there some sound and play it; then reboot (without turning the PC off) to Linux 2.6.37, record there some sound (it worked now but the audio playing was broken now); reboot Linux 2.6.37: now and after any other reboots both playing and recording worked.

for me worked Out-Of-The-Box with kernel 2.6.37-trunk-686 from the experimental repo without any trick, config or workaround. external mic NOT tested, maybe working with "options snd-hda-intel model=fujitsu" in /etc/modprobe.d/alsa-base.conf

Alsamixer

If you’re setting up your system to use an application like Ekiga to do VoIP/video conferencing then you will probably want to know how to use alsamixer utility to access the low-level mixer channels on your audio card. There are GUI versions of alsamixer, but the alsamixer program is almost always installed by default. It is provided by the alsa-utils package.

To use it open up a terminal and use the 'alsamixer' program. It has three views (Playback settings, Capture settings, all settings) and you can switch between them with the tab button. You can press left arrow key or right arrow key to move from mixer to mixer and up arrow and down arrow key to change volumes. The m button will toggle mute for the devices that support it and space bar will toggle capture status for settings that support that (be sure to enable this, or the microphone will not work). The '?' button will show the help dialog for more controls.

For the EeePC’s microphone you’ll probably want to adjust these settings: use the tab button to select the all view.

Arrow over to the capture setting and toggle it on using the space bar. Make sure the volume is around 70 %.

Make sure that i-mic (internal mic) is selected as the input source. (If i-mic doesn’t appear, try Front Mic.) Press up and down arrow to select input device.

Arrow over to the i-mic mixer settings. Set the volume at 70 % and then set the i-mic boost to 33 %.

That should give a good basis for playing around with your own settings till you get it perfect. The i-mic boost should be set to zero or 33 %. Anything above that and I get horrible sound distortion through Ekiga.

For testing audio performance Audacity is a good choice. Make sure that you go through the preferences and it is setup to use ALSA.

GNOME Sound Recorder application from gnome-media is ok for doing recording. You just have to make sure that the codec it uses is either WAV, ?MP3, or speex when doing the recording. The default is to use Ogg/Vorbis and the EeePC isn’t quite fast enough to do that encoding in real-time leading to very bad sound quality.

ALSA configuration

This can improve performance for your sound system when playing multiple sounds, recording to multiple programs, playing games, or watching videos on your EeePC.

For more details on what this file is and what to do with it see http://alsa.opensrc.org/.asoundrc.

pcm.my_card {
  type hw
  card 0
  # mmap_emulation true
}
pcm.dmixed {
  ## This provides software mixing for audio out
  type dmix
  ipc_key 1024
  slave {
  pcm "my_card"
  ## period_size and buffer_size
  ## can be modified to reduce
  ## latency or add more 'cusion'
  ## through the buffer
  period_size 1024
  buffer_size 4096
  rate 44100
  }
}
pcm.dsnooped {
  ## this provides software mixing for audio in
  type dsnoop
  ipc_key 2048
  slave {
  pcm "my_card"
  period_size 1024
  buffer_size 4096
  rate 44100
  }
}
pcm.asymed {
  ## this plugin allows you to bind both
  ## the dmix and dsnoop plugins together
  type asym
  playback.pcm "dmixed"
  capture.pcm "dsnooped"
}
pcm.pasymed {
  ## if you do not want to use use
  ## mixing by default, you can delete
  ## !default entry below and direct
  ## apps to use this 'device' as a
  ## extra option
  type plug
  slave.pcm "asymed"
}
pcm.dsp0 {
  ## this allows most OSS-only apps
  ## to use this mixing stuff
  ## through the use of the aoss wrapper
  type plug
  slave.pcm "asymed"
}
pcm.!default {
  ## this makes alsa apps default
  ## to use this config
  type plug
  slave.pcm "asymed"
}

Install an updated Alsa driver

A convenient way to update your Alsa driver is to use the alsa-source package from testing (1.0.20+dfsg-1 as of the time of writing). Set up installs from testing using ?AptPinning and:

aptitude install module-assistant
m-a prepare
aptitude -t testing install alsa-source
m-a build alsa
m-a install alsa

Or instead of using ?AptPinning, just download the deb for alsa-source directly from your mirror, use dpkg -i to install it, and then module-assistant as per above.

Testing your updated driver

After updating the alsa driver, you need to reboot or, alternatively you exit all audio applications (including any mixer application) and unload the old kernel modules. Then load the newly installed modules by hand (the commands were tested on EeePC 901):

rmmod snd_hda_intel snd_pcm snd_timer snd soundcore snd_page_alloc
modprobe snd_hda_intel

After the new modules are loaded either because of reboot or you loaded it by hand, have a look at your mixer settings with alsamixer or the gnome-volume-control, the channels have changed from the stock driver. Note that if you loaded the modules by hand you need not to do it again after a new reboot.

The contols of the stock driver looks like this in alsamixer:

AlsaMixer_Realtek_ALC269_playback.png

AlsaMixer_Realtek_ALC269_capture.png

AlsaMixer_Realtek_ALC269_all.png

The controls of the updated drivers looks like this in alasamixer:

AlsaMixer_Realtek_ALC269_playback_updated_driver.png

AlsaMixer_Realtek_ALC269_capture_updated_driver.png

AlsaMixer_Realtek_ALC269_all_updated_driver.png

FixMe: the following advice is in dispute. We need to correct it, simplify it and/or fix it in the eeepc-acpi-scripts package.

To get your hot keys to work again you need to edit /etc/default/eee-acpi-scripts and change the mixer labels

VOLUME_LABEL='LineOut'
VOLUME_LABEL='iSpeaker'

to

VOLUME_LABEL='PCM'
VOLUME_LABEL='LineOut'

[psyche] Are you sure there should be two VOLUME_LABEL keys? I think for the second item should be HEADPHONE_LABEL='?LineOut'

[?TimoZimmermann] After installing eeepc-acpi-scripts 1.0.10 the following steps were unnecessary for me.

You also need to add the line

I_SWITCH_LABEL='iSpeaker'

This should get the volume keys working again.

To get the mute key to work you need to edit /etc/acpi/actions/hotkey.sh. Comment out the line (around line number 50)

status=$(amixer get $VOLUME_LABEL | sed -n '/%/{s/.*\[\(on\|off\)\].*/\u\1/p;q}')

and add this line underneath it

status=$(amixer get $I_SWITCH_LABEL | sed -n 's/.*\[\(on\|off\)\].*/\1/;ta;d;:a;p;q')

Further down in the ‘# Fn+F7 -- mute/unmute speakers’ section, comment out the line

amixer -q set $VOLUME_LABEL toggle

and add instead

amixer -q set $I_SWITCH_LABEL toggle

You should now be all set.

ALSA OSS

On my system the oss_mixer did not work at all (using i.e. wmmixer as ?DockApp in fvwm2). The reason seemed to be the mapping of ALSA to OSS by kernel module snd_mixer_oss. It can be seen in /proc/asound/card0/oss_mixer. On my system i saw no matchings:

eee1000:~# cat /proc/asound/card0/oss_mixer
VOLUME "" 0
BASS "" 0
TREBLE "" 0
SYNTH "" 0
PCM "" 0
SPEAKER "" 0
LINE "" 0
MIC "" 0
CD "" 0
IMIX "" 0
ALTPCM "" 0
RECLEV "" 0
IGAIN "" 0
OGAIN "" 0
LINE1 "" 0
LINE2 "" 0
LINE3 "" 0
DIGITAL1 "" 0
DIGITAL2 "" 0
DIGITAL3 "" 0
PHONEIN "" 0
PHONEOUT "" 0
VIDEO "" 0
RADIO "" 0
MONITOR "" 0

The right mappings can be written to the file when booting by adding these four lines to the end of /etc/init.d/rc.local file:

echo 'VOLUME "PCM" 0' > /proc/asound/card0/oss_mixer
echo 'LINE "LineOut" 0' > /proc/asound/card0/oss_mixer
echo 'MIC "Capture" 0' > /proc/asound/card0/oss_mixer
echo 'PHONEIN "Digital" 0' > /proc/asound/card0/oss_mixer

Afterwards we have a working configuration:

eee1000:~# cat /proc/asound/card0/oss_mixer
VOLUME "PCM" 0
BASS "" 0
TREBLE "" 0
SYNTH "" 0
PCM "" 0
SPEAKER "" 0
LINE "LineOut" 0
MIC "Capture" 0
CD "" 0
IMIX "" 0
ALTPCM "" 0
RECLEV "" 0
IGAIN "Capture" 0
OGAIN "" 0
LINE1 "" 0
LINE2 "" 0
LINE3 "" 0
DIGITAL1 "" 0
DIGITAL2 "" 0
DIGITAL3 "" 0
PHONEIN "Digital" 0
PHONEOUT "" 0
VIDEO "" 0
RADIO "" 0
MONITOR "" 0

Alternate versions: updated kernel or upstream source for Alsa driver

Although the alsa-source from testing should be sufficient to solve the front mic issue, if you are interested in trying new things, you may instead use a more recent kernel or get the latest alsa driver from upstream.

TODO: List reasons why a user would want to do this instead of just using the recommended testing alsa-source.

Linux kernel 2.6.28-rc1 and later contain a sufficiently-recent ALSA driver. If you have that version or later (if you're using a stock lenny kernel, you don't), there is no point in you rebuilding the driver.

Otherwise, grab the upstream source from here: ftp://ftp.alsa-project.org/pub/driver/. At the time of writing, alsa-driver-1.0.18a.tar.bz2 is current. We have verified that 1.0.18rc1 works as well.

You will need the appropriate linux-headers package installed.

Next you need to unpack it somewhere like /usr/src/ then build it. You may want to backup your old driver first

/lib/modules/2.6.26-1-686/kernel/sounds/pci/hda/# cp snd-hda-intel.ko snd-hda-intel.ko.stock
/usr/src/alsa-driver-1.0.18rc1# ./configure --with-cards=hda-intel --with-options=all
/usr/src/alsa-driver-1.0.18rc1# make
/usr/src/alsa-driver-1.0.18rc1# make install
/usr/src/alsa-driver-1.0.18rc1# ./snddevices

According to the INSTALL file in alsa-driver, the last step is unnecessary when running udev. That file also recommends using 'make install-modules' rather than 'make install', assuming that the Debian alsa-utils and alsa-base packages are already installed.

You can verify your new driver with

ls -l /lib/modules/2.6.26-1-686/updates/alsa/

Check that the date on the snd-hda-intel.ko is about the time you compiled it :)

Now follow the rest of the instructions from Testing your updated driver.

Problem with no sound on eee PC 900 running linux-image-2.6.30-1-686 kernel can be solved by upgrading the laptop`s BIOS. Files with new BIOS can be found at http://support.asus.com/download . A good manual about how to update: http://www.blakeanthonyjohnson.com/?p=170 If you are following this manual and getting errors "USB Device not found" while updating, try using another flash-drive (for me it worked with 512Mb Transcend JF160). After updating and loading the system press Fn+F7 keys to turn the sound on (even if mixers show that sound is unmuted).

Skype (and any other application which only uses Left channel of Front Mic.) Workaround

On my EeePC 901 ([?JesseWyant]), the "Front Mic." is a stereo channel, with the Left channel appearing to be the difference of the left microphone and the right microphone, and the Right channel representing the sum of the two microphones. (At least, using Audacity to capture sound clips using the stereo Front Mic., and comparing the two channels, leads me to this conclusion.) The end result is that the Left channel is very quiet, and the Right channel has the expected loudness.

Unfortunately, some applications (like Skype) only use the Left channel of the Front Mic., and as a result the microphone audio is too quiet.

Here's an example .asoundrc snippet which illustrates a means to swap the Left and Right channels from the Front Mic. Then, from within Skype's Audio settings menu, you may select the "skype" audio capture device (to use the Right channel):

pcm.skype {
  type route
  slave.pcm "hw:0,0"
  #slave.pcm "dsnooped"  # Also worked.  Which would be preferable?
  ttable.0.1 1
  ttable.1.0 1
}

KMix and other mixers for your desktop

If you use a mixer for your desktop (such as KMix on KDE), you may need to change the channel shown to match the name of the channel that is displayed when you press the volume keys. This name differs from model to model and it is indicated in your /lib/init/rw/eeepc-acpi-scripts.sound (variable DEF_SOUND_LABEL).

For instance, on 4G model and KMix, Select Master Channel... --> Line-Out


CategorySound