HP Elite Dragonfly Max 노트북에 Gentoo Linux 설치 이후 지문인식과 마이크가 안되던 문제가 해결됐다.
HP 노트북에서 지원하는 내장 사운드 장치는 Realtek ALC285 사용한다.
이 장치를 사용하기 위해서는 linux kernel 단에서 사용되는 HDA 모듈을 활성화 해야한다.
이와 관련 된 Realtek High Definition Audio 모듈 변수는 SND_HDA_CODEC_REALTEK을 사용한다.
이 변수를 사용하면 기본적으로 Realtek Codec을 통해서 사운드 출력을 지원 해주고
마이크는 DMIC(Digital Microphone Codec)가 입력 부분을 담당한다.
이것만 해서 되진 않았고 ALSA + Pulseaudio + SoF Firmware + Intel ASoC Machine Drivers 조합으로 구성해야 됐다.
따라서, 아래와 같이 Kernel 설정과 패키지 구성이 진행되어야 동작한다.
gentoo wiki 내용대로 설정 해준다.
Gentoo WIKI - ALSA
gentoo wiki 내용대로 설정 해준다.
Gentoo WIKI - PulseAudio
systemd 기반으로 구성된 환경이면 아래와 같이 설치 및 설정이 필요하다.
ruo91 ~# emerge -av media-sound/pulseaudio-daemon
ruo91 ~# systemctl --global enable pulseaudio.service pulseaudio.socket
ruo91 ~# vi /etc/pulse/client.conf
autospawn = yes
ruo91 ~# vi /etc/pulse/daemon.conf
daemonize = yes
flat-volumes = no
root~# reboot
HP Elite Dragonfly Max 노트북의 경우 Kernel 부분에서 Intel Machine drivers에
"Skylake+ with HDA Codecs" 모듈이 없으면 Pulseaudio에서 사운드 장치를 인식 못한다.
이에 대한 이유는 아래 링크에 설명 되어있다.
SOF Linux Driver Architecture - Generic HD-Audio Support
필요한 부분을 활성화 한다.
ruo91 ~# cd /usr/src/linux
ruo91 ~# make menuconfig
Main Menu
- Device Drivers
- Sound card support
- Advanced Linux Sound Architecture
- HD-Audio
<*> Build Realtek HD-audio codec support
- ALSA for SoC audio support
<*> Intel ASoC SST drivers
-*- Intel Machine drivers --->
<*> Skylake+ with HDA Codecs
CODEC drivers --->
<*> Realtek ALC5623 CODEC
-*- Realtek RT1308 Codec - SDW
-*- Realtek RT1316 Codec - SDW
<*> Realtek RT5616 CODEC
<*> Realtek ALC5631/RT5631 CODEC
<*> Realtek RT5640/RT5639 Codec
<*> Realtek RT5658/RT5659 Codec
-*- Realtek RT5682 Codec - SDW
-*- Realtek RT700 Codec - SDW
-*- Realtek RT711 Codec - SDW
-*- Realtek RT711 SDCA Codec - SDW
-*- Realtek RT715 Codec - SDW
-*- Realtek RT715 SDCA Codec - SDW
- SDW(SoundWire) / SDCA(SoundWire Device Class Audio)
오디오 기능 및 오디오 데이터 전송에 사용되는 인터페이스.
The Linux driver implementer’s API guide - SoundWire Subsystem Summary
SoF(Sound Open Firmware)는 오디오 또는 신호 처리에 대한 펌웨어를 제공하는 오픈소스이다.
Linux Kernel에서 제공하지 않는 사운드는 대부분 SoF 펌웨어로 인식이 가능하다.
Sound Open Firmware Project
ruo91 ~# emege -av sys-firmware/sof-firmware
ruo91 ~# ls /lib/firmware/intel/{sof,sof-tplg}/ | egrep "sof-tgl.ri|sof-hda-generic-4ch.tplg"
sof-hda-generic-4ch.tplg
sof-tgl.ri
부팅 이후 dmesg 출력에서 firmware 파일을 못찾는 경우가 발생하는 경우,
아래와 같이 firmware 파일을 강제로 인식하도록 설정한다.
ruo91 ~# vi /usr/src/linux/.config
#
# Firmware loader
#
CONFIG_FW_LOADER=y
CONFIG_EXTRA_FIRMWARE="intel/sof/sof-tgl.ri intel/sof-tplg/sof-hda-generic-4ch.tplg"
CONFIG_EXTRA_FIRMWARE_DIR="/lib/firmware"
# end of Firmware loader
ruo91 ~# make -j8 && make -j8 modules_install && make install
ruo91 ~# genkernel --install initramfs
ruo91 ~# grub-mkconfig -o /boot/grub/grub.cfg
ruo91 ~# reboot
alsa-info.sh 스크립트를 사용하여 alsa 정보를 취합하여 확인 한다.
http://alsa-project.org/db/?f=0d3aeff8bedf1b7bbca04b5b9f1f233b15d6f894
ruo91 ~ # alsa-info.sh
ALSA Information Script v 0.5.1
--------------------------------
This script visits the following commands/files to collect diagnostic
information about your ALSA installation and sound related hardware.
dmesg
lspci
aplay
amixer
alsactl
rpm, dpkg
/proc/asound/
/sys/class/sound/
~/.asoundrc (etc.)
See '/usr/sbin/alsa-info.sh --help' for command line options.
/usr/sbin/alsa-info.sh: line 466: /proc/asound/modules: No such file or directory
cat: /tmp/alsa-info.1x9lAhl0Lt/alsamodules.tmp: No such file or directory
cat: /proc/asound/modules: No such file or directory
Automatically upload ALSA information to www.alsa-project.org? [y/N] : y
Uploading information to www.alsa-project.org ... Done!
Your ALSA information is located at http://alsa-project.org/db/?f=0d3aeff8bedf1b7bbca04b5b9f1f233b15d6f894
Please inform the person helping you.
ruo91 ~# alsamixer
지문인식의 경우 sys-auth/fprintd 패키지를 설치 이후 device 인식은 되었으나, gnome control panel에서
사용자 계정에 지문 인증 부분이 제외 되었던 것이 gentoo portage를 최신 버전으로 업데이트 및 빌드 후 기능이 지원 되었다.
ruo91 ~# emege -av sys-auth/fprintd
왼손 검지/중지, 오른손 검지/중지에 대한 지문 내역이 등록 된 것을 확인 가능함.
ruo91 ~ # fprintd-list ruo91
.found 1 devices
Device at /net/reactivated/Fprint/Device/0
Using device /net/reactivated/Fprint/Device/0
Fingerprints for user ruo91 on Synaptics Sensors (press):
- #0: left-middle-finger
- #1: right-middle-finger
- #2: left-index-finger
- #3: right-index-finger
[1]: Gentoo Forums - Tiger Lake audiocontroller/sound card not found
[2]: Linux Kernel Config Files - HP Elite Dragonfly Max

