Update README

main
Kristian Høgsberg 2009-11-20 17:08:28 -05:00
parent e8523e087f
commit 1b064cc428
1 changed files with 31 additions and 62 deletions

93
README
View File

@ -1,72 +1,41 @@
libdrm - userspace library for drm
DRM README file
There are two main parts to this package: the DRM client library/interface
(libdrm.so) and kernel/hardware-specific device modules (such as radeon.ko).
The kernel device modules are not shipped with libdrm releases and should only
be built from the git tree by developers and bleeding-edge testers of
non-Intel hardware. The Intel kernel modules are developed in the Linux
kernel tree.
This is libdrm, a userspace library for accessing the DRM, direct
rendering manager, on Linux, BSD and other operating systes that
support the ioctl interface. The library provides wrapper functions
for the ioctls to avoid exposing the kernel interface directly, and
for chipsets with drm memory manager, support for tracking relocations
and buffers. libdrm is a low-level library, typically used by
graphics drivers such as the Mesa DRI drivers, the X drivers, libva
and similar projects. New functionality in the kernel DRM drivers
typically requires a new libdrm, but a new libdrm will always work
with an older kernel.
Compiling
---------
By default, libdrm and the DRM header files will install into /usr/local/.
If you want to install this DRM to replace your system copy, say:
libdrm is a standard autotools packages and follows the normal
configure, build and install steps. The first step is to configure
the package, which is done by running the configure shell script:
./configure --prefix=/usr --exec-prefix=/
./configure
By default, libdrm will install into the /usr/local/ prefix. If you
want to install this DRM to replace your system copy, pass
--prefix=/usr and --exec-prefix=/ to configure. If you are building
libdrm from a git checkout, you first need to run the autogen.sh
script. You can pass any options to autogen.sh that you would other
wise pass to configure, or you can just re-run configure with the
options you need once autogen.sh finishes.
Next step is to build libdrm:
make
and once make finishes successfully, install the package using
Then,
make install
To build the device-specific kernel modules from the git tree:
cd linux-core/
make
cp *.ko /lib/modules/VERSION/kernel/drivers/char/drm/
(where VERSION is your kernel version: uname -f)
Or,
cd bsd-core/
make
copy the kernel modules to the appropriate place
Tips & Trouble-shooting
-----------------------
1. You'll need kernel sources. If using Fedora Core 5, for example, you may
need to install RPMs such as:
kernel-smp-devel-2.6.15-1.2054_FC5.i686.rpm
kernel-devel-2.6.15-1.2054_FC5.i686.rpm
etc.
2. You may need to make a symlink from /lib/modules/VERSION/build to your
kernel sources in /usr/src/kernels/VERSION (where version is `uname -r`):
cd /lib/modules/VERSION
ln -s /usr/src/kernels/VERSION build
3. If you've build the kernel modules but they won't load because of an
error like this:
$ /sbin/modprobe drm
FATAL: Error inserting drm (/lib/modules/2.6.15-1.2054_FC5smp/kernel/drivers/char/drm/drm.ko): Invalid module format
And 'dmesg|tail' says:
drm: disagrees about version of symbol struct_module
Try recompiling your drm modules without the Module.symvers file.
That is rm the /usr/src/kernels/2.6.15-1.2054_FC5-smp-i686/Module.symvers
file (or rename it). Then do a 'make clean' before rebuilding your drm
modules.
If you are install into a system location, you will need to be root to
perform the install step.