Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Système

Système Vos questions autour de l'administration système

Réponse
 
Outils de la discussion
Vieux 05/08/2004, 21h45   #1 (permalink)
Responsable Système
 
Avatar de Michaël
 
Date d'inscription: juillet 2003
Localisation: Blois
Âge: 21
Messages: 2 434
Par défaut Lancer le module nvidia selon le kernel ?

bonsoir,
j'ai un kernel 2.4.25-2mdk et un 2.6.3-4mdk. je ne dispose que des sources du 2.6.3-4mdk. si je compile le driver nvidia sous le 2.6.3, ça ne fonctionnera pas sous le 2.4.25 (logique !).
je voudrais donc pouvoir lancer le driver si le kernel est le 2.6.3 et ne pas le lancer si ce n'est pas le cas... comment je pourrais faire ?

merci beaucoup
__________________
Cours systèmes : systèmes temps réels, distribués, embarqués, tolérants aux fautes, parallèles, OS, architectures...
Mes articles : php gd, création de dvd vidéo, bootsplash, virtualisation
Michaël est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/08/2004, 14h01   #2 (permalink)
Membre régulier
 
Date d'inscription: octobre 2002
Messages: 136
Par défaut

je suis dans le même cas , en attendant de trouver une soluce j'ai remis le driver nv dans XF86Config-4
Oega est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/08/2004, 15h29   #3 (permalink)
Responsable Système
 
Avatar de Michaël
 
Date d'inscription: juillet 2003
Localisation: Blois
Âge: 21
Messages: 2 434
Par défaut

je vais essayer ça : renommer nvidia.o en nvidia-2.6.3-4mdk.o (donc celui compilé pour le kernel 2.6.3) et faire de même avec nv.o pour ce ça donne nvidia-2.4.25-2mdk.o (donc le pilote fourni par linux)

et voir si XFree86-Config-4 accepte qu'on lui mette
Code :
Driver "nvidia-`uname -r`.o"
je vous tiens au courant
__________________
Cours systèmes : systèmes temps réels, distribués, embarqués, tolérants aux fautes, parallèles, OS, architectures...
Mes articles : php gd, création de dvd vidéo, bootsplash, virtualisation
Michaël est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/08/2004, 16h15   #4 (permalink)
Responsable Système
 
Avatar de Michaël
 
Date d'inscription: juillet 2003
Localisation: Blois
Âge: 21
Messages: 2 434
Par défaut

bien évidemment, ça n'a pas fonctionné (ce n'est qu'un fichier de config).
cependant, je n'ai pas dit mon dernier mot
il suffit de créer un service qui va détecter la version du kernel et copier le fichier de config adéquat
__________________
Cours systèmes : systèmes temps réels, distribués, embarqués, tolérants aux fautes, parallèles, OS, architectures...
Mes articles : php gd, création de dvd vidéo, bootsplash, virtualisation
Michaël est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/08/2004, 16h42   #5 (permalink)
Membre à l'essai
 
Date d'inscription: décembre 2003
Messages: 49
Par défaut

Les modules compilés exclusivement pour 2.6 portent l'extension .ko donc ton .o est compatible 2.2 et 2.4. Normalement (mais sous Mandrake ce mot a t'il un sens?), donc tu devrait avoir ton module situé dans /lib/modules/2.6.3 et il devrait porter l'extension .ko. Si ce n'est pas le cas, le module est prévu pour fonctionner sous les deux versions et c'est pour çà que le 2.4 essai de l'utiliser.
Kartofel est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/08/2004, 16h56   #6 (permalink)
Membre du Club
 
Avatar de Tifauv'
 
Date d'inscription: mars 2002
Messages: 102
Envoyer un message via ICQ à Tifauv'
Par défaut

Le plus simple serait quand même de récupérer les sources du 2.4.25-2mdk, non ?
Tifauv' est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/08/2004, 17h10   #7 (permalink)
Responsable Système
 
Avatar de Michaël
 
Date d'inscription: juillet 2003
Localisation: Blois
Âge: 21
Messages: 2 434
Par défaut

le problème, c'est que je n'ai pas le cd4 de la mdk10.0 (qui contient les sources du noyau 2.4.25) et j'ai qu'un 56k ! donc ça va être un peu dur...

bref, j'ai réussi à faire ce que je voulais, c'est pas très élégant, mais je n'arrive pas à créer un service reconnu par drakxservices
donc voici comment j'ai fait :
tout se passe en root...
j'ai copié le fichier /etc/X11/XF86Config-4 vers deux fichiers distincts. l'un est prévu pour ne pas lancer le module et l'autre pour le lancer.
voici le script bash à mettre dans /etc/init.d/. appelez le nvidia
Code :
#!/bin/bash

. /etc/init.d/functions

FILE1="/etc/X11/XF86-2.6.3";		#fichier activant le module (Driver "nvidia")
FILE2="/etc/X11/XF86-2.4.25";	#fichier ne l'activant pas (Driver "nv")
KERNEL="2.4.25-2mdk";		#version du kernel pour lequel il ne faut pas lancer le module nvidia

if [ `uname -r` = "$KERNEL" ]; then
	cp $FILE2 /etc/X11/XF86Config-4 --reply=yes
else 
	cp $FILE1 /etc/X11/XF86Config-4 --reply=yes
fi

exit 0;
ensuite il faut éditer /etc/init.d/dm :
avant la ligne 21
Citation:
gprintf "Starting display manager: "
ajouter
Code :
/etc/init.d/nvidia &
et voilà le module se chargera ou non selon la version du kernel
__________________
Cours systèmes : systèmes temps réels, distribués, embarqués, tolérants aux fautes, parallèles, OS, architectures...
Mes articles : php gd, création de dvd vidéo, bootsplash, virtualisation
Michaël est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/08/2004, 18h33   #8 (permalink)
Nouveau membre du Club
 
Date d'inscription: mai 2002
Localisation: Bâle
Âge: 26
Messages: 78
Envoyer un message via ICQ à guejo Envoyer un message via AIM à guejo Envoyer un message via MSN à guejo
Par défaut

Citation:
Envoyé par Le_coyote
tout se passe en root...


Bon sinon cette solution est assez astucieuse mais pêche sur un point : tu dois maintenir 2 versions du fichier de conf pour xfree...
Bon c'est sûr, ce n'est pas si grave si tu ne modifie pas ton fichier souvent, mais t'en rappelleras-tu quand tu feras une modfi pour ajouter tel ou tel périph ?
Est ce qu'il ne serait pas possible de le "reconstruire" à chaque fois ?
Du style tu parcoures le fichier jusqu'à trouver l'endroit où tu dois choisir le module et tu effaces ce qu'il y a jusqu'à la fin de la ligne et tu mets le nom du module ad hoc. Je pense tu peux faire ça avec gawk ou sed ou grep non ? Sinon, c'est prog...

@+
Joe.
guejo est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/08/2004, 19h11   #9 (permalink)
Responsable Système
 
Avatar de Michaël
 
Date d'inscription: juillet 2003
Localisation: Blois
Âge: 21
Messages: 2 434
Par défaut

il est vrai que je pourrais faire comme tu l'indiques, mais point de vue rapidité, c'est peut-être pas le top. cependant, c'est vrai que c'est beaucoup plus propre. si l'action de parser un fichier n'est pas trop longue, je vais tenter de faire comme tu le dis.
lequel de ces deux langages serait le plus rapide pour ce genre d'opréation ? bash ou perl ?
__________________
Cours systèmes : systèmes temps réels, distribués, embarqués, tolérants aux fautes, parallèles, OS, architectures...
Mes articles : php gd, création de dvd vidéo, bootsplash, virtualisation
Michaël est déconnecté   Envoyer un message privé Réponse avec citation
NEWS LINUX PROFESSIONNELFAQ LINUXTUTORIELS LINUXLIVRES LINUXLINUX TVUNIXGTK+QtAPACHE

Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Système



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide