# drmOpenDevice: node name is /dev/dri/card0



## inurneck (Jan 26, 2010)

Hey guys, I installed a new video card and I am trying to get the cube working and hardware acceleration. I added drm and radeondrm to my kernel config, recompiled and installed it. Upon boot I get this.

```
[125]daemon[/]: dmesg | grep drm
drm1: <ATI Radeon RV280 9250> on vgapci1
vgapci1: child drm1 requested pci_enable_busmaster
info: [drm] Initialized radeon 1.31.0 20080613
[126]daemon[/]:
```
 
Heres the thing. See below, xorg is looking for /dev/dri/card0? But BSD didn't put it there it made the directory card1


```
[126]daemon[/]: ls /dev/dri
card1
[127]daemon[/]:
```


```
ABI class: X.Org Video Driver, version 5.0
(II) RADEON(0): initializing int10
(==) RADEON(0): Write-combining range (0xa0000,0x20000) was already clear
(==) RADEON(0): Write-combining range (0xc0000,0x40000) was already clear
(II) RADEON(0): Legacy BIOS detected
drmOpenDevice: node name is /dev/dri/card0
Failed to change owner or group for file /dev/dri/card0! 2: No such file or directory
drmOpenDevice: open result is -1, (No such file or directory)
Failed to change owner or group for file /dev/dri/card0! 2: No such file or directory
drmOpenDevice: open result is -1, (No such file or directory)
drmOpenDevice: Open failed
[drm] failed to load kernel module "radeon"
(EE) RADEON(0): [dri] RADEONDRIGetVersion failed to open the DRM
[dri] Disabling DRI.
(II) RADEON(0): Generation 2 PCI interface, using max accessible memory
(II) RADEON(0): Detected total video RAM=131072K, accessible=131072K (PCI BAR=131072K)
(--) RADEON(0): Mapped VideoRAM: 131072 kByte (64 bit DDR SDRAM)
```

Either something isnt configured correctly, or it's because this motherboard has also an onboard video card which I am trying to get rid of but I cant seem to be able to turn it off in the bios as their is no option. Any help would be appreciated as I continue to debug this. I tried switching card1 and 0 in the different device sections but it didnt help. Thanks. I'll tell you what not to do for shits and giggles. Don't ever think you can make a symlink in /dev/dri card0>card1 when I started X the damn thing shat itself and rebooted. I thought it was worth a shot at the time. Sigh. I have added my xorg.log < it was too large for this forum. 59 bytes.. and xorg.conf as attachments.


----------



## adamk (Jan 26, 2010)

Can you show us the full output of 'dmesg' and 'pciconf -vl'?


----------



## inurneck (Jan 26, 2010)

```
[127]daemon[/]: pciconf -vl
hostb0@pci0:0:0:0:	class=0x060000 card=0x00000000 chip=0x00091166 rev=0x06 hdr=0x00
    vendor     = 'ServerWorks (Was: Reliance Computer Corp)'
    device     = 'AGP interface (NB6536 (CNB20-LE))'
    class      = bridge
    subclass   = HOST-PCI
hostb1@pci0:0:0:1:	class=0x060000 card=0x00000000 chip=0x00091166 rev=0x06 hdr=0x00
    vendor     = 'ServerWorks (Was: Reliance Computer Corp)'
    device     = 'AGP interface (NB6536 (CNB20-LE))'
    class      = bridge
    subclass   = HOST-PCI
pcib1@pci0:0:2:0:	class=0x060400 card=0x00000000 chip=0x09628086 rev=0x01 hdr=0x01
    vendor     = 'Intel Corporation'
    device     = 'i960RM/RN Microprocessor/Bridge (80960RM/RN)'
    class      = bridge
    subclass   = PCI-PCI
aac0@pci0:0:2:1:	class=0x010400 card=0x00011028 chip=0x00011028 rev=0x01 hdr=0x00
    vendor     = 'Dell Computer Corporation'
    device     = 'Expandable RAID Controller (PERC) (SCSI) (PowerEdge 2 /Si)'
    class      = mass storage
    subclass   = RAID
pcm0@pci0:0:4:0:	class=0x040100 card=0x00531102 chip=0x00041102 rev=0x03 hdr=0x00
    vendor     = 'Creative Technology LTD.'
    device     = 'Audigy Audio Processor (Creative SB Audigy 2 ZS (WDM))'
    class      = multimedia
    subclass   = audio
emujoy0@pci0:0:4:1:	class=0x098000 card=0x00401102 chip=0x70031102 rev=0x03 hdr=0x00
    vendor     = 'Creative Technology LTD.'
    device     = 'Creative Labs SB Audigy MIDI/Game port (EMU10K2 (for Vista 32 bit))'
    class      = input device
none0@pci0:0:4:2:	class=0x0c0010 card=0x00101102 chip=0x40011102 rev=0x01 hdr=0x00
    vendor     = 'Creative Technology LTD.'
    device     = 'Audigy IEEE1394a Firewire Controller (EMU10K1)'
    class      = serial bus
    subclass   = FireWire
fxp0@pci0:0:8:0:	class=0x020000 card=0x009b1028 chip=0x12298086 rev=0x08 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82550/1/7/8/9 EtherExpress PRO/100(B) Ethernet Adapter'
    class      = network
    subclass   = ethernet
Your on limited time pal, it's the end of the line. I'll get you and your not gonna see it coming.
vgapci0@pci0:0:14:0:	class=0x030000 card=0x009b1028 chip=0x47591002 rev=0x7a hdr=0x00
    vendor     = 'ATI Technologies Inc. / Advanced Micro Devices, Inc.'
    device     = 'm3d agp card on agp slot (215r2qzua21)'
    class      = display
    subclass   = VGA
isab0@pci0:0:15:0:	class=0x060100 card=0x02001166 chip=0x02001166 rev=0x50 hdr=0x00
    vendor     = 'ServerWorks (Was: Reliance Computer Corp)'
    device     = 'PCI to ISA Bridge (OSB4)'
    class      = bridge
    subclass   = PCI-ISA
ohci0@pci0:0:15:2:	class=0x0c0310 card=0x02201166 chip=0x02201166 rev=0x04 hdr=0x00
    vendor     = 'ServerWorks (Was: Reliance Computer Corp)'
    device     = 'OpenHCI Compliant USB Controller (OSB4)'
    class      = serial bus
    subclass   = USB
ahc0@pci0:1:6:0:	class=0x010000 card=0x78809004 chip=0x80789004 rev=0x02 hdr=0x00
    vendor     = 'Adaptec Inc'
    device     = 'AIC-7880P Ultra/Ultra Wide SCSI Chipset'
    class      = mass storage
    subclass   = SCSI
vgapci1@pci0:2:6:0:	class=0x030000 card=0x01221092 chip=0x59601002 rev=0x01 hdr=0x00
    vendor     = 'ATI Technologies Inc. / Advanced Micro Devices, Inc.'
    device     = 'Radeon 9200 Pro (RV280)'
    class      = display
    subclass   = VGA
vgapci2@pci0:2:6:1:	class=0x038000 card=0x01231092 chip=0x59401002 rev=0x01 hdr=0x00
    vendor     = 'ATI Technologies Inc. / Advanced Micro Devices, Inc.'
    device     = 'www.ati.comRadeon 9200 Pro - Secondary (RV280)'
    class      = display
[128]daemon[/]:
```


```
[126]daemon[/]: dmesg
Copyright (c) 1992-2010 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 9.0-CURRENT #0: Mon Jan 25 17:11:12 EST 2010
    mike@daemon:/usr/obj/usr/src/sys/core i386
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel Pentium III (927.11-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x686  Stepping = 6
  Features=0x387fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,PN,MMX,FXSR,SSE>
real memory  = 2147483648 (2048 MB)
avail memory = 2095910912 (1998 MB)
ACPI APIC Table: <DELL   PE2400  >
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
FreeBSD/SMP: 2 package(s) x 1 core(s)
 cpu0 (BSP): APIC ID:  1
 cpu1 (AP): APIC ID:  0
ioapic0: Changing APIC ID to 2
ioapic1: Changing APIC ID to 3
MADT: Forcing active-low polarity and level trigger for SCI
ioapic0 <Version 1.1> irqs 0-15 on motherboard
ioapic1 <Version 1.1> irqs 16-31 on motherboard
acpi0: <DELL PE2400> on motherboard
acpi0: [ITHREAD]
acpi0: Power Button (fixed)
acpi0: reservation of 0, a0000 (3) failed
acpi0: reservation of 100000, f00000 (3) failed
acpi0: reservation of 1000000, 7f000000 (3) failed
Timecounter "ACPI-safe" frequency 3579545 Hz quality 850
acpi_timer0: <32-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
pcib0: <ACPI Host-PCI bridge> on acpi0
pci0: <ACPI PCI bus> on pcib0
pcib1: <ACPI PCI-PCI bridge> at device 2.0 on pci0
pci1: <ACPI PCI bus> on pcib1
ahc0: <Adaptec aic7880 Ultra SCSI adapter> port 0xfc00-0xfcff mem 0xfcfff000-0xfcffffff irq 30 at device 6.0 on pci1
ahc0: [ITHREAD]
aic7880: Ultra Single Channel A, SCSI Id=7, 16/253 SCBs
aac0: <Dell PERC 2/Si> mem 0xf0000000-0xf7ffffff irq 31 at device 2.1 on pci0
aac0: [FILTER]
aac0: Adaptec RAID controller, aac driver 2.0.0-1
pcm0: <Creative Audigy (EMU10K2)> port 0xece0-0xecff irq 17 at device 4.0 on pci0
pcm0: <SigmaTel STAC9721/23 AC97 Codec>
pcm0: [ITHREAD]
pci0: <serial bus, FireWire> at device 4.2 (no driver attached)
fxp0: <Intel 82559 Pro/100 Ethernet> port 0xec80-0xecbf mem 0xfe106000-0xfe106fff,0xfe000000-0xfe0fffff irq 16 at device 8.0 on pci0
fxp0: Enabling Rx lock-up workaround
miibus0: <MII bus> on fxp0
inphy0: <i82555 10/100 media interface> PHY 1 on miibus0
inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
fxp0: Ethernet address: 00:b0:d0:aa:f0:bf
fxp0: [ITHREAD]
vgapci0: <VGA-compatible display> port 0xe800-0xe8ff mem 0xf9000000-0xf9ffffff,0xfe105000-0xfe105fff at device 14.0 on pci0
isab0: <PCI-ISA bridge> port 0x580-0x58f at device 15.0 on pci0
isa0: <ISA bus> on isab0
ohci0: <OHCI (generic) USB controller> mem 0xfe104000-0xfe104fff irq 5 at device 15.2 on pci0
ohci0: [ITHREAD]
usbus0: <OHCI (generic) USB controller> on ohci0
pcib2: <ACPI Host-PCI bridge> on acpi0
pci2: <ACPI PCI bus> on pcib2
vgapci1: <VGA-compatible display> port 0xdc00-0xdcff mem 0xd8000000-0xdfffffff,0xe7010000-0xe701ffff irq 28 at device 6.0 on pci2
drm1: <ATI Radeon RV280 9250> on vgapci1
vgapci1: child drm1 requested pci_enable_busmaster
info: [drm] Initialized radeon 1.31.0 20080613
vgapci2: <VGA-compatible display> mem 0xd0000000-0xd7ffffff,0xe7000000-0xe700ffff at device 6.1 on pci2
fdc0: <floppy drive controller> port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on acpi0
fdc0: [FILTER]
atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0
atkbd0: <AT Keyboard> irq 1 on atkbdc0
atkbd0: [GIANT-LOCKED]
atkbd0: [ITHREAD]
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model IntelliMouse, device ID 3
atrtc0: <AT realtime clock> port 0x70-0x7f irq 8 on acpi0
cpu0: <ACPI CPU> on acpi0
cpu1: <ACPI CPU> on acpi0
orm0: <ISA Option ROMs> at iomem 0xc0000-0xccfff,0xcd800-0xd17ff pnpid ORM0000 on isa0
sc0: <System console> on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounters tick every 1.000 msec
aacd0: <Volume> on aac0
aacd0: 278847MB (571080192 sectors)
usbus0: 12Mbps Full Speed USB v1.0
ugen0.1: <(0x1166)> at usbus0
uhub0: <(0x1166) OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus0
uhub0: 2 ports with 2 removable, self powered
(probe0:ahc0:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 
(probe0:ahc0:0:0:0): CAM Status: SCSI Status Error
(probe0:ahc0:0:0:0): SCSI Status: Check Condition
(probe0:ahc0:0:0:0): UNIT ATTENTION asc:29,0
(probe0:ahc0:0:0:0): Power on, reset, or bus device reset occurred
(probe0:ahc0:0:0:0): Retrying Command (per Sense Data)
(probe1:ahc0:0:1:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 
(probe1:ahc0:0:1:0): CAM Status: SCSI Status Error
(probe1:ahc0:0:1:0): SCSI Status: Check Condition
(probe1:ahc0:0:1:0): UNIT ATTENTION asc:29,0
(probe1:ahc0:0:1:0): Power on, reset, or bus device reset occurred
(probe1:ahc0:0:1:0): Retrying Command (per Sense Data)
(probe0:ahc0:0:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 
(probe0:ahc0:0:0:0): CAM Status: SCSI Status Error
(probe0:ahc0:0:0:0): SCSI Status: Check Condition
(probe0:ahc0:0:0:0): NOT READY asc:3a,0
(probe0:ahc0:0:0:0): Medium not present
(probe0:ahc0:0:0:0): Unretryable error
cd0 at ahc0 bus 0 scbus0 target 0 lun 0
cd0: <HP DVD-ROM 6x/32x 1.08> Removable CD-ROM SCSI-2 device 
cd0: 20.000MB/s transfers (20.000MHz, offset 8)
cd0: Attempt to query device size failed: NOT READY, Medium not present
SMP: AP CPU #1 Launched!
cd1 at ahc0 bus 0 scbus0 target 1 lun 0
cd1: <NEC CD-ROM DRIVE:466 1.06> Removable CD-ROM SCSI-2 device 
cd1: 20.000MB/s transfers (20.000MHz, offset 15)
cd1: Attempt to query device size failed: NOT READY, Medium not present
Trying to mount root from ufs:/dev/aacd0s1a
[127]daemon[/]:
```


----------



## inurneck (Jan 26, 2010)

```
vgapci0@pci0:0:14:0:	class=0x030000 card=0x009b1028 chip=0x47591002 rev=0x7a hdr=0x00
```

Thats the onboard video I dont want it to use but cant disable in the bios.


```
vgapci1@pci0:2:6:0:	class=0x030000 card=0x01221092 chip=0x59601002 rev=0x01 hdr=0x00
vgapci2@pci0:2:6:1:	class=0x038000 card=0x01231092 chip=0x59401002 rev=0x01 hdr=0x00
```

those are the card I want to work. It has two because its going to be setup as a dual monitor. At least i think thats why theres two.


----------



## adamk (Jan 26, 2010)

Yes, dualhead cards usually have two PCI IDs.  It's actually due to a limitation in how windows 2000 handled dualhead setups.  If I had to hazard a guess, I'd say that the problem is due to the vgapci0   The kernel probably thinks that vgapci0 should be related to /dev/dri/card0.  And since the radeon is vgapci1, radeondrm is creating /dev/dri/card1.  Not sure if there's some way around that, but you might want to check on the freebsd-x11 mailing list since the single FreeBSD DRM maintainer monitors that list.

Adam


----------



## inurneck (Jan 26, 2010)

That was my guess as well. Why in the world they would not add an option in the bios to disable the onboard video is beyond me. I know that its a server and not designed for a desktop but come on. Thanks for your help, if anyone else has relevant info please let me know, i'll go to that mailing list now. Thanks man.


----------



## inurneck (Jan 26, 2010)

Look at this thread. I dont know how hes saying a ymlink worked it made my box shat itself and reboot.

http://groups.google.am/group/mailing.freebsd.stable/browse_thread/thread/d3b16f35c4dd5600


----------



## inurneck (Jan 26, 2010)

This is kicking me in the toucas. If there isn't a way to say disable the onboard video from being probed using loader.conf or anything else, or to tell Freebsd to make card0 instead of card1, or to tell that terdmuffin Xorg to use card1 instead of card0 I think my only resolution is going to involve drinking, my firearms. Or both. It's ClownShoes.


----------



## inurneck (Jan 28, 2010)

Must have the cube. I'm about to touch a 9 volt battery to the onboard video of this god damn motherboard and fizz it up, or pry the gpu chip off with a razorblade. 

The way computers evolve so quickly, how was adding a disable onboard video entry not a thought up idea on a motherboard with 6 pci slots and an ISA? 

Michael dell, if your out there, and your listening, come closer, am I clearer now? Swell.

I slept with your mother, and I hope you get conjunctivitous. Whoever designed this motherboard must have been born in a shoe.


----------



## DutchDaemon (Jan 28, 2010)

The signal/noise ratio is getting a bit low in here. Please keep discussions and opinions slightly more technical. It's not a blog. Thanks.


----------



## inurneck (Jan 28, 2010)

DutchDaemon said:
			
		

> The signal/noise ratio is getting a bit low in here. Please keep discussions and opinions slightly more technical. It's not a blog. Thanks.



I understand, keep the information useful and condensed. Makes sense. I tend to get carried away but also thought anyone who ever had a computer issue drive them nutty would find humor in the few posts above. I'll just post on other forums as well maybe they have the answer as I can see no one here does for now. When I fix this whether with someone else's help or my own i'll post how.


----------



## DutchDaemon (Jan 29, 2010)

No prob. Just keep an eye on forum rule #6. We have a very diverse audience here, and sensibilities may vary as well. Humor is relative ..


----------



## tzochios (Jul 25, 2011)

Since I am facing a similar issue, I saw fit to post under this thread. So, first things first, I am using the 8.2-RELEASE-p2 on amd64 custom kernel. My graphics card is an ATI 3870 X2 (RV670); as a result two device nodes are probed. The problem is that X looks for the drm source in card0 while only card1 is created under /dev/dri/ .

```
drmOpenDevice: node name is /dev/dri/card0
Failed to change owner or group for file /dev/dri/card0! 2: No such file or directory
drmOpenDevice: open result is -1, (No such file or directory)
Failed to change owner or group for file /dev/dri/card0! 2: No such file or directory
drmOpenDevice: open result is -1, (No such file or directory)
drmOpenDevice: Open failed
```
Following the thread, as a work-around, I linked card0 to card1 at runtime by appending the following statement to /etc/devd.conf

```
attach 0 {
	device-name "drm1";
	action	"ln -s /dev/dri/card1 /dev/dri/card0";
};
```
Hardware acceleration was enabled, but I can hardly call it a solution. Before that, I tried various approaches mostly by hinting the /boot/loader.conf .

```
hint.vgapci.0.at="pci4"
hint.vgapci.1.at="pci3"
```
By this, I hoped to switch the probing of the two nodes. The result was to override units 0 and 1 and offset the node to the next available device unit--vgapci2 and vgapci3.

```
hint.vgapci.0.disabled="1"
```
or 

```
hint.pci.3.disabled="1"
```
No luck, the node was probed. Next, I hinted the drm device to force the probing as drm0

```
hint.dev.drm.0.at="vgapci1"
```
but it didn't work either. In fact, the drm device was probed as drm2 and the respective /dev/dri/card2 was created. While looking at the output of sysctl I noticed that when the following override was applied (default value=1),

```
hw.pci.default_vgapci_unit=0
```
the output of
`# sysctl dev.vga.0.%parent`
resulted to

```
dev.vgapm.0.%parent: vgapci0
```
Can't really figure where the fault lies. I'd appreciate some light shed on this. The following links contain output without the workaround--presented at the top--was applied.
xorg.conf
Xorg.0.log
dmesg.log
sysctl-a.output
pciconf-lvb.output


----------



## inurneck (Apr 30, 2012)

*This works for me.*

Your "solution" at least got me hardware acceleration over a year and a half after I had been trying to get this working. 

Here. Other forums. I had people logging in the box trying to help, I was getting help in IRC. No go. Until someone comes up with something better I am happy so I tip my hat to you. I never thought and didn*'*t know how to do that with devd.conf. I had tried to synlink card0 to card1 but as soon as *I* typed *startx* the box would reboot. For some reason doing it this way doesn*'*t cause that to happen.


----------

