You are not logged in.
I have tried to make packages for the nouveau driver with success, but would like feedback from other users before submitting them to AUR.
To keep things clean and maintanable, i decided to create 3 packages :
nouveau-git ---- the kernel modules
libdrm-nouveau-git ---- userspace part that replaces libdrm
xf86-video-nouveau-git ---- the driver itself (the easiest package)
nouveau-git
# Contributor : Lone_Wolf lonewolf@xs4all.nl
pkgname=nouveau-git
pkgver=20061126
pkgrel=1
pkgdesc="Kernel modules for nouveau driver"
url="http://nouveau.freedesktop.org/wiki/"
license=('GPL')
depends=(glibc)
sources=()
md5sums=()
options=('NOLIBTOOL')
install=nouveau-git.install
_kernver=2.6.18-ARCH
# GIT variables
_gitroot="git://anongit.freedesktop.org/git/mesa/drm/"
_gitname="drm"
build() {
mkdir -p $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/char/drm
cd $startdir/src
msg "Connecting to git.freedesktop.org GIT server...."
if [ -d $startdir/src/$_gitname ] ; then
cd $_gitname && git-pull origin
msg "The local files are updated."
else
git clone $_gitroot
fi
msg "GIT checkout done or server timeout"
msg "Starting make..."
cp -r $startdir/src/$_gitname $startdir/src/$_gitname-build
cd ${_gitname}-build
git checkout nouveau-1
# ./autogen.sh
# ./configure --prefix=/usr
# make ||return 1
# make DESTDIR=$startdir/pkg install
cd linux-core
make ||return 1
# install drm.ko and nouveau.ko kernel modules
# drm.ko is renamed to drm-nouveau.ko to avoid problems with the existing drm.ko module
install -D -m644 drm.ko $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/char/drm/drm-nouveau.ko
install -D -m644 nouveau.ko $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/char/drm/nouveau.ko
}
nouveau-git.install
# arg 1: the new package version
post_install() {
KERNEL_VERSION='2.6.18-ARCH'
depmod -v $KERNEL_VERSION > /dev/null 2>&1
echo ">>>"
echo ">>> Make sure you have installed the xf86-video-nouveau-git package also"
echo ">>> To make this work execute the following as root :"
echo ">>> rmmod nvidia"
echo ">>> modprobe drm
echo ">>> modprobe -o --drm drm-nouveau"
echo ">>> modprobe nouveau"
echo ">>>"
echo ">>> Now edit your /etc/X11/xorg.conf to use the nouveau driver:"
echo ">>> Change in Section "Device" the Driver line to Driver "nouveau" "
echo ">>>"
echo ">>> Now start Xorg and run for cover !! "
echo ">>>"
/bin/true
}
# arg 1: the new package version
# arg 2: the old package version
post_upgrade() {
post_install $1
rmmod drm-nouveau || echo 'In order to use the new nvidia module, exit Xserver and unload it manually.'
}
# arg 1: the old package version
post_remove() {
KERNEL_VERSION='2.6.18-ARCH'
depmod -v $KERNEL_VERSION > /dev/null 2>&1
}
op=$1
shift
$op $*
libdrm-nouveau-git
# Contributor : Lone_Wolf lonewolf@xs4all.nl
pkgname=libdrm-nouveau-git
pkgver=20061126
pkgrel=1
pkgdesc="Userspace interface for nouveau driver"
url="http://nouveau.freedesktop.org/wiki/"
license=('GPL')
depends=('glibc' 'nouveau-git')
conflicts=('libdrm')
provides=('libdrm')
sources=()
md5sums=()
options=('NOLIBTOOL')
# GIT variables
_gitroot="git://anongit.freedesktop.org/git/mesa/drm/"
_gitname="drm"
build() {
mkdir -p $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/char/drm
cd $startdir/src
msg "Connecting to git.freedesktop.org GIT server...."
if [ -d $startdir/src/$_gitname ] ; then
cd $_gitname && git-pull origin
msg "The local files are updated."
else
git clone $_gitroot
fi
msg "GIT checkout done or server timeout"
msg "Starting make..."
cp -r $startdir/src/$_gitname $startdir/src/$_gitname-build
cd ${_gitname}-build
git checkout nouveau-1
./autogen.sh
./configure --prefix=/usr
make ||return 1
make DESTDIR=$startdir/pkg install
}
xf86-video-nouveau-git
# Contributor : Lone_Wolf lonewolf@xs4all.nl
pkgname=xf86-video-nouveau-git
pkgver=20061126
pkgrel=1
pkgdesc="OSS 3D driver for nvidia cards"
url="http://nouveau.freedesktop.org/wiki/"
license=('GPL')
depends=('libdrm-nouveau-git' 'glibc')
source=()
md5sums=()
options=('NOLIBTOOL')
_gitroot="git://anongit.freedesktop.org/git/nouveau/xf86-video-nouveau/"
_gitname="xf86-video-nouveau"
build() {
cd $startdir/src
msg "Connecting to git.freedesktop.org GIT server...."
if [ -d $startdir/src/$_gitname ] ; then
cd $_gitname && git-pull origin
msg "The local files are updated."
else
git clone $_gitroot
fi
msg "GIT checkout done or server timeout"
msg "Starting make..."
cp -r $startdir/src/$_gitname $startdir/src/$_gitname-build
cd ${_gitname}-build
./autogen.sh
./configure --prefix=/usr
make ||return 1
make DESTDIR=$startdir/pkg install
}
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
50 views but no comments .
I've looked at things a bit better, and the 3 packages work, but don't have any 3D functions.
It looks more like a replacement for the NV driver.
Something is missing, and i think it's the DRI driver.
A DRI CVS is mentioned on the nouveau wiki frontpage, but there are no instructions how to use it.
It has a makefile, so i'm going to try building it and make a 4th package.
I have to find out where to put the nouveau_dri.so driver and what libgl package can use it.
The most likely candidate is the mesa libgl-dri package.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
Once my exams are out the way (last one is the 12th) I'll give them a whizz on my 6600GT and FX5200Go for you. Until then, however, I'm strictly in no-tinker mode.
Desktop: AMD Athlon64 3800+ Venice Core, 2GB PC3200, 2x160GB Maxtor DiamondMax 10, 2x320GB WD Caviar RE, Nvidia 6600GT 256MB
Laptop: Intel Pentium M, 512MB PC2700, 60GB IBM TravelStar, Nvidia 5200Go 64MB
Offline
Hi
I've just get the nouveau driver installed successfully. But i had to tweak some things in your PKGBUILDS.
here you'll found the PKGBUILD i finally got.
nouveau-git (i hadn't git installed before compiling)
# Contributor : Lone_Wolf lonewolf@xs4all.nl
pkgname=nouveau-git
pkgver=20061126
pkgrel=1
pkgdesc="Kernel modules for nouveau driver"
url="http://nouveau.freedesktop.org/wiki/"
license=('GPL')
depends=(glibc)
makedepends=('git')
sources=()
md5sums=()
options=('NOLIBTOOL')
install=nouveau-git.install
_kernver=2.6.18-ARCH
# GIT variables
_gitroot="git://anongit.freedesktop.org/git/mesa/drm/"
_gitname="drm"
build() {
mkdir -p $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/char/drm
cd $startdir/src
msg "Connecting to git.freedesktop.org GIT server...."
if [ -d $startdir/src/$_gitname ] ; then
cd $_gitname && git-pull origin
msg "The local files are updated."
else
git clone $_gitroot
fi
msg "GIT checkout done or server timeout"
msg "Starting make..."
cp -r $startdir/src/$_gitname $startdir/src/$_gitname-build
cd ${_gitname}-build
git checkout nouveau-1
# ./autogen.sh
# ./configure --prefix=/usr
# make ||return 1
# make DESTDIR=$startdir/pkg install
cd linux-core
make ||return 1
# install drm.ko and nouveau.ko kernel modules
# drm.ko is renamed to drm-nouveau.ko to avoid problems with the existing drm.ko module
install -D -m644 drm.ko $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/char/drm/drm-nouveau.ko
install -D -m644 nouveau.ko $startdir/pkg/lib/modules/${_kernver}/kernel/drivers/char/drm/nouveau.ko
}
libdrm-nouveau-git: nothing to change
xf86-video-nouveau-git: faced 2 problems when trying to build this package: · Missing xf86driproto (so added to makedepends). · Compilation failure when trying to build the manpage. I edit the PKGBUILD with a dirty hack to avoid manpage compilation.
# Contributor : Lone_Wolf lonewolf@xs4all.nl
pkgname=xf86-video-nouveau-git
pkgver=20061126
pkgrel=1
pkgdesc="OSS 3D driver for nvidia cards"
url="http://nouveau.freedesktop.org/wiki/"
license=('GPL')
depends=('libdrm-nouveau-git' 'glibc')
makedepends=('xf86driproto')
source=()
md5sums=()
options=('NOLIBTOOL')
_gitroot="git://anongit.freedesktop.org/git/nouveau/xf86-video-nouveau/"
_gitname="xf86-video-nouveau"
build() {
cd $startdir/src
msg "Connecting to git.freedesktop.org GIT server...."
if [ -d $startdir/src/$_gitname ] ; then
cd $_gitname && git-pull origin
msg "The local files are updated."
else
git clone $_gitroot
fi
msg "GIT checkout done or server timeout"
msg "Starting make..."
cp -r $startdir/src/$_gitname $startdir/src/$_gitname-build
cd $startdir/src/${_gitname}-build
##### Avoid manpage compilation #####
mv Makefile.am Makefile.am.old
cat Makefile.am.old | sed -e 's/SUBDIRS = src man/SUBDIRS = src/g' > Makefile.am
mv configure.ac configure.ac.old
cat configure.ac.old | sed -e 's/XORG_MANPAGE_SECTIONS/# XORG_MANPAGE_SECTIONS/g' | sed -e 's/man/Makefile//g' > configure.ac
##### End of hack #####
./autogen.sh
./configure --prefix=/usr
make || return 1
make DESTDIR=$startdir/pkg install
}
here are my 2cents
Offline
Thanks for the input, chrismortimore and slubman .
I have found a gentoo ebuild that shows that to get DRI , we'll have to build mesa from cvs and add the nouveau dri driver to it.
As i have the feeling the pkgbuilds will need lots of changing before they are ready for AUR, the next version of the pkgbuilds will be put on http://pastebin.archlinux.org and i'll modify the first post by replacing the pkgbuilds with links to pastebin.
(probably in the first half of next week).
There will be a total of 4 packages, 3 git and 1 cvs.
The normal naming scheme will make this confusing, so i propose to use another scheme with exp (for experimental) as last part so they will be easily recognizable as belonging together.
This will result in these packages :
nouveau-dri-exp Mesa CVS with nouveau DRI driver
nouveau-drm-exp DRM kernel modules
nouveau-libdrm-exp DRM userspace parts
xf86-video-nouveau-exp the xorg driver
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
I had problems with compiling the mesa part and decided to stop working on it temporarily.
As the nouveau developers have improved/clarified the 3D part, i'm going to give it another go soon.
(thanks for the message, sushi)
Last edited by Lone_Wolf (2007-02-04 00:40:16)
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline