此法须要使用 alsa-tools 内的 hda-verb.
在 Debian / Ubuntu, 可以用 sudo apt-get install alsa-tools 安装。
方法如下:
新增 /etc/modprobe.d/snd-hda-intel.conf 以改变 Intel HDA 各 codec 之次序。
改变 ALC662 为首个 card, 即 /dev/snd/hwC0D0
#-- X62 Intel HDA order ------
options snd-hda-intel model=auto index=1,0
在 /etc/rc.local 加入 hda-verb 指令设定 Realtek ALC662 之 GPIO 控制功放芯片PAM8403。
#-- X62 ALC662 GPIO fix ------
/usr/bin/hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_MASK 0x01
/usr/bin/hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DIRECTION 0x01
/usr/bin/hda-verb /dev/snd/hwC0D0 0x01 SET_GPIO_DATA 0x00
再重新开机。重新开机后或许要以 alsamixer 取消扬声器静音。
PS:此方法我用在 Debian sid 可行。我发觉休眠后须要重新设定 ALC662 的 GPIO.