12.04 Dell 14z Inspiron 5423 Ultrabook Звук (шум)

Я только что установил 12.04 на своем новом Inspiron 14z, и с тех пор, как система начинает загружаться, начинает звучать белый шум. Когда я играю любую песню или музыку из Интернета, она работает нормально, но шум продолжается. Я пытался отключить все регуляторы громкости, но это продолжается .. Может ли кто-нибудь помочь мне или дать мне подсказку, чтобы найти решение? БЛАГОДАРЯ

1
задан 20 January 2013 в 02:21

1 ответ

Проблема, вероятно, заключается в том, что звуковая карта в настоящее время не поддерживается модулем Intel HDA ALSA (с v1.0.24). Можно получить модель карты с помощью команды

$ cat /proc/asound/card0/codec* | grep Codec

который в моих возвратах случая

Codec: IDT92HD91BXX
Codec: Intel PantherPoint HDMI

(первое, являющееся интересным). Список поддерживаемых плат может быть найден по [www.kernel.org/doc/Documentation/sound/alsa/HD-Audio-Models.txt], и кажется, что последние 92HD83*.

Однако после некоторого расследования, сделанного с превосходным инструментом HDA Analyzer, я обнаружил, что проблема может быть решена путем установки одного из GPIOs:

(Я отправил бы изображение здесь, но у меня нет достаточной репутации его).

Инструмент может использоваться для экспорта сценария Python, который воспроизводит модификации, сделанные через GUI. Вот содержание сценария (немного изменено мной):

#!/usr/bin/env python

# This scripts eliminates the noise produced on resume
# by Intel IDT 92HD91BXX cards controlled by the hda-intel driver
# (ALSA v1.0.24)

import os
import struct
from fcntl import ioctl
from time import sleep

def __ioctl_val(val):
  # workaround for OverFlow bug in python 2.4
  if val & 0x80000000:
    return -((val^0xffffffff)+1)
  return val

IOCTL_INFO = __ioctl_val(0x80dc4801)
IOCTL_PVERSION = __ioctl_val(0x80044810)
IOCTL_VERB_WRITE = __ioctl_val(0xc0084811)

def set(nid, verb, param):
  verb = (nid << 24) | (verb << 8) | param
  res = ioctl(FD, IOCTL_VERB_WRITE, struct.pack('II', verb, 0))  

attempts = 0
while((not os.path.exists("/dev/snd/hwC0D0")) and attempts < 50):
  attempts += 1
  sleep(0.1)

FD = os.open("/dev/snd/hwC0D0", os.O_RDONLY)
info = struct.pack('Ii64s80si64s', 0, 0, '', '', 0, '')
res = ioctl(FD, IOCTL_INFO, info)
name = struct.unpack('Ii64s80si64s', res)[3]
if not name.startswith('HDA Codec'):
  raise IOError, "unknown HDA hwdep interface"
res = ioctl(FD, IOCTL_PVERSION, struct.pack('I', 0))
version = struct.unpack('I', res)
if version < 0x00010000:        # 1.0.0
  raise IOError, "unknown HDA hwdep version"

# initialization sequence starts here...

set(0x01, 0x716,   0x02) # 0x01071602 (SET_GPIO_MASK)

os.close(FD)

Для выполнения сценария во время начальной загрузки сначала сохраните его к /usr/local/sbin/fix-idt-codec и затем создайте init сценарий /etc/init/fix-idt-codec.conf:

# fix-idt-codec - Fixes issues with snd-hda-intel
#
# This scripts eliminates the noise produced on resume
# by Intel IDT 92HD91BXX cards controlled by the hda-intel driver
# (ALSA v1.0.24)

description     "Fix Intel HDA IDT Codec issues"

start on runlevel [2345] 

task

exec /usr/local/sbin/fix-idt-codec

Теперь перезагрузка и проблема должны быть зафиксированы.

Ради полноты существует дополнительная проблема некоторые люди, зарегистрированные в этот поток: белый шум вновь появляется после приостановить/возобновить цикла (и, любопытно, исчезает, когда Вы включаете наушники). Для фиксации его, можно добавить названный файл 20_fix-idt-codec кому: /etc/pm/sleep.d со следующим содержанием:

#!/bin/sh

# This scripts eliminates the noise produced on resume
# by Intel IDT 92HD91BXX cards controlled by the hda-intel driver
# (ALSA v1.0.24)  
#

PATH=/sbin:/usr/sbin:/bin:/usr/bin
HELPER=/usr/local/sbin/fix-idt-codec

if [ ! -f $CODEC ]; then
        exit 0
fi

case "${1}" in
        resume|thaw)
                if [ -f $HELPER ]; then
                    python $HELPER
                fi
                ;;
esac

Я надеюсь, что это помогает. Я нашел следующие ссылки довольно полезными во время отладки:

  • Помогите отладить Intel HDA - [www.alsa-project.org/main/index.php/Help_To_Debug_Intel_HDA]
  • Matrix:Module-hda-intel - [www.alsa-project.org/main/index.php/Matrix:Module-hda-intel]
  • Методы отладки аудио - [voices.canonical.com/david.henningsson/2011/12/08/audio-debugging-techniques/]
  • HdaIntelSoundHowto - [help.ubuntu.com/community/HdaIntelSoundHowto]
2
ответ дан 20 January 2013 в 02:21

Другие вопросы по тегам:

Похожие вопросы: