Differenze tra le versioni di "Linux minimale per PC i386/i486"

Da GolemWiki.
Jump to navigation Jump to search
Riga 43: Riga 43:
 
|}
 
|}
  
A volte però, quando si tenta di recuperare qualche macchina particolarmente vecchia (magari per trasformarla in router, server web o proxy), anche queste soluzioni possono risultare inadeguate.
+
=Floppy Linux=
Ecco che possono venire in nostro soccorso delle mini distribuzioni Linux prive di ambiente grafico e talmente compatte da poter essere contenute in un unico floppy.
+
Se si tenta di recuperare una macchina particolarmente vecchia possono venire in nostro soccorso delle mini distribuzioni prive di ambiente grafico e talmente compatte da poter essere contenute in un unico floppy.
 +
 
 +
NB: su Linux è stato rimosso il supporto al 386 nel 2012 (kernel 3.8) ed al 486 nel 2025 (kernel 6.15)
 +
 
 +
{| class="wikitable sortable"
 +
! Distribuzione
 +
! Supporto avvio
 +
! CPU minima
 +
! RAM minima
 +
! Dimensione tipica
 +
! Uso ideale
 +
 
 +
|-
 +
| [https://krzysztofjankowski.com/floppinux/ FLOPPINUX]
 +
| 1 floppy
 +
| 386
 +
| 4–8 MB
 +
| 1.44 MB
 +
| Mini Linux educativo/sperimentale
 +
 
 +
|-
 +
| [https://github.com/snacsnoc/fluxflop/releases Fluxflop]
 +
| 1–2 floppy
 +
| 386
 +
| ~4 MB
 +
| 1.44–2.88 MB
 +
| Networking minimale
 +
 
 +
|-
 +
| [http://www.fdlinux.com/download.php FD Linux]
 +
| 1 floppy
 +
| 386SX
 +
| 4 MB
 +
| 1.44 MB
 +
| DOS/Linux compatto
 +
 
 +
|-
 +
| [http://www.zelow.no/floppyfw floppyfw]
 +
| 1 floppy
 +
| 386
 +
| 8 MB
 +
| 1.44 MB
 +
| Router/firewall embedded
 +
 
 +
|-
 +
| [https://web.archive.org/web/20190312063410/http://chris.silmor.de/hal91/ HAL91]
 +
| 1 floppy
 +
| 386
 +
| 2–4 MB
 +
| 1.44 MB
 +
| Esperimenti ultra-minimali
 +
 
 +
|-
 +
| [http://micheleandreoli.org/public/Software/mulinux/ muLinux]
 +
| 1+ floppy modulari
 +
| 386SX
 +
| 4 MB
 +
| 1.44 MB base
 +
| Recupero PC vintage
 +
 
 +
|-
 +
| [http://smartlinux.sourceforge.net S.M.A.R.T. Linux]
 +
| 1 floppy
 +
| 386
 +
| 4–8 MB
 +
| 1.44 MB
 +
| Toolkit floppy generale
  
=Floppy Linux=
+
|-
[https://krzysztofjankowski.com/floppinux/ FLOPPINUX], [https://github.com/snacsnoc/fluxflop/releases Fluxflop], [http://www.fdlinux.com/download.php Fd Linux], [http://www.zelow.no/floppyfw/ floppyfw], [https://web.archive.org/web/20190312063410/http://chris.silmor.de/hal91/ HAL91], [http://micheleandreoli.org/public/Software/mulinux/ MuLinux], [http://smartlinux.sourceforge.net S.M.A.R.T.], [http://distro.ibiblio.org/polypux/external/smalllinux/ Small Linux], [https://archiveos.org/tomsrtbt/ tomsrtbt], [http://sourceforge.net/projects/trinux/files/ Trinux], [https://web.archive.org/web/20070629142617/http://zoollinux.berlios.de/doku.php Zool]
+
| [http://distro.ibiblio.org/polypux/external/smalllinux/ Small Linux]
 +
| 1–2 floppy
 +
| 386
 +
| 4–8 MB
 +
| ~2 MB
 +
| Sistema Linux minimale
 +
 
 +
|-
 +
| [https://archiveos.org/tomsrtbt/ tomsrtbt]
 +
| 1 floppy
 +
| 386SX
 +
| 8 MB
 +
| 1.72 MB
 +
| Rescue disk leggendario
 +
 
 +
|-
 +
| [http://sourceforge.net/projects/trinux/files/ Trinux]
 +
| 1–2 floppy
 +
| 486
 +
| 8–16 MB
 +
| 1.44–3 MB
 +
| Sicurezza/network auditing
 +
 
 +
|-
 +
| [https://web.archive.org/web/20070629142617/http://zoollinux.berlios.de/doku.php Zool]
 +
| 1 floppy
 +
| 386
 +
| ~4 MB
 +
| 1.44 MB
 +
| Linux ultra-compatto
 +
|}
  
 +
=Buildroot=
 
Soluzioni preconfezionate (come quelle sopra elencate) possono talvolta non rispondere completamente alle nostre esigenze. Spesso hanno kernel datati (2.0, 2.2) o magari mancano proprio dell'applicazione o del driver di cui abbiamo bisogno.
 
Soluzioni preconfezionate (come quelle sopra elencate) possono talvolta non rispondere completamente alle nostre esigenze. Spesso hanno kernel datati (2.0, 2.2) o magari mancano proprio dell'applicazione o del driver di cui abbiamo bisogno.
  

Versione delle 16:49, 14 mag 2026

Distribuzioni per i486-i586

Distro CPU minima RAM minima Disco/ISO Uso ideale
DeLi Linux i486 8–16 MB ~200 MB installazione Retrocomputing puro, PC anni '90
SliTaz i486 24–64 MB ISO 30–60 MB Pentium II/III molto leggeri
Tiny Core Linux i486DX 46 MB 20–200 MB Minimalismo estremo, appliance
Puppy Linux Pentium II 128-256 MB 300–500 MB ISO Desktop leggero usabile
Damn Small Linux 2024 i686 256-512 MB ~700 MB ISO Hardware datato ma moderno

Floppy Linux

Se si tenta di recuperare una macchina particolarmente vecchia possono venire in nostro soccorso delle mini distribuzioni prive di ambiente grafico e talmente compatte da poter essere contenute in un unico floppy.

NB: su Linux è stato rimosso il supporto al 386 nel 2012 (kernel 3.8) ed al 486 nel 2025 (kernel 6.15)

Distribuzione Supporto avvio CPU minima RAM minima Dimensione tipica Uso ideale
FLOPPINUX 1 floppy 386 4–8 MB 1.44 MB Mini Linux educativo/sperimentale
Fluxflop 1–2 floppy 386 ~4 MB 1.44–2.88 MB Networking minimale
FD Linux 1 floppy 386SX 4 MB 1.44 MB DOS/Linux compatto
floppyfw 1 floppy 386 8 MB 1.44 MB Router/firewall embedded
HAL91 1 floppy 386 2–4 MB 1.44 MB Esperimenti ultra-minimali
muLinux 1+ floppy modulari 386SX 4 MB 1.44 MB base Recupero PC vintage
S.M.A.R.T. Linux 1 floppy 386 4–8 MB 1.44 MB Toolkit floppy generale
Small Linux 1–2 floppy 386 4–8 MB ~2 MB Sistema Linux minimale
tomsrtbt 1 floppy 386SX 8 MB 1.72 MB Rescue disk leggendario
Trinux 1–2 floppy 486 8–16 MB 1.44–3 MB Sicurezza/network auditing
Zool 1 floppy 386 ~4 MB 1.44 MB Linux ultra-compatto

Buildroot

Soluzioni preconfezionate (come quelle sopra elencate) possono talvolta non rispondere completamente alle nostre esigenze. Spesso hanno kernel datati (2.0, 2.2) o magari mancano proprio dell'applicazione o del driver di cui abbiamo bisogno.

In questi casi l'unica strada percorribile è quella di costruirsi il proprio floppy Linux personalizzato. Per farlo il metodo più semplice è utilizzare Buildroot, un tarball che permette la cross-compilazione di un ambiente Linux completo usando le leggerissime librerie uClibc o musl e l'eseguibile busybox. L'ultima versione disponibile e scaricabile da questo indirizzo.

Questa procedura è analoga a quella usata per la realizzazione di qualsiasi sistema embedded Linux-based: router, decoder, lettory DVD...


Scompattare il buildroot

$ tar -xjvf buildroot-snapshot.tar.bz2

Entrare nella directory principale

$ cd buildroot

Configurare il toolchain

$ make menuconfig


Indicare:

architettura di destinazione (i386, i486, i586…)

opzioni di compilazione

versione del kernel da usare

eventuali altri programmi non presenti in busybox (es. dropbear, un client/server ssh)

root filesystem di destinazione

Esistono varie tipologie di filesystem tra cui scegliere, tra queste l'ext2 compresso con bzip2 o lzma. Con lzma si ottengono filesystem fino al 20% più piccoli rispetto a quelli compressi con bzip2, ma il sistema necessiterà di maggiore memoria (RAM) per caricarli.

Se il PC che che avete a disposizione non ha almeno 70-80 MB di RAM è preferibile optare per la compressione con bzip2, se la quantità di memoria non è un problema la compressione con lzma è sicuramente preferibile.

Per poter caricare correttamente il prompt del login è necessario sostituire
ttyS0 con tty1 nelle opzioni di configurazione del getty.

Configurare busybox selezionando i programmi che si ritengono necessari

$ make busybox-menuconfig

Configurare il kernel per la compilazione

$ make linux-menuconfig

Escludere tutto ciò che non è strettamente necessario per risparmiare spazio su disco, quanto segue dovrà essere necessariamente presente per ottenere un sistema minimo avviabile.

Code maturity level-> Prompt for development

Processor type and features-> Support for your processor

General setup-> kernel support for ELF binaries

Block devices-> Normal PC floppy disk support

Block devices-> RAM disk support

File systems-> /proc filesystem, tmpfs, ext2

Character devices-> Virtual terminal

Character devices-> Support for console on virtual terminal

Console drivers-> VGA text console

General setup-> PCI support

I driver delle schede di rete che interessa supportare, iptables se si necessita di un firewall, un driver ide generico per poter montare un hard disk ATA.

Per risparmiare spazio è preferibile comprimere l'immagine del kernel (bzImage) con l'algoritmo di compressione lzma.

Terminata la fase di configurazione si può procedere con la compilazione

$ make

Se qualcosa dovesse andare storto normalmente è sufficiente identificare il programma incriminato e vedere se cambiando versione la compilazione va buon fine.

Nella directory buildroot/output/images risiede il prodotto finito. Si tratterà di 2 o 3 file: bzImage, rootfs.i486.ext2 e la sua versione compressa rootfs.i486.ext2.lzma. Le dimensioni dei file bzImage e rootfs.i486.ext2.lzma devono essere sufficientemente contenute per entrare su un floppy. Nel caso fossero solo di poco più grandi (100-200 KB), si può rimediare con la formattazione non standard del floppy: a 1.72 MB invece che a 1.44MB.

$ sudo mknod /dev/fd0u1722 b 2 60
$ fdformat /dev/fd0u1722
$ mkfs.vfat /dev/fd0u1722

Se non presente creare un mount point per il floppy

$ sudo mkdir /mnt/floppy

Montare il floppy

$ sudo mount /dev/fd0u1722 /mnt/floppy

Copiarvi i due file

$ sudo cp buildroot/output/images/bzImage /mnt/floppy
$ sudo cp buildroot/output/images/rootfs.i486.ext2.lzma /mnt/floppy

Adesso occorre installare un boot loader sul floppy. Essendo leggero, semplice da usare e supportando la FAT16 si consiglia di usare syslinux.

Se syslinux non fosse presente sul vostro sistema installatelo con:

$ sudo apt-get install syslinux

per sistemi Debian-based

O con

# pacman -S syslinux

su Arch Linux

Con un editor di testo (es. nano) create il file di configurazione per il boot loader: syslinux.cfg

$ sudo nano /mnt/floppy/syslinux.cfg

Riportate quanto segue, eventualmente adattandolo alle vostre esigenze:

default start
timeout 5
prompt 1
label start
kernel bzImage
append initrd=rootfs.i486.ext2.lzma BOOTDEV=fd0 ramdisk_size=16384 vga=0 root=/dev/ram0

Se è stato usato un altro tipo di filesystem sostituire rootfs.i486.ext2.lzma con rootfs.i486.ext2.bz2, rootfs.i486.ext2.squashfs…

Installare il bootloader sul floppy

$ sudo syslinux /dev/fd0

Smontare il floppy

$ cd
$ sudo umount /mnt/floppy

In caso di necessità di modifiche al ramdisk bisognerà copiarlo sul disco fisso, decomprimerlo, montarlo in loop ed effettuare le modifiche in questo modo:

$ sudo mount /mnt/floppy
$ sudo cp /mnt/floppy/rootfs.i486.ext2.lzma
$ sudo lzma -d rootfs.i486.ext2.lzma
$ sudo mkdir /mnt/tmp
$ sudo mount -o loop rootfs.i486.ext2 /mnt/tmp
$ cd /mnt/tmp

Effettuare le modifiche e poi smontare il tutto

$ cd
$ sudo umount /mnt/tmp

Ricomprimere il ramdisk e copiarlo sul floppy per sostituire quello vecchio

$ sudo lzma -c9 rootfs.i486.ext2 > rootfs.i486.ext2.lzma
$ sudo cp rootfs.i486.ext2.lzma /mnt/floppy
$ sudo umount /mnt/floppy

Un floppy già pronto con le seguenti caratteristiche e presente qui

  • Linux kernel 3.2.9
  • Busybox 1.19.4
  • Programmi inclusi: ftpd, ncftp, dropbear (ssh client/server), httpd, iptables, dhcp client/server, nc, wget, fdisk.
  • Requisiti minimi: i586 (60 MHz), 74 Mb RAM, floppy driver 3,5"
  • Hardware supportato: processori i586 compatibili, Bus PCI (niente ISA), Controller Generic ATA disk; schede di rete Novell NE2000 (e cloni), RealTek 8129, Intel PRO/1000 Gigabit Adapter.