Sto scrivendo uno script per creare un pacchetto precompilato TGZ, con i driver grafici NVIDIA belli pronti da installare con Pkgtool!
E' una versione preliminare, non testata!
#!/bin/sh
# Heavily based on the Slackware 10.2 SlackBuild
# http://www.nvidia.com/object/unix.html
# Packagers Andrea Sciucca Gohanz ( gohanz @ infinito.it)
# http://www.slacky.it
CWD=`pwd`
if ["$TMP" = ""]; then
TMP=/tmp
fi
PKG=$TMP/package-NVIDIA-Linux-x86
NAME=NVIDIA-Linux-x86
VERSION=1.0-8762
ARCH=IA32
RELEASE_DATE='May 22, 2006'
KERNEL=$(uname -r)
if [ ! -d $TMP ]; then
mkdir -p $TMP
fi
if [ ! -d $PKG ]; then
mkdir -p $PKG
fi
cd $TMP
sh $CWD/$NAME-$VERSION-pkg1.run -x
echo "+----------------------------------------------------------------+"
echo "| Starting SlackBuild $NAME-$VERSION-Kernel-$KERNEL |"
echo "+----------------------------------------------------------------+"
cd $NAME-$VERSION-pkg1
find . -perm 777 -exec chmod 755 {} \;
find . -perm 775 -exec chmod 755 {} \;
find . -perm 555 -exec chmod 755 {} \;
find . -perm 666 -exec chmod 644 {} \;
find . -perm 664 -exec chmod 644 {} \;
find . -perm 444 -exec chmod 644 {} \;
chown -R root.root .
# Build SimLik.
( cd usr/X11R6/lib
ln -s libXvMCNVIDIA.so.$VERSION libXvMCNVIDIA_dynamic.so.1 )
( cd usr/X11R6/lib/modules/extensions
ln -s libglx.so.$VERSION libglx.so )
( cd usr/lib
ln -s libGL.so.1 libGL.so
ln -s libGL.so.$VERSION libGL.so.1
ln -s libGLcore.so.$VERSION libGLcore.so.1
ln -s libnvidia-cfg.so.1 libnvidia-cfg.so
ln -s libnvidia-cfg.so.$VERSION libnvidia-cfg.so.1
ln -s libnvidia-tls.so.$VERSION libnvidia-tls.so.1 )
( cd usr/lib/tls
ln -s libnvidia-tls.so.$VERSION libnvidia-tls.so.1 )
# End SimLink Build
mkdir -p $PKG/usr
( cd usr \
cp -a -r * $PKG/usr )
mkdir -p $PKG/lib/modules/$KERNEL/kernel/drivers/video
( cd usr/src/nv
make module # Compiling Module for Both 2.4/2.6 Kernel.
if [ `echo $KERNEL | cut -c -3` == "2.6" ]; then
echo "Copy Nvidia Module Kernel $KERNEL"
cp nvidia.ko $PKG/lib/modules/$KERNEL/kernel/drivers/video 2>/dev/null
elif [ `echo $KERNEL | cut -c -3` == "2.4" ]; then
echo "Copy Nvidia Module Kernel $KERNEL"
cp nvidia.o $PKG/lib/modules/$KERNEL/kernel/drivers/video 2>/dev/null
else
incorrectVersion
fi
)
mkdir -p $PKG/usr/doc/$NAME-$VERSION
( cd $PKG/usr/share/doc
cp -a -r * $PKG/usr/doc/$NAME-$VERSION
rm -r $PKG/usr/share/doc
)
( cd $PKG/usr/share/man
mkdir -p $PKG/usr/man
cp -a -r * $PKG/usr/man
rm -r $PKG/usr/share/man )
mkdir -p $PKG/etc/X11
( cd /etc/X11
cp -a xorg.conf $PKG/etc/X11 )
( cd $PKG/etc/X11
sed -i "s|nvidia|nv|g" xorg.conf
sed -i "s|nv|nvidia|g" xorg.conf )
rm -r $PKG/usr/src
cp -a LICENSE pkg-history.txt \
$PKG/usr/doc/$NAME-$VERSION
mkdir -p $PKG/install
cat << EOF > $PKG/install/slack-desc
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler----------------------------------------------------|
NvidiaLinuxX86: Nvidia Linux Display Driver $ARCH
NvidiaLinuxX86:
NvidiaLinuxX86:
NvidiaLinuxX86:
NvidiaLinuxX86: Version: $VERSION
NvidiaLinuxX86: Operating System: Linux IA32
NvidiaLinuxX86: Release Date: $RELEASE_DATE
NvidiaLinuxX86: KERNEL : $KERNEL
NvidiaLinuxX86:
NvidiaLinuxX86: http://WWW.SLACKY.IT
NvidiaLinuxX86: Packager Gohanz.
EOF
cd $CWD
cp -a *.SlackBuild $PKG/usr/doc/$NAME-$VERSION
chown -R root.root $PKG/usr/doc/$NAME-$VERSION
chown -R root.bin $PKG/usr/bin
strip --strip-unneeded $PKG/usr/bin/* 2> /dev/null
cd $PKG
requiredbuilder -v -y -s $CWD $PKG
makepkg -l y -c n $CWD/NvidiaLinuxX86-$VERSION'Kernel'$KERNEL-$ARCH.tgz
echo "modprobe nvidia" >> $PKG/install/doinst.sh
makepkg -l n -c n $CWD/NvidiaLinuxX86-$VERSION'Kernel'$KERNEL-$ARCH.tgz
if [ "$1" = "--cleanup" ]; then
rm -rf $TMP/$NAME-$VERSION
rm -rf $PKG
fi
Nvidia SlackBuild
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Slackware, se l'argomento è generale usate il forum Gnu/Linux in genere.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Ho fatto le ultime modifiche, ho iserito un po di controlli. L'ho provato su tre Kernel differenti 2.4 e 2.6 e funziona bene.
Mi sono creato un paio i pacchetti per i kernel di default, più un terzo kernel recente.
#!/bin/sh
# Heavily based on the Slackware 10.2 SlackBuild
# http://www.nvidia.com/object/unix.html
# Packager Andrea Sciucca Gohanz ( gohanz @ infinito.it)
# http://www.slacky.it
CWD=`pwd`
if ["$TMP" = ""]; then
TMP=/tmp
fi
PKG=$TMP/package-NVIDIA-Linux-x86
NAME=NVIDIA-Linux-x86
VERSION=1.0-8762
ARCH=IA32
RELEASE_DATE='May 22, 2006'
KERNEL=$(uname -r)
#Check for root privileges
if [ `id -u` != "0" ]; then clear
echo "You must be Root to run Nvidia-Linux-x86.SlackBuild"
exit 1
fi
#
# Check for Kernel Source in /usr/src and make a symlink linux to kernel
cd /usr/src
if [ ! -r linux-$KERNEL ]; then clear
echo "You must install the Kernel Source in /usr/src!"
exit 1
else rm linux
ln -s linux-$KERNEL linux
fi
cd $CWD
#
# Check for .config file in the kernel source tree
cd /usr/src/linux
if [ ! -r .config ]; then clear
echo "No .config file in the source tree! Please copy your .config file in /usr/src/linux or you need to recompile the kernel with make menuconfig!"
exit 1
fi
cd $CWD
#
if [ ! -d $TMP ]; then
mkdir -p $TMP
fi
if [ ! -d $PKG ]; then
mkdir -p $PKG
fi
cd $TMP
sh $CWD/$NAME-$VERSION-pkg1.run -x
echo "+----------------------------------------------------------------+"
echo "| Starting SlackBuild $NAME-$VERSION-Kernel-$KERNEL |"
echo "+----------------------------------------------------------------+"
cd $NAME-$VERSION-pkg1
find . -perm 777 -exec chmod 755 {} \;
find . -perm 775 -exec chmod 755 {} \;
find . -perm 555 -exec chmod 755 {} \;
find . -perm 666 -exec chmod 644 {} \;
find . -perm 664 -exec chmod 644 {} \;
find . -perm 444 -exec chmod 644 {} \;
chown -R root.root .
# Build SimLik.
( cd usr/X11R6/lib
ln -s libXvMCNVIDIA.so.$VERSION libXvMCNVIDIA_dynamic.so.1 )
( cd usr/X11R6/lib/modules/extensions
ln -s libglx.so.1.0.8762 libglx.so )
( cd usr/lib
ln -s libGL.so.1 libGL.so
ln -s libGL.so.$VERSION libGL.so.1
ln -s libGLcore.so.$VERSION libGLcore.so.1
ln -s libnvidia-cfg.so.1 libnvidia-cfg.so
ln -s libnvidia-cfg.so.$VERSION libnvidia-cfg.so.1
ln -s libnvidia-tls.so.$VERSION libnvidia-tls.so.1 )
( cd usr/lib/tls
ln -s libnvidia-tls.so.$VERSION libnvidia-tls.so.1 )
# End SimLink Build
mkdir -p $PKG/usr
( cd usr \
cp -a -r * $PKG/usr )
mkdir -p $PKG/lib/modules/$KERNEL/kernel/drivers/video
( cd usr/src/nv
make module # Compiling Module for Both 2.4/2.6 Kernel.
if [ `echo $KERNEL | cut -c -3` == "2.6" ]; then clear
echo "Copy Nvidia Module for the Kernel $KERNEL"
cp nvidia.ko $PKG/lib/modules/$KERNEL/kernel/drivers/video 2>/dev/null
elif [ `echo $KERNEL | cut -c -3` == "2.4" ]; then clear
echo "Copy Nvidia Module for the Kernel $KERNEL"
cp nvidia.o $PKG/lib/modules/$KERNEL/kernel/drivers/video 2>/dev/null
else
incorrectVersion
fi
)
mkdir -p $PKG/usr/doc/$NAME-$VERSION
( cd $PKG/usr/share/doc
cp -a -r * $PKG/usr/doc/$NAME-$VERSION
rm -r $PKG/usr/share/doc
)
( cd $PKG/usr/share/man
mkdir -p $PKG/usr/man
cp -a -r * $PKG/usr/man
rm -r $PKG/usr/share/man )
mkdir -p $PKG/etc/X11
( cd /etc/X11
cp -a xorg.conf $PKG/etc/X11 )
( cd $PKG/etc/X11
sed -i "s|nvidia|nv|g" xorg.conf
sed -i "s|nv|nvidia|g" xorg.conf )
rm -r $PKG/usr/src
cp -a LICENSE pkg-history.txt \
$PKG/usr/doc/$NAME-$VERSION
mkdir -p $PKG/install
cat << EOF > $PKG/install/slack-desc
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler----------------------------------------------------|
NvidiaLinuxX86: Nvidia Linux Display Driver $ARCH
NvidiaLinuxX86:
NvidiaLinuxX86:
NvidiaLinuxX86:
NvidiaLinuxX86: Version: $VERSION
NvidiaLinuxX86: Operating System: Linux IA32
NvidiaLinuxX86: Release Date: $RELEASE_DATE
NvidiaLinuxX86: KERNEL : $KERNEL
NvidiaLinuxX86:
NvidiaLinuxX86: http://WWW.SLACKY.IT
NvidiaLinuxX86: Packager Gohanz.
EOF
cd $CWD
cp -a *.SlackBuild $PKG/usr/doc/$NAME-$VERSION
chown -R root.root $PKG/usr/doc/$NAME-$VERSION
chown -R root.bin $PKG/usr/bin
strip --strip-unneeded $PKG/usr/bin/* 2> /dev/null
cd $PKG
requiredbuilder -v -y -s $CWD $PKG
makepkg -l y -c n $CWD/NvidiaLinuxX86-$VERSION'Kernel'$KERNEL-$ARCH.tgz
echo "modprobe nvidia" >> $PKG/install/doinst.sh
echo "ldconfig" >> $PKG/install/doinst.sh
makepkg -l n -c n $CWD/NvidiaLinuxX86-$VERSION'Kernel'$KERNEL-$ARCH.tgz
if [ "$1" = "--cleanup" ]; then
rm -rf $TMP/$NAME-$VERSION
rm -rf $PKG
fi
Mi sono creato un paio i pacchetti per i kernel di default, più un terzo kernel recente.
#!/bin/sh
# Heavily based on the Slackware 10.2 SlackBuild
# http://www.nvidia.com/object/unix.html
# Packager Andrea Sciucca Gohanz ( gohanz @ infinito.it)
# http://www.slacky.it
CWD=`pwd`
if ["$TMP" = ""]; then
TMP=/tmp
fi
PKG=$TMP/package-NVIDIA-Linux-x86
NAME=NVIDIA-Linux-x86
VERSION=1.0-8762
ARCH=IA32
RELEASE_DATE='May 22, 2006'
KERNEL=$(uname -r)
#Check for root privileges
if [ `id -u` != "0" ]; then clear
echo "You must be Root to run Nvidia-Linux-x86.SlackBuild"
exit 1
fi
#
# Check for Kernel Source in /usr/src and make a symlink linux to kernel
cd /usr/src
if [ ! -r linux-$KERNEL ]; then clear
echo "You must install the Kernel Source in /usr/src!"
exit 1
else rm linux
ln -s linux-$KERNEL linux
fi
cd $CWD
#
# Check for .config file in the kernel source tree
cd /usr/src/linux
if [ ! -r .config ]; then clear
echo "No .config file in the source tree! Please copy your .config file in /usr/src/linux or you need to recompile the kernel with make menuconfig!"
exit 1
fi
cd $CWD
#
if [ ! -d $TMP ]; then
mkdir -p $TMP
fi
if [ ! -d $PKG ]; then
mkdir -p $PKG
fi
cd $TMP
sh $CWD/$NAME-$VERSION-pkg1.run -x
echo "+----------------------------------------------------------------+"
echo "| Starting SlackBuild $NAME-$VERSION-Kernel-$KERNEL |"
echo "+----------------------------------------------------------------+"
cd $NAME-$VERSION-pkg1
find . -perm 777 -exec chmod 755 {} \;
find . -perm 775 -exec chmod 755 {} \;
find . -perm 555 -exec chmod 755 {} \;
find . -perm 666 -exec chmod 644 {} \;
find . -perm 664 -exec chmod 644 {} \;
find . -perm 444 -exec chmod 644 {} \;
chown -R root.root .
# Build SimLik.
( cd usr/X11R6/lib
ln -s libXvMCNVIDIA.so.$VERSION libXvMCNVIDIA_dynamic.so.1 )
( cd usr/X11R6/lib/modules/extensions
ln -s libglx.so.1.0.8762 libglx.so )
( cd usr/lib
ln -s libGL.so.1 libGL.so
ln -s libGL.so.$VERSION libGL.so.1
ln -s libGLcore.so.$VERSION libGLcore.so.1
ln -s libnvidia-cfg.so.1 libnvidia-cfg.so
ln -s libnvidia-cfg.so.$VERSION libnvidia-cfg.so.1
ln -s libnvidia-tls.so.$VERSION libnvidia-tls.so.1 )
( cd usr/lib/tls
ln -s libnvidia-tls.so.$VERSION libnvidia-tls.so.1 )
# End SimLink Build
mkdir -p $PKG/usr
( cd usr \
cp -a -r * $PKG/usr )
mkdir -p $PKG/lib/modules/$KERNEL/kernel/drivers/video
( cd usr/src/nv
make module # Compiling Module for Both 2.4/2.6 Kernel.
if [ `echo $KERNEL | cut -c -3` == "2.6" ]; then clear
echo "Copy Nvidia Module for the Kernel $KERNEL"
cp nvidia.ko $PKG/lib/modules/$KERNEL/kernel/drivers/video 2>/dev/null
elif [ `echo $KERNEL | cut -c -3` == "2.4" ]; then clear
echo "Copy Nvidia Module for the Kernel $KERNEL"
cp nvidia.o $PKG/lib/modules/$KERNEL/kernel/drivers/video 2>/dev/null
else
incorrectVersion
fi
)
mkdir -p $PKG/usr/doc/$NAME-$VERSION
( cd $PKG/usr/share/doc
cp -a -r * $PKG/usr/doc/$NAME-$VERSION
rm -r $PKG/usr/share/doc
)
( cd $PKG/usr/share/man
mkdir -p $PKG/usr/man
cp -a -r * $PKG/usr/man
rm -r $PKG/usr/share/man )
mkdir -p $PKG/etc/X11
( cd /etc/X11
cp -a xorg.conf $PKG/etc/X11 )
( cd $PKG/etc/X11
sed -i "s|nvidia|nv|g" xorg.conf
sed -i "s|nv|nvidia|g" xorg.conf )
rm -r $PKG/usr/src
cp -a LICENSE pkg-history.txt \
$PKG/usr/doc/$NAME-$VERSION
mkdir -p $PKG/install
cat << EOF > $PKG/install/slack-desc
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler----------------------------------------------------|
NvidiaLinuxX86: Nvidia Linux Display Driver $ARCH
NvidiaLinuxX86:
NvidiaLinuxX86:
NvidiaLinuxX86:
NvidiaLinuxX86: Version: $VERSION
NvidiaLinuxX86: Operating System: Linux IA32
NvidiaLinuxX86: Release Date: $RELEASE_DATE
NvidiaLinuxX86: KERNEL : $KERNEL
NvidiaLinuxX86:
NvidiaLinuxX86: http://WWW.SLACKY.IT
NvidiaLinuxX86: Packager Gohanz.
EOF
cd $CWD
cp -a *.SlackBuild $PKG/usr/doc/$NAME-$VERSION
chown -R root.root $PKG/usr/doc/$NAME-$VERSION
chown -R root.bin $PKG/usr/bin
strip --strip-unneeded $PKG/usr/bin/* 2> /dev/null
cd $PKG
requiredbuilder -v -y -s $CWD $PKG
makepkg -l y -c n $CWD/NvidiaLinuxX86-$VERSION'Kernel'$KERNEL-$ARCH.tgz
echo "modprobe nvidia" >> $PKG/install/doinst.sh
echo "ldconfig" >> $PKG/install/doinst.sh
makepkg -l n -c n $CWD/NvidiaLinuxX86-$VERSION'Kernel'$KERNEL-$ARCH.tgz
if [ "$1" = "--cleanup" ]; then
rm -rf $TMP/$NAME-$VERSION
rm -rf $PKG
fi
Questo è il definitivo. C'è la scelta di inserire o meno, xorg.conf presente nel sistema, nel pacchetto. Nel caso xorg.conf caso viene adattato per caricare i driver NVIDA in automatico.
Più una piccola modifica nella creazione del doinst.sh nel pacchetto, usando l'opzione -p Prepended, di makepkg!
#!/bin/sh
# Heavily based on the Slackware 10.2 SlackBuild
# http://www.nvidia.com/object/unix.html
# Packager Andrea Sciucca Gohanz ( gohanz @ infinito.it)
# http://www.slacky.it
CWD=`pwd`
if ["$TMP" = ""]; then
TMP=/tmp
fi
PKG=$TMP/package-NVIDIA-Linux-x86
NAME=NVIDIA-Linux-x86
VERSION=1.0-8762
ARCH=IA32
RELEASE_DATE='May 22, 2006'
KERNEL=$(uname -r)
#Check for root privileges
if [ `id -u` != "0" ]; then clear
echo "You must be Root to run Nvidia-Linux-x86.SlackBuild"
exit 1
fi
#
# Check for Kernel Source in /usr/src and make a symlink linux to kernel
cd /usr/src
if [ ! -r linux-$KERNEL ]; then clear
echo "You must install the Kernel Source in /usr/src!"
exit 1
else rm linux
ln -s linux-$KERNEL linux
fi
cd $CWD
#
# Check for .config file in the kernel source tree
cd /usr/src/linux
if [ ! -r .config ]; then clear
echo "No .config file in the source tree! Please copy your .config file in /usr/src/linux or you need to recompile the kernel with make menuconfig!"
exit 1
fi
cd $CWD
#
#Function Build Package
PKG_BUILD () {
rm -r $PKG/usr/src
cp -a LICENSE pkg-history.txt \
$PKG/usr/doc/$NAME-$VERSION
mkdir -p $PKG/install
cat << EOF > $PKG/install/slack-desc
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler----------------------------------------------------|
NvidiaLinuxX86: Nvidia Linux Display Driver $ARCH
NvidiaLinuxX86:
NvidiaLinuxX86:
NvidiaLinuxX86:
NvidiaLinuxX86: Version: $VERSION
NvidiaLinuxX86: Operating System: Linux IA32
NvidiaLinuxX86: Release Date: $RELEASE_DATE
NvidiaLinuxX86: KERNEL : $KERNEL
NvidiaLinuxX86:
NvidiaLinuxX86: http://WWW.SLACKY.IT
NvidiaLinuxX86: Packager Gohanz.
EOF
cd $CWD
cp -a *.SlackBuild $PKG/usr/doc/$NAME-$VERSION
chown -R root.root $PKG/usr/doc/$NAME-$VERSION
chown -R root.bin $PKG/usr/bin
strip --strip-unneeded $PKG/usr/bin/* 2> /dev/null
cd $PKG
requiredbuilder -v -y -s $CWD $PKG
makepkg -l y -c n -p $CWD/NvidiaLinuxX86-$VERSION'Kernel'$KERNEL-$ARCH.tgz
if [ "$1" = "--cleanup" ]; then
rm -rf $TMP/$NAME-$VERSION
rm -rf $PKG
fi
}
if [ ! -d $TMP ]; then
mkdir -p $TMP
fi
if [ ! -d $PKG ]; then
mkdir -p $PKG
fi
cd $TMP
sh $CWD/$NAME-$VERSION-pkg1.run -x
echo "+----------------------------------------------------------------+"
echo "| Starting SlackBuild $NAME-$VERSION-Kernel-$KERNEL |"
echo "+----------------------------------------------------------------+"
cd $NAME-$VERSION-pkg1
find . -perm 777 -exec chmod 755 {} \;
find . -perm 775 -exec chmod 755 {} \;
find . -perm 555 -exec chmod 755 {} \;
find . -perm 666 -exec chmod 644 {} \;
find . -perm 664 -exec chmod 644 {} \;
find . -perm 444 -exec chmod 644 {} \;
chown -R root.root .
# Build SimLik.
( cd usr/X11R6/lib
ln -s libXvMCNVIDIA.so.$VERSION libXvMCNVIDIA_dynamic.so.1 )
( cd usr/X11R6/lib/modules/extensions
ln -s libglx.so.1.0.8762 libglx.so )
( cd usr/lib
ln -s libGL.so.1 libGL.so
ln -s libGL.so.$VERSION libGL.so.1
ln -s libGLcore.so.$VERSION libGLcore.so.1
ln -s libnvidia-cfg.so.1 libnvidia-cfg.so
ln -s libnvidia-cfg.so.$VERSION libnvidia-cfg.so.1
ln -s libnvidia-tls.so.$VERSION libnvidia-tls.so.1 )
( cd usr/lib/tls
ln -s libnvidia-tls.so.$VERSION libnvidia-tls.so.1 )
# End SimLink Build
mkdir -p $PKG/usr
( cd usr \
cp -a -r * $PKG/usr )
mkdir -p $PKG/lib/modules/$KERNEL/kernel/drivers/video
( cd usr/src/nv
make module # Compiling Module for Both 2.4/2.6 Kernel.
if [ `echo $KERNEL | cut -c -3` == "2.6" ]; then clear
echo "Copy Nvidia Module for the Kernel $KERNEL"
cp nvidia.ko $PKG/lib/modules/$KERNEL/kernel/drivers/video 2>/dev/null
elif [ `echo $KERNEL | cut -c -3` == "2.4" ]; then clear
echo "Copy Nvidia Module for the Kernel $KERNEL"
cp nvidia.o $PKG/lib/modules/$KERNEL/kernel/drivers/video 2>/dev/null
else
echo " The Kernel $KERNEL Version, is not correct!"
fi
)
mkdir -p $PKG/usr/doc/$NAME-$VERSION
( cd $PKG/usr/share/doc
cp -a -r * $PKG/usr/doc/$NAME-$VERSION
rm -r $PKG/usr/share/doc
)
( cd $PKG/usr/share/man
mkdir -p $PKG/usr/man
cp -a -r * $PKG/usr/man
rm -r $PKG/usr/share/man )
# Xorg.conf copy in package
echo "I copy your xorg.conf file in the TGZ Package?"
OPTIONS="Yes No"
select opt in $OPTIONS; do
if [ "$opt" = "Yes" ]; then
( cd /etc/X11
mkdir -p $PKG/etc/X11
cp -a xorg.conf $PKG/etc/X11 )
mkdir -p $PKG/install
cat << EOF > $PKG/install/doinst.sh
modprobe nvidia
ldconfig
nvidia-xconfig
EOF
PKG_BUILD
exit
elif [ "$opt" = "No" ]; then
mkdir -p $PKG/install
cat << EOF > $PKG/install/doinst.sh
modprobe nvidia
ldconfig
EOF
PKG_BUILD
exit
else echo "Wrong Choice! (1/2)"
fi
done
Più una piccola modifica nella creazione del doinst.sh nel pacchetto, usando l'opzione -p Prepended, di makepkg!
#!/bin/sh
# Heavily based on the Slackware 10.2 SlackBuild
# http://www.nvidia.com/object/unix.html
# Packager Andrea Sciucca Gohanz ( gohanz @ infinito.it)
# http://www.slacky.it
CWD=`pwd`
if ["$TMP" = ""]; then
TMP=/tmp
fi
PKG=$TMP/package-NVIDIA-Linux-x86
NAME=NVIDIA-Linux-x86
VERSION=1.0-8762
ARCH=IA32
RELEASE_DATE='May 22, 2006'
KERNEL=$(uname -r)
#Check for root privileges
if [ `id -u` != "0" ]; then clear
echo "You must be Root to run Nvidia-Linux-x86.SlackBuild"
exit 1
fi
#
# Check for Kernel Source in /usr/src and make a symlink linux to kernel
cd /usr/src
if [ ! -r linux-$KERNEL ]; then clear
echo "You must install the Kernel Source in /usr/src!"
exit 1
else rm linux
ln -s linux-$KERNEL linux
fi
cd $CWD
#
# Check for .config file in the kernel source tree
cd /usr/src/linux
if [ ! -r .config ]; then clear
echo "No .config file in the source tree! Please copy your .config file in /usr/src/linux or you need to recompile the kernel with make menuconfig!"
exit 1
fi
cd $CWD
#
#Function Build Package
PKG_BUILD () {
rm -r $PKG/usr/src
cp -a LICENSE pkg-history.txt \
$PKG/usr/doc/$NAME-$VERSION
mkdir -p $PKG/install
cat << EOF > $PKG/install/slack-desc
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler----------------------------------------------------|
NvidiaLinuxX86: Nvidia Linux Display Driver $ARCH
NvidiaLinuxX86:
NvidiaLinuxX86:
NvidiaLinuxX86:
NvidiaLinuxX86: Version: $VERSION
NvidiaLinuxX86: Operating System: Linux IA32
NvidiaLinuxX86: Release Date: $RELEASE_DATE
NvidiaLinuxX86: KERNEL : $KERNEL
NvidiaLinuxX86:
NvidiaLinuxX86: http://WWW.SLACKY.IT
NvidiaLinuxX86: Packager Gohanz.
EOF
cd $CWD
cp -a *.SlackBuild $PKG/usr/doc/$NAME-$VERSION
chown -R root.root $PKG/usr/doc/$NAME-$VERSION
chown -R root.bin $PKG/usr/bin
strip --strip-unneeded $PKG/usr/bin/* 2> /dev/null
cd $PKG
requiredbuilder -v -y -s $CWD $PKG
makepkg -l y -c n -p $CWD/NvidiaLinuxX86-$VERSION'Kernel'$KERNEL-$ARCH.tgz
if [ "$1" = "--cleanup" ]; then
rm -rf $TMP/$NAME-$VERSION
rm -rf $PKG
fi
}
if [ ! -d $TMP ]; then
mkdir -p $TMP
fi
if [ ! -d $PKG ]; then
mkdir -p $PKG
fi
cd $TMP
sh $CWD/$NAME-$VERSION-pkg1.run -x
echo "+----------------------------------------------------------------+"
echo "| Starting SlackBuild $NAME-$VERSION-Kernel-$KERNEL |"
echo "+----------------------------------------------------------------+"
cd $NAME-$VERSION-pkg1
find . -perm 777 -exec chmod 755 {} \;
find . -perm 775 -exec chmod 755 {} \;
find . -perm 555 -exec chmod 755 {} \;
find . -perm 666 -exec chmod 644 {} \;
find . -perm 664 -exec chmod 644 {} \;
find . -perm 444 -exec chmod 644 {} \;
chown -R root.root .
# Build SimLik.
( cd usr/X11R6/lib
ln -s libXvMCNVIDIA.so.$VERSION libXvMCNVIDIA_dynamic.so.1 )
( cd usr/X11R6/lib/modules/extensions
ln -s libglx.so.1.0.8762 libglx.so )
( cd usr/lib
ln -s libGL.so.1 libGL.so
ln -s libGL.so.$VERSION libGL.so.1
ln -s libGLcore.so.$VERSION libGLcore.so.1
ln -s libnvidia-cfg.so.1 libnvidia-cfg.so
ln -s libnvidia-cfg.so.$VERSION libnvidia-cfg.so.1
ln -s libnvidia-tls.so.$VERSION libnvidia-tls.so.1 )
( cd usr/lib/tls
ln -s libnvidia-tls.so.$VERSION libnvidia-tls.so.1 )
# End SimLink Build
mkdir -p $PKG/usr
( cd usr \
cp -a -r * $PKG/usr )
mkdir -p $PKG/lib/modules/$KERNEL/kernel/drivers/video
( cd usr/src/nv
make module # Compiling Module for Both 2.4/2.6 Kernel.
if [ `echo $KERNEL | cut -c -3` == "2.6" ]; then clear
echo "Copy Nvidia Module for the Kernel $KERNEL"
cp nvidia.ko $PKG/lib/modules/$KERNEL/kernel/drivers/video 2>/dev/null
elif [ `echo $KERNEL | cut -c -3` == "2.4" ]; then clear
echo "Copy Nvidia Module for the Kernel $KERNEL"
cp nvidia.o $PKG/lib/modules/$KERNEL/kernel/drivers/video 2>/dev/null
else
echo " The Kernel $KERNEL Version, is not correct!"
fi
)
mkdir -p $PKG/usr/doc/$NAME-$VERSION
( cd $PKG/usr/share/doc
cp -a -r * $PKG/usr/doc/$NAME-$VERSION
rm -r $PKG/usr/share/doc
)
( cd $PKG/usr/share/man
mkdir -p $PKG/usr/man
cp -a -r * $PKG/usr/man
rm -r $PKG/usr/share/man )
# Xorg.conf copy in package
echo "I copy your xorg.conf file in the TGZ Package?"
OPTIONS="Yes No"
select opt in $OPTIONS; do
if [ "$opt" = "Yes" ]; then
( cd /etc/X11
mkdir -p $PKG/etc/X11
cp -a xorg.conf $PKG/etc/X11 )
mkdir -p $PKG/install
cat << EOF > $PKG/install/doinst.sh
modprobe nvidia
ldconfig
nvidia-xconfig
EOF
PKG_BUILD
exit
elif [ "$opt" = "No" ]; then
mkdir -p $PKG/install
cat << EOF > $PKG/install/doinst.sh
modprobe nvidia
ldconfig
EOF
PKG_BUILD
exit
else echo "Wrong Choice! (1/2)"
fi
done
- Harp
- Staff

- Messaggi: 1424
- Iscritto il: sab 17 apr 2004, 0:00
- Nome Cognome: Franco Fiorin
- Slackware: 13.0
- Kernel: 2.6.29
- Desktop: KDE 4.2.4
- Località: Vittorio Veneto (TV)
- Contatta:
Non ho potuto provare lo slackbuild, visto che sono costretto a letto e obbligato ad usare un portatile con Win$ XP, ma volevo dirti che sei un mito.
Assieme a Loris e tutti quelli che lavorano per procurarci tutti questi TGZ, state facendo davvero qualcosa di straordinario, che ci permette, sempre più, di avvicinarci ad essere una comunità stile Debisn e farci rimpiangere sempre meno apt-get tanto osannato.
GRAZIE !!
Assieme a Loris e tutti quelli che lavorano per procurarci tutti questi TGZ, state facendo davvero qualcosa di straordinario, che ci permette, sempre più, di avvicinarci ad essere una comunità stile Debisn e farci rimpiangere sempre meno apt-get tanto osannato.
GRAZIE !!