Se connecter avec
S'enregistrer | Connectez-vous

Cd Shell et démarrage Geexbox

Dernière réponse : dans Programmation
Expert Programmation

Salut à tous,

Je cherche à incorporer la Geexbox dans un DVD multiboot, géré par un script CD Shell. L'idée est d'avoir sur un même média tous les outils nécesaires au nomade que je suis : outre la Geexbox, j'y ai déjà incorporé une distribution Kaella, un Windows XP live (Bart PE) et aussi l'Ultimate Boot CD.

Pour ce faire je me suis basé sur cette page excellente : http://severinterrier.free.fr/Boot/UltimeDVD/index.htm

Le problème c'est que je n'arrive pas à faire démarrer la Geexbox avec un script ; celui que je pensais être le bon (ayant gardé la structure de l'arborescence de la Geexbox) et qui ne marche pas est :
  1. if $lastKey == key[F7]; then isolinux /GEEXBOX/boot/vmlinuz initrd=/GEEXBOX/boot/initrd.gz root=/dev/ram0 rw init=linuxrc boot=cdrom splash=silent vga=0x315 video=vesafb:ywrap,mtrr


Dans ce cas là, vmlinuz et initrd.gz se charge, l'écran de démarrage de la Geexbox apparaît avec la barre (orange) de chargement, mais ensuite le PC s'éteint !!! Quelqu'un a-t-il une idée ?

Pour info mon script CD Shell complet (mais pas encore fini...) :
  1. ###############################################################################
  2. # Fichier cree par Severin TERRIER : <a href="http://severinterrier.free.fr/Boot/" target="_blank">http://severinterrier.free.fr/Boot/</a>
  3. # Vous pouvez modifier ce menu, en laissant les informations me concernant.
  4. ###############################################################################
  5. # Ce fichier permet de creer le menu de demarrage qui sera lance par
  6. # l'utilitaire CD Shell.
  7. ###############################################################################
  8. # Je vais essayer d'inclure dans ce fichier beaucoup de commentaires et de
  9. # fonctions differentes de CD Shell, pour permettre facilement de creer votre
  10. # propre menu personnalise.
  11. ###############################################################################
  12. # Les instructions sont executees sequentiellement, sauf si on fait appel a
  13. # d'autres blocs (goto ou call) ou script (script)
  14. ###############################################################################
  15.  
  16. # On defini quelques variables qui serviront dans ce script
  17. set ConfirmerDemarrage = 0 # Specifie si on doit appuyer Entree pour demarrer le DVD
  18. set DureeReponse = 20 # Temps disponible pour faire un choix dans un menu
  19. set 24Heures = 1 # On gere l'heure sur 24h, plutot que sur 12
  20. set BootToujours = 0 # Specifie de booter meme si le support ne semble pas bootable
  21.  
  22. # On teste si les modes graphiques sont supportes (vesa necessaire pour images CSI)
  23. if $vga; then if $vesa; then set ModeGraphique = 1; else set ModeGraphique = 0
  24.  
  25. # On identifie le debut du script de configuration
  26. Debut:
  27.  
  28. if $ConfirmerDemarrage == 1; then goto boot; else goto menu
  29.  
  30. # Il faut appuyer sur Entree pour lancer le menu du DVD, sinon on boot depuis le DD
  31. boot:
  32. cls
  33. print "\n"
  34. print " Appuyez sur Entree (vous avez 5s) pour d‚marrer le DVD... \n"
  35. getkey 5 goto DisqueDur
  36. if $lastKey == key[enter]; then goto menu
  37. # On reboucle si la touche n'est pas Entree...
  38. goto boot
  39.  
  40. ###############################################################################
  41. # On va definir des fonctions qui seront appelees ailleurs
  42. ###############################################################################
  43.  
  44. # Fonction qui prepare la presentation de l'heure
  45. PreparerHeure:
  46. if $24Heures == 1; then set time = "$timeHour:$timeMinute"; then return
  47. if $timeHour > 12
  48. then set hour = $timeHour - 12; then set ampm = "pm"
  49. else set hour = $timeHour; set ampm = "am"
  50. set time = "$hour:$timeMinute$ampm"
  51. return
  52. # Fin de la fonction PreparerHeure
  53.  
  54. # Fonction qui prepare la presentation de la date
  55. PreparerDate:
  56. if $dateMonth == 1; then set month = "Janvier"
  57. if $dateMonth == 2; then set month = "F‚vrier"
  58. if $dateMonth == 3; then set month = "Mars"
  59. if $dateMonth == 4; then set month = "Avril"
  60. if $dateMonth == 5; then set month = "Mai"
  61. if $dateMonth == 6; then set month = "Juin"
  62. if $dateMonth == 7; then set month = "Juillet"
  63. if $dateMonth == 8; then set month = "Aout"
  64. if $dateMonth == 9; then set month = "Septembre"
  65. if $dateMonth == 10; then set month = "Octobre"
  66. if $dateMonth == 11; then set month = "Novembre"
  67. if $dateMonth == 12; then set month = "D‚cembre"
  68. set date = "$dateDay $month $dateYear"
  69. return
  70. # Fin de la fonction PreparerDate
  71.  
  72. # Fonction qui permet d'afficher l'entete du menu
  73. Entete:
  74. call PreparerDate
  75. call PreparerHeure
  76. set textColor= color[white on black]
  77. set boldColor= color[cyan on black]
  78. cls
  79. #print c "\n\cXXÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ<\c0B$date $time\cXX>Ä\n\n"
  80. print c "\n\cXXÄÄÄ< DVD Ultime Multi-Boot pour PC. V1.9 >ÄÄÄÄÄÄÄÄÄÄÄÄ<\c0B$date $time\cXX>Ä\n\n"
  81. #print c "\cXX DVD Ultime Multi-Boot pour PC. V1.9\n\n"
  82. print c "\cXX $TitreMenu \n\n"
  83. print l "\cXX Appuyez \c0BF1 \cXXpour l'aide";
  84. print r "\c0B<a href="http://severinterrier.free.fr/Boot/UltimeDVD/" target="_blank">http://severinterrier.free.fr/Boot/UltimeDVD/</a> \n"
  85. print c "\cXXÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ\n\n"
  86. return
  87. # Fin de la fonction Entete
  88.  
  89. ###############################################################################
  90. # Affichage du menu principal
  91. ###############################################################################
  92. menu:
  93. #if $ModeGraphique; then show image menu.csi menu.bmp; then goto MainKey
  94. set TitreMenu = "Menu principal du DVD multiboot"
  95. call Entete
  96. print " Installer OS : Demarrer un OS depuis le DVD : \n\n"
  97. print " 1) XP Home SP2 F2) Bart PE (Base sur XP) \n"
  98. print " F3) Bart PE en RAM \n"
  99. print " 2) Linux Mandriva LE 2005 F4) Barf PE (XP + Firefox) \n"
  100. print " 3) Linux Ubuntu 5.04 F5) Barf PE en RAM \n"
  101. print " \n"
  102. print " Outils F6) Kaella 2.01 (Linux) \n"
  103. print " F7) GeexBox 0.98.5 (Linux) \n"
  104. print " 4) UBCD 3.3 \n"
  105. print " \n"
  106. print " C) Quitter le menu et aller a la ligne de Commande (Expert) \n"
  107. print " R) Rebooter \n"
  108. print " D) Demarrer depuis la disquette \n"
  109. print " ESC) Demarrer depuis le 1er disque dur \n"
  110.  
  111. MainKey:
  112. getkey $DureeReponse goto DisqueDur
  113. if $lastKey == key[F1]; then goto Aide
  114. if $lastKey == key[F2]; then chain /BartPE.DAT
  115. if $lastKey == key[F3]; then chain /PEINRAM.DAT
  116. if $lastKey == key[F4]; then chain /BarfPE.DAT
  117. if $lastKey == key[F5]; then chain /PFINRAM.DAT
  118. if $lastKey == key[F6]; then isolinux /boot/isolinux/linux initrd=/boot/isolinux/minirt.gz ramdisk_size=100000 init=/etc/init lang=fr myconf=scan home=scan apm=power-off vga=791 nomce quiet BOOT_IMAGE=/KNOPPIX/knoppix
  119. if $lastKey == key[F7]; then isolinux GEEXBOX/boot/vmlinuz initrd=/GEEXBOX/boot/initrd.gz root=/dev/ram0 rw init=linuxrc boot=cdrom splash=silent vga=0x315 video=vesafb:ywrap,mtrr
  120. if $lastKey == key[1]; then chain /HOM1.DAT
  121. if $lastKey == key[2]; then isolinux
  122. if $lastKey == key[3]; then isolinux
  123. if $lastKey == key[4]; then chain /IMG_BOOT/ubcd33.dat
  124. if $lastKey == key[c]; then goto LigneDeCommande
  125. if $lastKey == key[C]; then goto LigneDeCommande
  126. if $lastKey == key[r]; then reboot
  127. if $lastKey == key[R]; then reboot
  128. if $lastKey == key[o]; then goto AutresOptions
  129. if $lastKey == key[O]; then goto AutresOptions
  130. if $lastKey == key[d]; then goto Disquette
  131. if $lastKey == key[D]; then goto Disquette
  132. if $lastKey == key[esc]; then goto DisqueDur
  133. goto menu
  134.  
  135. Aide:
  136. set TitreMenu = "Aide du DVD Multi-Boot"
  137. call Entete
  138. print " Appuyez sur la touche de votre choix dans le menu principal -> \n"
  139. print "\n"
  140. print "\n"
  141. print " Types d'installation \n"
  142. print " ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ \n"
  143. print " Normal - Installation avec saisie d'informations par l'utilisateur. \n"
  144. print " Automatise - Installation automatisee, sans intervention. \n"
  145. print " OEMPreinstall - Installation Windows et autres programmes, sans intervention.\n"
  146. print "\n"
  147. print "\n"
  148. print " Appuyez sur une touche pour revenir au menu principal... \n"
  149. getkey
  150. goto menu
  151.  
  152. Disquette:
  153. # Permet de demarrer depuis la disquette, si elle semble bootable
  154. if bootCheck[0]; then boot 0x00
  155. if $BootToujours == 1; then boot 0x00
  156. cls
  157. print " La disquette ne semble pas bootable, essayer quand meme (O/N) ? \n\n"
  158. getkey
  159. if $lastKey == key[o]; then boot 0x00
  160. if $lastKey == key[O]; then boot 0x00
  161. goto menu
  162.  
  163. DisqueDur:
  164. # Permet de demarrer depuis le disque dur
  165. if bootCheck[0x80] == 3; then boot 0x80 # Boot HDD 0
  166. if bootCheck[0x81] == 3; then boot 0x81 # Boot HDD 1
  167. if $BootToujours == 1; then boot 0x00
  168. cls
  169. print " Le disque dur ne semble pas bootable, essayer quand meme (O/N) ? \n\n"
  170. getkey
  171. if $lastKey == key[o]; then boot 0x80
  172. if $lastKey == key[O]; then boot 0x80
  173. goto menu
  174.  
  175. LigneDeCommande:
  176. # On permet d'utiliser CD Shell en ligne de commande (pour les experts)
  177. set TitreMenu = "Ligne de commande de CD Shell"
  178. call Entete
  179. print " Vous etes maintenant en mode ligne de commande de CD Shell \n\n"
  180. print " Vous pouver relancer le menu avec la commande : script cdshell.ini \n\n"
  181. print " list <commands/functions/keys/modules> \n"
  182. print " permet d'avoir la liste des commandes/fonctions/cles/modules...\n"
  183. print "\n"
  184. print " Vous pouvez taper help (ou help nom-commande) pour avoir un peu d'aide \n\n"
  185. print " Quelques commandes possibles : \n\n"
  186. print " cd : change de repertoire \n"
  187. print " dir (ou ls) : affiche le contenu du repertoire \n"
  188. print " chain nom-fichier : charge et lance un secteur de boot \n"
  189. print " memdisk nom-fichier : charge et lance une image de disquette \n"
  190. print "\n"
  191.  
  192. Fin:
  193. # On termine le script en passant la main a la ligne de commande de CD Shell
  194. end

Autres pages sur : shell demarrage geexbox

Lassé par la pub ? Créez un compte
Expert Programmation

Bienvenue sur Terre, cher Marsien.
Sans vouloir te débouter, il y a sur ce site un forum dédié à Linux. D'autre part, Severin TERRIER n'est-il pas le premier à solliciter (si ce n'est déjà fait) ?

Sinon, sais-tu exactement jusqu'où va ton script ? Jusqu'à l'init ? Si oui, trace linuxrc.
Expert Programmation

Salut Zeb,
Merci de ne pas me débouter :)  , je ne savais pas trop où mettre ce message, car il ne concerne pas directement Linux, pas directement un logiciel, et pas vraiment de la programmation...
Quant à Séverin Terrier, il ne semble plus trop se préoccuper de ces problèmes depuis un peu plus d'un an. Il y a donc peu de chance qu'il me réponde, et je ne suis même pas sur qu'il connaisse la réponse, à la vue de ses propos sur ses propres expériences avec les live CD de Linux...

Par contre je ne comprends pas trop ce que tu entends par "tracer linuxrc" ? Si tu peux m'expliquer... (je comprends vite quand on m'explique longtemps :sweat:  ).

Encore merci de m'aider :jap: 
Marsien, bien sur Terre, la tête dans les étoiles auprès de son rayon de soleil :D 
Expert Programmation

Ton initrc c'est bien un script ?
Si oui, tu le truffes de
  1. echo "Etape 1" >> /var/log/mon_fichier


Sinon, pour les besoins de la cause, tu le remplaces par un p'tit script de ton cru, et hop, tu sais jusqu'où quand et comment va le démarrage de ta geexbox.
Expert Programmation

Merci Zeb

J'ai trouvé la réponse à mon problème : il fallait utiliser la version de Geexbox "non compressée", c'est-à-dire celle dispo dans le générateur d'iso sur le site de la Geexbox.

Ensuite il suffit de transférer les fichiers extraits de l'archive dans le répertoire GEEXBOX créé à la racine de ce qui va devenir le DVD multiboot et de rajouter quelques fichiers au bon endroit.

Pour les détails complets, voir ici ou ;) 
Lassé par la pub ? Créez un compte