Créer son premier RIM-Linux

Premier tuto

a marqué ce sujet comme résolu.

Bonjour à tous !

Un petit tuto pour exposer la création de Run In Memory Linux, qui peuvent permettre de créer des LiveCD, afin d'essayer de transmettre un zeste de savoir.

Quelques remarques:

  • J'ai choisi la forme "Mini-tuto" parce que ça me semblait approprié, pas en terme de volume mais en terme de sens : c'est plus une petite doc qu'un grand exposé.
  • C'est mon premier tuto, non seulement sur ZdS, mais aussi de manière générale.
  • J'ai maintenant bien pu tester la partie bootloader, mais le noyau me résiste un peu sur quelques points de conf. Si vous avez vous aussi des problèmes à ce sujet, n'hésitez pas à poster.
  • Une fois le tuto bien fait, publié etc, je compte faire quelques travaux dessus, pour pouvoir remplir un peu la section "aller plus loin" (pas de section "Troisième RIM-Linux" étant donné que certains points sont contradictoires entre eux).

Bon, le lien ici.

Bonne journée

EDIT : je ne sais pas si j'ai été très clair, je précise donc que j'attends bien évidemment vos remarques, impressions et critiques.

+0 -0

Hello !

Désolé de ne pas avoir eu le temps de réagir plus tôt sur ton tuto. :-°

Premier point, je trouve le thème super bon, c'est des trucs pour lesquels il manque clairement des docs (en français comme en anglais d'ailleurs).

Au niveau du tuto, je pense que même si il va y avoir un tuto sur les OS, il peut être intéressant de garder une sorte d'intro qui regroupe les points à savoir sur ce qu'est un noyau et le processus de boot.

Sinon, d'un point de vue général, je dirais que le principal défaut est le manque de précision à certains endroits (parfois tu parles de dossier qui ne sont pas dans le dossier courant et qu'il faut retrouver par exemple, si on suit bien, ça va, sinon on peut se perdre je pense), ce qui n'est pas trop compliqué à corriger.

Je me suis lancé dans l'aventure (en connaissant assez peu le sujet) et voici les quelques remarques qui me viennent à l'esprit :

  • il faudrait clarifier tout de suite la nomenclature que tu utilises (GNU/Linux et compagnie), étant donné que tout le monde fait un peu ce qu'il veut en la matière :D ;
  • "l'environnement de travail" : RàS :
  • lorsqu'on s'occupe du noyau, ça pourrait être bien de préciser à la volée qu'on peut décompresser avec tar -xf linux-v.m.r.tar.xz et qu'il faut ensuite se déplacer dans le dossier (c'est tout con, mais je pense que le dire clairement ne peut pas faire de mal) ;
  • il faudrait que tu expliques succinctement à quoi servent les options dont tu parles ;
  • comme stat, 2 minutes sur un i7 avec -j8 :p ;
  • quand j'ai lancé le make install de busybox avec ton fichier de config, il m'a demandé plein de trucs (si je voulais activer le support de tel ou tel machin, etc.), il y a quelque chose qui doit merder un peu, je regarderais de plus près ;
  • pour le mv ./_install/* il manque le * à la fin de la commande, et une fois qu'on a créer un baseroot/usr, ça crée un conflit ;
  • pour le ldd, précise qu'il faut le faire sur busybox, pareil que plus haut, c'est tout con mais autant le dire ;
  • j'ai pas pu aller plus loin, impossible de mettre la main sur un quelconque fichier bzImage, je vais regarder dans le makefile voir si je trouve quelque chose…

Mais sinon, encore une fois, c'est une super idée de tuto ! :)

+0 -0

Wow, merci du retour !

lorsqu'on s'occupe du noyau, ça pourrait être bien de préciser à la volée qu'on peut décompresser avec tar -xf linux-v.m.r.tar.xz et qu'il faut ensuite se déplacer dans le dossier (c'est tout con, mais je pense que le dire clairement ne peut pas faire de mal) ;

Ca répond donc à ma question sur le niveau : faire plus accessible.

Sinon, d'un point de vue général, je dirais que le principal défaut est le manque de précision à certains endroits (parfois tu parles de dossier qui ne sont pas dans le dossier courant et qu'il faut retrouver par exemple, si on suit bien, ça va, sinon on peut se perdre je pense), ce qui n'est pas trop compliqué à corriger.

Ah bah c'est bien, j'avais la même impression en rédigeant (j'ai fais ça un peu trop vite je crois).

comme stat, 2 minutes sur un i7 avec -j8 :p ;

On va ajouter ça ('spèce de privilégié va ! :p ).

quand j'ai lancé le make install de busybox avec ton fichier de config, il m'a demandé plein de trucs (si je voulais activer le support de tel ou tel machin, etc.), il y a quelque chose qui doit merder un peu, je regarderais de plus près ;

En fait j'ai remarqué que les choix "non" étaient commentés (préfixé par un #) dans le fichier de configuration. Du coup j'ai posté un fichier avec aucun commentaire. Mais si ça ne marche pas , je peux reposter le fichier avec tout dedans (il va falloir que je le retrouve …)

j'ai pas pu aller plus loin, impossible de mettre la main sur un quelconque fichier bzImage, je vais regarder dans le makefile voir si je trouve quelque chose…

S'il te plaît, prend un fusil, viens chez moi et tire à bout portant dans ma cervelle vide.

Ce fameux fichier bzImage est donc à prendre dans (à partir du dossier racine du noyau) arch/x86/boot. Facilement devinable hein ?

Premier point, je trouve le thème super bon, c'est des trucs pour lesquels il manque clairement des docs (en français comme en anglais d'ailleurs).

Après (si je trouve le temps :euh: ) j'aimerais bien en faire un 2e (tuto) où on fait un vrai LiveCD (parce que ça marche pas tout à fait comme ça un LiveCD), mais là, docdocdocdocdocdocdoc…

pour le mv ./_install/* il manque le * à la fin de la commande, et une fois qu'on a créer un baseroot/usr, ça crée un conflit ;

En effet :euh: . Sinon pour le conflit : je ne comprends pas bien : pourquoi créer un dossier usr alors que busybox en crée un tout seul ? Je suis un peu perplexe là.

il faudrait clarifier tout de suite la nomenclature que tu utilises (GNU/Linux et compagnie), étant donné que tout le monde fait un peu ce qu'il veut en la matière :D ;

Sauf les puristes qui trucident tout ceux qui écrivent gnu/linux au lieu de GNU/Linux :lol: .

[HS] Mais sinon je trouve que c'est un réel problème (la nomenclature non-standardisée/non-communiquée). Mais bon ça hein, tant que tout le monde sera encore en train de se disputer sur inclure ou non des codecs propriétaires (privateur je trouve que ça sonne moins bien) (ou driver propriétaire, ou flash, ou [sujet à débat ici]), ça n'avancera pas beaucoup. [/HS]

Au niveau du tuto, je pense que même si il va y avoir un tuto sur les OS, il peut être intéressant de garder une sorte d'intro qui regroupe les points à savoir sur ce qu'est un noyau et le processus de boot.

La partie sur le boot je la garde de toute façon. Mais sur le noyau, tu voudrais garder quoi ? Au fait j'ai aussi repréré une petite erreur sur le boot en UEFI, il faut une partition de type esp et non une fat toute bête (faut dire que la doc là-dessus ne court pas les rues).

Ah je m'en doutais un peu que j'allais avoir un retour de ta part (le sixième sens ou le petit doigt, je ne sais plus). Et sinon, les zesteurs et zesteuses, je vous aime bien aussi ! Venez voir un peu ! Il me faut des stats de compilo moi :p !

+0 -0

En fait j'ai remarqué que les choix "non" étaient commentés (préfixé par un #) dans le fichier de configuration. Du coup j'ai posté un fichier avec aucun commentaire. Mais si ça ne marche pas , je peux reposter le fichier avec tout dedans (il va falloir que je le retrouve …)

Cadeau.

Ce fameux fichier bzImage est donc à prendre dans (à partir du dossier racine du noyau) arch/x86/boot. Facilement devinable hein ?

Je suis déjà aller voir la bas (et virtuellement dans tout le dossier puisque j'ai fais un find en bon paresseux :p ), et il n'y a pas ce fichier. C'est assez étrange, en fait. Cela dit, il n'y a pas de directive bzImage dans le Makefile situé en racine du dossier kernel, j'ai tenté un make all mais je n'ai rien de plus…

Sinon pour le conflit : je ne comprends pas bien : pourquoi créer un dossier usr alors que busybox en crée un tout seul ? Je suis un peu perplexe là.

Justement, je me suis fait piégé en ne pensant pas qu'il fallait une *, et j'ai créé un dossier usr/lib lors du pompage des bibliothèques présentes. ^^

Après (si je trouve le temps :euh: ) j'aimerais bien en faire un 2e (tuto) où on fait un vrai LiveCD (parce que ça marche pas tout à fait comme ça un LiveCD), mais là, docdocdocdocdocdocdoc…

Oh oui ! Oh oui ! Ce serait excellent.

Sinon, concernant la partition esp, non, une bête partoche FAT32 avec flag boot convient (j'ai pas essayé avec FAT16 par contre).

+1 -0

Sinon, concernant la partition esp, non, une bête partoche FAT32 avec flag boot convient (j'ai pas essayé avec FAT16 par contre).

Bon alors c'est mes clés usb qui foirent à plein tube, ce qui n'est pas étonnant (elles ont vécu). Il y a tellement peu de doc là-dessus, quand en plus tout le monde n'est pas d'accord … Bref merci.

dans le Makefile situé en racine du dossier kernel

Attends, t'es où ? Dans le dossier kernel, ou dans le dossier du noyau (kernel/linux-[version]) ? Si t'es bien dans le bon dossier, pour résumer le make bzImage a bien fait quelque chose mais tu ne sais pas où ?

Sinon pour le LiveCD, il faut déjà que je me documente un peu (et que je teste) sur l'aufs, sinon ça va être le boxon.

+0 -0

Attends, t'es où ? Dans le dossier kernel, ou dans le dossier du noyau (kernel/linux-[version]) ? Si t'es bien dans le bon dossier, pour résumer le make bzImage a bien fait quelque chose mais tu ne sais pas où ?

dosmpm

Je suis dans kernel/linux-version. Et c'est exactement ça, make bzImage a bien fait des tas de trucs, mais impossible de mettre la main sur l'image créée…

(en ce moment j'ai les yeux qui sont en vacances)

Cadeau.

Ah il faut que j'étudie ça, ils ne font peut-être pas les même choix. Merci !

Je suis dans kernel/linux-version. Et c'est exactement ça, make bzImage a bien fait des tas de trucs, mais impossible de mettre la main sur l'image créée…

Ah ça c'est fort ! Tu n'as pas de variables d'environnement qu'il utiliserais pour claquer ça ailleurs ?

Sinon, dans arch/x86_64/boot, t'as un lien symbolique nommé bzImage ?

+0 -0

Je suis en train de corriger un peu tout ça et de complèter, mais j'ai fait une grosse grosse erreur sur le montage de la clé dans /home, donc si t'en est là, il faut faire qu'avec les UUID, et en ne préfixant pas l'UUID par UUID (il faut mettre home=truc-muche au lieu de home=UUID=truc-muche).

+0 -0

Ca y est maintenant !

EDIT : update : j'ai fait joujou avec les blocs spéciaux.

EDIT 2 : update : mise à jour du fichier de conf busybox (j'ai retrouvé celui que j'avais utilisé). Je n'ai pas encore pris le temps de regarder celui par défaut.

EDIT 3 : update : encore un peu joujou avec les blocs spéciaux (mais pas trop), quelques modifications mineures, suppression de certaines incertitudes.

+0 -0

Update, après quelques tests sous UEFI.

Passé en validation.

Bonne journée !

EDIT : Pour le boot en UEFI, il semble que syslinux ne s'en sorte pas (pour l'instant ?) avec des noyaux non compilés avec l'EFIstub. Donc concrètement, syslinux n'apporte rien par rapport à gummiboot, je conseille donc gummiboot pour l'instant, qui lui fait du chainload sans broncher (chainload sur syslinux réalisé avec succès, pour ceux qui douteraient).

+0 -0

Je trouve le concept extrêmement intéressant ! Je ne suis pas allé dans les détails mais j'aurais tout de même quelques critiques à faire :

Tu veux t'adresser à un maximum d'utilisateur possible et l'effort est louable. Mais je trouve que tu te prends les pieds dans le tapis. A un moment du détail l'utilisation de la commande cd et à d'autres moment tu lances des remarques qui te semblent évidentes, qui ne le sont pas. Je ne les ai pas répertoriées, mais tu as par exemple le moment où tu fais une question : il y a des liens symboliques partout. Déjà il faut connaître la notion de lien symbolique et puis même un utilisateur qui n'est pas novice ne va pas se poser forcément ce genre de question.

Et du coup, ce qui est le plus frustrant c'est que si on s'y connait un peu, on regrette parfois le manque de détails.

C'est un peu plus superficiel que la critiqueJe trouve le concept extrêmement intéressant ! Je ne suis pas allé dans les détails mais j'aurais tout de même quelques critiques à faire :

Tu veux t'adresser à un maximum d'utilisateur possible et l'effort est louable. Mais je trouve que tu te prends les pieds dans le tapis. A un moment du détail l'utilisation de la commande cd et à d'autres moment tu lances des remarques qui te semblent évidentes, qui ne le sont pas. Je ne les ai pas répertoriées, mais tu as par exemple le moment où tu fais une question : il y a des liens symboliques partout. Déjà il faut connaître la notion de lien symbolique et puis même un utilisateur qui n'est pas novice ne va pas se poser forcément ce genre de question.

Et du coup, ce qui est le plus frustrant d'@dri1, mais c'est vraiment la même idée.

Une dernière remarque concerne les ouvertures que tu proposes, par exemple l'installation de logiciel pour assurer un environnement de développement potable. Tu devrais mentionner succintement comment faire pour installer un paquet car clairement c'est l'étape qui vient juste après ton tutoriel.

Sinon, je ne l'ai pas encore dit, mais bravo ! Excellente thématique et globalement la rédaction est excellente !

Tu devrais mentionner succintement comment faire pour installer un paquet car clairement c'est l'étape qui vient juste après ton tutoriel.

Mon cher,

Une fois le tuto bien fait, publié etc, je compte faire quelques travaux dessus, pour pouvoir remplir un peu la section "aller plus loin" (pas de section "Troisième RIM-Linux" étant donné que certains points sont contradictoires entre eux).

C'est juste que le temps me manque un peu pour le faire tout de suite.

Tu veux t'adresser à un maximum d'utilisateur possible et l'effort est louable. Mais je trouve que tu te prends les pieds dans le tapis. A un moment du détail l'utilisation de la commande cd et à d'autres moment tu lances des remarques qui te semblent évidentes, qui ne le sont pas. Je ne les ai pas répertoriées, mais tu as par exemple le moment où tu fais une question : il y a des liens symboliques partout. Déjà il faut connaître la notion de lien symbolique et puis même un utilisateur qui n'est pas novice ne va pas se poser forcément ce genre de question.

Je prends en compte ta remarque qui est pertinente. Merci du retour !

EDIT : pour Saroupille, mais aussi plus généralement pour tous ceux qui lisent ce tuto,

Si vous avez réussi à faire un noyau qui compile, une petite stat ? Ca fait toujours plaisir.

Etant donné que les actions menées ici me paraissent "simples" (comprendre j'ai déjà répété le process plusieurs fois), je ne suis plus franchement objectif sur le niveau technique de mes remarques. Du coup, si vous pouviez chacun ne relever ne serait-ce qu'une seule incohérence, j'avancerais déjà beaucoup plus vite. Merci !

+0 -0

Bonjour,

J'essaie de suivre ce tuto mais je me heurte dès le début à la commande "make" qui ne fonctionne pas sur ma distrib Debian 7.7, je suis grand débutant (1 petit mois que j'ai abandonné Windows), je potasse à droite à gauche pour essayer d'avancer, ac le peu de tps dont je dispose.

J'ai donc tenté "apt-get install make" qui a bien installé "make" le hic est que lorsque je lance "make nconfig", ça me donne :

"laurent@laurent:~/tux/RIM/kernel/linux-3.14.25$ make nconfig HOSTCC scripts/kconfig/nconf.gui.o In file included from scripts/kconfig/nconf.gui.c:8:0: scripts/kconfig/nconf.h:18:20: fatal error: curses.h: Aucun fichier ou dossier de ce type compilation terminated. make[1]: [scripts/kconfig/nconf.gui.o] Erreur 1 make: [nconfig] Erreur 2"

Qui n'a rien à voir ac le résultat escompté… :s

Pouvez-vous m'aider svp ?

Ps : j'ai aussi installé "build-essential"…

Heu… je suis pas bien sûr d'avoir posté au bon endroit, prise en charge lourde pour qui se collera à ma requête!lol le tuto est : "Créer son premier RIM Linux"

+0 -0

Tu es bien au bon endroit !

fatal error: curses.h: Aucun fichier ou dossier de ce type

Je ne connais pas bien le nommage des paquets debian, mais tu devrais pouvoir installer un paquet qui a un nom qui ressemble à :

  • "curses"
  • "ncurses"
  • "libncurses"

(tente une recherche avec le mot-clé curses, ça devrait faire ton bonheur)

Sinon, voyons s'il n'y a pas d'autres problèmes:

Si tu tapes make config au lieu de make nconfig, ça marche ? (= il commence à te poser des questions ?)

Après, je ne voudrais pas être désagréable, mais commencer ton aventure linuxienne par une configuration de noyau, ça peut se réveler extrèmement frustrant.

Après, si tu es vraiment motivé et que tu as des difficultés, tu peux venir en parler ici, afin d'éviter que ce sujet se transforme en un "topic de maintenance" :p .

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte