5000 series card questions
Dave Witbrodt
dawitbro at sbcglobal.net
Sat Apr 10 19:39:22 PDT 2010
On 04/10/2010 08:41 PM, Mark Knecht wrote:
> On Sat, Apr 10, 2010 at 3:48 PM, Dave Witbrodt<dawitbro at sbcglobal.net> wrote:
>> To sum up, you should try to get the latest possible versions of all of the
>> packages I listed:
>>
>> - linux kernel built from "drm-radeon-testing" (2.6.32 or 2.6.33), or
>> (preferably) a release candidate of 2.6.34
>>
>> - libdrm 2.4.18 or newer (including enabled radeon driver support)
>>
>> - xorg-server 1.7.5.901 or newer (1.7.6 is out)
>>
>> - xf86-video-ati 6.13
>>
>> If you give it a try, report the software versions and the kind of connector
>> cables you are using if you have any problems.
>
> Hey Dave,
> Thanks for the inputs. Very clear. (I think!) ;-) Up front, it
> seems grub is displayed on only one output and I'm using a DVI cable
> to the Syncmaster 2333. I do have an analog monitor but it seems to
> act the same as the 2333. (Goes black)
I assume you mean you've tried them one at a time, not at the same time?
By "analog," do you mean using a VGA (Dsub) connector instead of DVI?
Hmm, it's disappointing when these sort of problems arise. Try to
understand that Evergreen support is in very early stages in the
"radeon" driver and in the kernel DRM -- and by doing this testing and
reporting you are making an important contribution to improving that
support. Just take a look at what "radeon" and "radeonhd" looked like
on my HD4850 when I first started experimenting with 3D acceleration
using the open sources drivers last Fall:
http://bugs.freedesktop.org/attachment.cgi?id=31496
It was supposed to look like this:
http://bugs.freedesktop.org/attachment.cgi?id=31495
* Yipe! *
(It all got better in a big hurry, BTW. By late December, _all_ of my
HD4850 issues were resolved.)
> Questions up front?
>
> 1) xorg.conf?
> 2) hald?
> 3) dbus?
Do you have an 'xorg.conf' file in '/etc/X11' or thereabouts? With
today's X server, it's not unusual for people to have no 'xorg.conf' at all.
You can look at the contents of '/var/log/Xorg.0.log' to determine what
driver is actually used by X. I'm not sure what directories Gentoo uses
for their X drivers, but some grep-fu like this should give us answers
on any Linux system:
grep 'drv\.so' /var/log/Xorg.0.log
[HAL and D-Bus should be brought in automatically as dependencies if
they are needed by any software on your system, whether that is the X
server or something else. If your particular distribution doesn't
depend on them to be able to run X, then AFAIK they should not have any
impact at all on the Evergreen problems you are having.]
> OK, Gentoo had a call for stable users to start testing
> xorg-server-1.7 so I've upgraded to 1.7.6.
[...]
> cruncher ~ # equery files libdrm | grep radeon
[...]
> /usr/lib64/libdrm_radeon.la
> /usr/lib64/libdrm_radeon.so
> /usr/lib64/libdrm_radeon.so.1
> /usr/lib64/libdrm_radeon.so.1.0.0
Here's what we wanted to see. Unless your system is not configured to
look in '/usr/lib64' for this stuff (very, very unlikely) we can set
aside all questions about the "libdrm" package.
> The key results I'm seeing right now are:
>
> 1) Just after entering the interactive part of boot and right around
> the message 'waiting for udev events to be processed' the screen goes
> black and the monitor loses sync. I somehow remember a similar screen
> goes black after udev issue with the I915 but I cannot for the life of
> me remember what the solution was. I'm looking through notes and
> emails. Something about frame buffer devices maybe?
Yeah, if your kernel loads one of the legacy framebuffer drivers, that
can interfere with the new "radeondrmfb" driver (or the Intel DRM FB
equivalent) which works with KMS. You would need to show us more of
your 'dmesg' output to rule out something like that.
> 2) I somehow think I'm still missing the right drivers. If I ssh in
> and try to start xdm it fails and Xorg.0.log is still telling me 'No
> Devices Detected'
>
> ATI Radeon 3100 Graphics, ATI Radeon HD 3300 Graphics,
> ATI Radeon HD 3200 Graphics, ATI Radeon 3000 Graphics,
> ATI Radeon HD 4200, ATI Radeon 4100, ATI Mobility Radeon HD 4200,
> ATI Mobility Radeon 4100, ATI Radeon HD 4290, ATI Radeon HD 4290
> (II) Primary Device is: PCI 03 at 00:00:0
> (EE) No devices detected.
>
> Fatal server error:
> no screens found
I don't wish to sound rude here, but it's possible that you have made an
easy-to-overlook error in getting your system ready to use the open
source drivers. Didn't you mention trying to use 'fglrx' drivers in
earlier messages? Did you ever attempt to install and use 'fglrx'?
I know you use Gentoo, but take a look at this Debian bug report:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=538868
Look familiar?
> However radeon is in memory:
>
> cruncher ~ # lsmod
> Module Size Used by
> radeon 633741 0
> ttm 47515 1 radeon
> drm_kms_helper 23847 1 radeon
> drm 169899 3 radeon,ttm,drm_kms_helper
> agpgart 30664 2 ttm,drm
[...]
FYI, please be aware that the kernel contains its own Radeon support,
called a Direct Rendering Manager (DRM), which makes mode setting
possible for all the system components that might wish to change the
video mode -- full screen virtual terminals, X server, or anything else.
The kernel configuration for this feature is set in a giant text file
(called '.config') when the kernel is compiled. If you are using a BASH
shell, you should get the same (or very similar) output that I do if you
run the following command:
$ grep RADEON /boot/config-$(uname -r)
CONFIG_DRM_RADEON=y
CONFIG_DRM_RADEON_KMS=y
# CONFIG_FB_RADEON is not set
This CONFIG_DRM_RADEON thingy is built directly into my kernel because I
use a custom kernel configuration and build my own. However, for all
the Linux distributions I know of, the kernels are built mostly with
loadable modules instead of built-in drivers, so you should see
something like:
CONFIG_DRM_RADEON=m
That means your kernel can load and/or unload that driver, while my
kernel cannot unload it (the driver is always in memory, and cannot be
removed).
When the kernel boots, it detects you have a Radeon device and loads the
appropriate DRM module. It shows up in your 'lsmod' output as "radeon",
but it is entirely distinct from the X server "radeon" driver. (The X
"radeon" driver asks the kernel DRM_RADEON thingy to do mode changes if
you are using kernel mode setting [KMS]; if not using KMS, then X uses
"userspace mode setting" [UMS], and the X "radeon" driver talks directly
to the hardware to do mode changes.)
This naming issue for kernel drivers is another pitfall for the
inexperienced. It's not unusual for the CONFIG* kernel settings to have
a completely different name from the 'lsmod' driver name which
corresponds to them! (It actually seems like a practical joke, sometimes.)
On my Debian system, I have configured a runlevel which allows me to
boot without X. If I boot like that, and use a kernel with DRM_RADEON
compiled as a module (instead of built-in), then I will see that
"radeon" driver in 'lsmod'. But X isn't even running! So that is the
kernel driver which is running the "radeondrmfb" framebuffer, and which
responds to requests from software to change video modes. It is not the
"radeon" driver from xf86-video-ati used by the X server.
> Packages you pointed out are shown below.
>
> cruncher ~ # emerge -pv xorg-server xorg-drivers libdrm xf86-video-ati mesa
>
> These are the packages that would be merged, in order:
>
> Calculating dependencies... done!
>
> [ebuild R ] x11-libs/libdrm-2.4.20 USE="-debug" 0 kB
>
> [ebuild R ] media-libs/mesa-7.7.1 USE="nptl xcb -debug (-gallium)
> -motif -pic (-selinux)" VIDEO_CARDS="radeon -intel -mach64 -mga -none
> -nouveau -r128 -radeonhd -savage -sis (-sunffb) -svga -tdfx -via" 0 kB
>
> [ebuild R ] x11-base/xorg-server-1.7.6 USE="hal ipv6 nptl sdl
> xorg -debug -dmx -kdrive -minimal -tslib" 0 kB
>
> [ebuild R ] x11-drivers/xf86-video-ati-6.13.0 0 kB
>
> [ebuild R ] x11-base/xorg-drivers-1.7 INPUT_DEVICES="evdev
> -acecad -aiptek -joystick -keyboard -mouse -penmount -synaptics -tslib
> -virtualbox -vmmouse -void -wacom" VIDEO_CARDS="fbdev radeon -apm -ark
> -ast -chips -cirrus -dummy -epson -fglrx (-geode) -glint -i128 (-i740)
> (-impact) -intel -mach64 -mga -neomagic (-newport) -nv -nvidia -r128
> -radeonhd -rendition -s3 -s3virge -savage -siliconmotion -sis -sisusb
> (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx)
> -tdfx -tga -trident -tseng -v4l -vesa -via -virtualbox -vmware
> (-voodoo) (-xgi)" 0 kB
Looks good... very good. Here we see you have a cutting edge libdrm;
you have Mesa with Radeon support enabled (which doesn't accelerate
anything on Evergreen cards, yet); you have an up-to-date X server with
the HAL interface enabled; you have a cutting edge xf86-video-ati
("radeon") driver; and you have a very intelligent packaging system
which builds only the input and output drivers you need for your system.
(Most Debian users end up with ALL of that driver cruft installed,
almost all of which they will never touch, unless they take pains to
remove all of the unneeded ones; but, hey, it works. ;)
> [ 6.209896] Linux agpgart interface v0.103
> [ 6.219972] mdadm used greatest stack depth: 4168 bytes left
> [ 6.257363] [drm] Initialized drm 1.1.0 20060810
> [ 6.309372] [drm] radeon defaulting to kernel modesetting.
> [ 6.309374] [drm] radeon kernel modesetting enabled.
> [ 6.309401] alloc irq_desc for 30 on node -1
> [ 6.309403] alloc kstat_irqs on node -1
> [ 6.309408] radeon 0000:03:00.0: PCI INT A -> GSI 30 (level, low)
> -> IRQ 30
> [ 6.309410] radeon 0000:03:00.0: setting latency timer to 64
> [ 6.310122] [drm] radeon: Initializing kernel modesetting.
> [ 6.310272] [drm] register mmio base: 0xFBAC0000
> [ 6.310273] [drm] register mmio size: 131072
> [ 6.310339] ATOM BIOS: JUNIPER
> [ 6.310347] [drm] Clocks initialized !
> [ 6.310348] [drm] 1 Power State(s)
> [ 6.310349] [drm] State 0 Default (default)
> [ 6.310350] [drm] 16 PCIE Lanes
> [ 6.310351] [drm] 1 Clock Mode(s)
> [ 6.310352] [drm] 0 engine/memory: 850000/1200000
> [ 6.310356] [drm] radeon: power management initialized
> [ 6.310361] radeon 0000:03:00.0: VRAM: 256M 0x00000000 - 0x0FFFFFFF
> (256M used)
> [ 6.310363] radeon 0000:03:00.0: GTT: 512M 0x10000000 - 0x2FFFFFFF
> [ 6.310366] mtrr: type mismatch for d0000000,10000000 old:
> write-back new: write-combining
> [ 6.310368] [drm] Detected VRAM RAM=256M, BAR=256M
> [ 6.310368] [drm] RAM width 128bits DDR
> [ 6.310392] [TTM] Zone kernel: Available graphics memory: 6163198 kiB.
> [ 6.310394] [TTM] Zone dma32: Available graphics memory: 2097152 kiB.
> [ 6.310400] [drm] radeon: 256M of VRAM memory ready
> [ 6.310401] [drm] radeon: 512M of GTT memory ready.
> [ 6.311701] [drm] Radeon Display Connectors
> [ 6.311702] [drm] Connector 0:
> [ 6.311703] [drm] DisplayPort
> [ 6.311704] [drm] HPD4
> [ 6.311705] [drm] DDC: 0x6440 0x6440 0x6444 0x6444 0x6448 0x6448
> 0x644c 0x644c
> [ 6.311706] [drm] Encoders:
> [ 6.311707] [drm] DFP1: INTERNAL_UNIPHY2
> [ 6.311708] [drm] Connector 1:
> [ 6.311708] [drm] HDMI-A
> [ 6.311709] [drm] HPD5
> [ 6.311710] [drm] DDC: 0x6430 0x6430 0x6434 0x6434 0x6438 0x6438
> 0x643c 0x643c
> [ 6.311711] [drm] Encoders:
> [ 6.311712] [drm] DFP2: INTERNAL_UNIPHY2
> [ 6.311713] [drm] Connector 2:
> [ 6.311713] [drm] DVI-I
> [ 6.311714] [drm] HPD1
> [ 6.311715] [drm] DDC: 0x6460 0x6460 0x6464 0x6464 0x6468 0x6468
> 0x646c 0x646c
> [ 6.311716] [drm] Encoders:
> [ 6.311717] [drm] DFP3: INTERNAL_UNIPHY1
> [ 6.311717] [drm] CRT2: INTERNAL_KLDSCP_DAC2
> [ 6.311718] [drm] Connector 3:
> [ 6.311719] [drm] DVI-I
> [ 6.311719] [drm] HPD6
> [ 6.311721] [drm] DDC: 0x6450 0x6450 0x6454 0x6454 0x6458 0x6458
> 0x645c 0x645c
> [ 6.311722] [drm] Encoders:
> [ 6.311722] [drm] DFP4: INTERNAL_UNIPHY
> [ 6.311723] [drm] CRT1: INTERNAL_KLDSCP_DAC1
> [ 6.660144] [drm] fb mappable at 0xD0040000
> [ 6.660145] [drm] vram apper at 0xD0000000
> [ 6.660146] [drm] size 8294400
> [ 6.660147] [drm] fb depth is 24
> [ 6.660148] [drm] pitch is 7680
> [ 6.660171] fb0: radeondrmfb frame buffer device
> [ 6.660172] registered panic notifier
> [ 6.660174] [drm] Initialized radeon 2.1.0 20080528 for
> 0000:03:00.0 on minor 0
This partial 'dmesg' output seems to indicate that KMS loaded OK.
Assuming that there weren't bad things happening after this part of the
boot process, then right now...
*** WARNING ***
I am not a developer, just a noob user like you, and everything you are
about to read should be viewed with suspicion and rejected utterly upon
the first sign of evidence contradicting it
*** END WARNING ***
... it looks like you were using 'fglrx' earlier, and it left cruft on
your system which is now interfering with the X server trying to use the
open source "radeon" driver. If X crashes hard when trying to load, it
could be leaving you with a black screen instead of falling back to the
full screen virtual terminal login prompt.
If that is not the explanation of your black screen issue, then it is
some deeper problem, like the black screen issues I had with my HD5750
when trying to use the keyboard/video/mouse switch, or the purple
vertical line I get when using the HDMI cable.
BTW...
On my Debian system, it is normal for the kernel to spew tons of text
until the display manager finally loads, at which point the screen goes
blank and a graphical login prompt appears. On my friend's Ubuntu
system, even though Ubuntu is Debian-based, they take pains to make sure
that few (or none) of those boot messages appear: they switch to
graphics mode early in boot, and the typical Ubuntu user never sees
anything but graphics modes unless something like the display manager or
the X server crashes.
How does it work (normally) on Gentoo? When you have had a working
system in the past, does it spew text boot messages until the login
prompt comes up in graphics mode, or does it switch to graphics mode
very early in boot?
HTH,
Dave W.
More information about the xorg-driver-ati
mailing list