特殊:Badtitle/NS100:HdaIntelSoundHowto:修订间差异

来自Ubuntu中文
跳到导航跳到搜索
Wikibot留言 | 贡献
无编辑摘要
Wikibot留言 | 贡献
无编辑摘要
第13行: 第13行:
* No mic working
* No mic working
* Sound only plays through headphones
* Sound only plays through headphones
=== Solution for Apple Macs ===
In case of slightly distorted, weird, crackled sound on Apple Macs it have been reported by several users, that unload '''snd_hda_intel''' module at boot time and then reload it, can help to get rid of crackled sound. For do this, edit '''/etc/rc.local''' by typing in [[UsingTheTerminal|Terminal]] <pre><nowiki>
sudo gedit /etc/rc.local
</nowiki></pre>
And add two following lines to the end of file before "exit 0":
<pre><nowiki>
rmmod snd_hda_intel
modprobe snd_hda_intel
</nowiki></pre>
=== Update to the Latest Version of ALSA ===
=== Update to the Latest Version of ALSA ===
{|border="1" cellspacing="0"
{|border="1" cellspacing="0"
| {i} These instructions do not interfere with the Ubuntu package structure or other kernel modules - in other words, the changes seem drastic however they are simply adding greater functionality to an existing kernel module (Please read the Caveats section!)
| {i} These instructions do not interfere with the Ubuntu package structure or other kernel modules - in other words, the changes seem drastic however they are simply adding greater functionality to an existing kernel module (Please read the Caveats section!)
|}
|}
I would call the above untrue - i rebooted to no sound and a few hours of messing around to fix it (thanks to [SoundTroubleshooting]). [PaulOppenheim]
I would call the above untrue - i rebooted to no sound and a few hours of messing around to fix it (thanks to [SoundTroubleshooting]). [Ubuntu:PaulOppenheim]
* Install the required tools and kernelheaders
* Install the required tools and kernelheaders
<pre><nowiki>
<pre><nowiki>
sudo aptitude install build-essential libncurses-dev gettext linux-headers-`uname -r`
sudo aptitude install build-essential libncurses-dev gettext xmlto xmltoman linux-headers-`uname -r`
</nowiki></pre>
</nowiki></pre>
* Install your kernel headers
* Install your kernel headers
* Download the latest version of alsa from [http://www.alsa-project.org/ Alsa project] (driver, lib, and utils) to a directory (eg. ~/downloads). In the following we assume that the latest version is 1.0.14. Please change this in accordance with the one you downloaded from the Alsa project site.  
* Download the latest version of alsa from [[http://www.alsa-project.org/|Alsa project]] (driver, lib, and utils) to a directory (eg. ~/downloads). In the following we assume that the latest version is 1.0.14. Please change this in accordance with the one you downloaded from the Alsa project site.  
* [ftp://ftp.alsa-project.org/pub/driver/ alsa-driver]
* [[ftp://ftp.alsa-project.org/pub/driver/|alsa-driver]]
* [ftp://ftp.alsa-project.org/pub/lib/ alsa-lib]
* [[ftp://ftp.alsa-project.org/pub/lib/|alsa-lib]]
* [ftp://ftp.alsa-project.org/pub/utils/ alsa-utils]
* [[ftp://ftp.alsa-project.org/pub/utils/|alsa-utils]]
* Setup installation directories
* Setup installation directories
<pre><nowiki>
<pre><nowiki>
第70行: 第79行:
/usr/src/KERNEL_VERSION/Documentation/sound/alsa/ALSA-Configuration.txt
/usr/src/KERNEL_VERSION/Documentation/sound/alsa/ALSA-Configuration.txt
</nowiki></pre>
</nowiki></pre>
If you didn't have this file, for version 2.6.22, you can check out [http://www.mjmwired.net/kernel/Documentation/sound/alsa/ALSA-Configuration.txt this link] or you can find ALSA-Configuration.txt in the subdirectory /alsa-kernel/Documentation/ of the alsa-driver-1.x.x directory you created.
If you didn't have this file, for version 2.6.22, you can check out [[http://www.mjmwired.net/kernel/Documentation/sound/alsa/ALSA-Configuration.txt|this link]] or you can find ALSA-Configuration.txt in the subdirectory /alsa-kernel/Documentation/ of the alsa-driver-1.x.x directory you created.
* Search for your model, and take a look at its types, for example I found the following lines for ALC260:
* Search for your model, and take a look at its types, for example I found the following lines for ALC260:
<pre><nowiki>
<pre><nowiki>
第102行: 第111行:
cat /proc/asound/card0/codec\#*
cat /proc/asound/card0/codec\#*
</nowiki></pre>
</nowiki></pre>
If one of those worked but was not autodetected, you can help the alsa developers by sending them the output of lspci -nv and the model you used on [http://bugtrack.alsa-project.org Alsa BTS].
If one of those worked but was not autodetected, you can help the alsa developers by sending them the output of lspci -nv and the model you used on [[http://bugtrack.alsa-project.org|Alsa BTS]].
=== Extra Hints to Get Sound Working ===
=== Extra Hints to Get Sound Working ===
'''Wrong mixer in use:''' Sometimes the volume control chooses the OSS mixer if the compatibility module is loaded. You may need to right click on the volume control applet in your gnome-panel and go to the preferences and change the device to the one called Alsa Mixer. The same applies to the gnome volume control program.
'''Wrong mixer in use:''' Sometimes the volume control chooses the OSS mixer if the compatibility module is loaded. You may need to right click on the volume control applet in your gnome-panel and go to the preferences and change the device to the one called Alsa Mixer. The same applies to the gnome volume control program.
第143行: 第152行:
then, depmod -a
then, depmod -a
reboot, try again.
reboot, try again.
(Thanks to [http://ubuntuforums.org/member.php?u=5092 forum user pcmanlin] on [http://ubuntuforums.org/showthread.php?t=577699 this ubuntu forum thread])
(Thanks to [[http://ubuntuforums.org/member.php?u=5092|forum user pcmanlin]] on [[http://ubuntuforums.org/showthread.php?t=577699|this ubuntu forum thread]])
==== alsa-utils don't compile ====
==== alsa-utils don't compile ====
If you have trouble compiling alsa-utils simply run  
If you have trouble compiling alsa-utils simply run  

2008年10月19日 (日) 05:50的版本

{{#ifexist: :HdaIntelSoundHowto/zh | | {{#ifexist: HdaIntelSoundHowto/zh | | {{#ifeq: {{#titleparts:HdaIntelSoundHowto|1|-1|}} | zh | | }} }} }} {{#ifeq: {{#titleparts:HdaIntelSoundHowto|1|-1|}} | zh | | }}

Booting

If your boot hangs on loading the module for snd-hda-intel, try disabling the card in your BIOS. It is called "HD Audio Controller", "Azalia Audio" or similar. Then try solving the problem using the instructions below.

Identify the Problem

Most cards seem to work as of Ubuntu 6.06 LTS using the stock kernel. However, the following problems might occur on some setups:

  • No sound at all
  • Low volume output
  • High pitched noise
  • Poor sound quality
  • Sound disappears when touching volume controls
  • Sound works at random after each reboot
  • No mic working
  • Sound only plays through headphones

Solution for Apple Macs

In case of slightly distorted, weird, crackled sound on Apple Macs it have been reported by several users, that unload snd_hda_intel module at boot time and then reload it, can help to get rid of crackled sound. For do this, edit /etc/rc.local by typing in Terminal

sudo gedit /etc/rc.local

And add two following lines to the end of file before "exit 0":

rmmod snd_hda_intel
modprobe snd_hda_intel

Update to the Latest Version of ALSA

{i} These instructions do not interfere with the Ubuntu package structure or other kernel modules - in other words, the changes seem drastic however they are simply adding greater functionality to an existing kernel module (Please read the Caveats section!)

I would call the above untrue - i rebooted to no sound and a few hours of messing around to fix it (thanks to [SoundTroubleshooting]). [Ubuntu:PaulOppenheim]

  • Install the required tools and kernelheaders
sudo aptitude install build-essential libncurses-dev gettext xmlto xmltoman linux-headers-`uname -r`
  • Install your kernel headers
  • Download the latest version of alsa from [project] (driver, lib, and utils) to a directory (eg. ~/downloads). In the following we assume that the latest version is 1.0.14. Please change this in accordance with the one you downloaded from the Alsa project site.
  • [[1]]
  • [[2]]
  • [[3]]
  • Setup installation directories
sudo mkdir -p /usr/src/alsa
cd /usr/src/alsa
sudo cp ~/downloads/alsa* .
sudo tar xjf alsa-driver*.bz2
sudo tar xjf alsa-lib*.tar.bz2
sudo tar xjf alsa-utils*.tar.bz2
  • Compile and install alsa-driver
cd alsa-driver*
sudo ./configure --with-cards=hda-intel --with-kernel=/usr/src/linux-headers-$(uname -r)
sudo make
sudo make install
  • Compile and install alsa-lib
cd ../alsa-lib*
sudo ./configure
sudo make
sudo make install
  • Compile and install alsa-utils
cd ../alsa-utils*
sudo ./configure
sudo make
sudo make install

Note that you must have the curses library installed to be able to compile alsa-utils. You can install it with this command from a terminal: sudo apt-get install libncurses5-dev

  • Reboot
  • if you have no sound, run dmesg and look for the string "snd_"

Manually Specify Module Parameters

  • First you must find which model of sound card you use, so run this command:
cat /proc/asound/card0/codec#* | grep Codec

It will return model of your sound card(s), for example: "Codec: Realtek ALC260", so your sound card is ALC260.

  • You should open a file in ALSA documentation. This file is here (replace KERNEL_VERSION with your kernel's version!):
/usr/src/KERNEL_VERSION/Documentation/sound/alsa/ALSA-Configuration.txt

If you didn't have this file, for version 2.6.22, you can check out [link] or you can find ALSA-Configuration.txt in the subdirectory /alsa-kernel/Documentation/ of the alsa-driver-1.x.x directory you created.

  • Search for your model, and take a look at its types, for example I found the following lines for ALC260:
hp		HP machines
hp-3013		HP machines (3013-variant)
fujitsu		Fujitsu S7020
acer		Acer TravelMate
basic		fixed pin assignment (old default model)
auto		auto-config reading BIOS (default)

Read all of them and try to find the one which is more similar to your sound card, for example if you have a laptop, you can choose "acer".

  • Open /etc/modprobe.d/alsa-base with the following command:
sudo nano /etc/modprobe.d/alsa-base

Then paste the following line at the end of the file (change MODEL with the type of sound card's model, in our example it should be "acer" (without quotation marks)):

options snd-hda-intel model=MODEL
  • Reboot

Playing with probe_mask

Another possible option is the 'probe_mask' parameter, which has been known to fix sound issues characterized by the occurrence of "azx_get_response timeout" messages reported with 'dmesg'. Try either "probe_mask=1" or "probe_mask=8" by adding a line like:

options snd-hda-intel probe_mask=1

Choosing Your Model

The full list of models is available in ALSA-Configuration.txt in the subdirectory /alsa-kernel/Documentation/ of the alsa-driver-1.0.14 directory you created. Note that this list is ordered on modules and codec chips. To find your codec use this command from a terminal:

cat /proc/asound/card0/codec\#*

If one of those worked but was not autodetected, you can help the alsa developers by sending them the output of lspci -nv and the model you used on [BTS].

Extra Hints to Get Sound Working

Wrong mixer in use: Sometimes the volume control chooses the OSS mixer if the compatibility module is loaded. You may need to right click on the volume control applet in your gnome-panel and go to the preferences and change the device to the one called Alsa Mixer. The same applies to the gnome volume control program. Mixer doesn't seem to work: The HD Audio standard has many output channels. As a result, the correct volume sliders might not be visible. Enable the volume sliders through Edit->Preferences in gnome volume control. No mic working, rest OK: After installing and configuring the Intel-SigmaTel STAC 9205 soundcard in my DELL Latitutde D630 as described above, I could use xmms to play sound on this machines. The microphone did, however, not work. To make the mic work as well, I booted Win XP on the same machine, plugged the microphone in and selected Microphone instead of the menu items "Line-In" or "No action" in the Intel-SigmaTel event window. That event window was opened by the Win XP soundcard driver when I plugged in the microphone. I then booted ubuntu 7.04 with alsa-driver-1.0.15-rc3 and used alsamixer to make the following changes: Front-Gain: 94<>94, both Input Sources = Front Mic, then pressed F4 and set the 2 captures to 100<>100 and to 93<>93. Eventually, I pressed Esc to end alsamixer and save my changes. After these steps, I could use arecord -f cd out.wav to record sound using my microphone. BTW, I used "options snd-hda-intel model=auto" as the last line of /etc/modprobe.d/alsa-base for this particular soundcard and OS.

Troubleshootinng

dmesg shows "disagrees about version of symbol" and "Unknown symbol" for snd_ctl_add, etc

if you reboot and have no sound, and check dmesg to find:

[ 1058.932000] snd_hda_intel: disagrees about version of symbol snd_ctl_add
[ 1058.932000] snd_hda_intel: Unknown symbol snd_ctl_add
[ 1058.932000] snd_hda_intel: disagrees about version of symbol snd_pcm_new
[ 1058.932000] snd_hda_intel: Unknown symbol snd_pcm_new
[ 1058.932000] snd_hda_intel: disagrees about version of symbol snd_pcm_limit_hw_rates
[ 1058.932000] snd_hda_intel: Unknown symbol snd_pcm_limit_hw_rates
[ 1058.932000] snd_hda_intel: disagrees about version of symbol snd_card_register
[ 1058.932000] snd_hda_intel: Unknown symbol snd_card_register

... etc. then you need to do a few extra steps. ubuntu default snd-hda-intel.ko location: /lib/modules/2.6.22-14-generic/ubuntu/media/snd-hda-intel/snd-hda-intel.ko alsa 1.0.15's installation location: /lib/modules/2.6.22-14-generic/kernel/sound/pci/hda/snd-hda-intel.ko so copy /lib/modules/2.6.22-14-generic/kernel/sound/pci/hda/snd-hda-intel.ko to /lib/modules/2.6.22-14-generic/ubuntu/media/snd-hda-intel/snd-hda-intel.ko . and put the modules/* in alsa's compile directory into /lib/modules/.../kernel/sound, you can use "find" to get their location. snd-hda-intel.ko snd-hwdep.ko snd.ko snd-mixer-oss.ko snd-page-alloc.ko snd-pcm.ko snd-pcm-oss.ko snd-rtctimer.ko snd-seq-device.ko snd-seq.ko snd-seq-midi-event.ko snd-seq-oss.ko snd-timer.ko then, depmod -a reboot, try again. (Thanks to [user pcmanlin] on [ubuntu forum thread])

alsa-utils don't compile

If you have trouble compiling alsa-utils simply run

alsactl -v

and it will show you the installed version. Check on http://www.alsa-project.org/ if your card is supported in that version and download the source packages. Go back to the "Setup installation directories" step above and try again.

Caveats

Overwriting packaged files and adding unmanaged files by running sudo make install may break upgrades. A better way is to create a backport by using the build scripts from your current alsa source packages. This would also allow you to undo the changes if they don't work, by simply downgrading back to the original package version.