PDA

Afficher la version complète : Projet d'installation automatisé des drivers nvidia par script



Burn2
05/06/2007, 13h13
Bonjours à tous, je sais que l'installation n'est pas des plus compliquée, mais je me demandais pourquoi ne pas faire un script tout simple contenant les commandes à tapper? Genre on place le script dans le répertoire où sont situés les drivers nvidia avec un grep on récupère le driver (le dernier par exemple de ce dossier) puis avec un petit menu tout pourris, on lui demande s'il veut installer ce drivers, désinstaller le driver, ou installer les headers? Doit même y avoir moyen de vérifier que ça soit bien installé d'ailleur non???
Le tout en bash, alors aprés si on peut même récupérer facilement le derniers drivers depuis le site de nvidia facilement et le télécharger bah encore mieu! http://www.alionet.org/style_emoticons/<#EMO_DIR#>/dry.gif

Bref qu'en pensez vous?

Sinon ça me tenterais bien de faire ce petit script http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

Heero_Yuy
05/06/2007, 13h26
Salux Burn2,

Je ne suis pas le spécialiste du script shell, mais ton idée est intéressante et m'intéresse fortement (easySUSE oblige).

Alors si tu veux aider à easySUSE comme tu l'as proposé ailleurs (et même si tu ne veux plus), je ne peux que t'encourager pour écrire ce script, et si tu es d'accord on pourrait l'inclure à easySUSE http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Et bien sûr, ton nom sera dans la liste des personnes ayant participé au projet.

Qu'en penses-tu ?


Sinon, pour revenir au script, il ne doit pas être très compliqué à écrire, donc vas-y, lâches-toi.

Et un dernier point, il est possible de récupérer des fichiers sur le net avec la commande :


wget

(plus d'info en consultant la page de manuel : man wget)

Et comme le nom change à chaque nouveau driver (numéro de version oblige), il faudra, à mon avis, utiliser des expressions régulières (http://fr.wikipedia.org/wiki/Expressions_r%C3%A9guli%C3%A8res).

Burn2
05/06/2007, 13h35
Oui je savais que c'était possible de le faire avec wget, sinon j'essaierais de m'y mettre ça me tente pas mal. Et bien sur que tu pourras l'intégrer! Ce que je fais c'est pour que ça serve pas pour décorrer lol. Alors si c'est fonctionnel pourquoi pas! mais je me demande si c'est intégrable dans easy OpenSuse, puisque mon but est d'aller chercher les drivers nvidia propriétaires et de les installer par comme indiqué sur le wiki, et donc , comment tu fais pour avoir l'affichage vu que t'es obligé de passer en mode init3 pendant l'installation et donc être sur un terminal (ctrl alt F1 par exemple)???
A mon avis ce script ne peut être lancé qu'à part non?

Heero_Yuy
05/06/2007, 13h55
J'y avais pas pensé au mode init 3. Merci de me le faire rappeler.

Je ferais quelques tests ce week end à ce sujet : un petit code C qui lance un script shell qui passe en init 3, pour voir si ça marche.

Il faudra peut-être compléter le script initial avec des tubes pour pouvoir communiquer mais c'est pas le but principal pour le moment.

Je te dirais quoi la semaine prochaine.

Burn2
05/06/2007, 13h57
Oki. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

yobe
05/06/2007, 14h07
Bonjours à tous, je sais que l'installation n'est pas des plus compliquée, mais je me demandais pourquoi ne pas faire un script tout simple contenant les commandes à tapper?[/b]

Dans le même ordre d'idée, je me suis toujours demandé s'il n'existait pas (s'il était possible de faire) un script qui installe les packages nécessaire au débridage des composants multimédia.
Bien sûr dans le cas où il faudrait l'écrire, ce serait juste à titre d'exercice.

Heero_Yuy
05/06/2007, 14h09
Yobe,

C'est ce que je suis en train de faire en développant easySUSE http://www.alionet.org/style_emoticons/<#EMO_DIR#>/tongue.gif

Burn2,

Contrairement à ce que l'on peut voir chez Debian, il n'y a pas un fichier avec la liste des sources ajoutées mais un fichier XML pour chaque source ajoutée à Yast : pour t'en convaincre, il suffit de faire un tour dans le répertoire (en root bien sûr) :

/var/lib/zypp/db/sources

et d'ouvrir avec un éditeur de texte chaque fichier dans ce répertoire http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
05/06/2007, 14h09
<div class='quotetop'>Citation (Burn2 @ 5/06/2007 à 13:13) <{POST_SNAPBACK}> (index.php?act=findpost&pid=139608)

Bonjours à tous, je sais que l'installation n'est pas des plus compliquée, mais je me demandais pourquoi ne pas faire un script tout simple contenant les commandes à tapper?[/b]

Dans le même ordre d'idée, je me suis toujours demandé s'il n'existait pas (s'il était possible de faire) un script qui installe les packages nécessaire au débridage des composants multimédia.
Bien sûr dans le cas où il faudrait l'écrire, ce serait juste à titre d'exercice.
[/b][/quote]

Je pensais exactement à ça pour la suite. Idem pour la liste des sources et dépots que l'on pourrait mettre. Si Yast prend bien sa source dans le même fichier que les autres distrib bah dans ce cas c'est assez facile.

(d'ailleur c'est quoi l'équivalent à APT-get sous OpenSuse?)

Burn2
05/06/2007, 14h17
Arg le xml http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif caÿ une bonne norme mais caÿ chiant dans ce cas là http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Bon ben ça doit quand même être gérable.

Heero_Yuy
05/06/2007, 14h20
Ajouter des sources :


zypper sa <adresse_de_la_source>


Lister les sources :


zypper sl

Burn2
05/06/2007, 14h21
et ben c'est pas si difficile que ça alors. C'est pas bien loin du echo > nom_dufichier http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Heero_Yuy
05/06/2007, 14h37
Et oui. C'est en creusant un peu plus chaque jour dans l'univers Linux que l'on découvre des merveilles http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
05/06/2007, 14h39
Ouep, je découvre juste OpenSuse et j'ai pas vraiment eu le temps de m'y plonger. Je pense d'ailleur basculer mon fixe dés ce weekend sous OpenSuse aussi.
Comme ça j'aurais tous mes pc avec multiboot xp et OpenSuse http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

yobe
05/06/2007, 14h44
Yobe,

C'est ce que je suis en train de faire en développant easySUSE http://www.alionet.org/style_emoticons/<#EMO_DIR#>/tongue.gif[/b]
Désolé, je suis un peu à la rue en ce moment.

Heero_Yuy
05/06/2007, 14h54
Y a pas péril en la demeure Yobe http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

maxxous
08/06/2007, 17h22
Salux
Pour le script perso j'utilise konvenient il te permets d'installer les driver nvidia ou ati les codecs, les sources en 1click.

Burn2
08/06/2007, 17h46
Il marche sous OpenSuse?

aldolinux
08/06/2007, 18h28
K comme KDE ? ca marche sous Gnome ?

maxxous
08/06/2007, 19h19
C'est pour kde c'est en rpm lien:
http://www.alionet.org/style_emoticons/<#EMO_DIR#>/arrow.gif http://www.kde-apps.org/content/download.p...=43378&id=1 (http://www.kde-apps.org/content/download.php?content=43378&id=1)

Après surement que sa peut fonctionner sous gnome il faut que tu installe kommander-runtime voila a essayer.

Et oui sa marche sous opensuse car c'est fait que pour pour la suse.

Burn2
08/06/2007, 21h52
Hum je suis sous gnome donc pas trop envie de tester et à mon avis ça ne doit pas aller télécharger les drivers du site mais utiliser Yast donc c'est pas ce que je cherche à faire http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
22/06/2007, 17h01
Bon m'y suis mis là rapidemet.

<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
#!/bin/sh

# Script codé par Burn2
#Toute réutilisation d'une partie ou de la totalité de ce code est autorisée http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif
#Cela dit une ptite pensée envers son créateur serait bien vue http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif


clear
echo " ***Bienvenue dans le programme d'installation des drivers nvidia****"
echo ""
if [ $UID -eq "0" ]
then
echo "Attention votre session graphique va etre fermee,"
echo " veuillez tout sauvegarder avant d'effectuer cette installation"
echo ""
echo "Continuer? (1 pour continuer, 0 pour quitter)"
read reponse
echo""
if [ $reponse -eq "1" ]
then
echo "Installation en cour"
init 3
#Options -an pour accepter la licence automatiquement et ne pas télécharger de module prés compiler mais pour compiler en live
sh `find NV*` -an
sax2 -m 0=nvidia
init 5
else
echo "Vous avez quitte"
fi
exit
else
echo "/!\\Ce script doit être lancé à partir d'une session root. (su)/!\\"
echo "Logguez vous en root (commande su) et relancez le."
exit
fi
</div>

Qu'en pensez vous???

La le seul truc à faire c'est de télécharger le drivers nvidia, de le placer dans le même dossier et surtout n'en mettre qu'un et lancer le script en mode root depuis le terminal normal, c'est pas immence, je peux l'amméliorer et le rendre plus pratique mais c'est déjà ça non?


Ce qui est prévu:
Peut être un logiciel avec un menu pour pouvoir désinstaller le drivers précédent etc.
récupérer une version particulière du drivers nvidia depuis le ftp?

Etc aprés je suis ouvert à toutes vos propositions réalisables

phoenix
22/06/2007, 17h08
Il est pas mal ce petit script http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

Il est assez facile de rajouter une fonction qui télécharge le pilote aussi http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif
Je te laisse chercher pour ça Burn2 http://www.alionet.org/style_emoticons/<#EMO_DIR#>/tongue.gif

Burn2
22/06/2007, 17h11
Oui wget powa, c'est ce que j'avais vu lol. mais je réfléchie.

Je vais voir pour faire un menu et désinstaller etc.

phoenix
22/06/2007, 17h15
Oui, wget est très bien pour ça.

Si tu veux faire une interface sans trop te casser la tête, je te conseille de zieuter sur le programme appelé zenity

Burn2
22/06/2007, 17h18
Ok merki du conseil http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

Heero_Yuy
25/06/2007, 10h27
Il m'a l'air vraiment pas mal ton script Burn2.

En utilisant wget, cela rendra encore plus transparente l'installation du driver.

A voir aussi, pour inclure les Legacy pour les anciennes cartes http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif Mais bon, ça c'est du détail.

Burn2
26/06/2007, 10h49
Merci, j'essaierais de pofiner ça. Mais le pb de wget, c'est comment arriver à trouver le dernier drivers en date???

Là ce que je comptais faire,c est permettre une désinstallation d'un drivers en plus, et juste de placer le dernier drivers dans le même dossier. Etc.

Un peu contraignant, mais pour télécharger le dernier drivers ça incombe de pouvoir trouver quel est le dernier drivers et son chemin d'accés???

Bref à voir comment est foutu le ftp de nvidia. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

Heero_Yuy
26/06/2007, 11h51
Avec un peu de patience, tu devrais y arriver http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
26/06/2007, 11h52
Ouep http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

Burn2
27/06/2007, 16h08
Bon modifications prévues aujourd'hui:
Rajout d'un menu permettant de choisir:
*installation
*désinstallation

D'un drivers. Par différentes méthodes. L'installation allant soit télécharger le dernier drivers (à moi de trouver comment faire http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif) soit installer le drivers présent dans ce même dossier (en priorité) s'il y en a un.

Aprés l'objectif serait de faire quelque chose de graphique à la base et surtout de faire automatiquement le ctrl alt +f1 mais je ne vois pas trop comment faire ça.

Enfin bon déjà quand j'aurais fais ça on verra pour la suite http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif


EDIT: pour récupérer le dernier drivers suffit que j'ouvre le fichier latest.txt .
ftp://download.nvidia.com/XFree86/

Aprés avoir vérifier la version de linux en cours. (uname -r powa quoi http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif)

(pour mes test: ftp://download.nvidia.com/XFree86/Linux-x....14.11-pkg1.run (ftp://download.nvidia.com/XFree86/Linux-x86/100.14.11/NVIDIA-Linux-x86-100.14.11-pkg1.run) )

Burn2
27/06/2007, 19h35
HUm j'ai comme un ptit pb avec la commande wget....
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
wget ftp://download.nvidia.com/XFree86/Linux-x....14.11-pkg1.run (ftp://download.nvidia.com/XFree86/Linux-x86/100.14.11/NVIDIA-Linux-x86-100.14.11-pkg1.run)
--19:32:00-- ftp://download.nvidia.com/XFree86/Linux-x....14.11-pkg1.run (ftp://download.nvidia.com/XFree86/Linux-x86/100.14.11/NVIDIA-Linux-x86-100.14.11-pkg1.run)
=> `NVIDIA-Linux-x86-100.14.11-pkg1.run'
Résolution de download.nvidia.com... 80.239.144.142, 80.239.144.156, 80.239.144.170
Connexion vers download.nvidia.com|80.239.144.142|:21...

</div>

ça bloque sur la connection, je suppute soit un pb de firewall soit un ça marche pas avec wget sur le ftp de nvidia????
Quelqu'un aurait-il une idée?
Parce s'il faut configurer son firewall pour utiliser wget c'est mourute là déjà.


EDIT:
Autre essais:
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
wget ftp://download.nvidia.com/XFree86/Linux-x86/latest.txt
--19:39:43-- ftp://download.nvidia.com/XFree86/Linux-x86/latest.txt
=> `latest.txt'
Résolution de download.nvidia.com... 80.239.144.156, 80.239.144.170, 80.239.144.142
Connexion vers download.nvidia.com|80.239.144.156|:21...connecté .
Ouverture de session en anonymous...Session établie!
==> SYST ... complété. ==> PWD ... complété.
==> TYPE I ... complété. ==> CWD /XFree86/Linux-x86 ... complété.
==> PASV ...
</div>
Cette fois ça reste bloqué sur PASV. :/
EDIT2:
Aprés au moins 10 minutes ça a marché!!!!! http://www.alionet.org/style_emoticons/<#EMO_DIR#>/ohmy.gif



EDIT3: C'était un pb sur le ftp de NVIDIA à paremment tout marche niquel now!



EDIT4: Bon pour récupérer le noyau 64 ou i686 normal je vais le faire en uname -r avec un cut, mais quelqu'un peut-il me donner les différentes réponses de cette commande en fonction des noyaux (64bit etc) pas en fonction du n° du noyau ça je m'en moque http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif
Default= X86
?=64 ???
Sinon je peux mettre si c'est pas default c'est 64 vu que pas grand monde a des ititanium, mais ça me semble trop restrictif, donc je préfèrerais avoir la liste exaustive des noyaux utilisés dans OpenSuse.

Heero_Yuy
28/06/2007, 08h13
Une petite astuce pour le wget.

Utilises la commande,
wget -c ftp://download.nvidia.com/XFree86/Linux-x....14.11-pkg1.run.

<div class='quotetop'>Citation (page de manuel de wget @ 28/06/2007 )</div>
-c
--continue
Reprend le téléchargement d'un fichier incomplet. C'est utile pour achever le téléchargement commencé par une instance précédente de Wget, ou par un autre programme.[/b]

Sources :

man wget
ou

http://www.delafond.org/traducmanfr/man/man1/wget.1.html

<div class='quotetop'>Citation (Burn2 @ 27/06/2007 à 19:35) <{POST_SNAPBACK}> (index.php?act=findpost&pid=143284)</div>
EDIT4: Bon pour récupérer le noyau 64 ou i686 normal je vais le faire en uname -r avec un cut, mais quelqu'un peut-il me donner les différentes réponses de cette commande en fonction des noyaux (64bit etc) pas en fonction du n° du noyau ça je m'en moque http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif
Default= X86
?=64 ???
Sinon je peux mettre si c'est pas default c'est 64 vu que pas grand monde a des ititanium, mais ça me semble trop restrictif, donc je préfèrerais avoir la liste exaustive des noyaux utilisés dans OpenSuse.[/b]

Pour ce point, tu peux peut-être utiliser des expressions régulières (http://fr.wikipedia.org/wiki/Expression_r%C3%A9guli%C3%A8re) http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
28/06/2007, 10h30
Oki merki, pour le wget -c j'avais vu vi http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Merki de ton aide. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Heero_Yuy
28/06/2007, 10h34
De rien. On bosse un peu dans le même bateau. Avec nos codes, on essaye de rendre la vie facile aux SUSiennes et aux SUSiens http://www.alionet.org/style_emoticons/<#EMO_DIR#>/tongue.gif

Burn2
28/06/2007, 11h10
Vi mais caÿ sympas d'aider http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Burn2
30/06/2007, 13h44
Hum je vois pas en quoi les expressions régulières pourraient m'aider pour la recherche de si c'est un noyau 64 bit ou po http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

J'ai juste besoin de savoir si le noyau est default ou 64 bit vu que c'est la seul restrictions au début pour les drivers nvidia (dans les répertoires ftp) Donc quelqu'un qui a une distrib en 64 bit peut il me donner la réponse de:

uname -r

Merci d'avance.

perso258741
30/06/2007, 14h05
Ce serait plutôt un uname -i ou uname -m
Je pourrai tester ça dès que j'aurai réinstallé mon opensuse (je viens de changer de proc). Je pense que je répondrai dans la soirée, si je ne me fais pas doubler

Burn2
30/06/2007, 14h08
Ce serait plutôt un uname -i
Je pourrai tester ça dès que j'aurai réinstallé mon opensuse (je viens de changer de proc). Je pense que je répondrai dans la soirée, si je ne me fais pas doubler[/b]
ça renvoie i386 pour moi par exemple c'est sur que ça peut-être plus pratique.
merci pour ta réponse

Burn2
30/06/2007, 15h19
Bon j'ai comme un petit choucroutage.

Voici un bout de script en test:

Noyau="Linux-x86"
rm latest.txt
chemin="ftp://download.nvidia.com/XFree86/$Noyau/latest.txt"
wget $chemin
drivers=`cat latest.txt|cut -d" " -f2`
echo $drivers
wget -c ftp://download.nvidia.com/XFree86/$Noyau/$drivers
Bon le echo drivers me renvoie:

100.14.11/NVIDIA-Linux-x86-100.14.11-pkg1.run
Soit exactement ce que je veux. Donc tout le lien étant bon, sauf que quand je fais mon wget à la fin:


ftp://download.nvidia.com/XFree86/Linux-x86/100.14.11/NVIDIA-Linux-x86-100.14.11-pkg1.run%0D
=> `NVIDIA-Linux-x86-100.14.11-pkg1.run%0D'
Résolution de download.nvidia.com... 80.239.144.170, 80.239.144.156, 80.239.144.142
Connexion vers download.nvidia.com|80.239.144.170|:21...connecté .
Ouverture de session en anonymous...Session établie!
==> SYST ... complété. ==> PWD ... complété.
==> TYPE I ... complété. ==> CWD /XFree86/Linux-x86/100.14.11 ... complété.
==> PASV ... complété. ==> RETR NVIDIA-Linux-x86-100.14.11-pkg1.run\015 ...
Fichier « NVIDIA-Linux-x86-100.14.11-pkg1.run\015 » inexistant.
et pour cause y a pas de "NVIDIA-Linux-x86-100.14.11-pkg1.run\015"
et si on regarde la première ligne il va chercher:
"ftp://download.nvidia.com/XFree86/Linux-x86/100.14.11/NVIDIA-Linux-x86-100.14.11-pkg1.run%0D" ce qui est en gras sors de je ne sais pas ou!
Ma question est pourquoi est ce qu'il rajoute tout seul\015 alors que tout est ok au niveau de la récupération du chemin????? j'avoue que je ne vois pas :/ Et j'ai testé directement le cat inclu avec ` ` ça fait exactement la même chose, il me rajoute ce qui est en gras sans raison.



EDIT: le fichier latest.txt:

100.14.11 100.14.11/NVIDIA-Linux-x86-100.14.11-pkg1.run

et un autre test qui donne exactement le même pb:

Noyau="Linux-x86"
rm latest.txt
chemin="ftp://download.nvidia.com/XFree86/$Noyau/latest.txt"
wget $chemin
drivers=`cat latest.txt|cut -d" " -f2`
echo $drivers
chemin="ftp://download.nvidia.com/XFree86/$Noyau/$drivers"
wget -c $chemin


EDIT2: la récupération de latest.txt marche tout à fait, c'est donc que dans ma récupération avec le cat dans le ficher latest.txt, il me prend un caractère en plus qui n'existe pas. LE fichier se termine bien par "run" sans aucun caractère même pas espace aprés, et le echo drivers me renvoie bien ce qu'il faut, je comprend pas là.

perso258741
30/06/2007, 16h46
Après une install toute neuve sur un 64 bits, uname -i comme uname -m me donnent :
x86_64

Burn2
30/06/2007, 16h48
Ok merki http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif
Hum moi uname -i renvoie:i386
uname -m : i686

Faut que je réfléchisse sur quel uname me baser.
Parce que je vois pas bien la différence entre uname -i et uname -m.


Donc je suis parti sur les recherches pour voir au cas ou mais bon.



EDIT:
En gros le seul truc qui m'importe c'est de tester si c'est un noyau 64bit appliqué, aprés que ça soit un i386 ou un i686 ça ne change rien. Donc uname -p c'est out.
Alors aprés quelle est la différence entre uname -i et uname -m???

Burn2
01/07/2007, 15h12
Bon ben je suis toujours bloqué sur ce ptit problème incompréhensible de caractère rajouté tout seul.

Faut que je cherche une alternative mais je ne vois vraiment pas comment faire...

Heero_Yuy
02/07/2007, 09h10
Salux,

Juste une petite idée comme ça en passant concernant le caractère ajouté en fin de ligne. Ne serait-ce pas un CR (retour à la ligne ou quelque chose comme ça) - style '\n' en C ?

[Edit]

Après vérification sur le code ASCII (http://fr.wikipedia.org/wiki/ASCII#Table_des_128_caract.C3.A8res_ASCII), le code \015 correspond bien à un Carriage Return (retour chariot). Faut juste trouver le moyen de le supprimer.

Je sais qu'avec la commande cut, on peut le faire.


cut -d '\015' -f 1

Pourrais peut-être t'aider (en adaptant bien sûr), mais je ne suis pas sûr que ça marche vraiment.

Burn2
02/07/2007, 11h29
Je pense que je vais lui carrer un petit coup de commande "sed" et ça va le calmer son "retour chario" à deux balles qui n'y est pas dans le fichier, comme dit précédemment, ya aucune ligne aprés cette ligne là, strictement rien de rien.
M'enfin merci beaucoup de ton aide, je n'y avais pas pensé plustôt car comme dit précédement le fichier n'a aucune autre ligne (parcouru avec le curseur pour voir etc) ni aucun caractère aprés. M'enfin avec un sed pour remplacer le retour chario par du vide ça devrait passer.

Heero_Yuy
02/07/2007, 11h32
Dans le fichier, effectivement, il n'y a rien d'inscrit, mais il y a forcément eu la touche [Entrée] qui a été appuyée pour passer à la ligne. Et donc, même si rien ne s'affiche, ce caractère est bien présent.
C'est la toute la complexité des fichiers texte http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
02/07/2007, 11h35
Bah normalement si le fichier a une autre ligne en faisant flèche bas tu te retrouve à la dernière ligne, vu qu'un retour chario c'est un retour à la ligne et donc même une ligne vide est visible puisque en faisant flèche bas tu te retrouve sur la ligne du bas vide en tout début. C'est ça que je ne comprend pas trop m'enfin.

Heero_Yuy
02/07/2007, 11h39
C'est vrai que c'est assez bizarre. A moins que ce ne soit un simuli de EOF (End Of File) ? Et donc, dans ce cas, ce serait plus logique qu'il n'y a pas de nouvelle ligne après.

Burn2
02/07/2007, 11h44
Oui mais je ne crois pas que Cat renvoye un Eof en fin de lecture mais c'est possible, bon toujours est t'il que je tente le sed. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

D'ailleur le topic peut-être déplacé dans aliobatch maintenant je pense non?

Heero_Yuy
02/07/2007, 11h45
Je ne pense pas encore, ici tu cherchais de l'aide pour programmer ton script. Une fois qu'il sera terminé et qu'il tournera sans trop de problème, là tu pourras créer un nouveau post dans Aliobash http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
02/07/2007, 12h00
Oki http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

EDIT:
Pour ton cut par contre ça ne marche pas. il ne récupère plus rien. Pour mon sed je galère,car j'ai bien l'impression que ce caractère n'existe pas au final dans le fichier.


Car ton cut ne renvoie rien, et mon sed n'arrange rien malgrés tout ce que je tente. Donc il est bien rajouté lors de l'intégration j'ai l'impression par ` `

perso258741
02/07/2007, 12h01
#!/bin/bash
Noyau="Linux-x86"
rm latest.txt
chemin="ftp://download.nvidia.com/XFree86/$Noyau/latest.txt"
wget $chemin
drivers=`cat latest.txt|cut -d" " -f2`
taille=$((${#drivers} - 1))
fichier=`head -c $taille adresse`
echo $drivers
`wget ftp://download.nvidia.com/XFree86/$Noyau/$fichier`

C'est pas forcément très propre mais ça marche : je retire le dernier caractère en prenant la taille de la variable - 1, puis un head

Burn2
02/07/2007, 12h09
Hum t'as pas foiré un truc avec adresse??? Faut le remplacer par le nom du fichier non???


EDIT: même en metant latest.txt, ça ne renvoie pas du tout ce qu'il faut, ça ne renvoie pas le chemin en entier donc c'est pas bon.

il va chercher:

ftp://download.nvidia.com/XFree86/Linux-x86/100.14.11
=> `100.14.11'
Résolution de download.nvidia.com... 80.239.144.142, 80.239.144.170, 80.239.144.156
Connexion vers download.nvidia.com|80.239.144.142|:21...connecté .
Ouverture de session en anonymous...Session établie!
==> SYST ... complété. ==> PWD ... complété.
==> TYPE I ... complété. ==> CWD /XFree86/Linux-x86 ... complété.
==> PASV ... complété. ==> RETR 100.14.11 ...
Fichier « 100.14.11 » inexistant.

--12:20:41-- http://100.14.11/NVIDIA-Linux-x86-100.14.1
=> `NVIDIA-Linux-x86-100.14.1'
Résolution de 100.14.11... 100.14.0.11
Connexion vers 100.14.11|100.14.0.11|:80...

j'ai testé aprés:

#!/bin/bash
Noyau="Linux-x86"
rm latest.txt
chemin="ftp://download.nvidia.com/XFree86/$Noyau/latest.txt"
wget $chemin
drivers=`cat latest.txt|cut -d" " -f2`
taille=$((${#drivers} - 1))
fichier=`head -c $taille latest.txt`
echo $drivers
chemin="ftp://download.nvidia.com/XFree86/$Noyau/$fichier"
wget $chemin
Là il va me chercher deux fois latest.txt


EDit2: non en fait ça fait pareil, c'étiat juste un pb d'espace avec le = qui merdé et qui n'affecté pas le chemin, ça ne change strictement rien. ça ne marche pas plus.

Heero_Yuy
02/07/2007, 12h43
#!/bin/bash
Noyau="Linux-x86"
rm latest.txt
chemin="ftp://download.nvidia.com/XFree86/$Noyau/latest.txt"
wget $chemin
drivers=`cat latest.txt|cut -d" " -f2`
taille=$((${#drivers} - 1))
fichier=`head -c $taille adresse`
echo $drivers
`wget ftp://download.nvidia.com/XFree86/$Noyau/$fichier`

C'est pas forcément très propre mais ça marche : je retire le dernier caractère en prenant la taille de la variable - 1, puis un head[/b]

Ce ne serait pas plutôt :


#!/bin/bash
Noyau="Linux-x86"
rm latest.txt
chemin="ftp://download.nvidia.com/XFree86/$Noyau/latest.txt"
wget $chemin
drivers=`cat latest.txt|cut -d" " -f2`
taille=$((${#drivers} - 1))
fichier=`head -c $taille adresse`
echo $drivers
wget ftp://download.nvidia.com/XFree86/$Noyau/$drivers

?

Burn2
02/07/2007, 12h48
Bon là ça marche mieu, mais ça fait exactement comme ma commande.


./test.sh
--12:48:13-- ftp://download.nvidia.com/XFree86/Linux-x86/latest.txt
=> `latest.txt'
Résolution de download.nvidia.com... 80.239.144.156, 80.239.144.142, 80.239.144.170
Connexion vers download.nvidia.com|80.239.144.156|:21...connecté .
Ouverture de session en anonymous...Session établie!
==> SYST ... complété. ==> PWD ... complété.
==> TYPE I ... complété. ==> CWD /XFree86/Linux-x86 ... complété.
==> PASV ... complété. ==> RETR latest.txt ... complété.
Longueur: 57 (non certifiée)

100%[====================================>] 57 --.--K/s

12:48:14 (3.41 MB/s) - « latest.txt » sauvegardé [57]

head: Ne peut ouvrir `adresse' en lecture: Aucun fichier ou répertoire de ce type
100.14.11/NVIDIA-Linux-x86-100.14.11-pkg1.run
--12:48:14-- ftp://download.nvidia.com/XFree86/Linux-x86/100.14.11/NVIDIA-Linux-x86-100.14.11-pkg1.run%0D
=> `NVIDIA-Linux-x86-100.14.11-pkg1.run%0D'
Résolution de download.nvidia.com... 80.239.144.156, 80.239.144.142, 80.239.144.170
Connexion vers download.nvidia.com|80.239.144.156|:21...connecté .
Ouverture de session en anonymous...Session établie!
==> SYST ... complété. ==> PWD ... complété.
==> TYPE I ... complété. ==> CWD /XFree86/Linux-x86/100.14.11 ... complété.
==> PASV ... complété. ==> RETR NVIDIA-Linux-x86-100.14.11-pkg1.run\015 ...
Fichier « NVIDIA-Linux-x86-100.14.11-pkg1.run\015 » inexistant.

Il me rajoute ce $$**$*$*$*$ de \015 à la fin http://www.alionet.org/style_emoticons/<#EMO_DIR#>/sad.gif

Heu non je viens de relire, la ligne avec adresse ne marche pas donc faut que je remplace par quoi??? le nom du fichier???

EDIT: ARf même en remplaçant par le nom du fichier ça fait exactement la même chose. Toujours ce \015 qui sort de je ne sais où.

Heero_Yuy
02/07/2007, 12h54
Je ne sais pas ce qu'est adresse et à quoi il sert.

Par contre, il devrait être possible d'enlever ce '\015' à la fin de la ligne o_O

Burn2
02/07/2007, 12h56
Au vu de:

head: Ne peut ouvrir `adresse' en lecture: Aucun fichier ou répertoire de ce type
j'en ai déduis qu'il fallait mettre le nom de mon fichier ou je veux apppliquer ça.

Mais même comme ça ça ne fait rien de plus. :/

Mais je reste persuadé qu'il n'y a pas de /015 sur le fichier, quand je rajoute ton cut, je récupère rien, quand je fais un sed pour remplacer ça ne change strictement rien.

Y a quoi comme autre manière pour récupérer le contenu d'un fichier du genre de cat?


Oui ça doit être possible j'ai envie de dire:
"Y en a qui on essayé! Ils en ont eu des pb!!!"
CF chevalier laspales http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Heero_Yuy
02/07/2007, 13h08
Ah, tiens, là où c'est étrange, lorsque j'enregistre le fichier latest.txt sur mon disque et que je l'ouvre avec un éditeur de texte, de mon côté, j'ai bel et bien une nouvelle ligne à la fin du fichier.

Une idée, remplaces la ligne où il y a le cut par celle-ci :


drivers=`cat latest.txt | cut -sd ' ' -f2`

Burn2
02/07/2007, 13h21
Effectivement moi aussi maintenant................


/me se sent un peu con lol.


EDIT: Non avec ton cut je récupère que le listing, donc ça ne récupère pas le passage. Je vais tenter de voir avec sed y a pas.
Edit bah c'est quio ce binz maintenant je récupère plus rien????

Rho tout déconne lol. Bon petite pause, on reprend calmement.

EDIT2:C'est bon c'est moi qui avait pas décommanté une ligne http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

EDIT3: ça ne change rien avec ton cut :/

perso258741
02/07/2007, 13h29
Désolé vous répondez trop vite pour moi lol
En effet adresse c'était un fichier que j'avais fait créer automatiquement... voilà ce que je voulais dire
Mais apparemment vous avez réussi à régler le problème ?

#!/bin/bash
Noyau="Linux-x86"
rm latest.txt
chemin="ftp://download.nvidia.com/XFree86/$Noyau/latest.txt"
wget $chemin
drivers=`cat latest.txt|cut -d" " -f2`
taille=$((${#drivers} - 1))
fichier=`echo $drivers | head -c $taille`
echo $drivers
wget ftp://download.nvidia.com/XFree86/$Noyau/$fichier
Edit : Lol les tests c'est toujours plein de rebondissements.... apparemment le mien marche. J'ai fait un head pour retirer tous les caractères sauf le dernier.

Burn2
02/07/2007, 13h40
"T'in" et le serveur de nvidia qui choucroute et répond pas plein de fois :@


EDIT: Effectivement ça marche avec ta méthode merci manux!!!!!


EDIT2: Bon j'ai plus qu'a me replongé pour lancer avec sh vu que ça ne veut plus marcher encore pour le sh et le cat bon on va se débrouiller. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif


EDIT3 : c'est bon ça roule en reprenant ta méthode!

perso258741
02/07/2007, 13h54
De rien http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif ! Ça m'a appris deux trucs sur les scripts : le coup du $((${#drivers} - 1))
Je ne connaissais ni la manière pour avoir la taille d'une chaine de caractère, ni la manière de faire une opération lol

Burn2
02/07/2007, 13h55
Donc pour le moment on arrive à:

<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
#!/bin/sh

# Script codé par Burn2
#Toute réutilisation d'une partie ou de la totalité de ce code est autorisée http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif
#Cela dit une ptite pensée envers son créateur serait bien vue http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif
#Merci à tous ceux qui ont contribué à la réalisation de ce script http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

clear
echo " ***Bienvenue dans le programme d'installation des drivers nvidia****"
echo ""
#On vérifie que l'utilisateur en cours soit root
if [ $UID -eq "0" ]
then
echo "Attention votre session graphique va etre fermee,"
echo " veuillez tout sauvegarder avant d'effectuer cette installation"
echo ""
echo "Installer un driver? (1)"
echo "Desinstaller un driver (2)"
echo "Quitter (0)"
read reponse
echo""
let drivers=0
#On compte le nb de drivers dans le dossier courrant
drivers = `find NV* |wc -l`

#Noyau 64bit ou pas
Noyau="Linux-x86"


if [ $reponse -eq "1" ]
then
echo "Installation en cour"
init 3
echo "Il y a $drivers Driver(s) dans le dosiers voulez vous en installer un ou télécharger le dernier?"
echo "1 pour télécharger, 0 pour installer un drivers existant"
read reponse2
if [ $reponse2 -eq "0" ]
then
#Options -an pour accepter la licence automatiquement et ne pas télécharger de module prés compilé mais pour compiler en live
sh `find NV*` -an
sax2 -m 0=nvidia
init 5
else
rm latest.txt
chemin="ftp://download.nvidia.com/XFree86/$Noyau/latest.txt"
wget $chemin
drivers=`cat latest.txt|cut -d" " -f2`
taille=$((${#drivers} - 1))
fichier=`echo $drivers | head -c $taille`
echo $drivers
wget ftp://download.nvidia.com/XFree86/$Noyau/$fichier
drivers=`cat latest.txt|cut -d"/" -f2`
taille=$((${#drivers} - 1))
fichier=`echo $drivers | head -c $taille`
sh $fichier -an
fi

else
if [ $reponse -eq "2" ]
then
echo "Desinstallation en cour"
init 3
sh `find NV*` --uninstall
sax2 -m 0=nv
init 5

else
echo "Vous avez quitte"
fi
fi
exit

else
echo "/!\\Ce script doit être lancé à partir d'une session root. (su)/!\\"
echo "Logguez vous en root (commande su) et relancez le."
exit
fi
</div>

Sans commentaire, et pas encore tout vérifié, reste donc la vérification du noyau 64bit et pas mal de truc genre l'installation à partir d'un fichier déjà téléchargé (genre si y en a plusieur il faut que l'utilisateur puisse choisir son drivers, donc faut les lister, permettre un choix etc), mais ça avance pas mal. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

Moi ça m'aura appris à me servir du head que je n'utilisais plus. En plus je l'avais vu rho.

Heero_Yuy
02/07/2007, 14h06
Va vraiment falloir que je mette au script shell moi, et aux commandes UNIX que je connais pas vraiment http://www.alionet.org/style_emoticons/<#EMO_DIR#>/tongue.gif

En tout cas, c'est bien que ton script avance. Il va être utile à beaucoup. Et j'essaierais de l'inclure dans easySUSE si possible et si tu le veux bien http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
02/07/2007, 14h11
#Toute réutilisation d'une partie ou de la totalité de ce code est autorisée

Je pense que cette partie du code doit suffir à ta réponse.
http://www.alionet.org/style_emoticons/<#EMO_DIR#>/laugh.gif

Le script shell et le C++ m'ont toujours pationné. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif C'est vraiment ce qui m'attire sous linux. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif


EDIT: En plus je t'avais déjà dis que c'était 100% d'accord. DE toute façon quitte à creer un script autant qu'il serve à quelque chose http://www.alionet.org/style_emoticons/<#EMO_DIR#>/laugh.gif

Heero_Yuy
02/07/2007, 14h25
Oki. Parfait, alors.

Dès que j'ai réglé mon ch'tit souci de codage utilisant libxml2, j'aurais fait un grand pas et je pourrais inclure ton script.

Burn2
02/07/2007, 14h38
Oki. Bon moi pause Miam et aprés on réavance avec la gestion de plusieurs fichiers nvidia.

Bien que j'ai un doute sur le est-ce utile? Concrètement qui utilise plusieur drivers en même temps? OU sinon suffit juste de dire de mettre qu'un seul drivers nvidia dans le dossier, ou alors je choisis d'installer le plus récent présent dans ce dossier tout simplement?

Je serais bien pour l'installation du dernier drivers présent dans le dossier.

Tien ça me fait penser qu'il faurait que je fasse un scrit pour l'année prochaine afin de promouvoir openSuse au sein de mon iut.

Permettant d'installer tous les logiciels nécéssaire à l'iut sous linux avec les libs, les dépots etc.

Heero_Yuy
02/07/2007, 14h42
Tien ça me fait penser qu'il faurait que je fasse un scrit pour l'année prochaine afin de promouvoir openSuse au sein de mon iut.

Permettant d'installer tous les logiciels nécéssaire à l'iut sous linux avec les libs, les dépots etc.[/b]

En modifiant easySUSE avec les besoins de l'IUT, y aura pas forcément grand chose à faire http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
02/07/2007, 14h43
Ouep mais le but est aussi d'inclure tout un tas de variable genre des racourcis (la commande ssh qu'on tappe pour se connecter à l'iut peut être chiante===> alias) etc. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif
M'enfin ça c'est une autre histoire reste d'abord ça à finir et à tester! D'ailleur ce qui m'inquiette un peu c'est que le serveur ftp de nvidia merdoie un peu de temps en temps à la connection va falloir que je gère ça aussi....

perso258741
02/07/2007, 15h24
Pour ton IUT t'auras qu'à prévoir une clé USB pour aller piocher dedans en cas de pb avec le serveur nvidia http://www.alionet.org/style_emoticons/<#EMO_DIR#>/tongue.gif

Burn2
02/07/2007, 16h07
Lol heu le projet pour l'iut c'est pas la même chose http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif Les drivers c'est génal, pour l'iut c'est juste préparer OpenSuse avec un environnement logiciel/lib et alias facilitant la prise en main (pour ce retrouver avec un environnement de travail proche de ce qu'on a à l'iut). http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif Pour promouvoir. Rien à voir avec ce projet là en cours http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif


EDIT:
Bon installation du dernier drivers présent dans le dossier c'est fait.

Reste à réfléchir pour la desinstallation comment faire. Car on peut avoir téléchargé le drivers suivant à installer avant de désinstaller le précédent ou pas.
Bref là y a creuser...
EDIT2: en fait me suffirait juste de savoir quel driver nvidia est installé... Donc reste à savoir comment trouver ça si vous avez the commande je suis preneur http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

EDIT3: Trouvé une solution! glxinfo et un grep pour trouver la ligne OpenGl version string: sur cette ligne je peux récupérer la version du drivers nvidia!!




************************************************** ****************************

Important
toutes les personnes ayant une carte graphique nvidia pourraient elle vérifier que :

glxinfo|grep "OpenGL version string:"|cut -d" " -f7|cut -d")" -f1
Renvoie bien le n° du drivers installé en cours???
pour moi ça marche et ça renvoie:

100.14.09

Merci d'avance.

Heero_Yuy
02/07/2007, 16h30
Pour désinstaller le driver NVidia, je ne pense pas qu'il faille chercher midi à 14h. Un passage au driver nv (libre) et zou on n'utilise plus le driver propriétaire NVidia.

La commande pour passer au driver libre :


sax2 -r -m 0=nv

avec 0 = zéro

Burn2
02/07/2007, 16h35
Bah perso je pensais désinstaller proprement si y a un uninstall sur le drivers c'est pas pour les chiens http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif Idem avant de changer de drivers généralement je désinstalle le précédent. lol.

Donc si je peux retrouver le drivers et s'il est encore là autant le faire proprement. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif DOnc me faut juste une confirmation du si ça marche ça pour retrouver le drivers installé.
COmme ça soit il y a encore l'ancien drivers présent et op désinstall propre sinon bah on fait ta méthode. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

Edit, tu as rajouté un -r qui doit changer quelque chose je suppose ? r comme remove...

/me s'en va lire le man.
r: remove data base et re-init the hardware database

ça m'a l'air assez efficace http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Heero_Yuy
02/07/2007, 16h39
Je ne sais pas s'il y a un uninstall sur le driver NVidia.

L'option -r permet de supprimer la détection de la base de données et de ré-initialiser la base de données matériel.

Source : man sax2 (http://www.digipedia.pl/man/sax2.man.1.html)

[Edit]

Arf, trop tard. Tu prends de bonnes habitudes à aller consulter la page de man http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
02/07/2007, 16h42
Si y a un uninstall sur le drivers nvidia

sh nom_du_drivers --uninstall http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

C'est ce que je fais tout le temps. Habitude de Debian lol.

Mais donc au final je sais pas si c'est utile sous OpenSuse....

Heero_Yuy
02/07/2007, 16h46
Utile ou pas, je ne sais pas vraiment. En général, je laisse mon driver NVidia installé (il faut dire que je n'en installe qu'un seul lors de l'installation de ma ch'tite SUSE).

Mais bon, mieux vaut prévenir que guérir, comme le dit le proverbe. Donc, pourquoi ne pas faire le uninstall, puis le
sax2 -r -m 0=nv, puis installer le nouveau driver NVidia. Au moins, on ne risque rien. Toutes les précautions auront été prises http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
02/07/2007, 16h48
Ouep c'est ce que je comptais faire. Bon par contre faudra trouver le drivers précédent d'ou ma question en haut. Si je trouve pas ben je fais directement le sax et install si c'est ce qui est demandé puis voilà.

Heero_Yuy
02/07/2007, 16h50
Je ne sais pas si c'est possible de trouver l'ancienne version du driver NVidia, mais bon, faut creuser, comme tout http://www.alionet.org/style_emoticons/<#EMO_DIR#>/tongue.gif

Burn2
02/07/2007, 16h53
bah ma commande permet de le trouver en lisant les infos de glxinfo lol. Normalement ça marche, je vois pas pourquoi la syntaxe changerait en fonction des cartes graphique donc faut juste vérifier, je pense que la réponse est normalisée à l'espace prés donc devrait pas y avoir de pb.

phoenix
05/07/2007, 09h50
Hum, c'est bien, ton script avance bien Burn2 !

Maintenant, il ne te reste plus qu'à détecter s'il s'agit d'une vieille carte nvidia, et dans ce cas, télécharger le pilote Legacy plutôt que le plus récent. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

Burn2
05/07/2007, 10h33
Ouep j'y avais pensé http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif Et là ça va être coton... :/


Bon aprés l'install d'amsn je m'y replonge pour avancer quand même. SInon je prévoie un menu, parce que j'avoue que pour savoir si c'est une vielle carte faut que je récupère le n° de la puce (nv40 35etc) pour savoir facilement si c'est une vielle carte ou pas. Donc je pense que c'est gérable, me semble que dans le xorg.conf c'est marqué....

Sinon on fera encore une recherche de folie avec des cut en cascade comme j'aime bien http://www.alionet.org/style_emoticons/<#EMO_DIR#>/ohmy.gif


EDIT: Arg y a po dans le xorg ni dans glxinfo. Arg ben je vais pas me tapper le nom des puces en hexadécimal quand même http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Burn2
05/07/2007, 14h21
Et même sax2 ne me renvoie pas ce que je veux. Rho mais ou je vais trouver un nvXX http://www.alionet.org/style_emoticons/<#EMO_DIR#>/sad.gif
Bon sinon je suis bon pour lister toutes les cartes qui sont gérées par les derniers drivers en cherchant la ligne renderer et chercher si je trouve:
8*** 7*** 6*** 5***

dans cette ligne sinon c'est que c'est une veille carte nvidia http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif
http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Heero_Yuy
05/07/2007, 14h45
Et la commande :


nvidia-settings -q gpus

?

Source : http://www.die.net/doc/linux/man/man1/nvidia-settings.1.html

Burn2
05/07/2007, 14h45
Heu si les drivers ne sont pas installé à la base le nvidia setting je vais avoir du mal à l'utiliser http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Heero_Yuy
05/07/2007, 14h49
C'est vrai, mais pour une mise-à-jour du driver, c'est envisageable http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Burn2
05/07/2007, 14h58
Ouep pour une mise à jours du drivers je ne me posais pas trop de question http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif Mais c'est justement à l'origine si on a rien installé. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Heero_Yuy
05/07/2007, 15h08
Peut-être du côté de nvclock (encore faut-il l'installer, mais je pense qu'une petite détection ne doit pas être difficile avec
rpm -q | grep nvclock ou un truc dans le genre http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif ).

Man nvclock (http://www.die.net/doc/linux/man/man1/nvclock.1.html)
Man rpm (http://pwet.fr/man/linux/administration_systeme/rpm)

Burn2
05/07/2007, 15h12
Moué enfin je préfèrerais évider d'installer un module pour rien http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif Je vais plustôt le faire à partir du nom de la puce. Il me semble que seules les gf5,6,7 et8 sont compatibles avec les derniers drivers non???

DOnc en récupérant le nom de la puce et en vérifiant comme dit plus haut ça sera bien plus pratique.

Exemple pour mieu comprendre:


nvidia go 6600

6XXX donc gf6 donc compatible.

Ainsi il me suffit juste d'avoir la liste des séries compatibles avec ce drivers et non pas la liste entière. Donc vu qu'il n'y en a pas beaucoup et qu'au pire ça sera 1 ou 2 série à rajouter ça ne sera pas bien génant je pense.

Heero_Yuy
05/07/2007, 15h16
Comme tu veux.

Peut-être trouveras-tu des infos ici : man xorg.conf (http://pwet.fr/man/linux/formats/x/xorg_conf), mais là, je crois que ça se fera sans moi http://www.alionet.org/style_emoticons/<#EMO_DIR#>/tongue.gif

Burn2
05/07/2007, 15h19
Bah po besoin. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif Je sais déjà ou récupérer ça dans le xorg, ou dans le glxinfo http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Heero_Yuy
05/07/2007, 15h20
Oki http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Burn2
05/07/2007, 15h27
J'adore les
Grep cut cut cut grep en cascade http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

/me est un déglingo des commandes à ralonges avec 0789789pipes http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

J'adore les
Grep cut cut cut grep en cascade http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Burn2
05/07/2007, 17h00
Et la petite commande qui va bien:


glxinfo|grep "OpenGL renderer string:"|cut -d"/" -f1|cut -d":" -f2|grep -E "[5-9][0-9]{3}|wc -l"

Soit ça répond 1 et c'est bien une gf>=5 soit ça répond 0 et c'est drivers légacy. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

EDIT: Y a un cut inutile pour compter le nb de ligne, que j'enlèverais (le deuxième) qui était juste pour de la présentation quand je vérifié. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

EDIT:2 Hum je me demande si glxinfo marche si y a que le drivers nv de base d'installé?

Heero_Yuy
06/07/2007, 08h44
Salux,

Ton script, notamment la commande que tu viens de donner, devra être maintenu le plus souvent possible, car aujourd'hui les cartes graphiques qui ne nécessitent pas le driver legacy, le nécessiteront un jour ou l'autre.

C'était juste un petit rappel de courtoisie entre dev http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
06/07/2007, 09h51
Ouep je sais. Mais je ne vois pas comment faire autrement que de la sorte. C'est juste une commande à maintenir, c'est pas non plus supra compliqué http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Mais je vais la changer, un peu, parce que je préfèrerais tapper dans le xorg qui est plus normalisé, pour plus de sécurité donc je vais changer cette ligne et essayer d'avancer aujourd'hui.

Heero_Yuy
06/07/2007, 09h55
Oki. Alors bon courage. Car d'après ce que j'ai lu dans le
man xorg.conf, certains paramètres qui me semble-t-il pourrait te servir sont optionnels et ne sont donc pas toujours informés.

Burn2
06/07/2007, 10h09
OUep mais le nom de la puce en partie device elle est toujours renseignée http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif Donc c'est bon avec cette ligne. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Heero_Yuy
06/07/2007, 10h10
Oki http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

Burn2
06/07/2007, 10h36
cat /etc/X11/xorg.conf|grep "BoardName"|cut -d"\"" -f2|grep -E "[5-9][0-9]{3}"|wc -l

Tadam ça fait la même chose mais à partir de xorg http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

phoenix
06/07/2007, 11h07
Sous la Suse, il devrait être possible d'utiliser hwinfo pour avoir les infos sur la carte graphique.

Burn2
06/07/2007, 11h10
Heu vi si je savais comment ça marchait aussi http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif à voir http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif M'enfin bon là ça marchera trés bien comme méthode http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Heero_Yuy
06/07/2007, 11h11
Pas testé, mais effectivement :


hwinfo --gfxcard

pourrait donner des infos utiles http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
06/07/2007, 11h30
Hum ça me donne les mêmes infos que dans le xorg ou que je récupère dans glxinfo.
Celà dit c'est plus pratique pour faire une vérification que j'étai en train de me tapper sur le xorg là pour savoir quel drivers était installé (nv ou nvidia et si c'est nvidia on vérifie pour le désinstaller avant d'installer etc) http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Du coup c'est légèrement plus facile. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Bon on va tout rebasculer sur ça. Par contre j'ai du mal à voir la différence entre:
driver: "nvidia"
driver Modules: "nvidia"


???

Heero_Yuy
06/07/2007, 11h54
Par contre j'ai du mal à voir la différence entre:
driver: "nvidia"
driver Modules: "nvidia"
???[/b]

Je ne peux pas t'aider sur ce coup-là. Désolé. Faudrait voir avec nv si ça donne la même chose (à savoir 2 fois le même nom).

Burn2
06/07/2007, 11h57
Bon sinon je vais tout faire à partir de hwinfo --glxcard

je voudrais récupérer cette ligne:

Device: pci 0x0148 "GeForce Go 6600 (0x0148)"

Manque de pot y a un autre device dans la sélection (subDevice) il faudrait donc que je choppe la ligne qui commence strictement par: " Device:"
Sauf que je ne vois pas comment lui dire, la ligne qui commence par un espace puis Device et strictement ça. :/

Des idées avec grep???

(oui parce que ça ne se voit pas là mais la ligne qui contient device commence par un espace.

Sinon je fais un head pour ne récupérer que la première ligne mais j'ai peur pour la compatibilité aprés s'il n'y pas qu'un device dans les config??? Quoi qu'on est dans une partie graphique donc je ne pense pas que ça pbouge beaucoup, au pire y a deux devices si c'est du sli et en récupérant le premier ça ne change rien.

Heero_Yuy
06/07/2007, 12h02
Donnes nous l'intégralité de la commande :


hwinfo --glxcard

pour que je puisse bien visualiser le problème http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif et pouvoir peut-être te proposer une idée.

Burn2
06/07/2007, 12h08
Merci de ton aide, ça donne ça:


21: PCI 100.0: 0300 VGA compatible controller (VGA)
[Created at pci.286]
UDI: /org/freedesktop/Hal/devices/pci_10de_148
Unique ID: VCu0.QXdE6IqbDyC
Parent ID: vSkL.qMNzks0IR_8
SysFS ID: /devices/pci0000:00/0000:00:01.0/0000:01:00.0
SysFS BusID: 0000:01:00.0
Hardware Class: graphics card
Model: "Micro-Star International GeForce Go 6600 (0x0148)"
Vendor: pci 0x10de "nVidia Corporation"
Device: pci 0x0148 "GeForce Go 6600 (0x0148)"
SubVendor: pci 0x1462 "Micro-Star International Co., Ltd."
SubDevice: pci 0x0321
Revision: 0xa2
Driver: "nvidia"
Driver Modules: "nvidia"
Memory Range: 0xfa000000-0xfaffffff (rw,non-prefetchable)
Memory Range: 0xd0000000-0xd7ffffff (rw,prefetchable)
Memory Range: 0xf9000000-0xf9ffffff (rw,non-prefetchable)
Memory Range: 0xfbee0000-0xfbefffff (ro,prefetchable,disabled)
IRQ: 169 (530850 events)
I/O Ports: 0x3c0-0x3df (rw)
Module Alias: "pci:v000010DEd00000148sv00001462sd00000321bc03sc00 i00"
Driver Info #0:
XFree86 v4 Server Module: nv
Driver Info #1:
XFree86 v4 Server Module: nvidia
3D Support: yes
Config Status: cfg=no, avail=yes, need=no, active=unknown
Attached to: #10 (PCI bridge)

Primary display adapter: #21

en screen au cas ou:

http://img385.imageshack.us/img385/223/capturehwinfonb9.th.png (http://img385.imageshack.us/my.php?image=capturehwinfonb9.png)

Heero_Yuy
06/07/2007, 12h21
Je vois mieux le problème maintenant.

Ok, bon et bien 1ère chose qu'on va faire, c'est regarder la page de manuel de grep (http://etna.int-evry.fr/COURS/UNIX/fichiers/man-fr-html/man1/grep.1.html).

On trouve ceci :

<div class='quotetop'>Citation (man grep @ today)</div>
-F
Interprete le motif comme une liste de chaines figees, separees par des Sauts de Lignes (NewLine). La correspondance est faite avec n'importe laquelle de ces chaines.[/b]

et

<div class='quotetop'>Citation (man grep @ today)</div>
Fgrep est identique a grep -F[/b]

Et dans Wikipedia (http://fr.wikipedia.org/wiki/Grep), on a :

<div class='quotetop'>Citation (wikipedia @ today)</div>
fgrep, pour des recherches avec des motifs fixés ;[/b]

Donc, on en déduit que la commande :


hwinfo --glxcard | grep -F " Device:"

ou alors


hwinfo --glxcard | fgrep " Device:"

devrait donner un bon résultat.

Maintenant, je ne suis pas sûr à 100%, mais ça ne coûte rien d'essayer http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
06/07/2007, 12h24
Oki merki je tente ça aprés manger.

Heero_Yuy
06/07/2007, 12h28
Pas de souci. Bon appétit http://www.alionet.org/style_emoticons/<#EMO_DIR#>/tongue.gif

Burn2
06/07/2007, 13h36
Merki http://www.alionet.org/style_emoticons/<#EMO_DIR#>/ohmy.gif http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

EDIT:

hwinfo --glxcard | fgrep " Device:"

Merki ça a marché ça sans pb! Exactement ce que je cherchais! Merki beaucoup!

Bon du coup j'ai plus qu' a tout remodifier http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Heero_Yuy
06/07/2007, 14h19
De rien. Ce fut un plaisir http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

En même temps, ça m'a permis d'apprendre des choses aussi http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
06/07/2007, 14h51
Par contre le défaut de hwinfo c'est qu'il est plus long à l'accés/lancement que le fichier xorg ou autre. M'enfin c'est pas immence comme temps en plus.


Hum j'hésite fortement à ne pas me prendre la tête avec la désinstallation des drivers et faire ce que tu as dit :')

Heero_Yuy
06/07/2007, 15h10
Là, faut voir. Mais bon, ce n'est pas forcément beaucoup plus long à faire, je pense. Tu as déjà fait une bonne partie du travail http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
06/07/2007, 15h36
Bon du neuf!

<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
#!/bin/sh

# Script codé par Burn2
#Toute réutilisation d'une partie ou de la totalité de ce code est autorisée http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif
#Cela dit une ptite pensée envers son créateur serait bien vue http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif
#Merci à tous ceux qui ont contribué à la réalisation de ce script

clear
echo " ***Bienvenue dans le programme d'installation des drivers nvidia****"
echo ""
#On vérifie que l'utilisateur en cours soit root
if [ $UID -eq "0" ]
then
echo "Attention votre session graphique va etre fermee,"
echo " veuillez tout sauvegarder avant d'effectuer cette installation"
echo ""
echo "Installer un driver? (1)"
echo "Desinstaller un driver (2)"
echo "Quitter (0)"
read reponse
echo""
let driversnb=0
#On compte le nb de drivers dans le dossier courrant
driversnb = `find NV* |wc -l`

#Noyau 64bit ou pas
Noyau="Linux-x86"

let isNvidia=0
#On regarde si le drivers présent est un drivers nvidia
isNvidia=`hwinfo --gfxcard | fgrep " Driver:"|cut -d"\"" -f2|fgrep "nvidia"|wc -l`

if [ $reponse -eq "1" ]
then
echo "Installation en cour"
init 3
echo "Il y a $driversnb Driver(s) dans le dosiers voulez vous en installer un ou télécharger le dernier?"
echo "1 pour télécharger, 0 pour installer un drivers existant"
read reponse2
if [ $reponse2 -eq "0" ]
then

#Options -an pour accepter la licence automatiquement et ne pas télécharger de module prés compilé mais pour compiler en live
if [ $driversnb -eq "0"]
then
echo "Il n'y a aucun drivers présent dans le dossier à installer!"
else
if [ $isNvidia -eq "0" ]
then
echo "Aucun drivers Nvidia installé, désinstallation inutile!"
else
echo "Installation en cours"
init 3
dri=`glxinfo|grep "OpenGL version string:"|cut -d" " -f7|cut -d")" -f1`
sh `find *"$dri"*` --uninstall
sax2 -m 0=nv
init 5
fi
sh `find NV*|tail -1` -an
sax2 -m 0=nvidia
init 5
fi
else
echo "Suppression du fichier contenant le n° du dernier drivers."
rm latest.txt
echo "Téléchargement du n° du dernier drivers sur le ftp nvidia."
chemin="ftp://download.nvidia.com/XFree86/$Noyau/latest.txt"
wget $chemin
drivers=`cat latest.txt|cut -d" " -f2`
taille=$((${#drivers} - 1))
fichier=`echo $drivers | head -c $taille`
echo "Téléchargement du dernier drivers nvidia sur le serveur."
#Pause pour éviter de se reconnecter directement au serveur nvidia
sleep 1
wget ftp://download.nvidia.com/XFree86/$Noyau/$fichier
drivers=`cat latest.txt|cut -d"/" -f2`
taille=$((${#drivers} - 1))
fichier=`echo $drivers | head -c $taille`
sh $fichier -an
fi

else
if [ $reponse -eq "2" ]
then
echo "Desinstallation en cour"
if [ $isNvidia -eq "0" ]
then
echo "Aucun drivers Nvidia installé!"
else
init 3
dri=`glxinfo|grep "OpenGL version string:"|cut -d" " -f7|cut -d")" -f1`
sh `find *"$dri"*` --uninstall
sax2 -m 0=nv
init 5
fi
else
echo "Vous avez quitte"
fi
fi
exit

else
echo "/!\\Ce script doit être lancé à partir d'une session root. (su)/!\\"
echo "Logguez vous en root (commande su) et relancez le."
exit
fi

</div>

Bon me reste:
*gestion du noyau (en cours d'ajout)
*détecter si c'est un legacy ou pas et changer le lien en fonction donc faut que j'aille faire un tour sur le ftp voir comment c'est fait.

APrés découper proprement en fonction vu qu'il y a pas mal de répétion et commenter le code, et surtout la grande phase de test lol. Vu que tout est de la théorie etc. Et que je n'est testé que petit bout par petit bout, je testerais en grandeur nature sur mon fixe, mais ça n'exclue pas des pb sur d'autre configuration avec tous les grep en cascades lol.

Heero_Yuy
06/07/2007, 15h49
Et bien dis donc, ça avance bien ton script http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Allez courage, bientôt il sera fini. Et pour les tests, je suis sûr que tu trouveras des bêta-testeurs ici même http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

Burn2
06/07/2007, 15h54
Prise en compte du noyau rajoutée avec:


#Noyau 64bit ou pas
Noyau=`uname -i`
if [ $Noyau -eq "x86_64" ]
then
Noyau="Linux-x86_64"
else
Noyau="Linux-x86"
fi


Merki angel, c'est pas un gros projet non plus hein, c'est kedal et à la portée de tout le monde donc y a po de mérite lol. Puis ça m'occupe pendant les vacances alors bon...
Puis si je m'y étais réellement plongé comme si j'étais au boulot y a longtemps qu'il aurait été fini. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/ohmy.gif (même constat pour toute personne normale d'ailleur)


Reste les légacy. Ou qu'ils sont foutu!!!


Hum je vois kedal sur le serveur ftp de nvidia!!!!
ftp://download.nvidia.com/XFree86

J'ai parcouru un peu tout et je ne vois rien du tout en drivers légacy, je crois que le téléchargement automatique ne sera pas pour eux, cela dit avec s'ils le téléchargent, le place dans le dossier mon script reste valable :s

phoenix
06/07/2007, 17h17
Pour les pilotes legacy, ils ne sont pas (ou rarement) mis à jour, tu peux donc mettre un lien direct pour le téléchargement.

Pour 32 bits : http://fr.download.nvidia.com/XFree86/Linu...0-7184-pkg1.run (http://fr.download.nvidia.com/XFree86/Linux-x86/1.0-7184/NVIDIA-Linux-x86-1.0-7184-pkg1.run)

Pour 64 bits : http://fr.download.nvidia.com/XFree86/Linu...0-7184-pkg2.run (http://fr.download.nvidia.com/XFree86/Linux-x86_64/1.0-7184/NVIDIA-Linux-x86_64-1.0-7184-pkg2.run)

Burn2
06/07/2007, 17h31
Heu ils sont quand même souvent mis à jours, et comment sais tu que le lien que tu donnes est un drivers legacy??? :??:

TOus les drivers présent sur el ftp sont des drivers normaux. Les legacy portent la même numérotation mais sont quand même récent pour s'adapter aux dernier noyau.

http://www.nvidia.fr/object/linux_fr.html

Donc ça serait c** de mettre un lien vers le plus pourris quoi.


Mais sinon comme dit précédement suffit de télécharger le dernier legacy de le mettre dans le dossier et de choisir une installation à partir d'un drivers déjà téléchargé et ça roule.

Burn2
07/07/2007, 10h03
Bon vu que je ne serais plus là pendant 2 semaines (vacance un ptit peu) je vais donc juste commenter mon code aujourd'hui http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

Burn2
23/07/2007, 23h24
Me voilà de retour, le projet continu donc dés demain http://www.alionet.org/style_emoticons/<#EMO_DIR#>/tongue.gif

Heero_Yuy
24/07/2007, 08h24
Re bienvenue Burn2. Bon courage pour la reprise du projet http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
24/07/2007, 10h19
Merki http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif Bon faut que je me rapelle ce qu'il y avait à vérifier http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif je crois qu'il me rester à gérer légacy ou pas, sachant que je ne pouvais pas aller le chercher sur le serveur ftp, et il restait les test si je me rapelle bien...

Burn2
26/07/2007, 12h18
Bon le projet avance!

Normalement c'est presque fini, me reste juste:
* Rajouter une documentation d'aide, soit inclu soit en fichier txt
* Faire tous les tests http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif
* Tout bien relire voir mieu commenter.


ps voici le code:
<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
#!/bin/sh

# Script codé par Burn2
#Toute réutilisation d'une partie ou de la totalité de ce code est autorisée http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif
#Cela dit une ptite pensée envers son créateur serait bien vue http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif
#Merci à tous ceux qui ont contribué à la réalisation de ce script

clear
echo " ***Bienvenue dans le programme d'installation des drivers nvidia****"
echo ""
#On vérifie que l'utilisateur en cours soit root
if [ $UID -eq "0" ]
then
echo "Attention votre session graphique va etre fermee,"
echo " veuillez tout sauvegarder avant d'effectuer cette installation"
echo ""
echo "Installer un driver? (1)"
echo "Desinstaller un driver (2)"
echo "Quitter (0)"
read reponse
echo""
let driversnb=0
#On compte le nb de drivers dans le dossier courrant
driversnb = `find NV* |wc -l`

#Noyau 64bit ou pas
Noyau=`uname -i`
if [ $Noyau -eq "x86_64" ]
then
Noyau="Linux-x86_64"
else
Noyau="Linux-x86"
fi

let isNvidia=0
#On regarde si le drivers présent est un drivers nvidia
isNvidia=`hwinfo --gfxcard | fgrep " Driver:"|cut -d"\"" -f2|fgrep "nvidia"|wc -l`

let isNotLegacy=0
#On regarde si la carte est une vielle carte donc pas gérée par les derniers drivers:
isNotLegacy=`hwinfo --gfxcard | fgrep " Device:"|cut -d"\"" -f2|grep -E "[5-9][0-9]{3}"|wc -l`

if [ $reponse -eq "1" ]
then
if [ $isNotLegacy -lt "1" ]
echo "Installation en cour"
echo "Votre carte est une vielle carte nvidia, il n'est donc pas possible"
echo "de télécharger un driver automatiquement."
echo "Rendez vous sur le site de nvidia (http://www.nvidia.fr/page/drivers.html ) et téléchargez le bon drivers."
echo "Une fois cette action exécutée, relancez le script et lancez l'install"
if [ $driversnb -eq "0"]
then
#Il n'y a pas de drivers dans le dossier
echo "Il n'y a aucun drivers présent dans le dossier à installer!"
exit
else
if [ $isNvidia -eq "0" ]
then
echo "Aucun drivers Nvidia installé, désinstallation inutile!"
else
#Si il y a déjà un drivers d'installé alors on le désinstalle proprement
echo "Installation en cours"
init 3
dri=`glxinfo|grep "OpenGL version string:"|cut -d" " -f7|cut -d")" -f1`
sh `find *"$dri"*` --uninstall
sax2 -m 0=nv
fi
#On installe le dernier drivers présent dans le dossier (le plus récent donc)
sh `find NV*|tail -1` -an
sax2 -m 0=nvidia
init 5
fi
else
echo "Installation en cour"
echo "Il y a $driversnb Driver(s) dans le dosiers voulez vous en installer un ou télécharger le dernier?"
echo "1 pour télécharger, 0 pour installer un drivers existant"
read reponse2
if [ $reponse2 -eq "0" ]
then

#Options -an pour accepter la licence automatiquement et ne pas télécharger de module prés compilé mais pour compiler en live
if [ $driversnb -eq "0"]
then
#Il n'y a pas de drivers dans le dossier
echo "Il n'y a aucun drivers présent dans le dossier à installer!"
else
if [ $isNvidia -eq "0" ]
then
echo "Aucun drivers Nvidia installé, désinstallation inutile!"
else
#Si il y a déjà un drivers d'installé alors on le désinstalle proprement
echo "Installation en cours"
init 3
dri=`glxinfo|grep "OpenGL version string:"|cut -d" " -f7|cut -d")" -f1`
sh `find *"$dri"*` --uninstall
sax2 -m 0=nv
fi
#On installe le dernier drivers présent dans le dossier (le plus récent donc)
sh `find NV*|tail -1` -an
sax2 -m 0=nvidia
init 5
fi
else
init 3
#On supprime le fichier latest.txt contenant le N° du dernier drivers à récupérer
echo "Suppression du fichier contenant le n° du dernier drivers."
rm latest.txt
echo "Téléchargement du n° du dernier drivers sur le ftp nvidia."
chemin="ftp://download.nvidia.com/XFree86/$Noyau/latest.txt"
wget $chemin
drivers=`cat latest.txt|cut -d" " -f2`
taille=$((${#drivers} - 1))
fichier=`echo $drivers | head -c $taille`
echo "Téléchargement du dernier drivers nvidia sur le serveur."
#Pause pour éviter de se reconnecter directement au serveur nvidia
sleep 1
wget ftp://download.nvidia.com/XFree86/$Noyau/$fichier
drivers=`cat latest.txt|cut -d"/" -f2`
taille=$((${#drivers} - 1))
fichier=`echo $drivers | head -c $taille`
sh $fichier -an
init 5
fi
fi

else
if [ $reponse -eq "2" ]
then
echo "Desinstallation en cour"
if [ $isNvidia -eq "0" ]
then
echo "Aucun drivers Nvidia installé!"
else
init 3
#On récupère le n° de version installé grace à glxinfo
dri=`glxinfo|grep "OpenGL version string:"|cut -d" " -f7|cut -d")" -f1`
sh `find *"$dri"*` --uninstall
sax2 -m 0=nv
init 5
fi
else
echo "Vous avez quitte"
fi
fi
exit

else
echo "/!\\Ce script doit être lancé à partir d'une session root. (su)/!\\"
echo "Logguez vous en root (commande su) et relancez le."
exit
fi
</div>

Heero_Yuy
26/07/2007, 13h22
Ca avance, c'est bien. Bon à première vue quelques corrections orthographiques s'imposent, mais rien de bien méchant http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Je verrais également une 4ème étape dans ce qu'il te reste à faire : optimiser le code en ajoutant des fonctions. Cela permettrait une meilleure lisibilité de ton code. Enfin pour ce que j'en dis http://www.alionet.org/style_emoticons/<#EMO_DIR#>/tongue.gif

Burn2
26/07/2007, 13h48
Ouep c'est ce que j'avais dis avant mon départ, découper le code en fonction. Sinon pour les corrections orthographique je veux bien de l'aide http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

C'est mon gros gros défaut http://www.alionet.org/style_emoticons/<#EMO_DIR#>/sad.gif

Heero_Yuy
26/07/2007, 13h58
Envoies moi le script final par mail et je corrige les fautes, disons demain matin http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
26/07/2007, 14h36
Oki je te fais ça merki http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif Par contre les fautes d'accents c'était fait exprés au début, aprés j'y ai plus fait gaf, parce qu'il me semble que les accents passent mal sur les terminaux...

Heero_Yuy
26/07/2007, 14h49
Pour les accents, je sais pas trop, je crois que tout dépend de l'encodage utilisé.

J'espère que je pourrais faire ça demain, car j'arrive pas à me connecter à ma boîte mail http://www.alionet.org/style_emoticons/<#EMO_DIR#>/sad.gif

Burn2
26/07/2007, 14h51
Arf :/

EDIT: mess envoyé. Bon je vais testé le script sur mon fixe http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Heero_Yuy
26/07/2007, 15h36
Oki. Merci.

Si j'arrive à me connecter à ma boîte mail, je le corrigerais http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

phoenix
26/07/2007, 16h40
Il faudrait préciser au lancement du script qu'il est Suse-only.

Burn2
26/07/2007, 17h04
Ouep of course. mais bon je pense que le nom du script en soit Nvidia-Suse laissait déjà présager ça http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Heero_Yuy
27/07/2007, 08h13
[Mode n'a rien avoir avec l'histoire]

Tiens, voilà que les oiseaux de feu se multiplient http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif http://www.alionet.org/style_emoticons/<#EMO_DIR#>/tongue.gif.

[/Mode n'a rien avoir avec l'histoire]

Burn2
27/07/2007, 10h28
Ouep lol http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif C'était pour changer un peu http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif
T'as eu le temps de corriger??? Sinon je vais essayer de lancer mon premier test sur le fixe voir si tout roule! http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Heero_Yuy
27/07/2007, 11h01
C'est corrigé et envoyé par mail. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Burn2
27/07/2007, 11h03
Oki merki!

Heero_Yuy
27/07/2007, 11h26
De rien http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
27/07/2007, 11h59
Arf faut que je reregarde tout mon code, depuis que tu l'as ouvert ça m'a rajouté plein de caractères http://www.alionet.org/style_emoticons/<#EMO_DIR#>/sad.gif

( des ^M un peu partout http://www.alionet.org/style_emoticons/<#EMO_DIR#>/sad.gif )


EDIT: Ben non ça vient pas de ça!! Mais c'est quio ce binz! Je veux lancer mon script:

./Nvidia-suse-correction.sh


bash: ./nvidia-Suse-Correction.sh: /bin/sh^M : bad interpreter: aucun fichier ou répertoire de ce type.
Alors que dans mon script j'ai bien /bin/sh.
C'est quoi de binz!


EDIT2: j'ai vérifié c'est bien depuis que tu as retouché à mon code. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/sad.gif Y avait beaucoup à corriger????


Y aurait moyen que tu m'envoies par mail les lignes à corriger gramaticalement?

EDIT3: Test en cours avec ma version mal orthographiée:

*Lancement sans droit de root:

*Désinstallation du drivers original avec le drivers encore dans le dossier

*Installation d'un drivers par téléchargement depuis le ftp de nvidia

*Désinstallation sans le drivers dans le dossier

*Installation à partir d'un drivers déjà dans le dossier.

Heero_Yuy
27/07/2007, 12h00
Je ne sais plus ce que j'ai corrigé, j'ai fait ça en lisant, et donc faudrait que je relise tout ça pour te dire ce qu'il faut corriger. Mais j'ai pas le temps de la faire cet après-midi.

Est-ce que tu peux attendre lundi ? Je l'ouvrirais sous Linux avec KWrite (j'espère que ça va pas merder), et je referais les corrections avec mon caméléon.

Mais je peux déjà dire qu'à la lecture de l'erreur, le caracère ^M doit normalement apparaître en fin de chaque ligne, certainement dû à l'ouverture du script avec Wordpad (notepad me perdait la mise en forme de telle sorte que c'était lourd à lire).

Bon, si tu peux attendre lundi, ce serait cool http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Et désolé pour ce désagrément

Burn2
27/07/2007, 12h06
Ben c'est pas grave lol bien sur que ça attendra lundi. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif Là je lance mes test, c'est pas grave si y a des erreurs sur le texte affiché le principal c'est le l'installation marche c'est tout lol. La correction ortho c'est une fois la grande phase de test passé chez moi pour tout le monde quoi http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

EDIT: bon déjà les accents passent bien donc je pourrais en mettre. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif


Test en cours avec ma version mal orthographiée:

*Lancement sans droit de root: Ok

*Désinstallation du drivers original avec le drivers encore dans le dossier

*Installation d'un drivers par téléchargement depuis le ftp de nvidia

*Désinstallation sans le drivers dans le dossier

*Installation à partir d'un drivers déjà dans le dossier.

Heero_Yuy
27/07/2007, 12h11
Oki. Je ferais ça ce week end et lundi matin, tu l'auras ton script corrigé http://www.alionet.org/style_emoticons/<#EMO_DIR#>/tongue.gif

Burn2
27/07/2007, 12h17
Bon ben tout marche j'ai du corriger quelques truc mais ça marche, y a juste un test qui marche pas c'est mon if -eq "i386" ça il n'en veut pas du tout. il faut que ça soit comparé avec des entier alors soit je rajoute un grep soit je trouve comment comparer avec des chaines de caractères.

Par contre pour la désinstallation faut que je look un truc car il ne fait pas bien ce qu'il faut. En gros si le drivers nvidia est bien présent il ne le désinstall pas quand même et fait juste le sax -m 0=nv.

Ensuite pour la désinstallation des drivers quand on monte en version y a pas besoin de la faire puisque le drivers le fait lui même.



Bon j'ai trouvé pourquoi la désinstallation ne marchait pas. la syntaxe n'est pas totalement identique en soit dans glxinfo. Arg ça je ne m'y attendais pas du tout!

EDIT: sur mon portable:

OpenGL version string: 1.2 (2.1.1 NVIDIA 100.14.11)

Sur mon fixe:

OpenGL version string: 2.1.1 NVIDIA 100.14.11

Hum donc suffit que je cut avec nvidia http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif Sauf qu'un délimiteur doit être un caractère.... Pfff rho là là

Heero_Yuy
27/07/2007, 12h32
Remplace cette ligne :


Noyau=`uname -i`

par celle-ci :


Noyau=`uname -m`

Mais je ne suis pas sûr que ça marche.

En fait, on parle de i386, mais les processeurs récents sont des i586 ou i686. C'est peut-être pour ça que ça marche pas.

Burn2
27/07/2007, 12h42
Non non ça ne marche pas car la comparaison doit se faire avec un entier, le if avec -eq ne passe pas sur des chaines de caractères c'est ce qu'il me dit.

Me reste toujours à trouver comment savoir quelle version des drivers est installée :@


EDIT: hum je pense que:

dri=`glxinfo|grep "OpenGL version string:"|cut -d" " -f7|tr -d ")"`
Doit résoudre mon pb http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Il me faudra vérifier http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Burn2
27/07/2007, 14h44
Revoilà donc le script en test:

<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
#!/bin/sh

# Script codé par Burn2
#Toute réutilisation d'une partie ou de la totalité de ce code est autorisée http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif
#Cela dit une ptite pensée envers son créateur serait bien vue http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif
#Merci à tous ceux qui ont contribué à la réalisation de ce script

clear
echo " ***Bienvenue dans le programme d'installation des drivers nvidia****"
echo ""
#On vérifie que l'utilisateur en cours soit root
if [ $UID -eq "0" ]
then
echo "Attention votre session graphique va etre fermee,"
echo " veuillez tout sauvegarder avant d'effectuer cette installation"
echo ""
echo "Installer un driver? (1)"
echo "Desinstaller un driver (2)"
echo "Quitter (0)"
read reponse
echo""
let driversnb=0
#On compte le nb de drivers dans le dossier courrant
driversnb=`find NV* |wc -l`

#Noyau 64bit ou pas
Noyau=`uname -i`
if [ $Noyau = "x86_64" ]
then
Noyau="Linux-x86_64"
else
Noyau="Linux-x86"
fi

let isNvidia=0
#On regarde si le drivers présent est un drivers nvidia
isNvidia=`hwinfo --gfxcard | fgrep " Driver:"|cut -d"\"" -f2|fgrep "nvidia"|wc -l`

let isNotLegacy=0
#On regarde si la carte est une vielle carte donc pas gérée par les derniers drivers:
isNotLegacy=`hwinfo --gfxcard | fgrep " Device:"|cut -d"\"" -f2|grep -E "[5-9][0-9]{3}"|wc -l`

if [ $reponse -eq "1" ]
then
if [ $isNotLegacy -lt "1" ]
then
echo "Installation en cour"
echo "Votre carte est une vielle carte nvidia, il n'est donc pas possible"
echo "de télécharger un driver automatiquement."
echo "Rendez vous sur le site de nvidia (http://www.nvidia.fr/page/drivers.html ) et téléchargez le bon drivers."
echo "Une fois cette action exécutée, relancez le script et lancez l'install"
echo ""
if [ $driversnb -eq "0"]
then
#Il n'y a pas de drivers dans le dossier
echo "Il n'y a aucun drivers présent dans le dossier à installer!"
exit
else
if [ $isNvidia -eq "0" ]
then
echo "Aucun drivers Nvidia installé, désinstallation inutile!"
else
#Si il y a déjà un drivers d'installé alors on le désinstalle proprement
echo "Installation en cours"
init 3
dri=`glxinfo|grep "OpenGL version string:"|cut -d" " -f7|cut -d")" -f1`
sh `find *"$dri"*` --uninstall
sax2 -m 0=nv
fi
#On installe le dernier drivers présent dans le dossier (le plus récent donc)
sh `find NV*|tail -1` -an
sax2 -m 0=nvidia
init 5
fi
echo "Installation effectuée"
else
echo "Installation en cour"
echo "Il y a $driversnb Driver(s) dans le dosiers voulez vous en installer un ou télécharger le dernier?"
echo "1 pour télécharger, 0 pour installer un drivers existant"
read reponse2
echo ""
if [ $reponse2 -eq "0" ]
then

#Options -an pour accepter la licence automatiquement et ne pas télécharger de module prés compilé mais pour compiler en live
if [ $driversnb -eq "0" ]
then
#Il n'y a pas de drivers dans le dossier
echo "Il n'y a aucun drivers présent dans le dossier à installer!"
else
#On installe le dernier drivers présent dans le dossier (le plus récent donc)
sh `find NV*|tail -1` -an
sax2 -m 0=nvidia
init 5
fi
else
init 3
#On supprime le fichier latest.txt contenant le N° du dernier drivers à récupérer
echo "Suppression du fichier contenant le n° du dernier drivers."
rm latest.txt
echo "Téléchargement du n° du dernier drivers sur le ftp nvidia."
chemin="ftp://download.nvidia.com/XFree86/$Noyau/latest.txt"
wget $chemin
drivers=`cat latest.txt|cut -d" " -f2`
taille=$((${#drivers} - 1))
fichier=`echo $drivers | head -c $taille`
echo "Téléchargement du dernier drivers nvidia sur le serveur."
#Pause pour éviter de se reconnecter directement au serveur nvidia
sleep 1
wget -c ftp://download.nvidia.com/XFree86/$Noyau/$fichier
drivers=`cat latest.txt|cut -d"/" -f2`
taille=$((${#drivers} - 1))
fichier=`echo $drivers | head -c $taille`
sh $fichier -an
init 5
fi
fi

else
if [ $reponse -eq "2" ]
then
echo "Desinstallation en cour"
echo ""
if [ $isNvidia -eq "0" ]
then
echo "Aucun drivers Nvidia installé!"
else
init 3
#On récupère le n° de version installé grace à glxinfo
dri=`glxinfo|grep "OpenGL version string:"|cut -d" " -f7|tr -d ")"`
sh `find *"$dri"*` --uninstall
sax2 -m 0=nv
init 5
fi
echo "Desinstallation effectuée"
else
echo "Vous avez quitte"
fi
fi
exit

else
echo "/!\\Ce script doit être lancé à partir d'une session root. (su)/!\\"
echo "Logguez vous en root (commande su) et relancez le."
exit
fi
</div>

Burn2
27/07/2007, 17h03
AH mais je sais ce qu'il manque dans mon script!!! IL faut rajouter les headers de linux pour ça!! Je pense que je vais laisser l'utilisateur le faire tout seul ça http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Burn2
29/07/2007, 14h37
Bon ben ma première phase de test semble ok http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

Heero_Yuy
30/07/2007, 09h51
Désolé, ce week end, j'ai pas eu le courage d'allumer mon PC pour corriger ton script. J'en avais marre du PC en fait.

Mais t'inquiète, je le corrigerais, peut-être même dans la semaine.

Burn2
30/07/2007, 10h04
C'est pas grave t'inquiette pas y a le temps. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif

Burn2
30/07/2007, 12h43
Bon par contre je me suis rendu compte que mon sax2 -m 0=nvidia interféré avec le init5. Total il ne se passe rien et on se retrouve sur le terminal à la fin de sax. Si je l'enlève tout se passe bien. je pense que je vais l'enlever http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif Soit je fais un reboot plustôt.



Idem dans mon script de désinstallation il ne lance pas la désinstallation à partir du drivers nvidia. On dirait que la commande sax prend toujours le dessus.

Bon ben problème résolut! En rajoutant une pause avant le init5 ça marche!

DOnc voici le script encore une fois et il marche à 100% chez moi.


<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
#!/bin/sh

# Script codé par Burn2
#Toute réutilisation d'une partie ou de la totalité de ce code est autorisée http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif
#Cela dit une ptite pensée envers son créateur serait bien vue http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif
#Merci à tous ceux qui ont contribué à la réalisation de ce script

clear
echo " ***Bienvenue dans le programme d'installation des drivers nvidia****"
echo ""
#On vérifie que l'utilisateur en cours soit root
if [ $UID -eq "0" ]
then
echo "Attention votre session graphique va etre fermee,"
echo " veuillez tout sauvegarder avant d'effectuer cette installation"
echo ""
echo "Installer un driver? (1)"
echo "Desinstaller un driver (2)"
echo "Quitter (0)"
read reponse
echo""
let driversnb=0
#On compte le nb de drivers dans le dossier courrant
driversnb=`find NV* |wc -l`

#Noyau 64bit ou pas
Noyau=`uname -i`
if [ $Noyau = "x86_64" ]
then
Noyau="Linux-x86_64"
else
Noyau="Linux-x86"
fi

let isNvidia=0
#On regarde si le drivers présent est un drivers nvidia
isNvidia=`hwinfo --gfxcard | fgrep " Driver:"|cut -d"\"" -f2|fgrep "nvidia"|wc -l`

let isNotLegacy=0
#On regarde si la carte est une vielle carte donc pas gérée par les derniers drivers:
isNotLegacy=`hwinfo --gfxcard | fgrep " Device:"|cut -d"\"" -f2|grep -E "[5-9][0-9]{3}"|wc -l`

if [ $reponse -eq "1" ]
then
if [ $isNotLegacy -lt "1" ]
then
echo "Installation en cour"
echo "Votre carte est une vielle carte nvidia, il n'est donc pas possible"
echo "de télécharger un driver automatiquement."
echo "Rendez vous sur le site de nvidia (http://www.nvidia.fr/page/drivers.html ) et téléchargez le bon drivers."
echo "Une fois cette action exécutée, relancez le script et lancez l'install"
echo ""
if [ $driversnb -eq "0"]
then
#Il n'y a pas de drivers dans le dossier
echo "Il n'y a aucun drivers présent dans le dossier à installer!"
exit
else
#On installe le dernier drivers présent dans le dossier (le plus récent donc)
sh `find NV*|tail -1` -an
sleep 1
sax2 -m 0=nvidia
sleep 2
init 5
fi
echo "Installation effectuée"
else
echo "Installation en cour"
echo "Il y a $driversnb Driver(s) dans le dosiers voulez vous en installer un ou télécharger le dernier?"
echo "1 pour télécharger, 0 pour installer un drivers existant"
read reponse2
echo ""
if [ $reponse2 -eq "0" ]
then

#Options -an pour accepter la licence automatiquement et ne pas télécharger de module prés compilé mais pour compiler en live
if [ $driversnb -eq "0" ]
then
#Il n'y a pas de drivers dans le dossier
echo "Il n'y a aucun drivers présent dans le dossier à installer!"
else
#On installe le dernier drivers présent dans le dossier (le plus récent donc)
sh `find NV*|tail -1` -an
sleep 1
sax2 -m 0=nvidia
sleep 2
init 5
fi
else
init 3
#On supprime le fichier latest.txt contenant le N° du dernier drivers à récupérer
echo "Suppression du fichier contenant le n° du dernier drivers."
rm latest.txt
echo "Téléchargement du n° du dernier drivers sur le ftp nvidia."
chemin="ftp://download.nvidia.com/XFree86/$Noyau/latest.txt"
wget $chemin
drivers=`cat latest.txt|cut -d" " -f2`
taille=$((${#drivers} - 1))
fichier=`echo $drivers | head -c $taille`
echo "Téléchargement du dernier drivers nvidia sur le serveur."
#Pause pour éviter de se reconnecter directement au serveur nvidia
sleep 1
wget -c ftp://download.nvidia.com/XFree86/$Noyau/$fichier
drivers=`cat latest.txt|cut -d"/" -f2`
taille=$((${#drivers} - 1))
fichier=`echo $drivers | head -c $taille`
sh $fichier -an
sleep 1
#Cette ligne qui n'est pas obligatoire peut poser problème avec le init 5 qui suit.
sax2 -m 0=nvidia
sleep 2
init 5
fi
fi

else
if [ $reponse -eq "2" ]
then
echo "Desinstallation en cour"
echo ""
if [ $isNvidia -eq "0" ]
then
echo "Aucun drivers Nvidia installé!"
else
init 3
#On récupère le n° de version installé grace à glxinfo
dri=`glxinfo|grep "OpenGL version string:"|cut -d" " -f7|tr -d ")"`
sh `find *"$dri"*` --uninstall
sax2 -m 0=nv
init 5
fi
echo "Desinstallation effectuée"
else
echo "Vous avez quitté"
fi
fi
exit

else
echo "/!\\Ce script doit être lancé à partir d'une session root. (su)/!\\"
echo "Logguez vous en root (commande su) et relancez le."
exit
fi

</div>


Il me reste à télécharger automatiquement les sources du noyau mais ça va ralentir l'installation à chaque fois alors je pense que je vais le mettre en menu afin de gagner du temps.

Bon ça roule j'ai trouvé comment faire. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif Reste plus qu'a mêttre ça dans le menu est c'est fini http://www.alionet.org/style_emoticons/<#EMO_DIR#>/tongue.gif
un petit yast2 -i kernel-source et op tout marche http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

Burn2
04/08/2007, 08h21
Bon ce matin: finalisation du script et tantative de relecture pour corriger les fautes. ET aprés j'espère qu'on m'aidera à corriger et surtout aprés:
TESTER!!!



EDIT: Version finale avant correction ortho:

<div class='codetop'>CODE</div><div class='codemain' style='height:200px;white-space:pre;overflow:auto'>
#!/bin/sh

# Script codé par Burn2
#Toute réutilisation d'une partie ou de la totalité de ce code est autorisée http://www.alionet.org/style_emoticons/<#EMO_DIR#>/wink.gif
#Cela dit une ptite pensée envers son créateur serait bien vue http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif
#Merci à tous ceux qui ont contribué à la réalisation de ce script

clear
echo " ***Bienvenu dans le programme d'installation des drivers nvidia****"
echo ""
#On vérifie que l'utilisateur en cours soit root
if [ $UID -eq "0" ]
then
echo "Attention votre session graphique va etre fermée,"
echo " veuillez tout sauvegarder avant d'effectuer cette installation"
echo ""
echo "Installer un driver? (1)"
echo "Desinstaller un driver (2)"
echo "Installer les sources du kernel [Nécéssaire pour l'installation des drivers] (3)"
echo "Quitter (0)"
read reponse
echo""
if [ $reponse -eq "3" ]
then
yast2 -i kernel-source
./Nvidia-Suse.sh
fi
let driversnb=0
#On compte le nb de drivers dans le dossier courrant
driversnb=`find NV* |wc -l`

#Noyau 64bit ou pas
Noyau=`uname -i`
if [ $Noyau = "x86_64" ]
then
Noyau="Linux-x86_64"
else
Noyau="Linux-x86"
fi

let isNvidia=0
#On regarde si le driver présent est un driver nvidia
isNvidia=`hwinfo --gfxcard | fgrep " Driver:"|cut -d"\"" -f2|fgrep "nvidia"|wc -l`

let isNotLegacy=0
#On regarde si la carte est une vielle carte donc pas gérée par les derniers drivers:
isNotLegacy=`hwinfo --gfxcard | fgrep " Device:"|cut -d"\"" -f2|grep -E "[5-9][0-9]{3}"|wc -l`

if [ $reponse -eq "1" ]
then
if [ $isNotLegacy -lt "1" ]
then
echo "Installation en cour"
echo "Votre carte est une vielle carte nvidia, il n'est donc pas possible"
echo "de télécharger un driver automatiquement."
echo "Rendez vous sur le site de nvidia (http://www.nvidia.fr/page/drivers.html ) et téléchargez le bon driver."
echo "Une fois cette action exécutée, relancez le script et lancez l'install"
echo ""
if [ $driversnb -eq "0"]
then
#Il n'y a pas de drivers dans le dossier
echo "Il n'y a aucun drivers présent dans le dossier à installer!"
exit
else
#On installe le dernier drivers présent dans le dossier (le plus récent donc)
sh `find NV*|tail -1` -an
sleep 1
sax2 -m 0=nvidia
sleep 2
init 5
fi
echo "Installation effectuée"
else
echo "Installation en cour"
echo "Il y a $driversnb Driver(s) dans le dosiers voulez vous en installer un ou télécharger le dernier?"
echo "1 pour télécharger, 0 pour installer un drivers existant"
read reponse2
echo ""
if [ $reponse2 -eq "0" ]
then

#Options -an pour accepter la licence automatiquement et ne pas télécharger de module prés compilé mais pour compiler en live
if [ $driversnb -eq "0" ]
then
#Il n'y a pas de drivers dans le dossier
echo "Il n'y a aucun drivers présent dans le dossier à installer!"
else
#On installe le dernier drivers présent dans le dossier (le plus récent donc)
sh `find NV*|tail -1` -an
sleep 1
sax2 -m 0=nvidia
sleep 2
init 5
fi
else
init 3
#On supprime le fichier latest.txt contenant le N° du dernier drivers à récupérer
echo "Suppression du fichier contenant le n° du dernier driver."
rm latest.txt
echo "Téléchargement du n° du dernier driver sur le ftp nvidia."
chemin="ftp://download.nvidia.com/XFree86/$Noyau/latest.txt"
wget $chemin
drivers=`cat latest.txt|cut -d" " -f2`
taille=$((${#drivers} - 1))
fichier=`echo $drivers | head -c $taille`
echo "Téléchargement du dernier driver nvidia sur le serveur."
#Pause pour éviter de se reconnecter directement au serveur nvidia
sleep 1
wget -c ftp://download.nvidia.com/XFree86/$Noyau/$fichier
drivers=`cat latest.txt|cut -d"/" -f2`
taille=$((${#drivers} - 1))
fichier=`echo $drivers | head -c $taille`
sh $fichier -an
sleep 1
#Cette ligne qui n'est pas obligatoire peut poser problème avec le init 5 qui suit.
sax2 -m 0=nvidia
sleep 2
init 5
fi
fi

else
if [ $reponse -eq "2" ]
then
echo "Desinstallation en cour"
echo ""
if [ $isNvidia -eq "0" ]
then
echo "Aucun drivers Nvidia installé!"
else
init 3
#On récupère le n° de version installé grace à glxinfo
dri=`glxinfo|grep "OpenGL version string:"|cut -d" " -f7|tr -d ")"`
sh `find *"$dri"*` --uninstall
sax2 -m 0=nv
init 5
fi
echo "Desinstallation effectuée"
else
echo "Vous avez quitté"
fi
fi
exit

else
echo "/!\\Ce script doit être lancé à partir d'une session root. (su)/!\\"
echo "Logguez vous en root (commande su) et relancez le."
exit
fi
</div>

Reste donc plus que la correction orthographique, et la période de test en grandeur nature, donc je vais avoir besoin de monde et d'aide.



Sinon j'ai eu la flemme de tout casser et découper en fonction http://www.alionet.org/style_emoticons/<#EMO_DIR#>/biggrin.gif

Burn2
09/08/2007, 17h44
Bon le script ne marche pas en copier collé, problème de caractères à paremment, donc je vous fourni le script directement en téléchargement.
http://dodownload.filefront.com/8268976//2...52822e6b0ba39af (http://dodownload.filefront.com/8268976//2f4267d79627adc2d5a3a70e2d9bf9a54d4b4fbda33009cb74 1d0aeb66f85664252822e6b0ba39af)

ça serait bien d'avoir quelques retours. http://www.alionet.org/style_emoticons/<#EMO_DIR#>/smile.gif

Burn2
13/10/2007, 16h10
Bon y a du nouveau j'ai une nouvelle idée!
Pourquoi ne pas l'agrémenter d'un script qui a chaque démarage vérifie le noyau installé et si le noyau à changé, vérifie que les headers sont bien installés pour ce noyau , et si c'est pas le cas les installes (ça je sais pas comment vérifier ça...) et réinstalle les drivers nvidia avant d'arriver sous gdm :D

ça serait vraiment l'idéal. Comme ça à chaque maj du noyau ça réinstalle tout seul les drivers. On pourrait même rajouter la possibilitée de pouvoir (ou non) choisir de vérifier à chaque démarage (ou périodiquement) s'il y a des drivers plus récent et de les installer. :)

Bref des idées d'automatisation possible quoi!

moniroje
13/11/2007, 14h14
viiiiiiii!!!!!!! l'idéal, l'idéal!!!! :)

Burn2
13/11/2007, 18h30
Aprés faut avoir du temps aussi, mais quand je vois la facilité d'install avec yast, et qu'il n'y a po beaucoup de monde qui l'utilise ça motive plus trop :D