Michel Merinoff <[EMAIL PROTECTED]> posted [EMAIL PROTECTED], excerpted below, on Tue, 14 Nov 2006 18:34:00 +0300:
> Well, I had been using the kernel 2.6.17-r8 and everything seemed ok > with the subj. But then I upgraded the kernel to 2.6.18-r1, and there's > one feature I can't get started with. > As it is said in a few faqs (including gentoo faq) of howto install DRI, > in order to get the thing working you must enable kernel agp support > with the proper driver installed. My driver seemed to be > CONFIG_AGP_AMD64. It was enabled in the kernel previous, it is enabled > in the kernel actual: > [EMAIL PROTECTED] /usr/src/linux $ cat .config|grep AGP_AMD64 > CONFIG_AGP_AMD64=y > > But it is not seen when I use make menuconfig. I syncronically checked > all the options which were enabled at the previous kernel, but it did > not appear, and I can't find out why. I tried to check dependencies, but > didn't succeed. > > And the thing is dri doesn't work with 2.6.18-r1. I checked 2.6.17-r8, > it does. I was using kernel.org kernels before I started on Gentoo, and being comfortable with that, saw/see no reason to change, so I know nothing about the Gentoo patched kernel specifics. However, I have the kernel's Radeon DRM driver and xorg's Radeon driver working here, now on 2.6.19-rc5 (IIRC), but they worked fine on 2.6.18 and 2.6.17 as well. One setting is under Device Drivers > Character Devices > Direct Rendering Manager > ATI Radeon. The Direct Rendering Manager (DRM, no, /not/ digital restrictions management, tho it seems the Linux kernel group doesn't seem to have much of a problem with that, but anyway...) must be configured Y/M before the individual manufacturer drivers are exposed as choices. AGP itself isn't shown as a choice here, it's shown, but not as an option, because something else I have is apparently auto-selecting it. ... A bit of educated guess checking later... I found it -- and probably figured out why you may have lost that setting... I don't remember exactly when it was, since I run the -rcs as well so have been on the .19-rc series for some time now and this change would have likely been introduced fairly early in the rc cycle so if it was for .18, that was a long time ago for me and it's blurring into .17 and .16 and... However, your post would seem to indicate it happened between .17 and .18. So what is "it"? <g> Good question! <g> They changes the dependencies for IOMMU worked. A bit of background... The IOMMU is the adapter that lets legacy 32-bit PCI devices (like many hard drive chipsets) do DMA to memory beyond the 32-bit (4-gig) memory barrier. The reserved driver address space at the top of 32-bit memory is why folks with more than about 3.5 gig of memory can't see it all without a BIOS trick reserving that area as a memory hole, with the real memory behind those addresses remapped above the 4-gig 32-bit memory barrier. Just because amd64 CPUs can address 40-bits of memory doesn't mean it can actually be used unless the chipset works around that problem! Now, true AMD64 CPUs have a hardware IOMMU built-in. Intel's em64t CPUs lack that hardware IOMMU, so the kernel emulates it. It's configured by the same option in either case, however, but that option was renamed and changed locations not long ago -- it would seem between 2.6.17 and 2.6.18, given your report. IDR where it was before, but the new option is CONFIG_IOMMU, located at Processor type and features > IOMMU support. As I suspected (the educated guessing mentioned above), activating this option auto-selects, that is, hard-enabled, AGP, so it's no longer an option. That makes sense given that on AMD hardware the IOMMU is part of the AGP unit and reserves part of the memory out of the BIOS AGP aperture, and presumably the Linux software emulation of the same thing for Intel hardware would be implemented in the same place. Of course, as I said, this is for accessing memory addresses above the 4 gigabyte 32-bit boundary, so if you have less than 4 gigs (well, less than 3.5 gigs, since that last half-gig has to be relocated above the boundary if you have four gigs or you lose access to it) of memory, no harm in disabling IOMMU. So, the short version of the above is that if you have > 3.5 gig of memory, you need IOMMU support enabled in ordered to be able to use it, and that automatically activates AGP support, which is then no longer an option as a result. < 3.5 gig, it's safe to disable IOMMU, which should return the AGP option. With AGP on, you should get the DRM option. With that on, you should be able to select ATI Radeon DRI/DRM, if you want/need it. IOMMU is under processor type and features. AGP/DRM/Radeon-DRI/DRM is under character drivers. Hope that helps. =8^) -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman -- [email protected] mailing list
