Ubuntu Linux, laptop ASUS ZenBook Flip 13 UX362FA a zvuk

Autor: | 27. 4. 2019 | IT, Linux

Novou elektroniku vybírám dlouho, nicméně když si vyberu, tak už mi nějaký ten pátek vydrží. Ostatně předchozí notebook mi vydržel přes 10 let 🙂 Kvůli cestování, váze počítače a rychlosti jsem se musel pustit do výběru nového notebooku. Po několikatýdenním přemýšlení a vyhodnocování jsem se rozhodl pro ultrabook ASUS ZenBook Flip 13 UX362FA s dotykovým displejem.

Po nákupu následovala okamžitě instalace Ubuntu 18.10. Nejvíc jsem se však obával toho, jaké budu mít problémy s hardwarem na mém novém ultrabooku. Před nákupem jsem pročítal různá fóra, jaké má kdo zkušenosti. Ovšem co se týče modelu UX362FA, tak fóra bohužel mlčí. Šel jsem tedy nákup risknout se závazkem, že pokud něco nebude fungovat a zprovozním to, tak sepíšu pro ostatní, jak jsem to udělal.

Funguje téměř všechno, kromě zvuku

Mile mě překvapilo, že téměř všechno na notebooku od začátku funguje. Funguje wifi, dotykový display, funkční klávesy.. Jediné úskalí je zvuk. V rámci googlování jsem našel řešení pro tento model. Řešení se ovšem neobejde bez kompilace jádra. Chybu i opravu jsem nahlásil. Časem se nepochybně projeví v nových jádrech. Obávám se však, že to potrvá. Proto sepisuji postup na opravu a kompilaci vlastního jádra. Pokud se však budete kompilace obávat a chcete rychlejší řešení, mohu zkompilované jádro někam nahrát a nainstalujete si jenom nové jádra jako balíček.

Příprava systému na kompilaci jádra

Nejprve jsem nainstaloval programy na kompilaci vlastního jádra. Při kompilaci doporučuji počítat tak s 20GB volného místa na disku.

sudo apt-get install git build-essential kernel-package fakeroot libncurses5-dev flex bison libssl-dev

Co se týče volby verze jádra, netrval jsem za každou cenu na aktuální verzi. Zároveň jsem chtěl opatchované jádro od Canonicalu. Věřím tomu, že vědí proč dělají patche k Ubuntu a nějaký smysl to má. Zvolil jsem proto jádro v.4.20 z tohoto zdroje: https://kernel.ubuntu.com/~kernel-ppa/mainline/v4.20/

Stažení této verze jádra jsem provedl pomocí příkazu:

git reset --hard 9f1a389a0b5b4004757759e26e2ff459016515ac

Ze stejné stránky s verzi jádra jsem stáhnul i příslušné patche. Aplikaci patchů jsem pak provedl tímto příkazem.

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

Oprava zvuku v jádře před kompilací

U zvukové karty jsem nejprve potřeboval znát konkrétní SubVendorSubDevice adresy mé zvukové karty. Ty jsem zjistil takto:

sudo apt-get install hwinfo
hwinfo --sound

root@zenbook:~$ hwinfo --sound
15: PCI 1f.3: 0403 Audio device                                 
  [Created at pci.378]
  Unique ID: nS1_.jsQALdVXpeB
  SysFS ID: /devices/pci0000:00/0000:00:1f.3
  SysFS BusID: 0000:00:1f.3
  Hardware Class: sound
  Model: "Intel Audio device"
  Vendor: pci 0x8086 "Intel Corporation"
  Device: pci 0x9dc8 
  SubVendor: pci 0x1043 "ASUSTeK Computer Inc."
  SubDevice: pci 0x13e1 
  Revision: 0x30
  Driver: "snd_hda_intel"
  Driver Modules: "snd_hda_intel"
  Memory Range: 0xb1218000-0xb121bfff (rw,non-prefetchable)
  Memory Range: 0xb1000000-0xb10fffff (rw,non-prefetchable)
  IRQ: 127 (2454 events)
  Module Alias: "pci:v00008086d00009DC8sv00001043sd000013E1bc04sc03i80"
  Driver Info #0:
    Driver Status: snd_hda_intel is active
    Driver Activation Cmd: "modprobe snd_hda_intel"
  Driver Info #1:
    Driver Status: snd_soc_skl is active
    Driver Activation Cmd: "modprobe snd_soc_skl"
  Config Status: cfg=new, avail=yes, need=no, active=unknown

Z výpisu plyne, že SubVendor má adresu 0x1043 a SubDevice má adresu 0x13e1. Následně jsem editoval soubor: sound/pci/hda/patch_realtek.c a orientačně pod řádek

SND_PCI_QUIRK(0x1043, 0x10a1, "ASUS UX391UA", ALC294_FIXUP_ASUS_SPK),

jsem přidal řádek s údaji mého ultrabooku. Které jsou:

SND_PCI_QUIRK(0x1043, 0x13e1, "ASUS UX362FA", ALC294_FIXUP_ASUS_SPK),

Oprava je hotova, nyní přichází kompilace a instalace samotného jádra.

Kompilace a instalace jádra

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

Závěr

Zvuková karta po restartu naběhla jak má – včetně nahrávání zvuku. Musím uznat, že jsem s ultrabookem celkově hodně spokojený a jsem rád, že hardware funguje jak má.

Další články