UniChrome Pro on Ubuntu via OpenChrome

It worked easily with the VESA driver, however the legacy mode tables don't have any of today's fancy aspect ratios. OpenChrome, the default driver, just gave a blank screen. Reviewing Xorg.log revealed an abort by signal 11, segmentation fault (segfault). Let me share the process of fixing it.

I went on to generate a new xorg.conf for editing by Xorg -config xorg.conf.new. I then proceeded to add as much fail-safe options as possible from the driver documentation:

Section "Device"
        Option     "ModeSwitchMethod" "legacy" # or blank & segfault
        Option     "SWCursor" "true" # unsure
        Option     "EnableAGPDMA" "True" # unsure
        Option     "NoAccel" # or starts to lag after some time
        Identifier      "IGP"
        Driver      "openchrome"
        BusID       "PCI:1:0:0"
EndSection

Section "Module" # unsure
    Disable "dri"
EndSection

I could have experimented with Option "AccelMethod" "XAA", Option "XaaNoImageWriteRect" or Option "AccelMethod" "EXA" instead of NoAccel, but I was in a hurry and performance doesn't matter in this use case.

As a final touch, I add Option "DPMS" in the respective "Monitor" section.

I recall I also needed to increase the memory reservation of the integrated graphics from 8MB to 64MB in the BIOS, otherwise I got something like this:
[   366.446] (II) CHROME(0): VIAScreenInit
[   366.463] (II) CHROME(0): Frame Buffer From (0,0) To (1440,1456)
[   366.480] (II) CHROME(0): Using 556 lines for offscreen memory.
[   366.496] Linear memory allocation failed
[   366.513] DRM memory allocation failed -12
[   366.530] 
Fatal server error:
[   366.546] AddScreen/ScreenInit failed for driver 0

Identifiers:
VIA PM800 Unichrome Pro max. 64MB in ASRock P4VM8
linux-image-3.5.0-25-generic 3.5.0-25.39
xserver-xorg-core 2:1.13.0-0ubuntu6.1
xserver-xorg-video-openchrome 1:0.3.1-0ubuntu1.12.10.1

Comments

Popular posts from this blog

Tftp secret of TL-WR740N uncovered

Hidden TFTP of TP-Link routers

Haskell for embedded: C output, compilers, monads, Timber