ich hane meinen kernel ohne ABS compiliert. und will jetzt fglrx für diesen compilieren. die sourcen liegen unter /usr/src/<kernel-version> und /usr/src/linux ist ein link darauf.
Ich habe es mit dem ati-fglrx PKGBUILD aus dem abs probiert. Das Problem ist, das er damit gegen kernel26 (liegt unter /usr/src/linux-<kernel-version>-ARCH ) compiliert.
ich habe das fertige modul aus dem paket per hand in das /lib/modules verzeichnis von meinem kernel kopiert.
Leider kann ich es nicht laden, wahrscheinlich weil mein kernel eine andere version ist wie der aktuelle kernel26
FATAL: Error inserting fglrx (/lib/modules/2.6.18.5-RADEONFB/video/fglrx.ko): Invalid module format
wie kriege ich es hin, dass er gegen z.B. den laufenden kernel, oder noch besser gegen den auf den /usr/src/linux zeigt compiliert?
edit:
hier noch das PKGBUILD
# Maintainer: James Rayner <iphitus@gmail.com>
# Maintainer: Travis Willard <travisw@wmpub.ca>
pkgname=ati-fglrx
pkgver=8.31.5
pkgrel=1
pkgdesc="ATI proprietary binary drivers for >= r300 chipsets. Drivers for the Linux kernel."
arch=(i686 x86_64)
url="http://www.ati.com"
license=""
depends=('ati-fglrx-utils' 'kernel26')
makedepends=()
conflicts=('ati-drivers-module' 'ati-drivers-arch' 'nvidia')
install=ati-fglrx.install
_kernver=2.6.18-ARCH
source=(http://www2.ati.com/drivers/linux/ati-driver-installer-$pkgver-x86.x86_64.run)
md5sums=('2be14c0459373149b3fff49504713d98')
build() {
cd $startdir/src
[ "$CARCH" = "i686" ] && _arch="x86"
[ "$CARCH" = "x86_64" ] && _arch="x86_64"
chmod a+x ati-driver-installer-$pkgver-x86.x86_64.run
./ati-driver-installer-$pkgver-x86.x86_64.run --extract archive_files
cp $startdir/src/archive_files/arch/${_arch}/* $startdir/src/ -r
cp $startdir/src/archive_files/common/* $startdir/src/ -r
if [ "$CARCH" == "x86_64" ]; then
cp $startdir/src/archive_files/x710_64a/* $startdir/src/ -r
else
cp $startdir/src/archive_files/x710/* $startdir/src/ -r
fi
cd $startdir/src
#patch -Np0 -i 2.6.18-utsrelease.patch || return 1
#patch -Np0 -i 2.6.18-vm.patch || return 1
cd $startdir/src/lib/modules/fglrx/build_mod/
# Build the kernel module
cp 2.6.x/Makefile .
make -C /lib/modules/${_kernver}/build SUBDIRS="`pwd`" modules || return 1
# Install the kernel module
install -m 644 -D $startdir/src/lib/modules/fglrx/build_mod/fglrx.ko \
$startdir/pkg/lib/modules/${_kernver}/video/fglrx.ko
sed -i -e "s/KERNEL_VERSION=.*/KERNEL_VERSION=${_kernver}/g" $startdir/ati-fglrx.install
}
edit:
habe es hinbekommen. war eigentlich recht simpel, es musste nur die _kernver Variable geändert werden, die hatte ich irgendwie übersehen.
_kernver=$(uname -r)
jetzt wird immer gegen den laufenden Kernel compiliert und das modul in das zugehörige modul verzeichnis unter /lib/modules/ installiert, egal auf welche sourcen /usr/src/linux zeigt.
🙂