j'ai eu l'occasion de tester Linux il y a qq années et aimerait
re-tenter l'expérience ne serait-ce que pour constater les évolutions de
l'OS.
J'essaie donc depuis maintentant 2 jours de créer une clef USB bootable
Linux. Malheureusement tout ce que j'arrive à faire est une sorte de
live-CD sur clef USB, en copiant les fichiers du live-CD sur la clef et
en la rendant bootable (avec donc détection des composants du PC à
chaque démarrage sans avoir la possibilité de sauvegarder quoi qui ce
soit sur la clef :-().
Est-ce qu'il y a moyen de créer un "vrai" Linux sur clef ?
Je pensais à une distribution qui pourrait s'INSTALLER sur une clef USB
plutôt que sur DD ?
Le noyau voit bien l'USB mais ne monte rien :( Parait qu'il y a une latence
C'est bien ça : les périphériques USB sont censés être hotpluggables, et la détection est faite de manière asynchrone : le chargement du module ne « bloque » pas le noyau jusqu'à ce que le matériel soit effectivement détecté. En général, il s'en faut de quelques centièmes de secondes (sauf que maintenant, le driver usb-storage ajoute une temporisation de 5 s par défaut).
Tout ceci peut être réglé assez facilement avec un initrd (mais le sleep 4 que tu montres est vraiment une solution crade).
Quoi d'autre? Sur la disquette on a le noyau, et l'initrd. L'initrd charge les modules, attend 4s et monte la cle. Si tu as une autre solution, je suis preneur. -- Kevin
On 2005-02-16, Nicolas George <nicolas$george@salle-s.org> wrote:
Le noyau voit bien l'USB mais ne monte rien :( Parait qu'il y a une latence
C'est bien ça : les périphériques USB sont censés être hotpluggables, et la
détection est faite de manière asynchrone : le chargement du module ne
« bloque » pas le noyau jusqu'à ce que le matériel soit effectivement
détecté. En général, il s'en faut de quelques centièmes de secondes (sauf
que maintenant, le driver usb-storage ajoute une temporisation de 5 s par
défaut).
Tout ceci peut être réglé assez facilement avec un initrd (mais le sleep 4
que tu montres est vraiment une solution crade).
Quoi d'autre? Sur la disquette on a le noyau, et l'initrd. L'initrd charge
les modules, attend 4s et monte la cle. Si tu as une autre solution, je
suis preneur.
--
Kevin
Le noyau voit bien l'USB mais ne monte rien :( Parait qu'il y a une latence
C'est bien ça : les périphériques USB sont censés être hotpluggables, et la détection est faite de manière asynchrone : le chargement du module ne « bloque » pas le noyau jusqu'à ce que le matériel soit effectivement détecté. En général, il s'en faut de quelques centièmes de secondes (sauf que maintenant, le driver usb-storage ajoute une temporisation de 5 s par défaut).
Tout ceci peut être réglé assez facilement avec un initrd (mais le sleep 4 que tu montres est vraiment une solution crade).
Quoi d'autre? Sur la disquette on a le noyau, et l'initrd. L'initrd charge les modules, attend 4s et monte la cle. Si tu as une autre solution, je suis preneur. -- Kevin
Nicolas George
Kevin Denis wrote in message :
Quoi d'autre? Sur la disquette on a le noyau, et l'initrd. L'initrd charge les modules, attend 4s et monte la cle.
Et manque de chance, la clef a mis quatre secondes et demie avant d'être détectée par le noyau à cause d'on ne sait quoi sur le bus USB. Paf c'est mort.
Si tu as une autre solution, je suis preneur.
while <test sur l'existence du périphérique>; do sleep <un temps asez court, typiquement 100 ms> done
Le test sur l'existence du périphérique peut se faire en greppant dans /proc, ou en testant l'existence dans un devfs. Pour le confort, on peut ajouter un long timeout (30 s) avec un message d'erreur clair.
On peut aussi envisager d'attendre un événement hotplug, mais ça devient un peu complexe pour un initrd.
Kevin Denis wrote in message
<slrnd16mfd.13c.kevin@slackwall.local.tux>:
Quoi d'autre? Sur la disquette on a le noyau, et l'initrd. L'initrd charge
les modules, attend 4s et monte la cle.
Et manque de chance, la clef a mis quatre secondes et demie avant d'être
détectée par le noyau à cause d'on ne sait quoi sur le bus USB. Paf c'est
mort.
Si tu as une autre solution, je
suis preneur.
while <test sur l'existence du périphérique>; do
sleep <un temps asez court, typiquement 100 ms>
done
Le test sur l'existence du périphérique peut se faire en greppant dans
/proc, ou en testant l'existence dans un devfs. Pour le confort, on peut
ajouter un long timeout (30 s) avec un message d'erreur clair.
On peut aussi envisager d'attendre un événement hotplug, mais ça devient un
peu complexe pour un initrd.
Quoi d'autre? Sur la disquette on a le noyau, et l'initrd. L'initrd charge les modules, attend 4s et monte la cle.
Et manque de chance, la clef a mis quatre secondes et demie avant d'être détectée par le noyau à cause d'on ne sait quoi sur le bus USB. Paf c'est mort.
Si tu as une autre solution, je suis preneur.
while <test sur l'existence du périphérique>; do sleep <un temps asez court, typiquement 100 ms> done
Le test sur l'existence du périphérique peut se faire en greppant dans /proc, ou en testant l'existence dans un devfs. Pour le confort, on peut ajouter un long timeout (30 s) avec un message d'erreur clair.
On peut aussi envisager d'attendre un événement hotplug, mais ça devient un peu complexe pour un initrd.