FS#18378 - [nouveau-drm,xf86-video-nouveau] need upgrade/rebuild for libdrm 2.4.18

Attached to Project: Arch Linux
Opened by Ray (ataraxia) - Wednesday, 17 February 2010, 23:22 GMT
Last edited by Andreas Radke (AndyRTR) - Friday, 19 February 2010, 09:06 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Andreas Radke (AndyRTR)
Architecture All
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 4
Private No

Details

After upgrading to the just-released libdrm 2.4.18-1 (and the new
xorg-server), I can no longer start X:

drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 8, (OK)
drmOpenByBusid: Searching for BusID pci:0000:01:00.0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 8, (OK)
drmOpenByBusid: drmOpenMinor returns 8
drmOpenByBusid: drmGetBusid reports pci:0000:01:00.0
(EE) [drm] failed to open device
(EE) No devices detected.

Fatal server error:
no screens found

I tried rebuilding xf86-video-nouveau against this new libdrm, but it
doesn't compile:

nouveau_xv.c: In function ‘nouveau_xv_bo_realloc’:
nouveau_xv.c:251: error: ‘NOUVEAU_BO_TILED’ undeclared (first use in
this function)
nouveau_xv.c:251: error: (Each undeclared identifier is reported only once
nouveau_xv.c:251: error: for each function it appears in.)
make: *** [nouveau_xv.lo] Error 1
make: *** Waiting for unfinished jobs....
nv_accel_common.c: In function ‘NVAccelInitImageBlit’:
nv_accel_common.c:273: error: ‘NV04_IMAGE_BLIT_DMA_NOTIFY’ undeclared
(first use in this function)
nv_accel_common.c:273: error: (Each undeclared identifier is reported only once
nv_accel_common.c:273: error: for each function it appears in.)
nv_accel_common.c:275: error: ‘NV04_IMAGE_BLIT_COLOR_KEY’ undeclared
(first use in this function)
nv_accel_common.c:279: error: ‘NV04_IMAGE_BLIT_CLIP_RECTANGLE’
undeclared (first use in this function)
nv_accel_common.c:283: error: ‘NV04_IMAGE_BLIT_OPERATION’ undeclared
(first use in this function)
nv_accel_common.c:284: error: ‘NV04_IMAGE_BLIT_OPERATION_ROP_AND’
undeclared (first use in this function)
nv_accel_common.c: In function ‘NVAccelInitScaledImage’:
nv_accel_common.c:327: error:
‘NV04_SCALED_IMAGE_FROM_MEMORY_DMA_NOTIFY’ undeclared (first use in
this function)
nv_accel_common.c:337: error:
‘NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION’ undeclared (first use
in this function)
nv_accel_common.c:338: error:
‘NV04_SCALED_IMAGE_FROM_MEMORY_COLOR_CONVERSION_DITHER’ undeclared
(first use in this function)
nv_accel_common.c:340: error:
‘NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION’ undeclared (first use in
this function)
nv_accel_common.c:341: error:
‘NV04_SCALED_IMAGE_FROM_MEMORY_OPERATION_SRCCOPY’ undeclared (first
use in this function)
nv_accel_common.c: In function ‘NVAccelInitImageFromCpu’:
nv_accel_common.c:436: error: ‘NV05_IMAGE_FROM_CPU_BETA4’ undeclared
(first use in this function)
nv_accel_common.c:439: error: ‘NV05_IMAGE_FROM_CPU_SURFACE’ undeclared
(first use in this function)
make: *** [nv_accel_common.lo] Error 1

Downgrading libdrm makes X work again. shining tells me (on arch-general) that an upgrade and rebuild of the nouveau packages will resolve this.
This task depends upon

Closed by  Andreas Radke (AndyRTR)
Friday, 19 February 2010, 09:06 GMT
Reason for closing:  Fixed
Additional comments about closing:  just reverted the API changes in libdrm.
Comment by Łukasz (qlus) - Thursday, 18 February 2010, 16:32 GMT
Same problem
Comment by Malte Rabenseifner (Zearan) - Thursday, 18 February 2010, 16:38 GMT
I can confirm the problem.

@Andreas: I used the commented line from your PKGBUILD of [xf86-video-nouveau] to re-clone the git-repository and the compiling errors are gone. However it does NOT solve the actual bug. Still looking further into it...
Comment by Malte Rabenseifner (Zearan) - Thursday, 18 February 2010, 17:38 GMT
Quote of 'http://nouveau.freedesktop.org/wiki/TroubleShooting':
"1. Xorg fails to start with "(EE) [drm] failed to open device"
Did you miss the basic question "Are you using the latest code" above ? If you are using a 2.6.33 kernel from kernel.org , that nouveau code is not compatible with libdrm 2.4.18 or git. Either upgrade nouveau drm code (see InstallDRM) or use an old git version of libdrm and DDX, 2010-02-15 or older."

The mentioned 'basic question' a few lines above (still 'http://nouveau.freedesktop.org/wiki/TroubleShooting'):
"9. Are you using the latest code?
Make sure you use the latest available Nouveau code from the git repositories listed in FrontPage: DDX, DRM and Nouveau kernel. And this really means GIT, not your just distribution's latest package. GIT as of TODAY . Kernel.org git repositories do not count, use the freedesktop.org repositories. As long as Nouveau is in staging in the Linux kernel, the user space ABI can break. This means that the git version of libdrm or DDX does not work with the kernel.org version of Nouveau code, until the changes flow upstream."
Comment by Vasyl Demin (zersaa) - Thursday, 18 February 2010, 21:24 GMT
Same problem
Comment by Pierre Schmitz (Pierre) - Thursday, 18 February 2010, 21:27 GMT
Please stop confirming the problem. We already know that.
Comment by Xavier (shining) - Thursday, 18 February 2010, 22:45 GMT
Seriously, how hard is it to do the following two steps :
1) Install xf86-video-nouveau-git from AUR
2) Get nouveau-drm from ABS, use the upstream master.tar.gz snapshot as source, build

If you are not able to do that, why use Arch at all ?
The biggest advantage of Arch is that packaging is simple, and building/editing packages when needed is easy.
Comment by Ray (ataraxia) - Friday, 19 February 2010, 03:15 GMT
For those who don't want to downgrade libdrm, I've made my own updated versions of these packages from today's code (not using git directly, but in the way Andy does it). I've uploaded the source packages, x86_64 binary packages, and the source tarballs (since there's no stable upstream for these) to http://www.andrew.cmu.edu/user/rjkohler/ . I'll take them down shortly after the official packages are updated.

This version of the code definitely does solve the problem, and even fixes a long-standing upstream bug! (http://bugs.freedesktop.org/show_bug.cgi?id=25036)

I didn't have to do anything unusual to build or use these packages. The PKGBUILDs should be directly usable by Andy (or any other dev) for official updates, with the exception of the URL of the source. Thanks to shining for reminding me that this might be a useful exercise.

Loading...