| Linuxman - juin 1999 |
1 6 1999
2 6 1999
3 6 1999
5 6 1999
7 6 1999
8 6 1999
12 6 1999
13 6 1999
15 6 1999
19 6 1999
20 6 1999
22 6 1999
23 6 1999
26 6 1999
| 1 6 1999 |
Rien c'est juste pour rien dire que j'écris ça...
Mots Clés : device, major number, device.
Un device est un périphérique, il en existe deux types : les character et les block. Les character devices sont les périphériques que l'on accède de manière séquentielle, comme la souris, le clavier, la carte son... Les block devices sont accédés euh... mince, j'ai pas le mot là, ben, disons où on veut, on peut aller lire ou écrire où on veut, mais par contre on ne peut lire que bloc par bloc (d'où le nom, he he) ; c'est les disques dur quoi, CDROM, etc... Et la plupart de tous ces périphériques se trouvent dans le répertoire /dev où, quand vous faites un ls -l, vous pouvez, grâce à la première lettre, déterminer si c'est un char ou un block device :
brw-rw---- 1 root disk 3, 0 May 5 1998 hda
brw-rw---- 1 root disk 3, 1 May 5 1998 hda1
brw-rw---- 1 root disk 3, 10 May 5 1998 hda10
brw-rw---- 1 root disk 3, 11 May 5 1998 hda11
brw-rw---- 1 root disk 3, 12 May 5 1998 hda12
crw------- 1 root root 4, 1 Jun 1 22:10 tty1
crw------- 1 root tty 4, 10 Dec 9 21:15 tty10
crw------- 1 root tty 4, 11 Dec 9 21:15 tty11
crw------- 1 root tty 4, 12 Dec 9 21:15 tty12
Ici j'ai mis hda, le premier disque dur ide, avec hda1, la première partition de ce disque... Et aussi les tty, les consoles quoi... Les chiffres que l'on voit la où il y a habituellement la taille sont les major numbers et minor numbers. Le major number permet de caractériser le driver associé au périphérique, et le minor number est utilisé par ce driver pour diverses choses, par exemple pour les partitions en ce qui concerne les disques durs.
OUAIS !!! On est en juin, trop cool !!!... Des fois on réalise subitement des trucs...
Alors le frame buffer c'est un truc cool, bon, techniquement je n'en sais pas trop, mais c'est pas grave. L'idée c'est de fournir une interface standard aux softs qui utilisent la carte graphique, c'est-à-dire qu'on crée un device dans /dev, en l'occurence fb et compagnie, major number 29, et ensuite les applications utilisent cette interface pour accéder à la carte graphique. C'est un peu plus lent que de directement accéder à la carte, c'est sûr, mais le fait d'avoir une interface standard simplifie pas mal le developpement des logiciels graphiques, et, chose au combien fondamentale, ça permet d'avoir un petit pinguin pendant le boot du noyau, ce qui est quand même, avouez le, super classe.
Pour le moment le nombre de cartes supportées n'est pas faramineux, y'a surtout les matrox, ATI... Pour l'utiliser rien de plus simple, suffit de recompiler le noyau avec support du frame buffer (c'est dans console drivers je crois) et de jeter un coup d'oeil dans Documentation/fb/* pour savoir comment ça marche et les modes disponibles. Moi j'ai eu juste à rajouter une ligne append=video=matrox:vesa:227 dans mon lilo.conf et j'ai mon penguin au démarrage. Après faut voir pour l'utiliser aussi avec le serveur X, j'ai pas encore essayé...
| 2 6 1999 |
Un peu naze là, vivement le vacances parce que je commence à saturer un peu... Marre de l'info, trop dur, trop de choses, pas assez de temps, pas assez de mémoire, galère... Des fois quand même je me dis que linux c'est un peu compliqué... C'est sûr que l'on a carrément plus le contrôle de la chose, mais ça demande quand même pas mal de pratique...
| 3 6 1999 |
Mots Clés : programmation (java, programmation (java.
Alors vous avez vu, hein, Lokisoft commence à faire des trucs pas mal, Civilization: Call to Power est en vente ($50) et Myth 2 en béta test. C'est bien ça, très bien. Mais attention, il ne faut pas copier les jeux sous Linux, c'est TRÈS mal, enfin, faites au moins l'effort d'en acheter un de temps en temps, surtout qu'avec un OS gratos et des outils comme Staroffice ou Wordperfect que l'on peu télécharger pour pas cher, raquer 300 balles c'est pas le bout du monde, ça fait trois sorties ciné-Mcdo-metro sur Paris, c'est pas la mort...
Bon, cela dit chacun ses valeurs... Alors je vais un peu revenir sur les deux programmes que je vous avais présentés le 30 mai, vous voyez, les classes java Plus et Plus2. En fait si ces deux objets semblent faire la même chose, la sémantique est assez opposée. Le premier, avec une méthode statique, est une classe qui n'aura probablement jamais d'instance, un peu comme la fonction System.out.println, c'est une sorte de classe outil qui fournit une fonction, un peu comme une librairie. La classe Math est un peu comme ça aussi, pour toutes les fonctions mathématiques standard. La deuxième classe, quant à elle, Plus2, a pour but de représenter un objet qui possède deux variables, a et b, sur lesquelles cette classe fournit une opération, plus. L'exemple du 31 mai étoffe un peu cette classe et montre que le but de cette classe est vraiment d'avoir des instances, qui possèdent chacune des valeurs propres. On retrouve derrière l'idée d'objet réutilisable pour plusieurs besoins. Pour donner d'autres exemples de classes de ce type, on peut penser aux boutons qui apparaissent dans les fenètres ; fondamentalement le principe est le même, c'est un petit carré où l'on clique, mais chaque instance du bouton lui donne un nom particulier et une action différente.
Quand on écrit une classe il faut toujours se demander ce que l'on va réellement en faire, est-ce qu'elle se déclinera en plusieurs objets ou est-ce qu'elle définit des fonctions utilisables telles quelles, sans besoin d'instanciation. À propos, les méthodes statiques sont appelées méthodes de classe, et il existe aussi les variables de classe déclarées pareil avec le modificateur static.
| 5 6 1999 |
Je commence sérieusement à avoir marre de ce temps pourri qu'il fait par ici, jamais il peut faire beau plus d'une heure d'affilée, c'est quand même pas possible, on est au mois de juin et il on se les pèle encore, ça suffit quoi ! Moi je vais me barrer d'ici et laisser aux parisiens leur temps de daube et leurs embouteillages à la noix. De l'affaire je me chope des rhumes sans arrêt c'est la galère je commence à saturer grave de chez grave, un coup y fait chaud, un coup y fait froid, et basta voilà je m'attrape !
Il FAUT que j'apprenne Perl et Python, c'est une question de survie j'en ai marre de me trainer avec mes scripts shells à la noix. Seulement j'ai pas trop trop de temps. Alors je vais me la jouer progressif tiens, enfin, on verra, c'est samedi soir, et en ce dernier jour de la semaine, vu comme il s'est passé (je me suis tordu le pouce, je suis enrhumé, je me suis pris une rincée en allant courir...) mieux vaut ne pas trop prévoir des trucs que je ne ferai jamais, donc aujourd'hui, deux trois mots sur Perl et Python et voilà.
Alors étant donné que la tradition veut que le premier programme que l'on écrit affiche Hello world, ben alons-y, on se fait un hello world en perl :
#!/usr/bin/perl
print 'Hello world';
Que l'on exécute simplement en changeant le mode du fichier en exécutable (chmod 755 hello.pl) puis on tape bestialement ./hello.pl et ça devrait marcher...
Bon, ben en python, finalement c'est pas très très différent :
#!/usr/bin/python
print 'Hello world';
Pareil que l'exemple en perl pour l'exécuter. À noter que les deux interpréteurs peuvent aussi s'utiliser en ligne de commande, surtout python qui fait office d'une bonne calculette...
| 7 6 1999 |
Y'a des jours avec... Ben aujourd'hui c'était plutôt sans quoi...
sed ça veut dire Strem EDitor. Je ne maîtrise pas particulièrement mais disons qu'une des fonctionnalités de sed est bien pratique et ça vaut le coup de la connaître. Je ne parlerai que de l'usage de sed dans une ligne de commande du genre echo fich_top_clas | sed y/ihopla/ukheow/. Dans ce cas la syntaxe d'une commande sed est la suivante :
sed adresse commande
Le principe de sed c'est qu'il va prendre ligne par ligne l'entrée standard, et, si adresse s'y trouve alors commande est exécutée, où adresse peut être :
23 : un numéro de ligne.
N~P : un numéro de ligne N suivi d'un pas P pour matcher toutes les lignes tous les P à partir de N.
$ : la dernière ligne
/exprreg/: une expression régulière
Commande peut être, entre autre (il y a plein d'autres commandes, man ou info pour en savoir plus):
s/expression régulière/remplacement/options : remplace expression régulière par remplacement dans la ligne. options règle le nombre de remplacement avec:
g : remplace toutes les occurences.
12 : ne remplace que la 12ème occurence.
y/caractères de départ/caractères d'arrivée/ : remplace les caractères de départ par les caractères d'arrivée, il faut donc que ces deux champs aient la même longueur. Par exemple echo coucou | sed y/cu/pi/ done poipoi.
Voilà voilà, en fait sed c'est bien pour tous les petits trucs de la vie de tous les jours qui ne nécessitent pas qu'on se casse la tête pour trouver une solution. Pour les trucs plus balèzes, je continue à penser que perl doit être mieux, mais bon, je ne suis pas encore à même d'en juger...
| 8 6 1999 |
Je vous ai causé hier de sed et entre autre de la commande y/car_de_depart/car_destination/, et bien la commance tr fait un peu la même chose, mais elle est spécifiquement conçue pour ça.
L'usage le plus courant de tr se fait comme sed dans des lignes de commandes du type:
cat SuperFile | tr a-z A-Z > SuperFile
Cette ligne de commande passe le fichier SuperFile en majuscule. Sans option tr transforme les caractères de la première chaîne en leur correspondant dans la deuxième. Ces chaînes, bien entendu et comme la majorité des outils de manipulation de textes, reprennent le principe des expressions régulière, et des commandes du type suivant sont permises :
cat SuperFileVerySuper | tr '[:lower:]' '[:upper:]' (mais là c'est plus court de taper a-z A-Z).
cat MegaSuperFile | tr '[:digit:]' X.
A noter que l'option -c prend le complément de la première chaîne de caractères donnée. Voilà pour l'usage principal de tr. Mais tr possède encore deux trois petits trucs coolos qui, au détour d'une situation fortement complexe, pourraient vous tirer d'affaire :
tr -d x : efface les caractères donnés (je trouve vraiment que j'abuse du mot « caractère » là, faut que je me calme).
tr -s aeiou : si une des lettres (pas mal !) de la chaîne (hum, joue sur le contexte qui permet de se passer du mot, très fin !) apparaît plusieurs fois à la suite, sa répétition est annulée : « Whhooooaaaauuuuoooouuuu !!!! » devient « Whhoauou !!!! » dans le présent cas.
Ben, il me semble que c'est à peu près tout en fait, comme quoi...
| 12 6 1999 |
Mots Clés : perl, foreach, $_, perl.
Alors, bon, c'est un peu la panique là après cette (dure) semaine, alors détendons nous en coeur en faisant un peu de perl. Bon, autant entrer tout de suite dans le vif du sujet, voilà un petit programme très simple :
#!/usr/bin/perl
$file = '/usr/X11R6/lib/X11/rgb.txt';
open(INFO, $file);
@lines = <INFO>;
close(INFO);
print @lines;
$i=1;
foreach $line (@lines)
{
$line =~ s/([0-9]{1,3}[\W]+)([0-9]{1,3}[\W]+)([0-9]{1,3}[\W]+)/Red: \1Green: \2Blue: \3-> /g;
print $i: $line;
$i++;
}
Les variables en perl sont précédées de $, c'est comme ça, ça aurait pu être £, ou encore %, mais non, c'est $, voilà. $file est donc une chaîne de caractères, et $i un entier, mais pour perl ces deux variables sont de type dit scalaire, simplement, et prendront un type ou un autre suivant le contexte.
Les tableaux en perl sont précédés de @. Ici @lines est un tableau dont chaque élément est une ligne du fichier référencé par INFO, autre type en perl, qui contient une référence au fichier /usr/X11R6/lib/X11/rgb.txt, qui est une liste de couleurs prédéfinies. Remarquez la fonction open pour ouvrir les fichiers.
La fonction foreach $var (@tab){ bloc } exécute le contenu de bloc pour chaque élément de @tab, cet élément est stocké dans $var... Hum... En fait euh... Bon je vais en parler parce que c'est quand même bien cool, il existe en perl l'élément $_, qui représente la variable scalaire par défaut, par exemple le programme pésenté peut se réecrire:
#!/usr/bin/perl
$file = '/usr/X11R6/lib/X11/rgb.txt';
open(INFO, $file);
@lines = <INFO>;
close(INFO);
print @lines;
$i=1;
foreach (@lines)
{
s/([0-9]{1,3}[\W]+)([0-9]{1,3}[\W]+)([0-9]{1,3}[\W]+)/Red: \1Green: \2Blue: \3-> /g;
print $i: $_;
$i++;
}
Voilà pour ça. Bon, autre truc important, c'est l'opérateur =~ qui permet d'utiliser les expressions régulières, et ici vous devez reconnaître la fonction de substitution vue en parlant de sed. Dans l'expression régulière vous remarquerez la présence de \1, \2 et \3, ce sont les motifs qui ont été trouvés dans respectivement les premières, deuxièmes et troisièmes parenthèses de la première partie de la substitution. J'ai bien essayé avec ([0-9]{1,3}[\W]+){3} mais ça ne marchait pas...
| 13 6 1999 |
Mots Clés : date (anniversaire).
Bon c'est le 13 juin, yep, plus que 202 jours avant l'an 2000 c'est marqué sur la Tour Eiffel... D'ici là le monde a le temps d'exploser 15 fois alors pas de stress, tout ira bien. Mais bon, n'empêche que d'ici là il y aura pas mal de date... Euh, 202 normalement, à moins qu'ils comptent le jour où on est, tiens je sais pas, vite, ma HP48, je vérifie illico (vous avez vu HP ont sortie la HP49, même processeur Saturn a 4 MHz, OS tout réécrit en assembleur, plus de port infrarouge, clavier nouveau... Bof, rien d'extraordinaire, je l'ai pas encore vue faudra que je me fasse une descente à la Fnac un de ces jours), non, ils comptent pas aujourd'hui, donc il reste bien 202 dates. Bon, donc dans toutes ces dates il y aura sûrement pas mal de dates où se sera l'anni ou autre de plein de gens que vous connaissez, bien sûr c'est la mega galère à se rappeller de tout, alors commen! ! ! t faire ? Euh, ben on peut par exemple se faire un petit script cool qui nous envoie un mail de jour voulu, ou qui envoie direct un mail à la personne concernée, plus rien à faire, ou qui marque ça au login.
Bon en fait c'est assez débile à faire, par exemple, on va faire un petit truc qui marque les dates importantes au login, voilà le petit script :
#!/bin/sh
grep `date +%d%m` ~/local/lib/checkdate/datefile.txt
Qui a besoin d'une base de données où trouver les dates, en l'occurence, ~/local/lib/checkdate/datefile.txt, ce fichier ressemble à cela :
1501 Simon
1302 Paul
1902 Minou
2303 Miranda
1805 Warlo le blairo
2009 Momo
2209 Mike
2512 Jésus
Et la commande `date +%d%m` permet de chercher les dates de la base de données qui correspondent à la date du jour. Ensuite, si vous utilisez bash, suffit de lancer ce script à la fin de .bash_profile (ou .bash_login ou .profile) ou ce qui correspond au script de login de votre shell favori. N'oubliez pas de le passer en exécutable (chmod 755 checkdate).
Pour que le script envoie aussi un mail à la personne concernée, c'est (un peu) plus subtil. Bon il y a plein de méthodes, mais par exemple on peut rajouter dans le fichier base de données la commande à exécuter :
1501 Simon echo Salut, comment tu vas ? Moi c'est la routine, allez, a plus et encore un Joyeux anniversaire ! | mail -s Joyeux Anniversaire simon@hothot.org
...
Et dans ce cas le script devient :
#!/bin/sh
`grep \`date +%d%m\` ~/local/lib/checkdate/datefile.txt | cut -d \ -f 3-`
Et alors plus qu'à faire une petite crontab pour le script, et le tour est joué, tous vos amis seront épatés...
| 15 6 1999 |
Bon, c'est un peu speed ces derniers temps alors je ne vais pas me la jouer prolixe... Et puis un peu fatigué là alors bon... Mais il faut se battre, oui oui oui, pas de fainaiantise, non ! Allez !... Bon d'accord, alors je vais un peu causer Python aujoud'hui... Alors pour ceux qui suivent, quatre langages, sans compter tout ce qui est script shell et apparentés, sont en cours d'étude, C pour hacker le noyau, Java pour frimer, Perl pour assusrer le traitement des fichiers et Python pour, euh, ben faire des trucs rapides mais quand même assez complexes... Voilà, bon je dis pas que je m'en sortirai, mais bon, hein, faut ce qu'il faut.
Alors voilà, donc, euh, voilà. Ce qu'il y a de super cool avec python, c'est qu'on peut déjà commencer à pas mal s'amuser avec l'interpréteur. Tapez python, puis tapez des trucs du genre:
warly@warly warly$ python
Python 1.5.1 (#1, Mar 21 1999, 22:49:36) [GCC egcs-2.91.66 19990314/Li on linux-i386
Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
>>> print coucou
coucou
>>> a=5
>>> print a
5
>>> #Ceci est un commentaire, très classe, n'est il pas ?
...
>>>if a < 4:
... print a, qui vaut , a, est plus petit que quatre
... elif a==4:
... print Bon, ben a vaut 4
... else: print Bon, ben si je me suis pas gourré a (,a,) doit être plus grand que 4
...
Bon, ben si je me suis pas gourré a ( 5 ) doit être plus grand que 4
>>>
Quelques remarques. Première chose très importante, c'est l'indentation qui permet de délimiter les blocs en python, c'est pour cela que mes print après mes if ou elif sont décallés. Ensuite, il faut mettre «:» après le if, tout comme le elif, else, while... Bon pour le reste suffit de regarder pour comprendre.
| 19 6 1999 |
Dur dur la vie en solitaire
Whouaou !! Voilà une bien dure semaine qui se termine, pfff, je suis un peu lessivé, heureusement que j'ai quelques jours pour souffler un peu... Cette vie est vraiemnt démente, il faut toujours courir dans tous les sens, jamais 2 min pour se reposer un peu, c'est vraiment la folie, je comprends que certains pètent les plombs...
Je ne crois pas que je vous apprendrez beaucoup de trucs aujourd'hui, si, tiens, quand on lance une machine et que son serveur NIS, NFS, et mail n'est pas là et ben c'est sacrément la galère, et ce n'est pas peu dire (enfin disons que le plus simple est encore de booter en runlevel 1, de virer les services qui plantent du runlevel courant et d'ajouter l'utilisateur habituellement en NIS, j'ai pas trouvé plus simple...). En fait si, il y a plus simple, tiens, il faut juste se faire une deuxième partition de boot pour la machine en standalone, avec ce qu'il faut comme paramètres, tiens, faut que je me fasse ça moi, je vais m'installer une petite debian, ou slackware... Non, pas slackware, je vais me mettre une Suse tiens, yep, c'est ça... Mais ça craint j'ai que la 5.3... Enfin, va falloir encore que je passe des nuits de download, à part si j'arrive à me dénicher le nouveau pack d'infomagic par! ! ! ici, ma is dans ce coin paumé c'est pas gagné, j'aurai du l'acheter à la capitale cette semaine, loupé, tant pis, on fera sans...
Remarque, si je pouvais partager le /usr ce serait pas mal... Je me demande si avec quelques liens symboliques coolos je peux pas me débrouiller, faut je que je vois ça tiens...
Le temps passe...
Je laisse tomber, je galère trop et je suis naze, demain peut-être la suite... Bonne nuit...
| 20 6 1999 |
Mots Clés : standalone (solution 1).
Bon, en fait je me suis dit que peut-être il y aurait plus simple pour avoir plusieurs config de boot différentes... En passant un paramètre à lilo, ce genre de truc, mais bon j'ai rien trouvé de bien super...
Alors bon, j'ai continué sur ma lancée d'hier, à savoir mettre sur une autre partition un répertoire racine (c'est-à-dire les répertoire /etc, /var, /proc, /dev, /bin, /sbin et ce genre de truc...). Bon j'ai eu un peu du mal à booter avec le problème du /dev (ce ne sont pas des fichiers standards il faut les recréer avec la commande mknod). Des commandes du genre :
eval `/bin/ls -l /dev | awk '{print $10, $1, $5, $6}' | sed s/c[rw-]*/c/g | sed s/b[rw\-]*/b/g | sed s/,// | sed s/^/mknod / | sed s/$/ ;/ | grep -v - | grep -v total`
eval `/bin/ls -l /dev | grep ^l | awk '{print 1, }' | sed s/^/ln -s / | sed s/$/;/`
peuvent être utiles pour recréer les entrées dans le futur répertoire /dev. Cependant la première commande (qui crée les entrées, la seconde recrée juste les liens) ne donne pas les bonnes permissions, j'ai pas cherché comment le faire avec une commande j'ai eu mal à la tête rien que d'y penser. Plus simple, j'ai simplement booté sur ma nouvelle partition au préalablement ajoutée dans lilo.conf :
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/vmlinuz
label=linux
root=/dev/hda5
read-only
append=video=matrox:vesa:227
...
image=/boot/vmlinuz-2.3.5
label=alone
root=/dev/hdc9
read-only
append=video=matrox:vesa:227
...
Puis j'ai réinstallé le package dev... Mais j'avais quelques blèmes avec mon serveur de fontes pour mon serveur X et de l'affaire j'ai dû aussi réinstaller aussi le package XFree86-xfs... Bon là ça a l'air de marcher cependant je ne suis pas super content de la solution, comme je le disais au début, passer une option au boot serait bien plus cool... Bon, pour plus tard en tout cas...
| 22 6 1999 |
Mots Clés : runlevel (nouveau).
Ah, bon sang, c'est quand même sacrément cool d'avoir du Soleil, tous les jours, et des cerises de partout dans les arbres (même les abricotiers y s'y mettent, la cerise, c'est l'avenir ;-).
Mais c'est vrai qu'il faut dire que tout ce Soleil incite un peu à se mettre à bronzer dans le hamac :-)... C'set le charme du Sud... Sont barges les parigaux, barges...
J'ai jeté un cup d'oeil à lilo et init, mais apparemment les seul paramètres qu'on peut lui passer c'est le runlevel qu'on veut. J'ai bien pensé à utiliser un nouveau runlevel mais... Remarque il faut que j'essaie parce qu'à regarder /etc/inittab ya pas de raison que cela ne marche pas...
Par contre pour mon fichier /etc/passwd, va falloir fainter... Parce que je vous le rappelle (holala, vous suivez pas alors !), le but c'est quand même d'avoir une double config, c'est-à-dire c'est de pouvoir booter la machine quand le serveur NFS, de mail, NIS (Network Information Service, le truc de yellow pages (pages jaunes pour les incultes) quoi, qui centralise les logins et d'autres trucs, c'est pour cela qu'il y a un < +::::: > à la fin du fichier passwd, et c'est là qu'est mon problème)... Il me faudrait donc un autre fichier passwd avec l'utilisateur qui normalement est sur le NIS.
Pfff... Je me demande si finalement ma solution avec une autre partition de boot pour quand je suis loin de chez moi n'est pas si mal...
Faut quand même que je regarde cette histoire de runlevel...
| 23 6 1999 |
Mots Clés : standalone (idée).
Bon, ben j'ai essayé de rajouter un runlevel, le 9 (de toutes façons, vue la liberté dans /etc/inittab on n'a pas trop le choix, c'est 7, 8 ou 9). Normalement ces runlevels, 7,8 et 9 ont une sémantique et c'est ça qui me gène, même si ça marche, je ne pense pas que ce soit la bonne solution finalement. Ce qu'il faut pouvoir faire, c'est passer un argument à lilo, genre config=standalone et ne pas changer le runlevel, parce que ce n'est pas le but des runlevels.
D'un autre coté, en configurant correctement les scripts de démarrage des services NIS et autres, c'est-à-dire en faisant en sorte que ceux-ci ne s'activent pas si le serveur n'est pas là, on devrait pouvoir de façon transparente booter n'importe où. Ce qui est chiant c'est des trucs comme NFS qui pinguent sans arrêt pour savoir si le serveur n'est pas revenu par hasard (enfin, c'est chiant oui et non, parce quand on reboote le serveur, c'est bien pratique de ne pas avoir à tout remonter à la main).
Donc finalement un param au boot peut être utile, mais là j'en sais pas assez, il faut que je cherche un peu... Peut-être définir un nouveau mot clé dans le noyau, genre config, et créer une variable d'environnement qui contient ce qui a été donné au boot, un peu comme la variable RUNLEVEL...
| 26 6 1999 |
Mots Clés : paramètres de boot.
Bon, j'écris pas trop trop ces derniers temps, mais je suis pas mal occupé là, alors bon, hein... J'ai jeté un coup d'oeil aux sources pour voir comment étaient traités les paramètres passés à lilo, tout ça ce passe dans arch/i386/kernel/setup.c, et c'est tout bète, en fait juste la commande permettant de définir la taille de mémoire désirée est traitée (mem=XXX), le reste est mis dans /proc/cmdline. Donc pas d'embrouille je me débrouille, ya qu'à parser un coup /proc/cmdline et le tour est joué, on a notre multi-config. Bon il faut quand même réfléchir deux secondes pour savoir comment arranger tout ça, mais ce n'est pas très compliqué je pense. En arrangeant un peu /etc/rc.d/rc ça devrait se faire...
Warly Home Page
Generated 2000-07-02, 11h31
Mail
Copyright © 1999,2000 Florent Villard (warly@bigfoot.com)
This site was created with daily (tar.gz, rpm)