Patched openchrome driver for VX900 chipset

Hello there. I have an ECS VX900-I Via motherboard I want to run openSUSE on, but the upstream openchrome driver does not support this board and X fails to start.

Luckily, another user has the same board and issue, and has produced a working patch with a 1 line diff: http://permalink.gmane.org/gmane.linux.debian.devel.bugs.general/1221207

I’d happily compile it with the diff myself, but I’m not a developer and I’m a little stumped on how to do so. Would anyone be so kind as to either build a package for me (amd64 preferred) or hold my hand with step by step walkthroughs?

Thanks so much in advance.

And which openSUSE version are you using?

I can prepare a package for you.

But it would probably be better to file a bug report, asking for that patch to be added to the standard packages. This would help other users as well.
http://bugzilla.opensuse.org/ (same username/password as here)

Thank you very much. I’m using 13.2.

I began poking around the OBS (which I now understand the appeal of!) and branched the package and created a patch, which I then added to the spec file. The build then says the patch did not apply, but does not provide more details. It’s probably a newbie mistake I’ve made in packaging it.

https://build.opensuse.org/package/show/home:opethfan:branches:openSUSE:13.2:Update/xf86-video-openchrome

Hm? It is in state “succeeded” now.
So apparently you managed to fix the build meanwhile…

As that patch is from upstream anyway, it will be part in some future driver version automatically.
Although I see openchrome is still at version 0.3.2 in [noparse]XOrg:X11[/noparse], whereas the latest released version is 0.3.3, so somebody should probably update that, maybe when 0.3.4 is released… :wink:

The package builds, but the patch I generated (-vxpatch.patch) does not show in the build log if placed in the spec file as patch1 (with -abuild.patch as patch0)
The build fails if -abuild.patch is removed from the spec file, and if -vxpatch.patch is patch0 with -abuild.patch as patch1, the build log shows the patch as being applied, but there is no change to the src.rpm and the driver support is not added.

Here is the patch section of the build log:

   70s] + cd xf86-video-openchrome-0.3.2   70s] + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
   70s] + echo 'Patch #0 (xf86-video-openchrome-vxpatch.patch):'
   70s] Patch #0 (xf86-video-openchrome-vxpatch.patch):
   70s] + /usr/bin/cat /home/abuild/rpmbuild/SOURCES/xf86-video-openchrome-vxpatch.patch
   70s] + /usr/bin/patch -p1 --fuzz=0
   70s] patching file src/via_id.c
   70s] + echo 'Patch #1 (xf86-video-openchrome-abuild.patch):'
   70s] Patch #1 (xf86-video-openchrome-abuild.patch):
   70s] + /usr/bin/cat /home/abuild/rpmbuild/SOURCES/xf86-video-openchrome-abuild.patch
   70s] + /usr/bin/patch -p1 --fuzz=0
   70s] patching file src/via_lvds.c
   70s] + exit 0
   70s] Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.uA8Unr    70s] + umask 022

I’m quite confused; perhaps I’m looking at it the wrong way.

The order should not matter, as both patches touch completely different source files.

But if you add a Patch, you also have to apply it (via “%patchX” in the %setup section e.g.). I see you added this later on.
If you don’t apply a patch, it won’t show up in the build log obviously. But you would get an error message (or warning) by the postbuild checks (something like "patch specified but not applied), that’s probably what you referred to in your 2nd post.

The build fails if -abuild.patch is removed from the spec file,

Of course, the patch is there for a reason, judging by it’s name its purpose is to fix the build… :wink:

and if -vxpatch.patch is patch0 with -abuild.patch as patch1, the build log shows the patch as being applied, but there is no change to the src.rpm and the driver support is not added.

Hm?
You should have the patch file inside the .src package.
The patch would only be applied when you build a binary rpm out of the .src.rpm.
The actual source tarball (and all other source files) are the exact same as added to the OBS project, i.e. they are unaltered.

But as you build a binary package on OBS anyway, just download and install this. You can do so by clicking on the repo (“standard”) and then on the created package you want to download.
Or enable publishing (in “Repositories”) and you’ll have the binary package in your own repo.

Here is the patch section of the build log:

This shows that both patches are applied.

I built the package on my local machine and it seemed to install fine on the Via board.

Only for me to now discover that openchrome doesn’t support HDMI output on the VX900. Curses!

This might be of interest to you

http://lists.freedesktop.org/archives/openchrome-users/2013-April/007126.html

Additionally this: http://www.phoronix.com/scan.php?page=news_item&px=VIA-Gallium3D-DRM-KMS-Plans

Perhaps sometime this year you’ll have the DRM/KMS driver mainlined.

And why did you build it again on your local machine, when you already built it on OBS? lol!