X.Org skrollausjumittelun korjaus (Ubuntu 14.10, Lenovo Z50-70)
X.Org alkoi oireilla Heidin uudessa Lenovo Z50-70 läppärissä, jossa on käytössä Ubuntu 14.10. Ongelma ilmeni ruudun vierityksen jumitteluna ja ajoittaisena ikkunoiden hallinnan kaatuiluna.
Selkeiten se toistui Facebookin uutisvirtaa touchpadilla tai nuolinäppäimillä skrollatessa, jolloin siitä tuli käytännössä käyttökelvoton.
Onneksi tästä jäi myös selkeät jäljet dmesg -lokiin, jonne alkoi ilmestyä seuraavan kaltaisia rivejä:
[drm] Enabling RC6 states: RC6 on, RC6p off, RC6pp off
[drm] stuck on render ring
[drm] GPU HANG: ecode 0:0x87d3bffa, in Xorg [1501], reason: Ring hung, action: reset
Ratkaisu
Ylläoleva lokipätkä helpotti asian selvittelyä ja syypääksi paljastui
Haswell:iin integroitu näytönohjain ja tämän i915
kernel moduli, johon
liittyen löytyi avulias kommentti Compton projektin bugikannasta.
Kokeilin siis ongelman kiertämistä kernel parametreilla: drm.vblankoffdelay=1 i915.semaphores=0 i915.modeset=1 i915.usemmioflip=1 i915.enable_ppgtt=1, jolloin toiminta oli taas normaalia.
Asetuksista saa pysyvän etsimällä tiedostosta /etc/default/grub muuttujan
GRUB_CMDLINE_LINUX
määrittely ja lisäämällä paremetrit siihen. Oletuksena
muuttuja on Ubuntu 14.10:n tapauksessa tyhjä, jolloin siitä tulee:
GRUB_CMDLINE_LINUX="drm.vblankoffdelay=1 i915.semaphores=0 i915.modeset=1 i915.use_mmio_flip=1 i915.enable_ppgtt=1"
Tätä käytetään /etc/grub.d hakemiston skripteissä, jotka luovat varsinaiset Grub -asetusten käynnistysvalinnat, ja ne täytyy muutoksen jälkeen generoida uudelleen komennolla:
$ sudo update-grub