Journal Distributions utilisant la µlibc

Posté par  .
Étiquettes : aucune
0
15
jan.
2004
Linux est fabuleux pour transformer un vieux Pentium 75 en firewall/passerelle internet.

Pour plein de bonnes raisons, on a souvent envie de ne pas mettre de disque dur dans une telle machine, c'est fragile, ça coûte cher, on a du mal à trouver des petits modèles, c'est bruyant...

Une solution économique et simple est d'y mettre une carte Compact Flash [1] et un adaptateur IDE/CompactFlash que l'on trouve par correspondance pour environ 20$ [2].

Le problème est que l'espace disque est très très limité sur ces machines, je cherche donc une distribution (autre que LFS) qui permette d'avoir un serveur fonctionnel sur des petits disques, par exemple 8 ou 16 Mo, une des solutions est de ne pas utiliser la glibc qui dispose de beaucoup de choses qui ne servent pas à grand chose sur ce genre de plateforme mais de passer à la µlibc (ou autre).

Les grosses distributions classiques ne permettent pas d'installer un système de cette taille, ils y a beaucoup trop de choses comme la localisation, la documentation et tout un tas de modules.

Les micro-distributions qui tournent sur une disquette n'offrent pas la souplesse nécessaire, il est difficile de définir ses propres règles de filtrage, de monter des interfaces virtuelles, de faire du forward de ports etc... Et ces distributions permettent rarement d'installer des composants supplémentaires comme un serveur DHCP, un serveur SSH, un cache DNS...

Vous avez des idées ? Vous connaissez des distributions adaptés ?
Ou des distributions qui permettent de recompiler les paquets en utilisant un environnement léger ?

[1] On trouve des cartes Compact Flash de 128 Mo pour environ 30 EUR, par exemple: http://www.ldlc.fr/cat/140151.html?sscat=140151&tri=4&ordre(...)
mais beaucoup de vieux appareils photos numériques étaient fournis avec des cartes de 8 ou 16 Mo qui sont récupérable pour une bouchée de pain.

[2] On en trouve par correspondance pour environ 20$, sur pleins de sites américains: http://mach5products.com/merchant2/merchant.mvc?Screen=CTGY&Cat(...) ou http://www.acscontrol.com/Index_ACS.asp?Page=/Pages/Products/Compac(...)
ou encore http://www.acscontrol.com/Merchant2/merchant.mv?Screen=CTGY&Sto(...)
, je ne connais pas d'adresse françaises mais il est possible que l'on en trouve également
  • # Re: Distributions utilisant la µlibc

    Posté par  . Évalué à 1.

    Les grosses distributions classiques ne permettent pas d'installer un système de cette taille

    Debian en version minimale (système de base avec BASH etc.) fait dans les 30Mo, ainsi avec une carte de 32Mo tu dois pouvoir arriver à quelque chose... même si 64 serait à mon avis le plus confortable (tu as notamment pas mal de dérivés de Knoppix qui doivent pouvoir fonctionner dessus).
  • # Re: Distributions utilisant la µlibc

    Posté par  . Évalué à 3.

    un bon site de depart:

    http://www.busybox.net/(...)

    Busybox est un petit soft qui remplace le init traditionel de GNU (/sbin/init),
    par exemple il ne gère pas les run-level.
    Il remplace aussi la plupart des commandes classiques (ls, mount, etc...)

    il y a pas mal de projets basés dessus voir :

    http://www.busybox.net/products.html(...)
  • # Re: Distributions utilisant la µlibc

    Posté par  . Évalué à 1.

    Si tu trouves une carte Compact Flash de 128Mo, c'est encore le mieux. Tu as la place d'y mettre une vraie mini-distribution.

    Autrement, mieux vaut viser l'optimisation à l'extrême: Un noyau compilé en dur sans module collé directement sur les premiers secteurs d'une de tes partitions et directement bootable, et un /sbin/init sur une deuxième (voire la même si tu te débrouilles bien), binaire correspondant en fait à un petit programme C compilé par tes soins et qui utilise les primitives du noyau pour dresser la passerelle, et que tu recompile le jour où tu veux modifier ta passerelle. A mon avis, c'est pas plus chiant qu'autre chose dans ce cas précis, et te permettra probablement de tomber en dessous du méga-octet (quand je pense qu'à l'époque, un PC équipé de 512Ko faisait tourner le DOS + des progiciels ou des jeux en couleurs ...).

    Enfin, 8Mo sont peut-être un peu limite, mais avec 16 Mo tu devrais avoir la place de placer un noyau 2.0 minimum + la libc de l'époque + un shell minimum + l'outil ipfwdadm ou même ipchains pour le 2.2 et donc avoir un système avec une console et un fichier de conf.
  • # Re: Distributions utilisant la µlibc

    Posté par  . Évalué à 2.

  • # Re: Distributions utilisant la µlibc

    Posté par  . Évalué à 1.

    Le mieux c'est encore de se faire un linux from scratch en s'appuyant sur l'article de pierre ficheux paru dans linuxmag france :
    http://pficheux.free.fr/articles/lmf/embedded/(...)

    Sinon je ne connais aucune distribution faites avec la micro-clibc.
    J'ai vaguement entendu parler de micro-OS mais je ne sait pas ce que ca vaut...

    Voila...
  • # Re: Distributions utilisant la µlibc

    Posté par  . Évalué à 3.

    http://leaf.sourceforge.net/(...)

    Voir la variante http://leaf.sourceforge.net/mod.php?mod=userpage&menu=908&p(...)

    Ca tient sur 8 Mo de Flash, et prend 16 Mo de RAM.

    M
  • # Un firewall ?

    Posté par  . Évalué à 1.

    C'est projets sont fait pour toi :

    http://compactbsd.sourceforge.net/(...)
    http://www.nmedia.net/~chris/soekris/(...)
    http://opensoekris.sourceforge.net/(...)

    Ça se configure en deux coups de petite couillère, à te faire oublier l'infâme netfilter et ses scripts iptable.
    http://www.benzedrine.cx/ackpri.html(...)
    http://openbsd.org/faq/pf/index.html(...)
  • # Re: Distributions utilisant la µlibc

    Posté par  . Évalué à 1.

    Tu peux utiliser comme base le root_fs de la uclibc dispo là pour diverses architectures cibles :
    http://www.uclibc.org/downloads/(...)
    et spécifiquement pour x86 :
    http://www.uclibc.org/downloads/root_fs_i386.bz2(...)

    Ca se monte en loop et ca offre un environnement uclibc propre après un chroot.

    Descriptif en anglais http://www.uclibc.org/toolchains.html(...) :
    Prebuilt uClibc development systems for i386 and arm and mipsel are available and contain complete native gcc 3.3.2 toolchains. These are development systems are ext2 filesystems that runs natively on the specified architecture. They contain all the development software you need to build your own uClibc applications, including bash, coreutils, findutils, diffutils, patch, sed, ed, flex, bison, file, gawk, tar, grep gdb, strace, make, gcc, g++, autoconf, automake, ncurses, zlib, openssl, openssh perl, and more. And of course, everything is dynamically linked against uClibc. By using a uClibc only system, you can avoid all the painful cross-configuration problems that have made using uClibc somewhat painful in the past. If you want to quickly get started with testing or using uClibc you should give these images a try. You can loop mount them and then chroot into them. You can boot into them using user-mode Linux. You can even 'dd' them to a spare partition and use resize2fs to make them fill the drive, and then boot into them. Whatever works for you.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.