.:overview:.
after fiddling around with my a7n8x and a new radeon 9600pro i had some troubles getting agp and with that dri/glx running. i just thought to write a howto about that because i seems as if the original sticky radeon howto has grown very large and is not capable any more to show up any direction in which a newby should go.
some might have noticed that you do it can two ways. the first one is to use the radeon drivers coming with xfree86 by compiling xfree86-dri and selecting "radeon" as driver in the device-section of XF86Config.
the second method is the one i prefer and will show up here. i use (although they are closed-source) the drivers from ati which are avaible through the portage tree, package ati-drivers. this is the best driver in my opinion. to people who care for the name and feel remembered to some fire-gl drivers should be said that this is only some kind of naming. if you have a fire-gl installed, the fglrx will select cad and other dcc features while when using desktop/gaming cards the driver will select speedups for this purpose. no one will end up with a unoptimized driver for his gaming or dcc purposes. further i will write down what's needed to be done when switching from a nvidia based card.
at the moment i do not want to show a completely bright and shiny setup with tv-out and all the other things one might want to do with his or her new radeon based card. maybe this gets described later. what i want here is to show a simple and fast working setup, which is reliably and a good base for further configurations like tv-out and things.
i do not want any discussion about which driver modell is better or not in here. this is intended as a thread to describe the use of fglrx and not to persuade somebody to use a different approach. imagine yourself in the more or less helpless situation were you want to install some new hardware which does not work at first. it is more than logical that you will go to ask someone for a solution or try to find some documents which discribe a solution to your problem. if you are not common to setting up hardware or you are new to gentoo or linux in general, you will not be able to distinguish wether a description fits to the one or the other method. most people i see here mix up a lot of things which cannot work together. therefore they need a clean guideline which i hope to give here. the ugliest thing that can happen to a thread moderator is to fiddle around and getting loose of previous configurations which interfere with the overall aim. so please keep away with your comments if your not from the fglrx-party. thanks in advance - it is sad that such things are needed to be written down although they seem to be common sense.
.:steps needed:.
.:1:. unmerging nvidia drivers and removing the nvidia module from the init process
.:2:. recompiling your kernel sources
.:3:. emerging ati-drivers
.:4:. inserting the ati module into the init process
.:5:. setting up a new device section in XF86Config
.:6:. startx and verification
.:7:. resolution and conclusion
section 1 can be safely ignored if you never had a nvidia-based graphics card or if you are setting up a fresh system. everything described here should be executed as root, so become root and continue.
.:1:. unmerging nvidia drivers and removing the nvidia module from the init process
Code: Select all
/ # emerge --unmerge nvidia-kernel
/ # emerge --unmerge nvidia-glx
.:2:. recompiling your kernel sources
you need to assure that some very important kernel options are set. just fire up your kernel configuration tool from your downloaded kernel sources by doing:
Code: Select all
/ # cd /usr/src/linux
/ # make menuconfig
Code: Select all
[*] MTRR (Memory Type Range Register) support
Code: Select all
<*> /dev/agpgart (AGP Support)
[ ] Intel 440LX/BX/GX and I815/I820/I830M/I830MP/I840/I845/I850/I860 support
[ ] Intel I810/I815/I830M (on-board) support
[ ] VIA chipset support
[ ] AMD Irongate, 761, and 762 support
[ ] AMD 8151 support
[ ] Generic SiS support
[ ] ALI chipset support
[ ] Serverworks LE/HE support
[*] NVIDIA chipset support
[ ] Direct Rendering Manager (XFree86 DRI support)
Code: Select all
/usr/src/linux # make dep clean bzImage modules modules_install
/usr/src/linux # mount /boot
/usr/src/linux # cp arch/i386/boot/bzImage /boot/kernel-agp-nodri
Code: Select all
/usr/src/linux # nano /boot/grub/grub.conf
Code: Select all
title=kernel-agp-nodri
root (hd0,0)
kernel (hd0,0)/kernel-agp-nodri root=/dev/hda3 vga=773
.:3:. emerging ati-drivers
it's as easy as this:
Code: Select all
/ # emerge ati-drivers
.:4:. inserting the ati module into the init process
open up /etc/modules.autoload and add the following line in the end:
Code: Select all
fglrx
now you have two choices. while it is not too common to boot your machine only for adding some modules to the kernel, you can do that now and check back with
Code: Select all
/ # lsmod
Module Size Used by Tainted: P
fglrx 173864 6
nvnet 26336 1
Code: Select all
dmesg | less
Code: Select all
[fglrx] Maximum main memory to use for locked dma buffers: 926 MBytes.
[fglrx] module loaded - fglrx 3.2.8 [Sep 21 2003] on minor 0
.:5:. setting up a new device section in XF86Config
those of you who have experimented a bit know that there is a tool which sets up your card for xfree86 automatically. fire up this tool and do your setup. we will change the configuration afterwards. the tool creates a file called XF86Config-4 in /etc/X11 which we rename later. lets start:
Code: Select all
/ # fglrxconfig
Code: Select all
mv /etc/X11/XF86Config-4 /etc/X11/XF86Config
nano /etc/X11/XF86Config
Code: Select all
Section "Device"
Identifier "ATI Graphics Adapter"
Driver "fglrx"
Option "no_accel" "no"
Option "no_dri" "no"
Option "DesktopSetup" "0x00000000"
Option "MonitorLayout" "AUTO, AUTO"
Option "IgnoreEDID" "off"
Option "HSync2" "unspecified"
Option "VRefresh2" "unspecified"
Option "ScreenOverlap" "0"
Option "NoTV" "yes"
Option "TVStandard" "NTSC-M"
Option "TVHSizeAdj" "0"
Option "TVVSizeAdj" "0"
Option "TVHPosAdj" "0"
Option "TVVPosAdj" "0"
Option "TVHStartAdj" "0"
Option "TVColorAdj" "0"
Option "GammaCorrectionI" "0x00000000"
Option "GammaCorrectionII" "0x00000000"
Option "Capabilities" "0x00000000"
Option "VideoOverlay" "on"
Option "OpenGLOverlay" "off"
Option "CenterMode" "off"
Option "PseudoColorVisuals" "off"
Option "Stereo" "off"
Option "StereoSyncEnable" "1"
Option "FSAAScale" "1"
Option "FSAADisableGamma" "no"
Option "FSAACustomizeMSPos" "no"
Option "FSAAMSPosX0" "0.000000"
Option "FSAAMSPosY0" "0.000000"
Option "FSAAMSPosX1" "0.000000"
Option "FSAAMSPosY1" "0.000000"
Option "FSAAMSPosX2" "0.000000"
Option "FSAAMSPosY2" "0.000000"
Option "FSAAMSPosX3" "0.000000"
Option "FSAAMSPosY3" "0.000000"
Option "FSAAMSPosX4" "0.000000"
Option "FSAAMSPosY4" "0.000000"
Option "FSAAMSPosX5" "0.000000"
Option "FSAAMSPosY5" "0.000000"
Option "UseFastTLS" "2"
Option "BlockSignalsOnLock" "on"
Option "UseInternalAGPGART" "no"
Option "ForceGenericCPU" "no"
BusID "PCI:3:0:0" # vendor=1002, device=4150
Screen 0
EndSection
Code: Select all
Option "no_accel" "no"
Option "no_dri" "no"
Option "UseFastTLS" "2"
Option "UseInternalAGPGART" "no"
.:6:. startx and verification
now type
Code: Select all
/ # startx
Code: Select all
more /var/log/XFree86.0.log
Code: Select all
(II) fglrx(0): [agp] Mode=0x1f00420b bridge: 0x10de/0x01e0
(II) fglrx(0): [agp] AGP disable mask 0x00000000
(II) fglrx(0): [agp] enabling AGP with mode=0x1f00430a
(II) fglrx(0): [agp] AGP protocoll is enabled for grafics board. (cmd=0x1f004302)
(II) fglrx(0): [agp] grafics chipset has AGP v3.0 (native mode)
Code: Select all
/ # dmesg
Code: Select all
[fglrx] AGP detected, AgpState = 0x1f00420b (hardware caps of chipset)
[fglrx] AGP enabled, AgpCommand = 0x1f004302 (selected caps)
[fglrx] free AGP = 121909248
[fglrx] max AGP = 121909248
[fglrx] free LFB = 120176640
[fglrx] max LFB = 120176640
[fglrx] free Inv = 0
[fglrx] max Inv = 0
[fglrx] total Inv = 0
[fglrx] total TIM = 0
[fglrx] total FB = 0
[fglrx] total AGP = 32768
.:7:. resolution and conclusion
i am sure that you do not want to stick to 640x480x24bpp. so do
Code: Select all
nano /etc/X11/XF86Config
Code: Select all
Subsection "Display"
Depth 24
Modes "1152x864"
ViewPort 0 0 # initial origin if mode is smaller than desktop
EndSubsection
as you see we are at the end of this howto. it was quite a long description but i think there was a need for this and i hope that it helps you not getting as frustrated as all the others which tried their best and ended up with screwed configurations. feel free to bring in comments or suggestions. in a few days i will do some appendices for antialiasing and tv-out. now fire up some gl game and have fun. you deserve it.
greetings.
..::spekulatius::..



