summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Building.mdwn187
1 files changed, 3 insertions, 184 deletions
diff --git a/Building.mdwn b/Building.mdwn
index 3cf82b3..5260f50 100644
--- a/Building.mdwn
+++ b/Building.mdwn
@@ -1,12 +1,9 @@
-
**Contents** [[!toc ]]
# Building the DRI with X.org and Mesa
-This is a basic guide to building DRI from source. This guide **only** covers building the client-side 3D drivers. Since the transition to the modular X.org build, building an X-server and 2D drivers is beyond the scope of this document. That information can be found in the [[X.org Modular Developer Guide|http://wiki.x.org/wiki/ModularDevelopersGuide]]. An important aspect is to compile X-server with the `--with-mesa-source=/path/to/mesa` option, to include glx/OpenGL support. You will most probably need to (re)compile also at least the keyboard and mouse drivers, in addition to a video card 2D driver.
-
-KDrive servers are not supported at this time. Please report any problems with these instructions on the dri-users mailing list or on IRC.
+This is a basic guide to building DRI from source. This guide **only** covers building the client-side 3D drivers. Since the transition to the modular X.org build, building an X-server and 2D drivers is beyond the scope of this document. That information can be found in the [[X.org Modular Developer Guide|http://wiki.x.org/wiki/ModularDevelopersGuide]]. You will most probably need to (re)compile also at least the keyboard and mouse drivers, in addition to a video card 2D driver.
The 2D drivers with DRI support, server-side GLX support and the GL library capable of loading DRI 3D drivers are developed in X.org's CVS. The 3D drivers, though, live in the Mesa tree, so you will have to check out the Mesa git tree. You should also get the DRM git tree for up-to-date kernel modules. The following instructions will guide you through the process step by step.
@@ -21,7 +18,7 @@ You need a current version (7.4, ie. xserver 1.5 as of this writing) of X.org (c
* proto/xf86vidmodeproto `git://anongit.freedesktop.org/git/xorg/proto/xf86vidmodeproto`
* lib/libXxf86vm `git://anongit.freedesktop.org/git/xorg/lib/libXxf86vm`
* lib/libXmu `git://anongit.freedesktop.org/git/xorg/lib/libXmu`
-* dri2proto [[2.6|http://xorg.freedesktop.org/releases/individual/proto/dri2proto-2.6.tar.bz2]] or `git://anongit.freedesktop.org/xorg/proto/dri2proto`
+* dri2proto `git://anongit.freedesktop.org/xorg/proto/dri2proto`
### On Debian/Ubuntu
@@ -30,18 +27,7 @@ If you are using Debian or Ubuntu you can install the packages with:
apt-get build-dep libdrm mesa
apt-get install linux-headers-`uname -r`
apt-get install libxi-dev libxmu-dev x11proto-xf86vidmode-dev
- apt-get install git-core autoconf automake libtool
-
-## Getting the latest source trees
-
-Get the source trees using two `git` commands. These commands should be run in the same directory. When they've run, you will have two new subdirectories: `mesa`, and `drm`.
-
-
-### Getting DRM and libdrm
-
-The clean DRM source tree takes about 4MB of disk space.
-
- git clone git://anongit.freedesktop.org/git/mesa/drm
+ apt-get install git autoconf automake libtool
### Getting Mesa
@@ -49,26 +35,6 @@ The clean Mesa source tree takes about 32MB of disk space.
git clone git://anongit.freedesktop.org/git/mesa/mesa
-## Building libdrm
-
-The Mesa drivers now require `libdrm` to be installed. Do the following to build `libdrm`:
-
- cd drm
- ./autogen.sh
-
-**Note:** `libdrm` installs to `/usr/local/lib` by default. To install in `/usr/lib` run:
-
- ./configure --prefix=/usr
-
-Now you're ready to compile it:
-
- make
-
-Then as root, to install:
-
- make install
-
-
## Building Mesa 3D drivers
The DRI 3D drivers are now built from the Mesa source.
@@ -85,10 +51,6 @@ Choose the right configure options depending on the hardware architecture you're
./configure --help
-**Note:** You will need to install `libdrm` for Mesa to build properly. You should have done that at step 1.3 when doing the "make install".
-
-**Note:** You will need to update PKG_CONFIG_PATH if you installed `libdrm` in `/usr/local/lib`. For example, `export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH`.
-
Now you're ready to compile it:
make
@@ -109,146 +71,3 @@ Run as root, to install:
export LD_PRELOAD=<path to Mesa>/lib/libGL.so.1
To make these settings persistent, you'll have to add them to `.bashrc` or a similar login script.
-
-
-## Building the DRM
-
-The DRM is shipped with the kernel on both Linux and FreeBSD, so you shouldn't have to build it explicitly. If you want to build it or develop it, the kernel building and development rules apply.
-
-
-## Finishing up
-
-There are two things you have to do if you compiled X.org for the first time and were using XFree86 before. There should be a symbolic link `/etc/X11/X` that points to `/usr/X11R6/bin/XFree86`. You should make that link point to `/usr/X11R6/bin/Xorg`.
-
- cd /etc/X11
- mv X X.backup
- ln -s /usr/X11R6/bin/Xorg X
-
-Copy your `XF86Config-4` or `XF86Config` to `xorg.conf`, and in this file change the keyboard driver from `keyboard` to `kbd`.
-
- Section "Input"
- # ...
- Driver "kbd"
- # ...
- EndSection
-
-In order to activate 3D acceleration make sure your `xorg.conf` is set up right. In particular, make sure the GLX and DRI modules are being loaded:
-
- Section "Module"
- # ...
- Load "glx"
- Load "dri"
- # ...
- EndSection
-
-and set the permissions for DRI appropriately. To allow anyone to use DRI, do:
-
- Section "DRI"
- Mode 0666
- EndSection
-
-To restrict DRI access to a certain group, find on your system the name of the group that is for video hardware access. (Have a look in `/etc/group`. It is often called `video`.) Add the users that may access the video hardware to that group. Then put this into `xorg.conf`:
-
- Section "DRI"
- Group "video"
- Mode 0660
- EndSection
-
-On Linux 2.4.x make sure the agpgart kernel module is loaded before you start X. On Linux 2.6.x make sure both agpgart and the agp chipset specific driver for your motherboard (via_agp, intel_agp, et al.) are loaded before you start X. To make the agp modules load automatically add these lines to your `modules.conf`:
-
-2.4.x kernels:
-
- pre-install <drm module> /sbin/modprobe "-k" "agpgart"
-
-2.6.x kernels:
-
- pre-install <drm module> /sbin/modprobe "-k" "agpgart"
- pre-install agpgart /sbin/modprobe "-k" "<agp chipset driver>"
-
-Replace <drm module> with the name of the drm module for your video card (e.g., radeon, mga, savage, etc.). Replace <agp chipset driver> with the name of the agp driver for your motherboard (e.g., via_agp, intel_agp, etc.).
-
-For all kernels, make sure the DRM module is loaded before you start X.
-
-Remember to restart X so the server will use the new modules.
-
-
-# Troubleshooting
-
-If your issue isn't covered here, please report it on `#dri` on IRC or on the dri-users mailing list. This section only covers build-time troubleshooting; for run-time issues see [[DriTroubleshooting|DriTroubleshooting]].
-
-
-## I cannot load my new DRM module on Linux Kernel 2.6.1
-
- FATAL: Error inserting via (/lib/modules/2.6.1/kernel/
- drivers/char/drm/<module name>.ko): Unknown symbol in module,
- or unknown parameter (see dmesg)
-
-This error occurs because there are some missing symbols in the 2.6.1 kernel source. One way to get around this problem is to upgrade your kernel to a newer version... (You *might* be able to patch the DRM code to avoid this... Not sure about this, though!)
-
-
-## Can't find 'X11/Xlibint.h'
-
-You need to have the headers for your current X version installed. How you install these depends on how you installed X in the first place:
-
-* If you downloaded a binary from xfree86.org, the headers are in `Xprog.tgz`.
-* For Slackware the package is called `xfree86-devel`.
-* Redhat/Fedora and SuSE users should install the appropriate `XFree86-devel` package.
-* Mandrake calls this package `libxfree86-devel` for some reason.
-* Debian users should use `xlibs-dev`.
-* Gentoo users only need to make sure `xfree` or `xorg-x11` have already been emerged.
-
-## Compilation fails when building the kernel modules
-
-When building the kernel modules, the compilation might fail for some modules. In a recent CVS snapshot, I got the following:
-
- savage_drv.c: In function `savage_alloc_continuous_mem':
- savage_drv.c:106: warning: passing arg 1 of `remap_page_range_Rc414bdc2' makes pointer from integer without a cast
- savage_drv.c:106: incompatible type for argument 4 of `remap_page_range_Rc414bdc2'
- savage_drv.c:106: too few arguments to function `remap_page_range_Rc414bdc2'
- savage_drv.c: In function `savage_get_physics_address':
- savage_drv.c:170: warning: implicit declaration of function `pte_offset'
- savage_drv.c:170: warning: assignment makes pointer from integer without a cast
- make[2]: *** [savage_drv.o] Error 1
-
-You can avoid this problem by only building the modules you need. See the DRM section above for the bit about the `DRM_MODULES` variable.
-
-
-## xf86cfg doesn't compile/link
-
-xf86cfg requires libXaw (and appropriate headers) to be installed in order to build. You can either install the relevant packages for your distribution, or else add the line:
-
- #define BuildXFree86ConfigTools NO
-
-to your `config/cf/host.def` and rerun `make World`.
-
-[[ToDo|ToDo]]: fill this in with package names, as above.
-
-
-## I'm using Gentoo and...
-
-Gentoo has its own How-To on their website -- [[http://www.gentoo.org/doc/en/dri-howto.xml|http://www.gentoo.org/doc/en/dri-howto.xml]]
-
-For those who enabled DRI via the instructions here...
-
-There is a known issue with Gentoo's Open``GL package switch; when the `opengl-update` package is installed, Gentoo places Open``GL libraries and header files under `/usr/lib/opengl` and uses symlinks to make everything appear in the normal place. As a result the normal install process doesn't always work.
-
-Try setting up a "fake" Open``GL package, and switch into it:
-
- cd /usr/lib/opengl
- mkdir mesa-cvs
- cd mesa-cvs
- ln -s ../../../local/lib
- ln -s ../../../local/include
- ln -s ../xorg-x11/extensions
- opengl-update mesa-cvs
-
-This assumes you installed Mesa (including lib``GL) into `/usr/local`, which is the default. Also, you may like to remove everything in `/usr/local/lib` from Mesa that isn't either `libGL.*` or `libGLU.*` -- things like `libGLw.*` can cause problems.
-
-If you set things up differently, a way to check whether you are affected by `opengl-update` is to strace any Open``GL based program (for example: `glxgears`) and to see which `libGL.so` it loads. Despite all symlinks it should load `/usr/lib/libGL.so.1.2`. If it doesn't correct the symlinks in `/usr/lib` to point to `/usr/lib/libGL.so.1.2`. After that **don't run `opengl-update`** -- it will only break things.
-
-
-# References
-
-- [[Guide by snakeoil|http://www.atomicmpc.com.au/forums.asp?s=2&c=16&t=1501]]
-
-- [[Old DRI building guide|http://dri.sourceforge.net/doc/building.html]] [[http://dri.sourceforge.net/cgi-bin/moin.cgi/RecentChanges|http://dri.sourceforge.net/cgi-bin/moin.cgi/RecentChanges]]