Subwoofer not working on Fujitsu Siemens AMILO Xi 3650 in Ubuntu 10.04 alpha release

Asked by Koen Cosyns

The subwoofer of my notebook (fujitsu siemens amilo xi3650) doesn't work when using ubuntu 10.04.The subwoofer is located on the back of the notebook. the regular speakers (next to my keabord work fine). my sound card is realtek alc888 high definition.

When I open alsa mixer in the terminal, following bars indicate following values:

- master --> 87
- headphone --> 00
- PCM --> 98 <>98
- front --> 100 <>100
- front Mi --> 0<>0
- Line --> 0<>0
- IEC958 --> no bar, no value
- IEC958 D --> no bar, no value
- speaker --> 100 <>100

 I've no clue how to change settings as I am not really an experienced user, I am just a regular pc user who stumbled into ubuntu and liked the idea of open source. So if your able to help me please keep that in mind and be as specific as possible :-).

Many thanks, Cozze

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu alsa-driver Edit question
Assignee:
No assignee Edit question
Solved by:
Mark Rijckenberg
Solved:
Last query:
Last reply:
Revision history for this message
Mark Rijckenberg (markrijckenberg) said :
#1

Please send us the full terminal output from step 3 and step 4 from this procedure:

https://help.ubuntu.com/community/SoundTroubleshootingProcedure

Revision history for this message
Koen Cosyns (kcosyns) said :
#2

http://pastebin.ca/1838942

cozze@cozze-laptop:~$ wget -O alsa-info.sh http://212.20.107.51/alsa-info.sh
--2010-03-14 10:23:48-- http://212.20.107.51/alsa-info.sh
Connecting to 212.20.107.51:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://git.alsa-project.org/?p=alsa-driver.git;a=blob_plain;f=utils/alsa-info.sh [following]
--2010-03-14 10:23:48-- http://git.alsa-project.org/?p=alsa-driver.git;a=blob_plain;f=utils/alsa-info.sh
Resolving git.alsa-project.org... 212.20.107.51
Reusing existing connection to 212.20.107.51:80.
HTTP request sent, awaiting response... 200 OK
Length: 27026 (26K) [text/plain]
Saving to: `alsa-info.sh'

100%[======================================>] 27,026 145K/s in 0.2s

2010-03-14 10:23:48 (145 KB/s) - `alsa-info.sh' saved [27026/27026]

cozze@cozze-laptop:~$ bash alsa-info.sh --pastebin
ALSA Information Script v 0.4.59
--------------------------------

This script visits the following commands/files to collect diagnostic
information about your ALSA installation and sound related hardware.

  dmesg
  lspci
  lsmod
  aplay
  amixer
  alsactl
  /proc/asound/
  /sys/class/sound/
  ~/.asoundrc (etc.)

See 'alsa-info.sh --help' for command line options.

Automatically upload ALSA information to pastebin? [y/N] : y
Uploading information to www.pastebin.ca ... Done!

Your ALSA information is located at http://pastebin.ca/1838932

Please inform the person helping you.

cozze@cozze-laptop:~$ bash alsa-info.sh --pastebin
ALSA Information Script v 0.4.59
--------------------------------

This script visits the following commands/files to collect diagnostic
information about your ALSA installation and sound related hardware.

  dmesg
  lspci
  lsmod
  aplay
  amixer
  alsactl
  /proc/asound/
  /sys/class/sound/
  ~/.asoundrc (etc.)

See 'alsa-info.sh --help' for command line options.

Automatically upload ALSA information to pastebin? [y/N] : y
Uploading information to www.pastebin.ca ... Done!

Your ALSA information is located at http://pastebin.ca/1838942

Please inform the person helping you.

cozze@cozze-laptop:~$ cat /proc/asound/cards; sudo rm /etc/asound.conf; sudo rm -r ~/.pulse ~/.asound* ;sudo rm ~/.pulse-cookie; sudo aptitude install paman gnome-alsamixer libasound2-plugins padevchooser libsdl1.2debian-pulseaudio; aplay -l; sudo lshw -C sound; sudo lshw -short;ls -lart /dev/snd; cat /dev/sndstat; lspci -nn; sudo which alsactl; sudo fuser -v /dev/dsp /dev/snd/* ; dpkg -S bin/slmodemd; dmesg|grep irmware; sudo /etc/init.d/sl-modem-daemon status; lsmod | grep snd
 0 [Intel ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xf3820000 irq 31
[sudo] password for cozze:
rm: cannot remove `/etc/asound.conf': No such file or directory
rm: cannot remove `/home/cozze/.asound*': No such file or directory
Reading package lists... Done
Building dependency tree
Reading state information... Done
Initializing package states... Done
Writing extended state information... Done
The following NEW packages will be installed:
  libgconfmm-2.6-1c2{a} libglademm-2.4-1c2a{a} libsdl1.2debian-pulseaudio
  padevchooser paman paprefs{a} pavucontrol{a} pavumeter{a}
  pulseaudio-module-zeroconf{a}
The following packages will be REMOVED:
  amb-plugins{u} cmt{u} libaudio2{u} libclalsadrv1{u} libgfortran3{u}
  libmpich1.0gf{u} libqt3-mt{u} libsdl1.2debian-alsa{a} mcp-plugins{u}
  rev-plugins{u} sfftw2{u} swh-plugins{u} vco-plugins{u}
0 packages upgraded, 9 newly installed, 13 to remove and 0 not upgraded.
Need to get 662kB of archives. After unpacking 11.6MB will be freed.
Do you want to continue? [Y/n/?] y
Writing extended state information... Done
Get:1 http://be.archive.ubuntu.com karmic/main libgconfmm-2.6-1c2 2.24.0-2 [31.4kB]
Get:2 http://be.archive.ubuntu.com karmic/main libglademm-2.4-1c2a 2.6.7-2 [21.7kB]
Get:3 http://be.archive.ubuntu.com karmic/universe pavumeter 0.9.3-1ubuntu1 [29.2kB]
Get:4 http://be.archive.ubuntu.com karmic/universe pavucontrol 0.9.8+git20090701-0ubuntu2 [120kB]
Get:5 http://be.archive.ubuntu.com karmic/universe paman 0.9.4-1ubuntu2 [92.2kB]
Get:6 http://be.archive.ubuntu.com karmic-updates/main pulseaudio-module-zeroconf 1:0.9.19-0ubuntu4.1 [20.2kB]
Get:7 http://be.archive.ubuntu.com karmic/universe paprefs 0.9.8+git20090825-0ubuntu2 [111kB]
Get:8 http://be.archive.ubuntu.com karmic/universe padevchooser 0.9.3-2ubuntu4 [20.2kB]
Get:9 http://be.archive.ubuntu.com karmic/universe libsdl1.2debian-pulseaudio 1.2.13-4ubuntu4 [216kB]
Fetched 662kB in 1s (352kB/s)
(Reading database ... 210869 files and directories currently installed.)
Removing amb-plugins ...
Removing cmt ...
Removing libqt3-mt ...
Removing libaudio2 ...
Removing libclalsadrv1 ...
Removing sfftw2 ...
Removing libmpich1.0gf ...
Removing libgfortran3 ...
Removing mcp-plugins ...
Removing rev-plugins ...
Removing swh-plugins ...
Removing vco-plugins ...
dpkg: libsdl1.2debian-alsa: dependency problems, but removing anyway as you requested:
 libsdl1.2debian depends on libsdl1.2debian-alsa (= 1.2.13-4ubuntu4) | libsdl1.2debian-all (= 1.2.13-4ubuntu4) | libsdl1.2debian-esd (= 1.2.13-4ubuntu4) | libsdl1.2debian-oss (= 1.2.13-4ubuntu4) | libsdl1.2debian-nas (= 1.2.13-4ubuntu4) | libsdl1.2debian-pulseaudio (= 1.2.13-4ubuntu4); however:
  Package libsdl1.2debian-alsa is to be removed.
  Package libsdl1.2debian-all is not installed.
  Package libsdl1.2debian-esd is not installed.
  Package libsdl1.2debian-oss is not installed.
  Package libsdl1.2debian-nas is not installed.
  Package libsdl1.2debian-pulseaudio is not installed.
Removing libsdl1.2debian-alsa ...
Processing triggers for menu ...
Processing triggers for doc-base ...
Processing 2 removed doc-base file(s)...
Registering documents with scrollkeeper...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Selecting previously deselected package libgconfmm-2.6-1c2.
(Reading database ... 210623 files and directories currently installed.)
Unpacking libgconfmm-2.6-1c2 (from .../libgconfmm-2.6-1c2_2.24.0-2_i386.deb) ...
Selecting previously deselected package libglademm-2.4-1c2a.
Unpacking libglademm-2.4-1c2a (from .../libglademm-2.4-1c2a_2.6.7-2_i386.deb) ...
Selecting previously deselected package pavumeter.
Unpacking pavumeter (from .../pavumeter_0.9.3-1ubuntu1_i386.deb) ...
Selecting previously deselected package pavucontrol.
Unpacking pavucontrol (from .../pavucontrol_0.9.8+git20090701-0ubuntu2_i386.deb) ...
Selecting previously deselected package paman.
Unpacking paman (from .../paman_0.9.4-1ubuntu2_i386.deb) ...
Selecting previously deselected package pulseaudio-module-zeroconf.
Unpacking pulseaudio-module-zeroconf (from .../pulseaudio-module-zeroconf_1%3a0.9.19-0ubuntu4.1_i386.deb) ...
Selecting previously deselected package paprefs.
Unpacking paprefs (from .../paprefs_0.9.8+git20090825-0ubuntu2_i386.deb) ...
Selecting previously deselected package padevchooser.
Unpacking padevchooser (from .../padevchooser_0.9.3-2ubuntu4_i386.deb) ...
Selecting previously deselected package libsdl1.2debian-pulseaudio.
Unpacking libsdl1.2debian-pulseaudio (from .../libsdl1.2debian-pulseaudio_1.2.13-4ubuntu4_i386.deb) ...
Processing triggers for desktop-file-utils ...
Processing triggers for man-db ...
Processing triggers for menu ...
Setting up libgconfmm-2.6-1c2 (2.24.0-2) ...

Setting up libglademm-2.4-1c2a (2.6.7-2) ...

Setting up pavumeter (0.9.3-1ubuntu1) ...

Setting up pavucontrol (0.9.8+git20090701-0ubuntu2) ...

Setting up paman (0.9.4-1ubuntu2) ...

Setting up pulseaudio-module-zeroconf (1:0.9.19-0ubuntu4.1) ...
Setting up paprefs (0.9.8+git20090825-0ubuntu2) ...

Setting up padevchooser (0.9.3-2ubuntu4) ...

Setting up libsdl1.2debian-pulseaudio (1.2.13-4ubuntu4) ...

Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
Processing triggers for menu ...
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initializing package states... Done
Writing extended state information... Done

**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: ALC888 Analog [ALC888 Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: ALC888 Digital [ALC888 Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
  *-multimedia
       description: Audio device
       product: 82801I (ICH9 Family) HD Audio Controller
       vendor: Intel Corporation
       physical id: 1b
       bus info: pci@0000:00:1b.0
       version: 03
       width: 64 bits
       clock: 33MHz
       capabilities: pm msi pciexpress bus_master cap_list
       configuration: driver=HDA Intel latency=0
       resources: irq:31 memory:f3820000-f3823fff
H/W path Device Class Description
======================================================
                               system AMILO Xi 3650
/0 bus XY680
/0/0 memory 105KiB BIOS
/0/4 processor Intel(R) Core(TM)2 Duo CPU T6400
/0/4/5 memory 64KiB L1 cache
/0/4/6 memory 2MiB L2 cache
/0/4/1.1 processor Logical CPU
/0/4/1.2 processor Logical CPU
/0/15 memory 4GiB System Memory
/0/15/0 memory 2GiB SODIMM DDR2 Synchronous 667 MHz
/0/15/1 memory 2GiB SODIMM DDR2 Synchronous 667 MHz
/0/1 processor
/0/1/1.1 processor Logical CPU
/0/1/1.2 processor Logical CPU
/0/100 bridge Mobile 4 Series Chipset Memory Contro
/0/100/1 bridge Mobile 4 Series Chipset PCI Express G
/0/100/1/0 display G96 [GeForce 9600M GT]
/0/100/2 display Mobile 4 Series Chipset Integrated Gr
/0/100/19 eth0 network 82567LF Gigabit Network Connection
/0/100/1a bus 82801I (ICH9 Family) USB UHCI Control
/0/100/1a.1 bus 82801I (ICH9 Family) USB UHCI Control
/0/100/1a.2 bus 82801I (ICH9 Family) USB UHCI Control
/0/100/1a.7 bus 82801I (ICH9 Family) USB2 EHCI Contro
/0/100/1b multimedia 82801I (ICH9 Family) HD Audio Control
/0/100/1c bridge 82801I (ICH9 Family) PCI Express Port
/0/100/1c.1 bridge 82801I (ICH9 Family) PCI Express Port
/0/100/1c.1/0 wmaster0 network Wireless WiFi Link 5100
/0/100/1d bus 82801I (ICH9 Family) USB UHCI Control
/0/100/1d.1 bus 82801I (ICH9 Family) USB UHCI Control
/0/100/1d.2 bus 82801I (ICH9 Family) USB UHCI Control
/0/100/1d.7 bus 82801I (ICH9 Family) USB2 EHCI Contro
/0/100/1e bridge 82801 Mobile PCI Bridge
/0/100/1e/4 bus FW322/323
/0/100/1f bridge ICH9M-E LPC Interface Controller
/0/100/1f.2 scsi0 storage Mobile 82801 SATA RAID Controller
/0/100/1f.2/0 /dev/sda disk 320GB WDC WD3200BEVT-2
/0/100/1f.2/0/1 /dev/sda1 volume 50GiB Windows NTFS volume
/0/100/1f.2/0/2 /dev/sda2 volume 222GiB Windows NTFS volume
/0/100/1f.2/0/3 /dev/sda3 volume 25GiB Extended partition
/0/100/1f.2/0/3/5 /dev/sda5 volume 24GiB Linux filesystem partition
/0/100/1f.2/0/3/6 /dev/sda6 volume 1106MiB Linux swap / Solaris partitio
/0/100/1f.2/1 /dev/cdrom disk DVDRAM GSA-T50N
/0/100/1f.3 bus 82801I (ICH9 Family) SMBus Controller
/0/2 scsi6 storage
/0/2/0.0.0 /dev/sdb disk SCSI Disk
/1 power Lithium Ion Battery
/2 system
/3 power To Be Defined By O.E.M
total 0
crw-rw----+ 1 root audio 116, 33 2010-03-14 10:17 timer
crw-rw----+ 1 root audio 116, 1 2010-03-14 10:17 seq
crw-rw----+ 1 root audio 116, 4 2010-03-14 10:17 hwC0D0
crw-rw----+ 1 root audio 116, 0 2010-03-14 10:17 controlC0
drwxr-xr-x 2 root root 60 2010-03-14 10:17 by-path
drwxr-xr-x 3 root root 200 2010-03-14 10:17 .
crw-rw----+ 1 root audio 116, 17 2010-03-14 10:17 pcmC0D1p
crw-rw----+ 1 root audio 116, 24 2010-03-14 10:17 pcmC0D0c
crw-rw----+ 1 root audio 116, 16 2010-03-14 10:21 pcmC0D0p
drwxr-xr-x 17 root root 3940 2010-03-14 10:38 ..
Sound Driver:3.8.1a-980706 (ALSA v1.0.22.1 emulation code)
Kernel: Linux cozze-laptop 2.6.31-20-generic #57-Ubuntu SMP Mon Feb 8 09:05:19 UTC 2010 i686
Config options: 0

Installed drivers:
Type 10: ALSA emulation

Card config:
HDA Intel at 0xf3820000 irq 31

Audio devices:
0: ALC888 Analog (DUPLEX)

Synth devices: NOT ENABLED IN CONFIG

Midi devices: NOT ENABLED IN CONFIG

Timers:
7: system timer

Mixers:
0: Realtek ALC888
00:00.0 Host bridge [0600]: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub [8086:2a40] (rev 07)
00:01.0 PCI bridge [0604]: Intel Corporation Mobile 4 Series Chipset PCI Express Graphics Port [8086:2a41] (rev 07)
00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller [8086:2a42] (rev 07)
00:19.0 Ethernet controller [0200]: Intel Corporation 82567LF Gigabit Network Connection [8086:10bf] (rev 03)
00:1a.0 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #4 [8086:2937] (rev 03)
00:1a.1 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #5 [8086:2938] (rev 03)
00:1a.2 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #6 [8086:2939] (rev 03)
00:1a.7 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #2 [8086:293c] (rev 03)
00:1b.0 Audio device [0403]: Intel Corporation 82801I (ICH9 Family) HD Audio Controller [8086:293e] (rev 03)
00:1c.0 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 1 [8086:2940] (rev 03)
00:1c.1 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 [8086:2942] (rev 03)
00:1d.0 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 [8086:2934] (rev 03)
00:1d.1 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #2 [8086:2935] (rev 03)
00:1d.2 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #3 [8086:2936] (rev 03)
00:1d.7 USB Controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB2 EHCI Controller #1 [8086:293a] (rev 03)
00:1e.0 PCI bridge [0604]: Intel Corporation 82801 Mobile PCI Bridge [8086:2448] (rev 93)
00:1f.0 ISA bridge [0601]: Intel Corporation ICH9M-E LPC Interface Controller [8086:2917] (rev 03)
00:1f.2 RAID bus controller [0104]: Intel Corporation Mobile 82801 SATA RAID Controller [8086:282a] (rev 03)
00:1f.3 SMBus [0c05]: Intel Corporation 82801I (ICH9 Family) SMBus Controller [8086:2930] (rev 03)
01:00.0 VGA compatible controller [0300]: nVidia Corporation G96 [GeForce 9600M GT] [10de:0649] (rev a1)
04:00.0 Network controller [0280]: Intel Corporation Wireless WiFi Link 5100 [8086:4232]
05:04.0 FireWire (IEEE 1394) [0c00]: Agere Systems FW322/323 [11c1:5811] (rev 70)
/sbin/alsactl
                     USER PID ACCESS COMMAND
/dev/snd/controlC0: cozze 2029 F.... pulseaudio
dpkg: *bin/slmodemd* not found.
[ 0.680754] [Firmware Bug]: ACPI: ACPI brightness control misses _BQC function
[ 4.058275] [Firmware Bug]: ACPI: ACPI brightness control misses _BQC function
[ 15.330062] iwlagn 0000:04:00.0: firmware: requesting iwlwifi-5000-2.ucode
[ 15.359943] iwlagn 0000:04:00.0: loaded firmware version 8.24.2.12
sudo: /etc/init.d/sl-modem-daemon: command not found
snd_hda_codec_realtek 210304 1
snd_hda_intel 25728 2
snd_hda_codec 84384 2 snd_hda_codec_realtek,snd_hda_intel
snd_hwdep 7392 1 snd_hda_codec
snd_pcm_oss 37472 0
snd_mixer_oss 16220 1 snd_pcm_oss
snd_pcm 76480 3 snd_hda_intel,snd_hda_codec,snd_pcm_oss
snd_seq_dummy 2752 0
snd_seq_oss 29216 0
snd_seq_midi 6656 0
snd_rawmidi 22336 1 snd_seq_midi
snd_seq_midi_event 7036 2 snd_seq_oss,snd_seq_midi
snd_seq 50896 6 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_seq_midi_event
snd_timer 21540 2 snd_pcm,snd_seq
snd_seq_device 7208 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq
snd 61156 18 snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_seq_dummy,snd_seq_oss,snd_seq_midi,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
soundcore 7264 1 snd
snd_page_alloc 9124 2 snd_hda_intel,snd_pcm

#!/bin/bash

SCRIPT_VERSION=0.4.59
CHANGELOG="http://www.alsa-project.org/alsa-info.sh.changelog"

#################################################################################
#Copyright (C) 2007 Free Software Foundation.

#This program is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2 of the License, or
#(at your option) any later version.

#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.

#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

##################################################################################

#The script was written for 2 main reasons:
# 1. Remove the need for the devs/helpers to ask several questions before we can easily help the user.
# 2. Allow newer/inexperienced ALSA users to give us all the info we need to help them.

#Set the locale (this may or may not be a good idea.. let me know)
export LC_ALL=C

#Change the PATH variable, so we can run lspci (needed for some distros)
PATH=$PATH:/bin:/sbin:/usr/bin:/usr/sbin
BGTITLE="ALSA-Info v $SCRIPT_VERSION"
PASTEBINKEY="C9cRIO8m/9y8Cs0nVs0FraRx7U0pHsuc"
#Define some simple functions

pbcheck(){
 [[ $UPLOAD = "no" ]] && return

 if [[ -z $PASTEBIN ]]; then
  [[ $(ping -c1 www.alsa-project.org) ]] || KEEP_FILES="yes" UPLOAD="no" PBERROR="yes"
 else
  [[ $(ping -c1 www.pastebin.ca) ]] || KEEP_FILES="yes" UPLOAD="no" PBERROR="yes"
 fi
}

update() {
 SHFILE=`mktemp -t alsa-info.XXXXXXXXXX` || exit 1
 wget -O $SHFILE "http://www.alsa-project.org/alsa-info.sh" >/dev/null 2>&1
 REMOTE_VERSION=`grep SCRIPT_VERSION $SHFILE |head -n1 |sed 's/.*=//'`
 if [ "$REMOTE_VERSION" != "$SCRIPT_VERSION" ]; then
  if [[ -n $DIALOG ]]
  then
   OVERWRITE=
   if [ -w $0 ]; then
    dialog --yesno "Newer version of ALSA-Info has been found\n\nDo you wish to install it?\nNOTICE: The original file $0 will be overwritten!" 0 0
    DIALOG_EXIT_CODE=$?
    if [[ $DIALOG_EXIT_CODE = 0 ]]; then
      OVERWRITE=yes
    fi
   fi
   if [ -z "$OVERWRITE" ]; then
    dialog --yesno "Newer version of ALSA-Info has been found\n\nDo you wish to download it?" 0 0
    DIALOG_EXIT_CODE=$?
   fi
   if [[ $DIALOG_EXIT_CODE = 0 ]]
   then
    echo "Newer version detected: $REMOTE_VERSION"
    echo "To view the ChangeLog, please visit $CHANGELOG"
    if [ "$OVERWRITE" = "yes" ]; then
     cp $SHFILE $0
     echo "ALSA-Info script has been updated to v $REMOTE_VERSION"
     echo "Please re-run the script"
     rm $SHFILE 2>/dev/null
    else
     echo "ALSA-Info script has been downloaded as $SHFILE."
     echo "Please re-run the script from new location."
    fi
    exit
   else
    rm $SHFILE 2>/dev/null
   fi
  else
   echo "Newer version detected: $REMOTE_VERSION"
   echo "To view the ChangeLog, please visit $CHANGELOG"
   if [ -w $0 ]; then
    echo "The original file $0 will be overwritten!"
    echo -n "If you do not like to proceed, press Ctrl-C now.." ; read inp
    cp $SHFILE $0
    echo "ALSA-Info script has been updated. Please re-run it."
    rm $SHFILE 2>/dev/null
   else
    echo "ALSA-Info script has been downloaded $SHFILE."
    echo "Please, re-run it from new location."
   fi
   exit
  fi
 else
  rm $SHFILE 2>/dev/null
 fi
}

cleanup() {
 if [ -n "$TEMPDIR" -a "$KEEP_FILES" != "yes" ]; then
  rm -rf "$TEMPDIR" 2>/dev/null
 fi
 test -n "$KEEP_OUTPUT" || rm -f "$NFILE"
}

withaplay() {
        echo "!!Aplay/Arecord output" >> $FILE
        echo "!!------------" >> $FILE
        echo "" >> $FILE
        echo "APLAY" >> $FILE
 echo "" >> $FILE
 aplay -l >> $FILE 2>&1
        echo "" >> $FILE
        echo "ARECORD" >> $FILE
 echo "" >> $FILE
 arecord -l >> $FILE 2>&1
 echo "" >> $FILE
}

withlsmod() {
 echo "!!All Loaded Modules" >> $FILE
 echo "!!------------------" >> $FILE
 echo "" >> $FILE
 lsmod |awk {'print $1'} >> $FILE
 echo "" >> $FILE
 echo "" >> $FILE
}

withamixer() {
        echo "!!Amixer output" >> $FILE
        echo "!!-------------" >> $FILE
        echo "" >> $FILE
 for i in `grep "]: " /proc/asound/cards | awk -F ' ' '{ print $1} '` ; do
 CARD_NAME=`grep "^ *$i " $TEMPDIR/alsacards.tmp|awk {'print $2'}`
 echo "!!-------Mixer controls for card $i $CARD_NAME]" >> $FILE
 echo "" >>$FILE
 amixer -c$i info>> $FILE 2>&1
 amixer -c$i>> $FILE 2>&1
        echo "" >> $FILE
 done
 echo "" >> $FILE
}

withalsactl() {
 echo "!!Alsactl output" >> $FILE
        echo "!!-------------" >> $FILE
        echo "" >> $FILE
        exe=""
        if [ -x /usr/sbin/alsactl ]; then
         exe="/usr/sbin/alsactl"
        fi
        if [ -x /usr/local/sbin/alsactl ]; then
         exe="/usr/local/sbin/alsactl"
        fi
        if [ -z "$exe" ]; then
         exe=`whereis alsactl | cut -d ' ' -f 2`
        fi
 $exe -f $TEMPDIR/alsactl.tmp store
 echo "--startcollapse--" >> $FILE
 cat $TEMPDIR/alsactl.tmp >> $FILE
 echo "--endcollapse--" >> $FILE
 echo "" >> $FILE
 echo "" >> $FILE
}

withdevices() {
        echo "!!ALSA Device nodes" >> $FILE
        echo "!!-----------------" >> $FILE
        echo "" >> $FILE
        ls -la /dev/snd/* >> $FILE
        echo "" >> $FILE
        echo "" >> $FILE
}

withconfigs() {
if [[ -e $HOME/.asoundrc ]] || [[ -e /etc/asound.conf ]] || [[ -e $HOME/.asoundrc.asoundconf ]]
then
        echo "!!ALSA configuration files" >> $FILE
        echo "!!------------------------" >> $FILE
        echo "" >> $FILE

        #Check for ~/.asoundrc
        if [[ -e $HOME/.asoundrc ]]
        then
                echo "!!User specific config file (~/.asoundrc)" >> $FILE
                echo "" >> $FILE
                cat $HOME/.asoundrc >> $FILE
                echo "" >> $FILE
                echo "" >> $FILE
        fi
 #Check for .asoundrc.asoundconf (seems to be Ubuntu specific)
 if [[ -e $HOME/.asoundrc.asoundconf ]]
 then
  echo "!!asoundconf-generated config file" >> $FILE
  echo "" >> $FILE
  cat $HOME/.asoundrc.asoundconf >> $FILE
  echo "" >> $FILE
  echo "" >> $FILE
 fi
        #Check for /etc/asound.conf
        if [[ -e /etc/asound.conf ]]
        then
                echo "!!System wide config file (/etc/asound.conf)" >> $FILE
                echo "" >> $FILE
                cat /etc/asound.conf >> $FILE
                echo "" >> $FILE
                echo "" >> $FILE
        fi
fi
}

withsysfs() {
    local i f
    local printed=""
    for i in /sys/class/sound/*; do
 case "$i" in
     */hwC?D?)
  if [ -f $i/init_pin_configs ]; then
      if [ -z "$printed" ]; then
   echo "!!Sysfs Files" >> $FILE
   echo "!!-----------" >> $FILE
   echo "" >> $FILE
      fi
      for f in init_pin_configs driver_pin_configs user_pin_configs init_verbs; do
   echo "$i/$f:" >> $FILE
   cat $i/$f >> $FILE
   echo >> $FILE
      done
      printed=yes
  fi
  ;;
     esac
    done
    if [ -n "$printed" ]; then
 echo "" >> $FILE
    fi
}

withdmesg() {
 echo "!!ALSA/HDA dmesg" >> $FILE
 echo "!!------------------" >> $FILE
 echo "" >> $FILE
 dmesg | grep -C1 -E 'ALSA|HDA|HDMI|sound|hda.codec|hda.intel' >> $FILE
 echo "" >> $FILE
 echo "" >> $FILE
}

withall() {
 withdevices
 withconfigs
 withaplay
 withamixer
 withalsactl
 withlsmod
 withsysfs
 withdmesg
}

get_alsa_library_version() {
 ALSA_LIB_VERSION=`grep VERSION_STR /usr/include/alsa/version.h 2>/dev/null|awk {'print $3'}|sed 's/"//g'`

 if [ -z "$ALSA_LIB_VERSION" ]; then
  if [ -f /etc/lsb-release ]; then
   . /etc/lsb-release
   case "$DISTRIB_ID" in
    Ubuntu)
     if which dpkg > /dev/null ; then
      ALSA_LIB_VERSION=`dpkg -l libasound2 | tail -1 | awk '{print $3}' | cut -f 1 -d -`
     fi

     if [ "$ALSA_LIB_VERSION" = "<none>" ]; then
      ALSA_LIB_VERSION=""
     fi
     return
     ;;
    *)
     return
     ;;
   esac
  elif [ -f /etc/debian_version ]; then
   if which dpkg > /dev/null ; then
    ALSA_LIB_VERSION=`dpkg -l libasound2 | tail -1 | awk '{print $3}' | cut -f 1 -d -`
   fi

   if [ "$ALSA_LIB_VERSION" = "<none>" ]; then
    ALSA_LIB_VERSION=""
   fi
   return
  fi
 fi
}

#Run checks to make sure the programs we need are installed.
LSPCI=$(which lspci 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null);
TPUT=$(which tput 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null);
DIALOG=$(which dialog 2>/dev/null | sed 's|^[^/]*||' 2>/dev/null);

#Check to see if sysfs is enabled in the kernel. We'll need this later on
SYSFS=$(mount |grep sysfs|awk {'print $3'});

#Check modprobe config files for sound related options
SNDOPTIONS=$(modprobe -c|sed -n 's/^options \(snd[-_][^ ]*\)/\1:/p')

KEEP_OUTPUT=
NFILE=""

PASTEBIN=""
WWWSERVICE="www.alsa-project.org"
WELCOME="yes"
PROCEED="yes"
UPLOAD="ask"
REPEAT=""
while [ -z "$REPEAT" ]; do
REPEAT="no"
case "$1" in
 --update|--help|--about)
  WELCOME="no"
  PROCEED="no"
  ;;
 --upload)
  UPLOAD="yes"
  WELCOME="no"
  ;;
 --no-upload)
  UPLOAD="no"
  WELCOME="no"
  ;;
 --pastebin)
  PASTEBIN="yes"
  WWWSERVICE="pastebin"
  ;;
 --no-dialog)
  DIALOG=""
  REPEAT=""
  shift
  ;;
 --stdout)
  DIALOG=""
  UPLOAD="no"
  WELCOME="no"
  TOSTDOUT="yes"
  ;;
esac
done

#Script header output.
if [ "$WELCOME" = "yes" ]; then
greeting_message="\

This script visits the following commands/files to collect diagnostic
information about your ALSA installation and sound related hardware.

  dmesg
  lspci
  lsmod
  aplay
  amixer
  alsactl
  /proc/asound/
  /sys/class/sound/
  ~/.asoundrc (etc.)

See '$0 --help' for command line options.
"
if [[ -n "$DIALOG" ]]; then
 dialog --backtitle "$BGTITLE" \
  --title "ALSA-Info script v $SCRIPT_VERSION" \
  --msgbox "$greeting_message" 20 80
else
 echo "ALSA Information Script v $SCRIPT_VERSION"
 echo "--------------------------------"
 echo "$greeting_message"
fi # dialog
fi # WELCOME

#Set the output file
TEMPDIR=`mktemp -t -d alsa-info.XXXXXXXXXX` || exit 1
FILE="$TEMPDIR/alsa-info.txt"
if [ -z "$NFILE" ]; then
 NFILE=`mktemp -t alsa-info.txt.XXXXXXXXXX` || exit 1
fi

trap cleanup 0

if [ "$PROCEED" = "yes" ]; then

if [[ -z "$LSPCI" ]]
then
 echo "This script requires lspci. Please install it, and re-run this script."
 exit 0
fi

#Fetch the info and store in temp files/variables
DISTRO=`grep -ihs "buntu\|SUSE\|Fedora\|PCLinuxOS\|MEPIS\|Mandriva\|Debian\|Damn\|Sabayon\|Slackware\|KNOPPIX\|Gentoo\|Zenwalk\|Mint\|Kubuntu\|FreeBSD\|Puppy\|Freespire\|Vector\|Dreamlinux\|CentOS\|Arch\|Xandros\|Elive\|SLAX\|Red\|BSD\|KANOTIX\|Nexenta\|Foresight\|GeeXboX\|Frugalware\|64\|SystemRescue\|Novell\|Solaris\|BackTrack\|KateOS\|Pardus" /etc/{issue,*release,*version}`
KERNEL_VERSION=`uname -r`
KERNEL_PROCESSOR=`uname -p`
KERNEL_MACHINE=`uname -m`
KERNEL_OS=`uname -o`
[[ `uname -v |grep SMP` ]] && KERNEL_SMP="Yes" || KERNEL_SMP="No"
ALSA_DRIVER_VERSION=`cat /proc/asound/version |head -n1|awk {'print $7'} |sed 's/\.$//'`
get_alsa_library_version
ALSA_UTILS_VERSION=`amixer -v |awk {'print $3'}`
VENDOR_ID=`lspci -vn |grep 040[1-3] | awk -F':' '{print $3}'|awk {'print substr($0, 2);}' >$TEMPDIR/vendor_id.tmp`
DEVICE_ID=`lspci -vn |grep 040[1-3] | awk -F':' '{print $4}'|awk {'print $1'} >$TEMPDIR/device_id.tmp`
LAST_CARD=$((`grep "]: " /proc/asound/cards | wc -l` - 1 ))

ESDINST=$(which esd 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)
PAINST=$(which pulseaudio 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)
ARTSINST=$(which artsd 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)
JACKINST=$(which jackd 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)
DMIDECODE=$(which dmidecode 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null)

#Check for DMI data
if [ -d /sys/class/dmi/id ]; then
    # No root privileges are required when using sysfs method
    DMI_SYSTEM_MANUFACTURER=$(cat /sys/class/dmi/id/sys_vendor 2>/dev/null)
    DMI_SYSTEM_PRODUCT_NAME=$(cat /sys/class/dmi/id/product_name 2>/dev/null)
elif [ -x $DMIDECODE ]; then
    DMI_SYSTEM_MANUFACTURER=$($DMIDECODE -s system-manufacturer 2>/dev/null)
    DMI_SYSTEM_PRODUCT_NAME=$($DMIDECODE -s system-product-name 2>/dev/null)
fi

cat /proc/asound/modules 2>/dev/null|awk {'print $2'}>$TEMPDIR/alsamodules.tmp
cat /proc/asound/cards >$TEMPDIR/alsacards.tmp
lspci |grep -i "multi\|audio">$TEMPDIR/lspci.tmp

#Check for HDA-Intel cards codec#*
cat /proc/asound/card*/codec\#* > $TEMPDIR/alsa-hda-intel.tmp 2> /dev/null

#Check for AC97 cards codec
cat /proc/asound/card*/codec97\#0/ac97\#0-0 > $TEMPDIR/alsa-ac97.tmp 2> /dev/null
cat /proc/asound/card*/codec97\#0/ac97\#0-0+regs > $TEMPDIR/alsa-ac97-regs.tmp 2> /dev/null

#Check for USB mixer setup
cat /proc/asound/card*/usbmixer > $TEMPDIR/alsa-usbmixer.tmp 2> /dev/null

#Fetch the info, and put it in $FILE in a nice readable format.
if [[ -z $PASTEBIN ]]; then
echo "upload=true&script=true&cardinfo=" > $FILE
else
echo "name=$USER&type=33&description=/tmp/alsa-info.txt&expiry=&s=Submit+Post&content=" > $FILE
fi
echo "!!################################" >> $FILE
echo "!!ALSA Information Script v $SCRIPT_VERSION" >> $FILE
echo "!!################################" >> $FILE
echo "" >> $FILE
echo "!!Script ran on: `LANG=C TZ=UTC date`" >> $FILE
echo "" >> $FILE
echo "" >> $FILE
echo "!!Linux Distribution" >> $FILE
echo "!!------------------" >> $FILE
echo "" >> $FILE
echo $DISTRO >> $FILE
echo "" >> $FILE
echo "" >> $FILE
echo "!!DMI Information" >> $FILE
echo "!!---------------" >> $FILE
echo "" >> $FILE
echo "Manufacturer: $DMI_SYSTEM_MANUFACTURER" >> $FILE
echo "Product Name: $DMI_SYSTEM_PRODUCT_NAME" >> $FILE
echo "" >> $FILE
echo "" >> $FILE
echo "!!Kernel Information" >> $FILE
echo "!!------------------" >> $FILE
echo "" >> $FILE
echo "Kernel release: $KERNEL_VERSION" >> $FILE
echo "Operating System: $KERNEL_OS" >> $FILE
echo "Architecture: $KERNEL_MACHINE" >> $FILE
echo "Processor: $KERNEL_PROCESSOR" >> $FILE
echo "SMP Enabled: $KERNEL_SMP" >> $FILE
echo "" >> $FILE
echo "" >> $FILE
echo "!!ALSA Version" >> $FILE
echo "!!------------" >> $FILE
echo "" >> $FILE
echo "Driver version: $ALSA_DRIVER_VERSION" >> $FILE
echo "Library version: $ALSA_LIB_VERSION" >> $FILE
echo "Utilities version: $ALSA_UTILS_VERSION" >> $FILE
echo "" >> $FILE
echo "" >> $FILE
echo "!!Loaded ALSA modules" >> $FILE
echo "!!-------------------" >> $FILE
echo "" >> $FILE
cat $TEMPDIR/alsamodules.tmp >> $FILE
echo "" >> $FILE
echo "" >> $FILE
echo "!!Sound Servers on this system" >> $FILE
echo "!!----------------------------" >> $FILE
echo "" >> $FILE
if [[ -n $PAINST ]];then
[[ `pgrep '^(.*/)?pulseaudio$'` ]] && PARUNNING="Yes" || PARUNNING="No"
echo "Pulseaudio:" >> $FILE
echo " Installed - Yes ($PAINST)" >> $FILE
echo " Running - $PARUNNING" >> $FILE
echo "" >> $FILE
fi
if [[ -n $ESDINST ]];then
[[ `pgrep '^(.*/)?esd$'` ]] && ESDRUNNING="Yes" || ESDRUNNING="No"
echo "ESound Daemon:" >> $FILE
echo " Installed - Yes ($ESDINST)" >> $FILE
echo " Running - $ESDRUNNING" >> $FILE
echo "" >> $FILE
fi
if [[ -n $ARTSINST ]];then
[[ `pgrep '^(.*/)?artsd$'` ]] && ARTSRUNNING="Yes" || ARTSRUNNING="No"
echo "aRts:" >> $FILE
echo " Installed - Yes ($ARTSINST)" >> $FILE
echo " Running - $ARTSRUNNING" >> $FILE
echo "" >> $FILE
fi
if [[ -n $JACKINST ]];then
[[ `pgrep '^(.*/)?jackd$'` ]] && JACKRUNNING="Yes" || JACKRUNNING="No"
echo "Jack:" >> $FILE
echo " Installed - Yes ($JACKINST)" >> $FILE
echo " Running - $JACKRUNNING" >> $FILE
echo "" >> $FILE
fi
if [[ -z "$PAINST" && -z "$ESDINST" && -z "$ARTSINST" && -z "$JACKINST" ]];then
echo "No sound servers found." >> $FILE
echo "" >> $FILE
fi
echo "" >> $FILE
echo "!!Soundcards recognised by ALSA" >> $FILE
echo "!!-----------------------------" >> $FILE
echo "" >> $FILE
cat $TEMPDIR/alsacards.tmp >> $FILE
echo "" >> $FILE
echo "" >> $FILE
echo "!!PCI Soundcards installed in the system" >> $FILE
echo "!!--------------------------------------" >> $FILE
echo "" >> $FILE
cat $TEMPDIR/lspci.tmp >> $FILE
echo "" >> $FILE
echo "" >> $FILE
echo "!!Advanced information - PCI Vendor/Device/Susbsystem ID's" >> $FILE
echo "!!--------------------------------------------------------" >> $FILE
echo "" >> $FILE
lspci -vvn |grep -A1 040[1-3] >> $FILE
echo "" >> $FILE
echo "" >> $FILE

if [ "$SNDOPTIONS" ]
then
echo "!!Modprobe options (Sound related)" >> $FILE
echo "!!--------------------------------" >> $FILE
echo "" >> $FILE
modprobe -c|sed -n 's/^options \(snd[-_][^ ]*\)/\1:/p' >> $FILE
echo "" >> $FILE
echo "" >> $FILE
fi

if [ -d "$SYSFS" ]
then
echo "!!Loaded sound module options" >> $FILE
echo "!!--------------------------" >> $FILE
echo "" >> $FILE
for mod in `cat /proc/asound/modules|awk {'print $2'}`;do
echo "!!Module: $mod" >> $FILE
for params in `echo $SYSFS/module/$mod/parameters/*`; do
 echo -ne "\t";
 echo "$params : `cat $params`" | sed 's:.*/::';
done >> $FILE
echo "" >> $FILE
done
echo "" >> $FILE
fi

if [ -s "$TEMPDIR/alsa-hda-intel.tmp" ]
then
 echo "!!HDA-Intel Codec information" >> $FILE
 echo "!!---------------------------" >> $FILE
 echo "--startcollapse--" >> $FILE
 echo "" >> $FILE
 cat $TEMPDIR/alsa-hda-intel.tmp >> $FILE
 echo "--endcollapse--" >> $FILE
 echo "" >> $FILE
 echo "" >> $FILE
fi

if [ -s "$TEMPDIR/alsa-ac97.tmp" ]
then
        echo "!!AC97 Codec information" >> $FILE
        echo "!!---------------------------" >> $FILE
        echo "--startcollapse--" >> $FILE
        echo "" >> $FILE
        cat $TEMPDIR/alsa-ac97.tmp >> $FILE
        echo "" >> $FILE
        cat $TEMPDIR/alsa-ac97-regs.tmp >> $FILE
        echo "--endcollapse--" >> $FILE
 echo "" >> $FILE
 echo "" >> $FILE
fi

if [ -s "$TEMPDIR/alsa-usbmixer.tmp" ]
then
        echo "!!USB Mixer information" >> $FILE
        echo "!!---------------------------" >> $FILE
        echo "--startcollapse--" >> $FILE
        echo "" >> $FILE
        cat $TEMPDIR/alsa-usbmixer.tmp >> $FILE
        echo "--endcollapse--" >> $FILE
 echo "" >> $FILE
 echo "" >> $FILE
fi

#If no command line options are specified, then run as though --with-all was specified
if [[ -z "$1" ]]
then
 update
 withall
 pbcheck
fi

fi # proceed

#loop through command line arguments, until none are left.
if [[ -n "$1" ]]
then
 until [ -z "$1" ]
 do
 case "$1" in
  --pastebin)
          update
   withall
          pbcheck
   ;;
  --update)
   update
   exit
   ;;
  --upload)
   UPLOAD="yes"
   withall
   ;;
  --no-upload)
   UPLOAD="no"
   withall
   ;;
  --output)
   shift
   NFILE="$1"
   KEEP_OUTPUT="yes"
   ;;
  --debug)
   echo "Debugging enabled. $FILE and $TEMPDIR will not be deleted"
   KEEP_FILES="yes"
   echo ""
   withall
   ;;
  --with-all)
   withall
   ;;
  --with-aplay)
   withaplay
   ;;
  --with-amixer)
   withamixer
   ;;
  --with-alsactl)
   withalsactl
   ;;
  --with-devices)
   withdevices
   ;;
  --with-dmesg)
   withdmesg
   ;;
  --with-configs)
   if [[ -e $HOME/.asoundrc ]] || [[ -e /etc/asound.conf ]]
   then
    echo "!!ALSA configuration files" >> $FILE
    echo "!!------------------------" >> $FILE
    echo "" >> $FILE

    #Check for ~/.asoundrc
    if [[ -e $HOME/.asoundrc ]]
    then
     echo "!!User specific config file ($HOME/.asoundrc)" >> $FILE
     echo "" >> $FILE
     cat $HOME/.asoundrc >> $FILE
     echo "" >> $FILE
     echo "" >> $FILE
    fi

    #Check for /etc/asound.conf
    if [[ -e /etc/asound.conf ]]
    then
     echo "!!System wide config file (/etc/asound.conf)" >> $FILE
     echo "" >> $FILE
     cat /etc/asound.conf >> $FILE
     echo "" >> $FILE
     echo "" >> $FILE
    fi
   fi
   ;;
  --stdout)
   UPLOAD="no"
   withall
   cat $FILE
   rm $FILE
   ;;
  --about)
   echo "Written/Tested by the following users of #alsa on irc.freenode.net:"
   echo ""
   echo " wishie - Script author and developer / Testing"
   echo " crimsun - Various script ideas / Testing"
   echo " gnubien - Various script ideas / Testing"
   echo " GrueMaster - HDA Intel specific items / Testing"
   echo " olegfink - Script update function"
   echo " TheMuso - display to stdout functionality"
   exit 0
   ;;
  *)
   echo "alsa-info.sh version $SCRIPT_VERSION"
   echo ""
   echo "Available options:"
   echo " --with-aplay (includes the output of aplay -l)"
   echo " --with-amixer (includes the output of amixer)"
   echo " --with-alsactl (includes the output of alsactl)"
   echo " --with-configs (includes the output of ~/.asoundrc and"
   echo " /etc/asound.conf if they exist)"
   echo " --with-devices (shows the device nodes in /dev/snd/)"
   echo " --with-dmesg (shows the ALSA/HDA kernel messages)"
   echo ""
   echo " --output FILE (specify the file to output for no-upload mode)"
   echo " --update (check server for script updates)"
   echo " --upload (upload contents to remote server)"
   echo " --no-upload (do not upload contents to remote server)"
   echo " --pastebin (use http://pastebin.ca) as remote server"
   echo " instead www.alsa-project.org"
   echo " --stdout (print alsa information to standard output"
   echo " instead of a file)"
   echo " --about (show some information about the script)"
   echo " --debug (will run the script as normal, but will not"
   echo " delete $FILE)"
   exit 0
   ;;
 esac
 shift 1
 done
fi

if [ "$PROCEED" = "no" ]; then
 exit 1
fi

if [ "$UPLOAD" = "ask" ]; then
 if [[ -n "$DIALOG" ]]; then
  dialog --backtitle "$BGTITLE" --title "Information collected" --yes-label " UPLOAD / SHARE " --no-label " SAVE LOCALLY " --defaultno --yesno "\n\nAutomatically upload ALSA information to $WWWSERVICE?" 10 80
  DIALOG_EXIT_CODE=$?
  if [ $DIALOG_EXIT_CODE != 0 ]; then
   UPLOAD="no"
  else
   UPLOAD="yes"
  fi
 else
  echo -n "Automatically upload ALSA information to $WWWSERVICE? [y/N] : "
  read -e CONFIRM
  if [ "$CONFIRM" != "y" ]; then
   UPLOAD="no"
  else
   UPLOAD="yes"
  fi
 fi

fi

if [ "$UPLOAD" = "no" ]; then

 if [ -z "$TOSTDOUT" ]; then
  mv -f $FILE $NFILE || exit 1
  KEEP_OUTPUT="yes"
 fi

 if [[ -n $DIALOG ]]
 then
  if [[ -n $PBERROR ]]; then
   dialog --backtitle "$BGTITLE" --title "Information collected" --msgbox "An error occurred while contacting the $WWWSERVICE.\n Your information was NOT automatically uploaded.\n\nYour ALSA information is in $NFILE" 10 100
  else
   dialog --backtitle "$BGTITLE" --title "Information collected" --msgbox "\n\nYour ALSA information is in $NFILE" 10 60
  fi
 else
  echo

  if [[ -n $PBERROR ]]; then
   echo "An error occurred while contacting the $WWWSERVICE."
   echo "Your information was NOT automatically uploaded."
   echo ""
   echo "Your ALSA information is in $NFILE"
   echo ""
  else
   if [ -z "$TOSTDOUT" ]; then
    echo ""
    echo "Your ALSA information is in $NFILE"
    echo ""
   fi
  fi
 fi

 exit

fi # UPLOAD

#Test that wget is installed, and supports --post-file. Upload $FILE if it does, and prompt user to upload file if it doesnt.
if
WGET=$(which wget 2>/dev/null| sed 's|^[^/]*||' 2>/dev/null); [[ -n "${WGET}" ]] && [[ -x "${WGET}" ]] && [[ `wget --help |grep post-file` ]]
then

if [[ -n $DIALOG ]]
then

if [[ -z $PASTEBIN ]]; then
 wget -O - --tries=5 --timeout=60 --post-file=$FILE "http://www.alsa-project.org/cardinfo-db/" &>$TEMPDIR/wget.tmp || echo "Upload failed; exit"
 { for i in 10 20 30 40 50 60 70 80 90; do
  echo $i
  sleep 0.2
 done
 echo; } |dialog --backtitle "$BGTITLE" --guage "Uploading information to www.alsa-project.org ..." 6 70 0
else
 wget -O - --tries=5 --timeout=60 --post-file=$FILE "http://pastebin.ca/quiet-paste.php?api=$PASTEBINKEY&encrypt=t&encryptpw=blahblah" &>$TEMPDIR/wget.tmp || echo "Upload failed; exit"
 { for i in 10 20 30 40 50 60 70 80 90; do
  echo $i
  sleep 0.2
 done
 echo; } |dialog --backtitle "$BGTITLE" --guage "Uploading information to www.pastebin.ca ..." 6 70 0
fi

dialog --backtitle "$BGTITLE" --title "Information uploaded" --yesno "Would you like to see the uploaded information?" 5 100
DIALOG_EXIT_CODE=$?
if [ $DIALOG_EXIT_CODE = 0 ]; then
 grep -v "alsa-info.txt" $FILE >$TEMPDIR/uploaded.txt
 dialog --backtitle "$BGTITLE" --textbox $TEMPDIR/uploaded.txt 0 0
fi

clear

# no dialog
else

if [[ -z $PASTEBIN ]]; then
 echo -n "Uploading information to www.alsa-project.org ... "
 wget -O - --tries=5 --timeout=60 --post-file=$FILE http://www.alsa-project.org/cardinfo-db/ &>$TEMPDIR/wget.tmp &
else
 echo -n "Uploading information to www.pastebin.ca ... "
 wget -O - --tries=5 --timeout=60 --post-file=$FILE http://pastebin.ca/quiet-paste.php?api=$PASTEBINKEY &>$TEMPDIR/wget.tmp &
fi

#Progess spinner for wget transfer.
i=1
sp="/-\|"
echo -n ' '
while pgrep wget &>/dev/null
do
 echo -en "\b${sp:i++%${#sp}:1}"
done

echo -e "\b Done!"
echo ""

fi #dialog

#See if tput is available, and use it if it is.
if [[ -n "$TPUT" ]]
then
 if [[ -z $PASTEBIN ]]; then
  FINAL_URL=`tput setaf 1; grep "SUCCESS:" $TEMPDIR/wget.tmp | cut -d ' ' -f 2 ; tput sgr0`
 else
  FINAL_URL=`tput setaf 1; grep "SUCCESS:" $TEMPDIR/wget.tmp |sed -n 's/.*\:\([0-9]\+\).*/http:\/\/pastebin.ca\/\1/p';tput sgr0`
 fi
else
 if [[ -z $PASTEBIN ]]; then
  FINAL_URL=`grep "SUCCESS:" $TEMPDIR/wget.tmp | cut -d ' ' -f 2`
 else
  FINAL_URL=`grep "SUCCESS:" $TEMPDIR/wget.tmp |sed -n 's/.*\:\([0-9]\+\).*/http:\/\/pastebin.ca\/\1/p'`
 fi
fi

#Output the URL of the uploaded file.
echo "Your ALSA information is located at $FINAL_URL"
echo "Please inform the person helping you."
echo ""

#We couldnt find a suitable wget, so tell the user to upload manually.
else
 mv -f $FILE $NFILE || exit 1
 KEEP_OUTPUT="yes"
 if [[ -z $DIALOG ]]
 then
  if [[ -z $PASTEBIN ]]; then
  echo ""
  echo "Could not automatically upload output to http://www.alsa-project.org"
  echo "Possible reasons are:"
  echo " 1. Couldnt find 'wget' in your PATH"
  echo " 2. Your version of wget is less than 1.8.2"
  echo ""
  echo "Please manually upload $NFILE to http://www.alsa-project.org/cardinfo-db/ and submit your post."
  echo ""
  else
  echo ""
  echo "Could not automatically upload output to http://www.pastebin.ca"
  echo "Possible reasons are:"
  echo " 1. Couldnt find 'wget' in your PATH"
  echo " 2. Your version of wget is less than 1.8.2"
  echo ""
  echo "Please manually upload $NFILE to http://www.pastebin.ca/upload.php and submit your post."
  echo ""
  fi
 else
  if [[ -z $PASTEBIN ]]; then
   dialog --backtitle "$BGTITLE" --msgbox "Could not automatically upload output to http://www.alsa-project.org.\nPossible reasons are:\n\n 1. Couldn't find 'wget' in your PATH\n 2. Your version of wget is less than 1.8.2\n\nPlease manually upload $NFILE to http://www.alsa-project,org/cardinfo-db/ and submit your post." 25 100
  else
   dialog --backtitle "$BGTITLE" --msgbox "Could not automatically upload output to http://www.pastebin.ca.\nPossible reasons are:\n\n 1. Couldn't find 'wget' in your PATH\n 2. Your version of wget is less than 1.8.2\n\nPlease manually upload $NFILE to http://www.pastebin.ca/upload.php and submit your post." 25 100
  fi
 fi
fi

Revision history for this message
Best Mark Rijckenberg (markrijckenberg) said :
#3

I don't know if you also speak German, but the solution seems to be written here:

http://forum.ubuntuusers.de/topic/amilo-xi-3650-howto/

I quote the author of the article:

"2.3: Sound
Hier gibt es 2 möglichkeiten. Die einfache, ohne support für die integrierten mikrofone und die kompliziertere mit diesem support. Beide funktionieren soweit. Das einzige Problem das beide haben ist, dass der "Center" kanal - der Subwoofer - nicht aus geht, wenn man ein Headset o.ä. einsteckt. Dies muss man manuell machen.
2.3.1: Einfach, ohne integrierte Mikrofone:
Relativ einfach: Man muss nur in der datei /e
In der aktuellen Alsa-version gibt es meines Wissens nach noch keine perfekte Lösung für alle Probleme. Die meiner meinung nach beste ist jedoch diese: Die datei /etc/modprobe.d/alsa-base.conf mit root-rechten bearbeiten und ganz unten folgende Zeile anhängen:
options snd-hda-intel model=lenovo-ms7195-dig
anschließend den Rechner neu starten. Danach im Mixer unter Einstellungen alle Spuren aktivieren und unter Optionen den Channel Mode auf 6ch umstellen. Nun kann man unter Wiedergabe den Subwoofer mit dem Regler "Center" steuern (Auch der Regler "LFE" hat irgendwas damit zutun - keine ahnung). "

-> So open a Terminal and enter the following command:

gksudo gedit /etc/modprobe.d/alsa-base.conf

-> Then, using the gedit editor, add the following line at the end of the alsa-base.conf file:

options snd-hda-intel model=lenovo-ms7195-dig

-> Then reboot. Go into gnome-alsamixer and activate all the channels. There should be an option to set the channel mode to "6ch" = "6 channel sound"

After that, you should be able to control a volume channel called "Center". Unmute and increase volume on both the "Center" and "LFE" channels to control the volume of the subwoofer.

Hope it helps,

Regards,

Mark

Revision history for this message
Koen Cosyns (kcosyns) said :
#4

Mark,

You're the best, it works!!! Now I finally can get rid of the Windows dual
boot and have a Ubuntu exclusive notebook.

Thanks very much for your great support!!

Cozze

2010/3/14 Mark Rijckenberg <email address hidden>

> Your question #104192 on gnome-terminal in ubuntu changed:
>
> https://answers.launchpad.net/ubuntu/+source/gnome-terminal/+question/104192
>
> Status: Open => Answered
>
> Mark Rijckenberg proposed the following answer:
> I don't know if you also speak German, but the solution seems to be
> written here:
>
> http://forum.ubuntuusers.de/topic/amilo-xi-3650-howto/
>
> I quote the author of the article:
>
> "2.3: Sound
> Hier gibt es 2 möglichkeiten. Die einfache, ohne support für die
> integrierten mikrofone und die kompliziertere mit diesem support. Beide
> funktionieren soweit. Das einzige Problem das beide haben ist, dass der
> "Center" kanal - der Subwoofer - nicht aus geht, wenn man ein Headset o.ä.
> einsteckt. Dies muss man manuell machen.
> 2.3.1: Einfach, ohne integrierte Mikrofone:
> Relativ einfach: Man muss nur in der datei /e
> In der aktuellen Alsa-version gibt es meines Wissens nach noch keine
> perfekte Lösung für alle Probleme. Die meiner meinung nach beste ist jedoch
> diese: Die datei /etc/modprobe.d/alsa-base.conf mit root-rechten bearbeiten
> und ganz unten folgende Zeile anhängen:
> options snd-hda-intel model=lenovo-ms7195-dig
> anschließend den Rechner neu starten. Danach im Mixer unter Einstellungen
> alle Spuren aktivieren und unter Optionen den Channel Mode auf 6ch
> umstellen. Nun kann man unter Wiedergabe den Subwoofer mit dem Regler
> "Center" steuern (Auch der Regler "LFE" hat irgendwas damit zutun - keine
> ahnung). "
>
>
> -> So open a Terminal and enter the following command:
>
> gksudo gedit /etc/modprobe.d/alsa-base.conf
>
>
> -> Then, using the gedit editor, add the following line at the end of the
> alsa-base.conf file:
>
> options snd-hda-intel model=lenovo-ms7195-dig
>
> -> Then reboot. Go into gnome-alsamixer and activate all the channels.
> There should be an option to set the channel mode to "6ch" = "6 channel
> sound"
>
> After that, you should be able to control a volume channel called
> "Center". Unmute and increase volume on both the "Center" and "LFE"
> channels to control the volume of the subwoofer.
>
> Hope it helps,
>
> Regards,
>
> Mark
>
> --
> If this answers your question, please go to the following page to let us
> know that it is solved:
>
> https://answers.launchpad.net/ubuntu/+source/gnome-terminal/+question/104192/+confirm?answer_id=2
>
> If you still need help, you can reply to this email or go to the
> following page to enter your feedback:
>
> https://answers.launchpad.net/ubuntu/+source/gnome-terminal/+question/104192
>
> You received this question notification because you are a direct
> subscriber of the question.
>

Revision history for this message
Koen Cosyns (kcosyns) said :
#5

Thanks Mark Rijckenberg, that solved my question.