[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#748463: libdrm2: [drm] Failed to open DRM device for pci:0000:01:00.0: No such file or directory



On 18/05/14 22:07, Omega Weapon wrote:
On 17/05/14 22:35, Omega Weapon wrote:
After many hours I have finally been able to break into X. The problem
so far is an attempt to open /dev/dri/card1, which doesnt exist -
/dev/dri/card0 is sitting there as normal. So I assume the issue is in
xf86drm.c:drmOpenByBusid somehow breaking when trying card0, and then
moving to card1. I'll look further into this tomorrow.

So far I have demonstrated drmSetInterfaceVersion failing in
drmOpenByBusId due to drmIoctl failing with EACCES - so looks like
someones screwed up the permissions with /dev/dri/card0.

Courtesy of LordVan on #radeon, there is a discrepancy with non-standard
ACL (ls -al indicates non-standard ACL stuff with a + at the end):

=======================================================

# getfacl /dev/dri/card0

getfacl: Removing leading '/' from absolute path names
# file: dev/dri/card0
# owner: root
# group: video
user::rw-
group::rw-
mask::rw-
other::---

=======================================================

On my working laptop, there is an extra 'user:omega:rw-' entry (that is
my username), however I'd like to think the general user line does this.
I added these permissions in with setfacl, but X was still broken.

I'm currently reading into kernel documentation to understand the
DRM_IOCTL_SET_VERSION ioctl in an attempt to show exactly what thinks I
don't have the access.

I'd appreciate someone with a clue helping here, as it is taking a long
time to build up some for myself.


Michel Dänzer of radeon fame has solved it - radeontop held /dev/dri/card0 open, and from what I understand only one thing can open this at a time. So basically radeontop held X hostage for 3 days.

For anyone facing a similar problem, here is the check to see what is using the dri device and my actual example:

=====================================================================

# sudo lsof /dev/dri/card0

COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF  NODE NAME
radeontop 4300 root    5u   CHR  226,0      0t0 10510 /dev/dri/card0
Xorg      6086 root   10u   CHR  226,0      0t0 10510 /dev/dri/card0

=====================================================================

As soon as I killed radeontop and sudo service lightdm start, I could get back at my desktop.


Reply to: