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.
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 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 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.