Linux from scratch
Je m'intéresse à LFS car je voudrais bien créer mon système Linux entièrement personnalisé.
Je me posais quelques questions avant de me lancer dans l'aventure...
LFS est ce le bon chemin pour au bout du compte:
-Avoir le tout dernier noyaux 2.6.30.4
-Avec uniquement les dernières versions de mes logiciels favoris
-Choisir mon gestionnaire de logiciels favoris entre Dpkg,Yum,Pacman et autres
-Avoir un système stable avec le stricte nécessaire
Ne serais ce pas identique de démarrer sur une image Arch ou Debian minimale et d'y compiler le dernier noyaux
ainsi que les derniers logiciels?
Le PDF que j'ai commencé à lire est très fascinant :)
Merci pour vos lumières.
--
If you want to go quickly, go alone. If you want to go far, go together.
67 réponses
Le débat porte sur Linux From Scratch (LFS) comme méthode pour créer un système Linux totalement personnalisé, avec des questions sur l’obtention du tout dernier noyau et l’intégration des logiciels récents. Des échanges comparent LFS à démarrer à partir d’une image minimale Arch ou Debian et d’y compiler les dernières versions, tout en visant la stabilité et une gestion logicielle adaptée. En pratique, les retours évoquent une courbe d'apprentissage prononcée et une gestion des mises à jour délicate, ce qui peut dissuader ceux qui cherchent simplicité tout en offrant une maîtrise avancée.
-
ModérateurRe,
Et lorsqu'on a initramfs-tools à disposition, tout devient plus simple pour finaliser, merci ;)
T'as déjà pensé de voir ce que contient cette image initrd créée par initramfs-tools?
Tu peux faire comme ça par exemple$ cd $ mkdir initrd.img-$(uname -r) $ cd initrd.img-2.6.26-2-686/ $ cp -v /boot/initrd.img-$(uname -r) . `/boot/initrd.img-2.6.26-2-686' -> `./initrd.img-2.6.26-2-686' $ ls initrd.img-2.6.26-2-686 $ gunzip -c initrd.img-2.6.26-2-686 | cpio -id 33764 blocks $ ls bin conf etc init initrd.img-2.6.26-2-686 lib sbin scripts usr
-
J'essayerai, merci :)
En fait je me suis baladé dans celle que j'avais créer (de travers) lorsque mon boot LFS s'était arrêté àramfs$
De la j'ai un peu exploré et j'ai compris qu'il s'agissait d'un mini système ne comportant que très peu de logiciels
dans /sbin
Le décompresser sur mon bureau me montrera peut être ce qu'il lui manquait pour réussir, en tout cas j'avais trop bidouillé.... :)
-
-
ModérateurSalut,
j'abandonne le projet momentanément, je reprendrai avec LFS 6.5 ;)
Pas de problème, il ne faut pas être pressé.
Peut être tu devrais t'exercer un peu plus avec la compilation de kernel et pourquoi pas apprendre construire un INITialRamDisk from scratch ;-)-
Salut lami20j :)
Effectivement, le noyau 2.6.30.4 ne démarre pas aussi facilement qu'on pourrait le croire.
La compilation de 2.6.30.5 sur Debian Lenny a été un jeu d'enfant grâce à ce topic:
https://forums.commentcamarche.net/forum/affich-13756337-compilation-nouvau-kernel-et-patch-temp-reel?page=5#102
Et lorsqu'on a initramfs-tools à disposition, tout devient plus simple pour finaliser, merci ;)
Mon nouveau noyau fonctionne à merveille sur Debian et désormais les partitions EXT4 sont lues et écrites out ze box, la connexion avec DHCP au boot est cinq fois plus rapide, dommage que le mode écriture sur UFS soit toujours aussi dangereux et expérimental.Je dois juste passer de Fglrx à RadeonHD pour mon ATI.
Encore une fois mille merci pour les bons conseils donnés tout au long de l'expérience ;)))
Je ne met pas en résolu, vu qu'elle n'a pas démarré, mais je le ferait bien rien que pour la culture prise au passage :)
@+
-
-
Salut ;)
Bon, j'abandonne le projet momentanément, je reprendrai avec LFS 6.5 ;)
Comme l'a souligné lami20j je n'ai rien perdu, j'ai appris au passage.
Grâce à cette expérience, par exemple sur ma Debian, désormais c'est:
alexis:/home/initials# uname -r 2.6.30.5
Et j'ai aussi pu constaté toute l'importance de GNU, et de leurs logiciels.
Merci à tous et bonne nuit ;) -
ModérateurSalut,
Il faut installer busybox sur ton LFS et il faut le compiler en statiqueBuild Options ---> [*] Build BusyBox as a static binary (no shared libs)
Voici ce que j'ai trouvé, c'est un peu plus simple ;-)
http://www.gentoofr.org/Initramfs.html
Tu peux aussi laisser tomber initrd et compiler en dur les options nécessaires pour que le système démarre, ex3, PCI, USB, etc -
Salut ;)
Oki doki, je pense que maintenant il ne manque plus qu'a générer un initrd.img et le tour est joué :)
Comment puis-je exécuter le script donné? ^^
Merci ;) -
ModérateurRe,
Affichegrep BLK_DEV_INIT /usr/src/linux-2.6.29-ARCH/.config
P.S. Je vais quitter. A demain ;-) -
ModérateurRe,
Tu n'as pas affiché ce que je t'ai demandé.ls -l /boot
Ben, il ne fallait pas utiliser le fichier depuis le lien.-
[initials@Basile /]$ ls -l /boot total 8376 -rw-r--r-- 1 root root 861165 2009-05-09 14:51 System.map26 drwxr-xr-x 2 root root 4096 2009-08-16 21:48 grub -rw-r--r-- 1 root root 5267486 2009-05-18 22:32 kernel26-fallback.img -rw-r--r-- 1 root root 529374 2009-05-18 22:30 kernel26.img -rw-r--r-- 1 root root 1879056 2009-05-09 14:51 vmlinuz26
Non en fait j'ai trouvé le fichier de configuration de mon 2.6.29-ARCH du système hôte :)
En fouillant dans usr/src/linux-2.6.29-ARCH/
Le lien que j'ai donné étais celui expliquant les étapes de configuration ;)
-
-
ModérateurRe,
Quel lien?
Affiche le résultat dels -l /boot
-
Arf, pardon :)
Je viens de le trouver:
usr/src/linux-2.6.29-ARCH/.config
Le lien étais celui-ci:
http://casteyde.christian.free.fr/system/linux/guide/online/a12863.html
Je colle le fichier .config dans le répertoire source du kernel de ma LFS et je fais 'make oldconfig'?
:)
-
-
ModérateurRe,
Tu as utilisé le fichier .config-$(uname -r) de ton ARCH pour la configuration de noyau LFS ? -
ModérateurRe,
parce que j'ai pris un kernel 2.6.30.4,
J'ai croyais que tu as changé ;-)
# CONFIG_BLK_DEV_INITRD is not set
Donc chez toi il ne s'agit pas de initrd, puisqu'il n'est pas configuré dans le kernel.
-
Salut lami20j ;)
Merci pour toutes ces précisions, et la perspective d'un LFS 6.5 avec un kernel 2.6.30.2.
Et aussi merci pour la wget list ;)
Je ne vais pas abandonner 6.4....Il doit y avoir un détail qui m'échappe.
Ce n'est pas possible que LFS ne démarre pas seulement parce que j'ai pris un kernel 2.6.30.4,
Je suis en pleine torture et j'ai essayer dans tous les sens.
La dernière qui me vient à l'esprit : peupler /dev avecudevadm trigger
ouudevtrigger
Qui va créer tous les nœuds périphériques dans /dev et ensuite utiliser l'UUID pour monter la partition,
c'est ma dernière chance :(
Et encore merci pour l'aide depuis le début :)) -
ModérateurRe,
Si ça t'intéresse de télécharger les paquets pour lfs 6.5 voici le wget_liste https://www.cjoint.com/?isuh3vVtzo
Tu mets le fichiers dans un répertoire et tu lances la commandecd /chemin/vers/repertoire/ou/se/trouve/lfs6.5_wget_liste.txt for l in $(cat lfs6.5_wget_liste.txt);do wget $l;done
Comme ça tu vas télécharger d'un coup tous les paquets plus les patch
P.S. Si tu veux finir la 6.4 pour la démarrer ça ne sera pas mal non plus ;-) comme ça tu n'auras pas le même problème avec 6.5 -
ModérateurRe,
Je vais te donner une bonne et une mauvaise nouvelle.
La mauvaise, tu vas recommencer, donc tu peux supprimer tout ;-)))
La bonne
Les nouvelles
Sortie de LFS-6.5 - 17/08/2009
L'équipe anglophone de Linux From Scratch est heureuse d'annoncer la sortie de LFS version 6.5. Cette version comprend de nombreuses modifications par rapport à LFS-6.4 (notamment des mises à jour vers Linux-2.6.30.2, GCC-4.4.1 et Glibc-2.10.1) et des corrections de sécurité. Elle inclut également un travail éditorial sur les explications de fond contenues dans le livre, améliorant tant la clarté que le soin apporté au texte.
Elle n'est pas encore dispo en pdf, seulement en html pour le moment.
Perso tu n'as rien perdu, l'expérience acquise te servira pour la version 6.5 ;-)
P.S Et quand tu penses que la dernière version stable de kernel est 2.6.30.5 ;-)
-
ModérateurRe,
Non.
Peut être que tu devras essayer de créer une image initrd.
Entre dans l'environnement chrooté de ton LFS, n'oubie pas de monté et peuplé dev ainsi les sytèmes de fichiers virtuel de noyau.
Dit quand c'est fait.-
-
Modérateur@initials 76Salut,
Ici tu trouveras le script mkinitrd
http://www.linuxfromscratch.org/hints/downloads/files/ATTACHMENTS/initrd/mkinitrd
Pas besoin d'installer initrd-tools
Mais si le noyau n'est pas compilé pour avec l'option CONFIG_BLK_DEV_INITRD=y tu n'as pas besoin
-
-
ModérateurRe,
Peut être.
Fait ungrep CONFIG_BLK_DEV_INITRD /media/LFS/cheminvers/linux-2.6.30.4/.config
-
Bonjour lami20j ;)
Je ne sais pas si je devais lancer grep depuis le système hôte? :[root@Basile ~]# grep CONFIG_BLK_DEV_INITRD /media/LFS/sources/linux-2.6.30.4/.config # CONFIG_BLK_DEV_INITRD is not set
Ce qui est intéressant, et que j'ai remarqué, c'est qu'au boot de ma Arch il y a ce message:
loading root fs module: ext3
Donc, le kernel peut booter et charger le module du système racine....
Hors dans la documentation sur la configuration de kernel, il est plutôt déconseiller de faire le choix de "module" en ce qui concerne le système de fichier de la racine et de plutôt choisir de l'intégrer au kernel.
Peut être est ce que je peux essayer de l'installer en module? en relançant 'make oldconfig' pour reprendre la configuration dernière?
Merci ;)
-
-
Re,
il y a un mieux :)
Mais ça bloque toujours à root fs
J'ai bien activé le support pour ext3, je crois que je vais avoir besoin en plus d'un initrd.img
-
Salut,
bon cette fois c'est encore pire lol ==>écran noir et blocage :)
Je vais d'abord lire cette page:
http://casteyde.christian.free.fr/system/linux/guide/online/a12863.html
Ensuite je recommence la configuration.
Si ça casse encore, je prend une pause de deux jours,
au risque de lancer le portable par la fenêtre ;)
-
ModérateurRe,
je ne le trouve pas
C'est normal puisqu'il s'agit d'un fichier caché donc son nom doit être .config
ls -al pour voir les fichiers cachés ;-))-
Oki doki, mais maintenant le 'make' est fait :S
Je colle le contenu qui se trouve dans /boot
Mais je vais devoir le copier dans un fichier texte, car il est trop gros pour le terminal.
Cette section ci?:# File systems # CONFIG_EXT2_FS=y CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y CONFIG_EXT2_FS_SECURITY=y CONFIG_EXT2_FS_XIP=y CONFIG_EXT3_FS=y CONFIG_EXT3_DEFAULTS_TO_ORDERED=y CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y CONFIG_EXT4_FS=y CONFIG_EXT4DEV_COMPAT=y CONFIG_EXT4_FS_XATTR=y CONFIG_EXT4_FS_POSIX_ACL=y CONFIG_EXT4_FS_SECURITY=y CONFIG_FS_XIP=y CONFIG_JBD=y CONFIG_JBD_DEBUG=y CONFIG_JBD2=y CONFIG_JBD2_DEBUG=y CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=y CONFIG_REISERFS_CHECK=y CONFIG_REISERFS_PROC_INFO=y CONFIG_REISERFS_FS_XATTR=y CONFIG_REISERFS_FS_POSIX_ACL=y CONFIG_REISERFS_FS_SECURITY=y CONFIG_JFS_FS=y CONFIG_JFS_POSIX_ACL=y CONFIG_JFS_SECURITY=y CONFIG_JFS_DEBUG=y CONFIG_JFS_STATISTICS=y CONFIG_FS_POSIX_ACL=y CONFIG_XFS_FS=y CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_RT=y CONFIG_XFS_DEBUG=y # CONFIG_GFS2_FS is not set # CONFIG_OCFS2_FS is not set # CONFIG_BTRFS_FS is not set CONFIG_FILE_LOCKING=y CONFIG_DNOTIFY=y CONFIG_INOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y # CONFIG_PRINT_QUOTA_WARNING is not set CONFIG_QUOTA_TREE=y CONFIG_QFMT_V1=y CONFIG_QFMT_V2=y CONFIG_QUOTACTL=y CONFIG_AUTOFS_FS=y CONFIG_AUTOFS4_FS=y CONFIG_FUSE_FS=y CONFIG_GENERIC_ACL=y # # Caches # CONFIG_FSCACHE=y CONFIG_FSCACHE_STATS=y CONFIG_FSCACHE_HISTOGRAM=y CONFIG_FSCACHE_DEBUG=y CONFIG_CACHEFILES=y CONFIG_CACHEFILES_DEBUG=y CONFIG_CACHEFILES_HISTOGRAM=y # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=y CONFIG_UDF_NLS=y # # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=y CONFIG_MSDOS_FS=y CONFIG_VFAT_FS=y CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" CONFIG_NTFS_FS=y CONFIG_NTFS_DEBUG=y CONFIG_NTFS_RW=y # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_VMCORE=y CONFIG_PROC_SYSCTL=y CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_CONFIGFS_FS=y CONFIG_MISC_FILESYSTEMS=y # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_JFFS2_FS is not set # CONFIG_CRAMFS is not set # CONFIG_SQUASHFS is not set # CONFIG_VXFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_OMFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_ROMFS_FS is not set # CONFIG_SYSV_FS is not set CONFIG_UFS_FS=y CONFIG_UFS_FS_WRITE=y CONFIG_UFS_DEBUG=y # CONFIG_NILFS2_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=y CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y CONFIG_ROOT_NFS=y CONFIG_NFS_FSCACHE=y CONFIG_NFSD=y CONFIG_NFSD_V2_ACL=y CONFIG_NFSD_V3=y CONFIG_NFSD_V3_ACL=y CONFIG_NFSD_V4=y CONFIG_LOCKD=y CONFIG_LOCKD_V4=y CONFIG_EXPORTFS=y CONFIG_NFS_ACL_SUPPORT=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y CONFIG_SUNRPC_GSS=y CONFIG_RPCSEC_GSS_KRB5=y CONFIG_RPCSEC_GSS_SPKM3=y CONFIG_SMB_FS=y CONFIG_SMB_NLS_DEFAULT=y CONFIG_SMB_NLS_REMOTE="cp437" CONFIG_CIFS=y CONFIG_CIFS_STATS=y CONFIG_CIFS_STATS2=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_XATTR=y CONFIG_CIFS_POSIX=y CONFIG_CIFS_DEBUG2=y CONFIG_CIFS_DFS_UPCALL=y CONFIG_CIFS_EXPERIMENTAL=y CONFIG_NCP_FS=y CONFIG_NCPFS_PACKET_SIGNING=y CONFIG_NCPFS_IOCTL_LOCKING=y CONFIG_NCPFS_STRONG=y CONFIG_NCPFS_NFS_NS=y CONFIG_NCPFS_OS2_NS=y CONFIG_NCPFS_SMALLDOS=y CONFIG_NCPFS_NLS=y CONFIG_NCPFS_EXTRAS=y CONFIG_CODA_FS=y CONFIG_AFS_FS=y CONFIG_AFS_DEBUG=y CONFIG_AFS_FSCACHE=y
-
-
ModérateurRe,
j'ai recommencé mon noyau car j'avais sauté quelques paramétrages
Justement, je voulais voir le fichier de configuration de noyau avant que tu le compiles -
ModérateurSalut,
On ne se comprends plus.
Quelle compilation?
- 1
- 2
- 3
- 4