====== ASUS Zenbook UX362-FA: zprovoznění zvuku ======
//Vytvořeno: **27.4.2019**//
> **Poznámka k aktuálnosti:** Tento článek vychází z praktické zkušenosti z roku 2019. Postup i konkrétní patch v jádře nemusí odpovídat dnešnímu stavu podpory notebooku ani aktuálním verzím Ubuntu a Linux kernelu.
[[https://www.asus.com/2-in-1-PCs/ASUS-ZenBook-Flip-13-UX362FA/|ASUS ZenBook Flip 13 UX362FA]] je konvertibilní notebook, na kterém po instalaci Ubuntu tehdy fungovala většina hardwaru bez zásahu. Jediný výraznější problém byl zvuk, který jsem nakonec rozchodil přes ruční úpravu zdrojových kódů jádra a vlastní kompilaci.
===== Kontext =====
Po čisté instalaci [[https://ubuntu.com/|Ubuntu 18.10]] fungovala Wi-Fi, dotykový displej i funkční klávesy. Problém byl jen se zvukem. Řešení, které jsem tehdy našel, vyžadovalo doplnění konkrétního modelu notebooku do quirk tabulky v kernelu a následnou kompilaci vlastního jádra.
===== Příprava systému na kompilaci jádra =====
Nejprve jsem doinstaloval balíčky potřebné pro sestavení jádra. Praktická poznámka z té doby byla počítat zhruba s 20 GB volného místa.
sudo apt-get install git build-essential kernel-package fakeroot libncurses5-dev flex bison libssl-dev
Jako základ jsem tehdy zvolil Ubuntu mainline větev 4.20 z [[https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20/|kernel.ubuntu.com]], protože jsem chtěl zůstat u patchované ubuntu větve místo čistého kernelu z upstreamu.
Stažení konkrétní revize zdrojového stromu a aplikace patchů vypadalo takto:
git reset --hard 9f1a389a0b5b4004757759e26e2ff459016515ac
cd v4.20
patch -p1 < ~/anyname/0001-base-packaging.patch
patch -p1 < ~/anyname/0002-UBUNTU-SAUCE-add-vmlinux.strip-to-BOOT_TARGETS1-on-p.patch
===== Doplnění quirk záznamu pro zvuk =====
Nejprve bylo potřeba zjistit ''SubVendor'' a ''SubDevice'' hodnoty zvukové karty:
sudo apt-get install hwinfo
hwinfo --sound
Ve zdrojovém případě vyšel tento důležitý úsek:
SubVendor: pci 0x1043 "ASUSTeK Computer Inc."
SubDevice: pci 0x13e1
Pak následovala úprava souboru ''sound/pci/hda/patch_realtek.c''. K existujícím ASUS záznamům bylo potřeba doplnit nový řádek pro UX362FA:
SND_PCI_QUIRK(0x1043, 0x13e1, "ASUS UX362FA", ALC294_FIXUP_ASUS_SPK),
Autor tehdy řádek přidával orientačně pod existující záznam:
SND_PCI_QUIRK(0x1043, 0x10a1, "ASUS UX391UA", ALC294_FIXUP_ASUS_SPK),
===== Kompilace a instalace jádra =====
Po úpravě zdrojových kódů následovala standardní sestava jádra a instalace vzniklých balíčků:
cp /boot/config-`uname -r` .config
gedit .config
make oldconfig
make menuconfig
make clean
make -j `getconf _NPROCESSORS_ONLN` deb-pkg LOCALVERSION=-custom
sudo dpkg -i ../*.deb
sudo update-grub
sudo reboot
===== Výsledek =====
Po restartu zvuková karta naběhla včetně nahrávání zvuku. Šlo tedy o řešení, které tehdy fungovalo, ale za cenu vlastního kernelu a ruční údržby.
===== Zdroje =====
* [[https://www.asus.com/2-in-1-PCs/ASUS-ZenBook-Flip-13-UX362FA/|ASUS ZenBook Flip 13 UX362FA]]
* [[https://forum.manjaro.org/t/alc294-analog-audio-card-detected-but-no-sound-internaly-or-headphones/54089/29|ALC294 analog audio card detected but no sound internaly or headphones]]
* [[https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel|Ubuntu Wiki: Build your own kernel]]
* [[https://askubuntu.com/questions/724900/how-to-apply-kernel-patches|Ask Ubuntu: How to apply kernel patches]]
* [[https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20/|kernel.ubuntu.com: kernel v4.20]]