On Tue, 19 Jun 2007, Alexander E. Patrakov wrote:
> Alberto Hernando wrote:
>
> > I'm trying to install the propietary ati drivers with x.org-7.2 to get
> > tv-out
> > (GATOS doens't work here). Has anyone been able to do it?
>
> The proprietary fglrx driver requires libstdc++.so.5. To get this library,
> install gcc-3.3, as the book says. The ATI site says that fglrx-8.37.6
> supports Xorg-7.2, but I cannot verify it, because my video card is too old
> and no longer supported.
>
> Also, there is an issue with DRI driver directory in the book: everyone else
> has /usr/lib/dri, and only BLFS uses /usr/lib/X11/modules/dri (and the path
> is different in Mesa-Lib and Xorg!). I don't know for sure whether this is
> relevant for the users of fglrx.
>
> --
> Alexander E. Patrakov
>
> --
> http://linuxfromscratch.org/mailman/listinfo/blfs-support
> FAQ: http://www.linuxfromscratch.org/blfs/faq.html
> Unsubscribe: See the above information page
I spent several days tracing through the installer and the replicated its
behavior.
Here is a script and patch that I use for a manual install of the ati closed
source X drivers. Please note that I use CLFS x86_64 multi-lib, xorg 7.1
installed under /usr. If you have a pure LFS 32 bit system you will need to
adjust just about all of the source and destination targets, and DO NOT use the
patch.
While this was tested using version 8.36.5 from ati, nothing in the package
layout has really changed between it and the current version.
Also if you are using the current rc kernel then there is a module build error
( with 64bit that I know of ) that is fixed by simply commenting out the
offending include statement.
--
Steve Jones
[EMAIL PROTECTED]
#! /bin/bash
# ati closed source X driver manual install by Steve Jones.
# NOTE: these instructions are for a CLFS x86 multilib install with xorg 7.1
# installed under /usr.
# Build Mesa, build xorg with Mesa and without aiglx!
./ati-driver-installer-8.36.5-x86.x86_64.run --extract ati
cd ati
# If your kernel modules are not under /lib64/modules then adjust everything
# including this patch to where they are. /lib/modules users do not need the
# patch but the config file must be changed.
patch -Np1 -i \
../ati-driver-installer-8.36.5-x86.x86_64-lib64-kernel-modules-1.patch
# backup original libGL's, this is what the installer names them!
mv -v /usr/lib/libGL.so.1.2 /usr/lib/FGL.renamed.libGL.so.1.2
mv -v /usr/lib64/libGL.so.1.2 /usr/lib64/FGL.renamed.libGL.so.1.2
# Only make dirs that are needed!
mkdir -vp /lib64/modules/fglrx/build_mod
#mkdir -vp /opt/kde3/share/applnk
mkdir -vp /usr/share/{doc/ati,ati/amdcccle}
#mkdir -vp /usr/share/{applnk,doc/ati,gnome/apps,ati/amdcccle}
mkdir -vp /srv/src/ati
mkdir -vp /etc/ati
# Copy files from installer tree to final locations
# NOTE: comments starting with `###' show the coresponding
# /etc/ati/inst_path_default variable and the value used in this install.
### ATI_XLIB_64=/usr/lib64
cp -vR arch/x86_64/usr/X11R6/lib64/*.* /usr/lib64
### ATI_3D_DRV_64=/usr/lib64/xorg/modules/dri
cp -vR arch/x86_64/usr/X11R6/lib64/modules/dri/*.* /usr/lib64/xorg/modules/dri
### ATI_XLIB_32=/usr/lib
cp -vR arch/x86_64/usr/X11R6/lib/*.* /usr/lib
### ATI_3D_DRV_32=/usr/lib/xorg/modules/dri
cp -vR arch/x86_64/usr/X11R6/lib/modules/dri/*.* /usr/lib/xorg/modules/dri
# ATI_X_BIN=/usr/bin
cp -vR arch/x86_64/usr/X11R6/bin/* /usr/bin
# ATI_SBIN=/usr/sbin
cp -vR arch/x86_64/usr/sbin/* /usr/sbin
### ATI_KERN_MOD=/lib64/modules/fglrx
cp -vR arch/x86_64/lib/modules/fglrx/build_mod/*.* \
/lib64/modules/fglrx/build_mod
# ATI_2D_DRV=/usr/lib64/xorg/modules/drivers
cp -vR x710_64a/usr/X11R6/lib64/modules/drivers/*.* \
/usr/lib64/xorg/modules/drivers
# ATI_X_MODULE=/usr/lib64/xorg/modules
cp -vR x710_64a/usr/X11R6/lib64/modules/*.* /usr/lib64/xorg/modules
# ATI_DRM_LIB=/usr/lib64/xorg/modules/linux
cp -vR x710_64a/usr/X11R6/lib64/modules/linux/*.* /usr/lib64/xorg/modules/linux
# ATI_CONFIG=/etc/ati
cp -vR common/etc/ati/* /etc/ati
### ATI_KERN_MOD=/lib64/modules/fglrx
cp -vR common/lib/modules/fglrx/* /lib64/modules/fglrx
# ATI_CP_KDE3_LNK=/opt/kde3/share/applnk
#cp -vR common/opt/kde3/share/applnk/*.* /opt/kde3/share/applnk
# ATI_GL_INCLUDE=/usr/include/GL
cp -vR common/usr/include/GL/*.* /usr/include/GL
# ATI_CP_KDE_LNK=/usr/share/applnk
#cp -vR common/usr/share/applnk/*.* /usr/share/applnk
# ATI_CP_I18N=/usr/share/ati/amdcccle
cp -vR common/usr/share/ati/amdcccle/*.qm /usr/share/ati/amdcccle
# ATI_DOC=/usr/share/doc/ati
cp -vR common/usr/share/doc/fglrx/* /usr/share/doc/ati
# ATI_CP_GNOME_LNK=/usr/share/gnome/apps
#cp -vR common/usr/share/gnome/apps/*.* /usr/share/gnome/apps
# ATI_ICON=/usr/share/icons
cp -vR common/usr/share/icons/*.* /usr/share/icons
# ATI_MAN=/usr/share/man
cp -vR common/usr/share/man/* /usr/share/man
### ATI_SRC=/srv/src/ati
cp -vR common/usr/src/ati/*.* /srv/src/ati
# ATI_X11_INCLUDE=/usr/include/X11/extensions
cp -vR common/usr/X11R6/include/X11/extensions/*.* /usr/include/X11/extensions
# fix some file permissions
chmod -v 755 /lib64/modules/fglrx/make_install.sh
chmod -v 755 /lib64/modules/fglrx/build_mod/make.sh
chmod -v 755 /etc/ati/authatieventsd.sh
# create some symlinks
# Since we didn't touch the symlinks to libGL.so.1.2 they should point back to
# the new ones.
ln -fsv libGL.so.1.2 /usr/lib/libGL.so.1
ln -fsv libGL.so.1.2 /usr/lib/libGL.so
ln -fsv libGL.so.1.2 /usr/lib64/libGL.so.1
ln -fsv libGL.so.1.2 /usr/lib64/libGL.so
ln -fsv libfglrx_dm.so.1.0 /usr/lib64/libfglrx_dm.so.1
ln -fsv libfglrx_dm.so.1.0 /usr/lib64/libfglrx_dm.so
ln -fsv libfglrx_gamma.so.1.0 /usr/lib64/libfglrx_gamma.so.1
ln -fsv libfglrx_gamma.so.1.0 /usr/lib64/libfglrx_gamma.so
ln -fsv libfglrx_pp.so.1.0 /usr/lib64/libfglrx_pp.so.1
ln -fsv libfglrx_pp.so.1.0 /usr/lib64/libfglrx_pp.so
ln -fsv libfglrx_tvout.so.1.0 /usr/lib64/libfglrx_tvout.so.1
ln -fsv libfglrx_tvout.so.1.0 /usr/lib64/libfglrx_tvout.so
# Create some configuration files that the installer useses ( not that we do
# but this should look complete)
TIMESTAMP=`date`
cat - > /etc/ati/inst_path_default << INST_PATH_DEFAULT
# /etc/ati/inst_path_default
#
# Created ${TIMESTAMP} with the following configuration:
#
# Driver version: 8.36.5
# Default policy
# Policy version: default:v2:x86_64:lib:x720_64a:none:2.6.20.2-jet-1"
# X_VERSION and _ARCH set by check.sh
X_VERSION=x720_64a
_ARCH=x86_64
ATI_XLIB_32=/usr/lib
ATI_XLIB_64=/usr/lib64
ATI_3D_DRV_32=/usr/lib/xorg/modules/dri
ATI_3D_DRV_64=/usr/lib64/xorg/modules/dri
ATI_XLIB=/usr/lib64/xorg
ATI_X_BIN=/usr/bin
ATI_SBIN=/usr/sbin
ATI_KERN_MOD=/lib64/modules/fglrx
ATI_2D_DRV=/usr/lib64/xorg/modules/drivers
ATI_X_MODULE=/usr/lib64/xorg/modules
ATI_DRM_LIB=/usr/lib64/xorg/modules/linux
ATI_CP_KDE3_LNK=/opt/kde3/share/applnk
ATI_GL_INCLUDE=/usr/include/GL
ATI_CP_KDE_LNK=/usr/share/applnk
ATI_DOC=/usr/share/doc/ati
ATI_CP_GNOME_LNK=/usr/share/gnome/apps
ATI_ICON=/usr/share/icons
ATI_MAN=/usr/share/man
ATI_SRC=/srv/src/ati
ATI_X11_INCLUDE=/usr/include/X11/extensions
ATI_CP_BIN=/usr/bin
ATI_CP_I18N=/usr/share/ati/amdcccle
ATI_KERN_INST=/lib/modules/$(uname -r)/kernel/drivers/char/drm
ATI_LOG=/usr/share/ati
ATI_CONFIG=/etc/ati
ATI_UNINST=/usr/share/ati
INST_PATH_DEFAULT
cat - > /etc/ati/inst_path_override << INST_PATH_OVERRIDE
# /etc/ati/inst_path_override
#
# Created ${TIMESTAMP} with the following configuration:
#
# Driver version: 8.36.5
# No override policy used because no distributions matched the current distro
INST_PATH_OVERRIDE
# build the kernel module
# manual build of kernel module.
# If SMP then use the following define.
#def_smp=-D__SMP__
# If kernel module versioning is on then add the following define
#def_modversions="-DMODVERSIONS"
# If there is a kernelsym change_page_attr then the following should be set to 1
#PAGE_ATTR_FIX=0
# This the the base make command that the above options apply to.
#make MODFLAGS="-DMODULE -DATI_AGP_HOOK -DATI -DFGL -DFGL_RX \
# -DFGL_CUSTOM_MODULE -DPAGE_ATTR_FIX=${PAGE_ATTR_FIX} ${def_smp} \
# ${def_modversions}" PAGE_ATTR_FIX=${PAGE_ATTR_FIX}
# Streamlined build of module.
pushd /lib64/modules/fglrx/build_mod/2.6.x
make MODFLAGS="-DMODULE -DATI_AGP_HOOK -DATI -DFGL -DFGL_RX \
-DFGL_CUSTOM_MODULE -DPAGE_ATTR_FIX=0 -D__SMP__" PAGE_ATTR_FIX=0
strip -g fglrx.ko
mkdir -vp /lib64/modules/$(uname -r)/kernel/drivers/char/drm
cp -v fglrx.ko /lib64/modules/$(uname -r)/kernel/drivers/char/drm/fglrx.ko
depmod
popd
# This replicates what happens in the automagic module build.
## make.sh
#
#pushd /lib64/modules/fglrx/build_mod/2.6.x
#
#make MODFLAGS="-DMODULE -DATI_AGP_HOOK -DATI -DFGL -DFGL_RX
# -DFGL_CUSTOM_MODULE -DPAGE_ATTR_FIX=0 -D__SMP__" PAGE_ATTR_FIX=0
#strip -g fglrx.ko
#cd ..
#ln -vf 2.6.x/fglrx.ko
#cp -vf fglrx.ko ../fglrx.$(uname -r).ko
#
## make_install.sh
#cd ..
#mkdir -pv /lib64/modules/$(uname -r)/kernel/drivers/char/drm
#cp -v fglrx.$(uname -r).ko \
# /lib64/modules/$(uname -r)/kernel/drivers/char/drm/fglrx.ko
#depmod
#popd
# The auto magic building for the running kernel should wok withe the applied
# patch. The file /etc/ati/inst_path_default must exist and match the /lib64
# values for the make_install.sh to work.
# pushd /lib64/modules/fglrx/build_mod
# make.sh
# cd ..
# make_install.sh
# popd
# To build for an installed but not running kernel, set $KVER=$(uname -r of the
# kernel), for a kernel built but not installed use $KDIR pointing to the kernel
# source.
#
#pushd /lib64/modules/fglrx/build_mod/2.6.x
#
#kver="< Kernel version e.g. uname -r >"
#make KVER=${kdir} MODFLAGS="-DMODULE -DATI_AGP_HOOK -DATI -DFGL -DFGL_RX \
# -DFGL_CUSTOM_MODULE -DPAGE_ATTR_FIX=0 -D__SMP__" PAGE_ATTR_FIX=0
#
##kdir="< Path to kernel source >"
##make KVER=${kdir} MODFLAGS="-DMODULE -DATI_AGP_HOOK -DATI -DFGL -DFGL_RX \
## -DFGL_CUSTOM_MODULE -DPAGE_ATTR_FIX=0 -D__SMP__" PAGE_ATTR_FIX=0
#
#strip -g fglrx.ko
#mkdir -vp /lib64/modules/${kver}/kernel/drivers/char/drm
#cp -v fglrx.ko /lib64/modules/${kver}/kernel/drivers/char/drm/fglrx.ko
#depmod
#popd
# vim: ft=sh
Submitted By: Steve Jones <sljones3 AT arkansas DOT net>
Date: 2007-05-12
Initial Package Version: 8.36.5-x86.x86_64
Upstream Status: Not submitted - CLFS Specific - Closed Source
Origin: Steve Jones
Description: Fixes automagic kernel module build when modules are in
/lib64/modules, and a make clean issue on manual builds.
diff -Nuar orig/common/lib/modules/fglrx/build_mod/2.6.x/Makefile fixed/common/lib/modules/fglrx/build_mod/2.6.x/Makefile
--- orig/common/lib/modules/fglrx/build_mod/2.6.x/Makefile 2007-04-17 10:04:29.000000000 -0500
+++ fixed/common/lib/modules/fglrx/build_mod/2.6.x/Makefile 2007-05-12 16:28:24.000000000 -0500
@@ -29,7 +29,7 @@
# KVER = 2.6.0-0.test1.1.26custom
ifeq (1,1)
-KDIR = /lib/modules/$(KVER)/build
+KDIR = /lib64/modules/$(KVER)/build
else
KDIR = /usr/src/linux-$(KVER)
endif
@@ -54,7 +54,7 @@
# distclean:: clean
clean::
- rm -f *.c *.h *.o *.ko *.GCC* .??*
+ rm -rf *.c *.h *.o *.ko *.GCC* .??*
endif
diff -Nuar orig/common/lib/modules/fglrx/build_mod/make.sh fixed/common/lib/modules/fglrx/build_mod/make.sh
--- orig/common/lib/modules/fglrx/build_mod/make.sh 2007-04-17 10:04:29.000000000 -0500
+++ fixed/common/lib/modules/fglrx/build_mod/make.sh 2007-05-12 16:18:55.000000000 -0500
@@ -102,7 +102,7 @@
# xfree and system locations
XF_ROOT=/usr/X11R6
XF_BIN=$XF_ROOT/bin
-OS_MOD=/lib/modules
+OS_MOD=/lib64/modules
# ==============================================================
@@ -169,10 +169,10 @@
# in /lib/modules/<kernel-version> there is a symlink for latest kernel
# which calls "build" and points to the directory where modules were built.
-if [ -d /lib/modules/${uname_r}/build/include ];
+if [ -d /lib64/modules/${uname_r}/build/include ];
then
# just comment this line out if you already set an alternative location
- linuxincludes=/lib/modules/${uname_r}/build/include
+ linuxincludes=/lib64/modules/${uname_r}/build/include
fi
else
--
http://linuxfromscratch.org/mailman/listinfo/blfs-support
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page