OVH Cloud OVH Cloud

Probleme de boot

9 réponses
Avatar
n.bonniot
Bonjour a tous,
Je suis en train de mettre au point un systeme embarque, et pour ce
faire j'ai compile un noyau minimal, que je lance sur une partition
dediee au demarrage. Jusque la, tout semble fonctionner. J'utilise Red
Hat 9.0.
Mais arrive a la lecture d'inittab, j'ai des messages de ce type:

INIT:cannot execute etc/rc.sysconfig/

J'ai plusieurs questions. Tout d'abord, j'ai reorganise mon systeme
minimal, et j'ai mis rc.sysconfig (modifie pour mes besoins)
directement dans le repertoire /etc, en sautant l'arborescence /rc.d/.
Est-ce que ca peut etre la cause?

Ensuite, je ne comprend pas comment on peut lui demander d'executer un
script (en l'occurence rc.d ou rc.sysconfig), alors que l'on ne charge
le shell qu'apres dans le script?

Enfin, quelle est la difference entre les fichiers rc.d, rc.sysconfig,
rc.S ? Lorsque je me promene dans les forums, tous ces noms
apparaissent et je ne comprends pas la difference.


SI QUELQU'UN PEUT AIDER UN DEBUTANT QUI DEBUTE :), CE SERAIT SYMPA !!

Merci a tous

9 réponses

Avatar
no_spam
On Fri, 23 Jul 2004 01:31:25 -0700, Nicolas BONNIOT wrote:

Bonjour a tous,
Je suis en train de mettre au point un systeme embarque, et pour ce
faire j'ai compile un noyau minimal, que je lance sur une partition
dediee au demarrage. Jusque la, tout semble fonctionner. J'utilise Red
Hat 9.0.


Une RedHat pour un système minimal ? Hum :-)
Un système minimal, avec ses drivers, ce qu'il faut pour gérer le
hotplug et se connecter au net, chez moi, ça fait 1.8 Mo, si tu vois
ce que je veux dire...

Mais arrive a la lecture d'inittab, j'ai des messages de ce type:

INIT:cannot execute etc/rc.sysconfig/

J'ai plusieurs questions. Tout d'abord, j'ai reorganise mon systeme
minimal, et j'ai mis rc.sysconfig (modifie pour mes besoins)
directement dans le repertoire /etc, en sautant l'arborescence /rc.d/.
Est-ce que ca peut etre la cause?


Regarde du coté de la ligne:
rc::bootwait:<...>
dans ton inittab et vérifie le script appelé;
A ta place, je créérai moi-même un script /sbin/rc.sysinit
que j'appelerai de là et je virerai tous les scripts /etc/rc.*
(rm -rf /etc/rc.*).
Ce sera plus simple.

Avatar
Jerome Lambert
Le Fri, 23 Jul 2004 11:40:35 +0200, Rakotomandimby Mihamina a écrit :

Nicolas BONNIOT wrote:
Bonjour a tous,


Bonjour

Je suis en train de mettre au point un systeme embarque [...] J'ai
plusieurs questions. Tout d'abord, j'ai reorganise mon systeme
minimal, et j'ai mis rc.sysconfig (modifie pour mes besoins)
directement dans le repertoire /etc, en sautant l'arborescence
/rc.d/. Est-ce que ca peut etre la cause?


Oui.
Mais pour un systeme a personnaliser, as-tu envisagé la piste LFS (Linux
From Scratch) ... Avec LFS, tu peux etre sur de faire les choses comme
tu l'entends.
Le souci avec les distros comme RH, c'est que tu peux acheter le
support, mais si tu bidouille trop, le support technos va te jetter ... :-)


Disons plutot que si tu bidouilles trop une RH ou une MDK, tu risques tout
simplement de tout casser...

La piste LFS me semble effectivement la meilleure...

--
Jerome (qui pourtant aime bien ses MDK)

"Je ne suis pas un bon investisseur. Mon objectif n'est pas d'être le plus riche
du cimetière." Steve Jobs.


Avatar
Rakotomandimby Mihamina
Nicolas BONNIOT wrote:
Bonjour a tous,


Bonjour

Je suis en train de mettre au point un systeme embarque [...] J'ai
plusieurs questions. Tout d'abord, j'ai reorganise mon systeme
minimal, et j'ai mis rc.sysconfig (modifie pour mes besoins)
directement dans le repertoire /etc, en sautant l'arborescence
/rc.d/. Est-ce que ca peut etre la cause?


Oui.
Mais pour un systeme a personnaliser, as-tu envisagé la piste LFS (Linux
From Scratch) ... Avec LFS, tu peux etre sur de faire les choses comme
tu l'entends.
Le souci avec les distros comme RH, c'est que tu peux acheter le
support, mais si tu bidouille trop, le support technos va te jetter ... :-)
Rien ne t'empeche, cela dit, de faire un symlink qu'il faut, pour que ta
distribution boote bien...

Ensuite, je ne comprend pas comment on peut lui demander d'executer
un script (en l'occurence rc.d ou rc.sysconfig), alors que l'on ne
charge le shell qu'apres dans le script?


Ptet que l'image du noyau inclu un petit interpreteur ? Mais je sais
pas, en fait. Je ne me sui jamais posé cette question mais quand j'y
pense c'est une bonne question.

Enfin, quelle est la difference entre les fichiers rc.d,
rc.sysconfig, rc.S ? Lorsque je me promene dans les forums, tous ces
noms apparaissent et je ne comprends pas la difference.


Chaque distribution a sa facon de "booter". Il y en a qui utilisent
plutot une facon a la BSD, d'autres ont d'autres facons.

Je crois meme qu'il y a des noms pour ca : SystemV en est un si ma
memoire est bonne, et il y a d'autres nom de facons de demarrer.

SI QUELQU'UN PEUT AIDER UN DEBUTANT QUI DEBUTE :), CE SERAIT SYMPA !!


Oui, mais faut pas crier.
--
Rakotomandimby Mihamina Andrianifaharana
Tel : +33 2 38 76 43 65
http://www.rktmb.org/Members/mihamina

Avatar
TiChou
Dans le message <news:,
*Jerome Lambert* tapota sur f.c.o.l.configuration :

La piste LFS me semble effectivement la meilleure...


Pour un système embarqué, je conseillerai plutôt de construire un système
avec la libc uClibc et le « couteau suisse » BusyBox, surtout que des outils
comme buildroot permettent de construire ce type de système très rapidement
et facilement.

http://www.uclibc.org

http://www.busybox.net

On peut aussi, tout dépend du type de système à construire, partir sur un
LEAF (par exemple Bering-uClibc) que l'on peut par la suite adapté très
facilement à ses besoins.

http://leaf.sf.net

--
TiChou

Avatar
FrekoDing
Le 23/07/2004 12:21, TiChou écrivait ceci :

Dans le message <news:,
*Jerome Lambert* tapota sur f.c.o.l.configuration :


La piste LFS me semble effectivement la meilleure...



Pour un système embarqué, je conseillerai plutôt de construire un système
avec la libc uClibc et le « couteau suisse » BusyBox, surtout que des outils
comme buildroot permettent de construire ce type de système très rapidement
et facilement.

http://www.uclibc.org

http://www.busybox.net


Je rajouterais Ecos (+Redboot)
J'ai decouvert ca durant mon stage dans le cadre d'un gros projet.
http://sources.redhat.com/ecos/
http://sources.redhat.com/redboot/
Tout depend des besoins de la personne et du materiel a sa disposition.
@+


Avatar
Frédéric BISSON
Enfin, quelle est la difference entre les fichiers rc.d, rc.sysconfig,
rc.S ? Lorsque je me promene dans les forums, tous ces noms
apparaissent et je ne comprends pas la difference.
Un nom avec un .d à la fin signifie généralement un répertoire (d pour

directory).

Sous Red Hat, rc.d contient les répertoires suivants :
- init.d => ensemble des scripts d'arrêt/démarrage/redémarrage
- rcX.d => 1 répertoire numéroté par niveau d'exécution (rc1.d ...
rc6.d) dans lequel on retrouve des liens vers les scripts d'init.d.
- rc.local => script laissé à l'attention de l'administrateur et qu'il
peut modifier pour adapter le système à sa guise
- rc.sysconfig => script de base de lancement.

En fonction de ta distribution, déplacer rc.sysconfig dans un autre
répertoire n'est pas judicieux car le système recherche ses fichiers
dans des répertoires précis.

@+

Frédéric

Avatar
n.bonniot
no_spam wrote in message news:...
On Fri, 23 Jul 2004 01:31:25 -0700, Nicolas BONNIOT wrote:

Bonjour a tous,
Je suis en train de mettre au point un systeme embarque, et pour ce
faire j'ai compile un noyau minimal, que je lance sur une partition
dediee au demarrage. Jusque la, tout semble fonctionner. J'utilise Red
Hat 9.0.


Une RedHat pour un système minimal ? Hum :-)
Un système minimal, avec ses drivers, ce qu'il faut pour gérer le
hotplug et se connecter au net, chez moi, ça fait 1.8 Mo, si tu vois
ce que je veux dire...

Mais arrive a la lecture d'inittab, j'ai des messages de ce type:

INIT:cannot execute etc/rc.sysconfig/

J'ai plusieurs questions. Tout d'abord, j'ai reorganise mon systeme
minimal, et j'ai mis rc.sysconfig (modifie pour mes besoins)
directement dans le repertoire /etc, en sautant l'arborescence /rc.d/.
Est-ce que ca peut etre la cause?


Regarde du coté de la ligne:
rc::bootwait:<...>
dans ton inittab et vérifie le script appelé;
A ta place, je créérai moi-même un script /sbin/rc.sysinit
que j'appelerai de là et je virerai tous les scripts /etc/rc.*
(rm -rf /etc/rc.*).
Ce sera plus simple.


Merci beaucoup de toutes ces reponses !

En fait j'ai recree mon inittab. Il ne contient qu'une commande
initdefaut, ainsi que la commande sysinit. (dans mon cas ce fichier se
resume donc a : id::sysinit:/etc/rc.d/rc.sysconfig --> je n'ai pas mis
de run level, j'ai lu a plusieurs endroits qu c'etait inutile)

Voila j'espere que ces precisions pourront vous aider a me repondre !
Merci beaucoup


Avatar
no_spam
On Mon, 26 Jul 2004 01:09:52 -0700, Nicolas BONNIOT wrote:

no_spam wrote in message news:...
On Fri, 23 Jul 2004 01:31:25 -0700, Nicolas BONNIOT wrote:

Bonjour a tous,
[...]



Mais arrive a la lecture d'inittab, j'ai des messages de ce type:

INIT:cannot execute etc/rc.sysconfig/

[...]




En fait j'ai recree mon inittab. Il ne contient qu'une commande
initdefaut, ainsi que la commande sysinit. (dans mon cas ce fichier se
resume donc a : id::sysinit:/etc/rc.d/rc.sysconfig --> je n'ai pas mis
de run level, j'ai lu a plusieurs endroits qu c'etait inutile)
L'init standard ne sait booter qu'avec des runlevels.

Si tu veux t'en passer, lance directement ton script en passant
au kernel:
init=/etc/rc.d/rc.sysconfig
ou écrit un petit programme qui remplacera init.

Sinon, pour un init système V standard, tu devrais avoir:
id:2:initdefault
si::sysinit:/etc/rc.d/rc.sysconfig
l1:2:/bin/sh

au minimum.
Il est conseillé de rajouté un runlevel de halt et un de reboot voire
un runlevel 1 (single).

Vérifie en passant que ton script commence bien par:
#!/bin/sh
(sinon le kernel sera incapable de l'executer),
appartient à root et est executable...



Avatar
n.bonniot
Vérifie en passant que ton script commence bien par:
#!/bin/sh
(sinon le kernel sera incapable de l'executer),
appartient à root et est executable...


Merci beaucoup, il se trouve que c'etait cette erreur. J'avais presume
que, puisque cette ligne etait precedee de #, c'etait un commentaire
indiquant a titre informatif ou se trouvait le bash.

J'ai d'autres problemes....:-).
Maintenant INIT me dit: cannot acces to /proc/partitions, et donc
impossible d'executer une certaine commande.
qunad je lui demande de monter le systeme de fichiers, mount -w -n- o
remount, la reponse de init est "mount : cannot find such a
partition".
Apres je lui demande de monter le systeme local de fichiers, et j'ai
le meme type de reponse.
Desole je ne peux pas trop detailler, je suis au travail et n'ai pas
la machine devant les yeux.

MERCI