On Slackware 12.1 with all updates I have installed the ATI drivers which worked fine but when I run fglrx or any OpenGL app as a regular user I get the following error:

Code:
libGL error: open DRM failed (Operation not permitted)
libGL error: reverting to (slow) indirect rendering
display: :0.0  screen: 0
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: Radeon X1950 Series
OpenGL version string: 1.4 (2.1.8201 Release)
So to fix this I add this to the end of my xorg.conf

Code:
Section "DRI"
Mode 0666
End Section
However after adding that X Will not longer start. Here is my xorg.conf file:

Code:
# File generated by xf86config.
#
# Copyright (c) 1999 by The XFree86 Project, Inc.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
# THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
# OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
#
# Except as contained in this notice, the name of the XFree86 Project shall
# not be used in advertising or otherwise to promote the sale, use or other
# dealings in this Software without prior written authorization from the
# XFree86 Project.
#
# **********************************************************************
# Refer to the XF86Config(4/5) man page for details about the format of
# this file.
# **********************************************************************
# NOTE:  This is a NEW IMPROVED version of XF86Config-fbdev that uses the vesa
# driver instead of the fbdev driver.  Thanks to Kenneth Fanyo who pointed
# this out to me. :)
# This XF86Config file is designed for use with the VESA framebuffer.
# This generic interface should work with nearly all video cards
# (although not every card will support every resolution).
# With the new driver, it should no longer be required to have frame buffer
# support in the kernel, or to run it on the console.
#
# Enjoy! :)
# -- volkerdi@slackware.com
#
# **********************************************************************
# Module section -- this  section  is used to specify
# which dynamically loadable modules to load.
# **********************************************************************
#
# **********************************************************************
# Files section.  This allows default font and rgb paths to be set
# **********************************************************************
# **********************************************************************
# Server flags section.
# **********************************************************************
# **********************************************************************
# Input devices
# **********************************************************************
# **********************************************************************
# Core keyboard's InputDevice section
# **********************************************************************
# **********************************************************************
# Core Pointer's InputDevice section
# **********************************************************************
# Some examples of extended input devices
# Section "InputDevice"
#    Identifier "spaceball"
#    Driver     "magellan"
#    Option     "Device"        "/dev/cua0"
# EndSection
#
# Section "InputDevice"
#    Identifier "spaceball2"
#    Driver     "spaceorb"
#    Option     "Device"        "/dev/cua0"
# EndSection
#
# Section "InputDevice"
#    Identifier "touchscreen0"
#    Driver     "microtouch"
#    Option     "Device"        "/dev/ttyS0"
#    Option     "MinX"          "1412"
#    Option     "MaxX"          "15184"
#    Option     "MinY"          "15372"
#    Option     "MaxY"          "1230"
#    Option     "ScreenNumber"  "0"
#    Option     "ReportingMode" "Scaled"
#    Option     "ButtonNumber"  "1"
#    Option     "SendCoreEvents"
# EndSection
#
# Section "InputDevice"
#    Identifier "touchscreen1"
#    Driver     "elo2300"
#    Option     "Device"        "/dev/ttyS0"
#    Option     "MinX"          "231"
#    Option     "MaxX"          "3868"
#    Option     "MinY"          "3858"
#    Option     "MaxY"          "272"
#    Option     "ScreenNumber"  "0"
#    Option     "ReportingMode" "Scaled"
#    Option     "ButtonThreshold"       "17"
#    Option     "ButtonNumber"  "1"
#    Option     "SendCoreEvents"
# EndSection
# **********************************************************************
# Monitor section
# **********************************************************************
# Any number of monitor sections may be present
# **********************************************************************
# Graphics device section
# **********************************************************************
# Any number of graphics device sections may be present
# **********************************************************************
# Screen sections
# **********************************************************************
# Any number of screen sections may be present.  Each describes
# the configuration of a single screen.  A single specific screen section
# may be specified from the X server command line with the "-screen"
# option.
# **********************************************************************
# ServerLayout sections.
# **********************************************************************
# Any number of ServerLayout sections may be present.  Each describes
# the way multiple screens are organised.  A specific ServerLayout
# section may be specified from the X server command line with the
# "-layout" option.  In the absence of this, the first section is used.
# When now ServerLayout section is present, the first Screen section
# is used alone.

Section "ServerLayout"

# The Identifier line must be present
# Each Screen line specifies a Screen section name, and optionally
# the relative position of other screens.  The four names after
# primary screen name are the screens to the top, bottom, left and right
# of the primary screen.  In this example, screen 2 is located to the
# right of screen 1.
# Each InputDevice line specifies an InputDevice section name and
# optionally some options to specify the way the device is to be
# used.  Those options include "CorePointer", "CoreKeyboard" and
# "SendCoreEvents".
        Identifier     "Simple Layout"
        Screen      0  "aticonfig-Screen[0]-0" 0 0
        InputDevice    "Mouse1" "CorePointer"
        InputDevice    "Keyboard1" "CoreKeyboard"
EndSection

Section "Files"

# The location of the RGB database.  Note, this is the name of the
# file minus the extension (like ".txt" or ".db").  There is normally
# no need to change the default.
# Multiple FontPath entries are allowed (which are concatenated together),
# as well as specifying multiple comma-separated entries in one FontPath
# command (or a combination of both methods)
#
# If you don't have a floating point coprocessor and emacs, Mosaic or other
# programs take long to start up, try moving the Type1 and Speedo directory
# to the end of this list (or comment them out).
#
# ModulePath can be used to set a search path for the X server modules.
# The default path is shown here.
#    ModulePath "/usr/lib/xorg/modules"
        RgbPath      "/usr/share/X11/rgb"
    FontPath    "/usr/share/fonts/misc"
    FontPath    "/usr/share/fonts/OTF"
    FontPath    "/usr/share/fonts/TTF"
    FontPath    "/usr/share/fonts/Type1"
    FontPath    "/usr/share/fonts/Speedo"
    FontPath    "/usr/share/fonts/75dpi:unscaled"
    FontPath    "/usr/share/fonts/100dpi:unscaled"
    FontPath    "/usr/share/fonts/cyrillic"
    FontPath    "/usr/local/share/fonts"
EndSection

Section "Module"

# This loads the DBE extension module.
# This loads the miscellaneous extensions module, and disables
# initialisation of the XFree86-DGA extension within that module.
# This loads the font modules
# This loads the GLX module
        Load  "dbe"     # Double buffer extension
        SubSection "extmod"
                Option      "omit xfree86-dga"   # don't initialise the DGA exte
nsion
        EndSubSection
        Load  "type1"
        Load  "freetype"
    #Load        "speedo"
        Load  "glx"
        Load  "dri"
EndSection

Section "InputDevice"

# For most OSs the protocol can be omitted (it defaults to "Standard").
# When using XQUEUE (only for SVR3 and SVR4, but not Solaris),
# uncomment the following line.
#    Option     "Protocol"      "Xqueue"
# Set the keyboard auto repeat parameters.  Not all platforms implement
# this.
#    Option     "AutoRepeat"    "500 5"
# Specifiy which keyboard LEDs can be user-controlled (eg, with xset(1)).
#    Option     "Xleds" "1 2 3"
# To disable the XKEYBOARD extension, uncomment XkbDisable.
#    Option     "XkbDisable"
# To customise the XKB settings to suit your keyboard, modify the
# lines below (which are the defaults).  For example, for a European
# keyboard, you will probably want to use one of:
#
#    Option     "XkbModel"      "pc102"
#    Option     "XkbModel"      "pc105"
#
# If you have a Microsoft Natural keyboard, you can use:
#
#    Option     "XkbModel"      "microsoft"
#
# If you have a US "windows" keyboard you will want:
#
#    Option     "XkbModel"      "pc104"
#
# Then to change the language, change the Layout setting.
# For example, a german layout can be obtained with:
#
#    Option     "XkbLayout"     "de"
#
# or:
#
#    Option     "XkbLayout"     "de"
#    Option     "XkbVariant"    "nodeadkeys"
#
# If you'd like to switch the positions of your capslock and
# control keys, use:
#
#    Option     "XkbOptions"    "ctrl:swapcaps"
# These are the default XKB settings for X.Org
#
#    Option     "XkbRules"      "xorg"
#    Option     "XkbModel"      "pc105"
#    Option     "XkbLayout"     "us"
#    Option     "XkbVariant"    ""
#    Option     "XkbOptions"    ""
        Identifier  "Keyboard1"
        Driver      "kbd"
EndSection

Section "InputDevice"

# Identifier and driver
# On platforms where PnP mouse detection is supported the following
# protocol setting can be used when using a newer PnP mouse:
#    Option     "Protocol"      "Auto"
# The available mouse protocols types that you can set below are:
#    Auto BusMouse GlidePoint GlidePointPS/2 IntelliMouse IMPS/2
#    Logitech Microsoft MMHitTab MMSeries Mouseman MouseManPlusPS/2
#    MouseSystems NetMousePS/2 NetScrollPS/2 OSMouse PS/2 SysMouse
#    ThinkingMouse ThinkingMousePS/2 Xqueue
# which is usually a symbolic link to the real device.
#   Option "Device"      "/dev/ttyS0"
#   Option "Device"      "/dev/ttyS1"
# When using XQUEUE, comment out the above two lines, and uncomment
# the following line.
#    Option "Protocol"  "Xqueue"
# Baudrate and SampleRate are only for some Logitech mice. In
# almost every case these lines should be omitted.
#    Option "BaudRate"          "9600"
#    Option "SampleRate"        "150"
# Emulate3Buttons is an option for 2-button Microsoft mice
# Emulate3Timeout is the timeout in milliseconds (default is 50ms)
#    Option "Emulate3Buttons"
#    Option "Emulate3Timeout"    "50"
# ChordMiddle is an option for some 3-button Logitech mice
#    Option "ChordMiddle"
        Identifier  "Mouse1"
        Driver      "mouse"
        Option      "Protocol" "IMPS/2"
# The mouse device.  The device is normally set to /dev/mouse,
        Option      "Device" "/dev/mouse"
#   Option "Device"      "/dev/psaux"
EndSection

Section "Monitor"
        Identifier   "aticonfig-Monitor[0]-0"
        Option      "VendorName" "ATI Proprietary Driver"
        Option      "ModelName" "Generic Autodetecting Monitor"
        Option      "DPMS" "true"
EndSection

Section "Device"
        Identifier  "aticonfig-Device[0]-0"
        Driver      "fglrx"
        BusID       "PCI:4:0:0"
EndSection

Section "Screen"
        Identifier "aticonfig-Screen[0]-0"
        Device     "aticonfig-Device[0]-0"
        Monitor    "aticonfig-Monitor[0]-0"
        DefaultDepth     24
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection

Section "DRI"
Mode 0666
End Section