|
|
|
muLinux: one-floppy Linux, v 4r0 Tomato� 1998, Michele Andreoli, [email protected]Mon Feb 8 18:31:29 GMT 1999
This is the muLinux documentation, the micro Linux distribution developed by Michele Andreoli. Translation from Italian to English by Enrico Cavalli, [email protected]. Well, it sounds like English but I hope it's clear enough.
1. What is muLinux?muLinux (micro-Linux) is a full-configured, minimalistic, almost complete, application-centric tiny distribution of Linux made in Italy, fitted on a single 1722K floppy. Its aim is to demonstrate the power and scalability of this
operating system. The 2.0.36 kernel is compiled for the 386 (without co-processor) and
modularized as much as possible. The binaries are taken from the dozens of distibutions
and boot-floppies on my 3 big hard-disks. Are you wondering why I chose a particular
binary, when I had two of them with the same name? I simply took the smallest and the one
which needs only 2. Who is muLinux for?muLinux is not intended for the newbie, who wouldn't be very
happy with its spartan interface, but for the Linux fan in general, the curious person who
wants to look inside scripts to understand why a 3. Hardware RequirementsMost PC hardware will work fine. The very minimum is a 386 with
4MB of RAM. A math coprocessor is NOT required since A hard-disk in not required. Of course, you can mount the existing partitions on your hard-disks if you want. SCSI disks are not directly supported because of the huge variety of controller cards. If you want SCSI support please read How can I personalize muLinux? 4. The setup commandIn order to personalize the root partition, muLinux has a script
( When muLinux boot, setup ask you for a configuration to load. Special config name are "NONE" and "lock": with NONE, setup skip any operation and if your last saved config is named "lock", setup load them without confirm. With 5. muLinux and the sheep DollyStarting from version 2.0, muLinux is able to install itself not only in RAM, but permanently into a DOS directory (UMSDOS installation) or into a free partion of your hard-disk (EXT2 installations). You only need about 8-10M of free space somewhere on your hard-disk. To perform this kind of installation, the muLinux kernel comes
with
At this point you will be asking about the title of this section.
Actually, what we described until now are not real installations but actually a cloning
process. The entire muLinux filesystem (even mounted devices) is copied (with Just a few word of advice: do not leave your cd-rom or any NFS volume mounted while cloning mulinux if you do not want the entire universe being replicated into your DOS partition! Cloned muLinux systems work just as normal systems mounted in RAM. Setup and autoconfiguration procedures are consistent between the three installation modalities. The user will not notice any difference. This feature makes muLinux different from similar floppy-Linux offerings, which have a stronger link with the floppy. 6. muLinux and systems with low memoryThe cloning process (see muLinux and the sheep
Dolly), which can be run by the user with the In this case, muLinux stays at "runlevel 3" (only the When you see the message The first boot of this new system is exhausting like the pains of
a childbirth: if muLinux realizes that some components are missing (typically Beware that on a 386 with 4M the entire cloning process and "re-animation" can take more than 15 minutes the very first time, but you will then be able to see XWindow starting on your 386! 7. muLinux as NFS-root diskless clientStarting from version 3.0, code-name "Hammameth", muLinux is able to install its root filesystem via NFS (Network File System), provided you have a working LAN-server supporting this traditional TCP/IP protocol. The nfsroot-service is configured with the usual setup procedure (see The setup command): muLinux will ask to configure the Ethernet parameters and to specify the nfs_root, i.e. the remote directory containing a Linux system (which can also be a copy of muLinux). muLinux kernel was slightly modified in order to mount the "real root" only after the configuration of the variuos network drivers: muLinux kernel is modular, so it is not possible to configure these drivers via the usual boot parameters (nfsroot= and nfsaddrs=). The patch is so tiny (just one line) that it can be the subject of an email or it can be written on a stamp! For example, suppose your muLinux clients have IP addresses given by (in dot-notation) 192.168.1.x, and that the nfs_root is /remote/root. The /etc/exports on the server could be something like
#/etc/exports
/remote/root 192.168.1.0/255.255.255.0(rw,no_root_squash)
Once you saved the configuration on the floppy (with your favourite name, for example "nfs"), the next time muLinux is booted you only have to request this "nfs" configuration: muLinux will configure the network drivers and mount the nfs_root. If the remote system is itself a muLinux system, it is possible that at the first boot the "remote" muLinux will ask you to restart the setup one more time. Forgive him: how can he know that you already answered all those questions? In order to prepare the remote system it is enough copying the entire muLinux tree into the server's /remote/root. Another solution is exporting the entire server's root (THIS SOLUTION IS NOT SAFE). If you have a spare EXT2 partition on the server (/dev/hdb1 for instance), you can also prepare it with a working Linux distribution and export it to the workstations. In this case it is enough to mount this partition at boot time (place the line "mount -t ext2 /dev/hdb1 /remote/root" into one of the server's boot scripts) in order to make it available to the clients. The clients' /etc/fstab should contain something like
/dev/nfs / ext2 defaults 1 1
If the client needs swap space, it must use a local disk: muLinux kernel is not able (at this time) to swap via NFS. For machines with low memory (less than 4M of ram), the boot process is slightly changed: muLinux will immediately ask if you want to clone the system to disk (like previous versions), or if you want to mount root via NFS. With little effort it is possible to transform your 386 into a diskless workstation based on Linux+XWindow. This solution is very cheap and efficient for many schools with obsolete computer labs (like many Technical Institues you can find in Italy). 8. IP filtering with muLinux
______________________________
__|__ ___|___
| | local network | | ______ PPP-link to provider
| PC | 192.168.1.0 | Linux |--|modem |------------------>
| | | Router| |______| x.x.x.x
|_____| |_______| (dynamic IP-address)
pppd
IP filtering firewall is designed to control the flow of packets
based the source, destination, port and packet type. In muLinux (version > 2.7, 9. What happens at boot time?The floppy is made up of 1722 blocks of size 1024K. It is logically divided into three parts:
The X11 floppy addon (1772K) is, instead, in tarred+bzipped (tbz) format. The kernel is loaded, as usual, via LILO. When the kernel is
loaded, it executes Startup scripts take also care about creating a fourth partition
into RAM, loaded under 10. Boot prompt parametersThe Linux kernel has a limited capability to accept information at boot in ther form of var=value entry. In general, this is used to supply the kernel with information about hardware parameters. Boot-prompt arguments typically only apply to hardware drivers that are compiled directly into kernel, so in muLinux this feature is rarely useful. If You, at "boot:" prompt, press [SHIFT] or [TAB] key, LILO waits for the name of a boot image (in our case: mulinux) and pass command-line options to the kernel. Example:
boot: mulinux root=/dev/hdb2 vga=extended
This is a brief list usable with muLinux kernel:
If You want to supply an alternate mountable root floppy, instead of muLinux standard ramdisk (low-memory system) you can type:
boot: mulinux load_ramdisk=0
The kernel ask you "Insert ROOT floppy ..." If You want mount an existing EXT2 root partition, type:
boot: mulinux root=/dev/hd...
11. What you will find on the floppyThis list is always a work in progress: whenever I free space on the floppy the list will grow.
3c509, ne and ne2k-pci
cards, but the modules are on the floppy. You just have to gzip your own module, and put
it on the floppy. See section How can I personalize muLinux? for
further details. ppp.o, serial.o and slhc.o
modules; chat and pppd commands. Configuration is automatic and
you start PPP typing pppd or ppp-on, ppp-off. PPP
mulinux setup also provide a way to link together two PCs (or a local network to the
Internet), via null-modem serial cable. fetchmail only a few K, perfectly working, with the
-F (flush) option, but also a true fetchpop. sendmail compatible with the real one, wich support
smarthost and offline processing. I tested it with pine from my "big" Linux. You
can use the From: field you prefer (-f option). Mail processing
with RNA Messenger, symlink `mail` (offline supported).
fax script allows You to make,send,receive and
print fax files, with efax packages (C) Ed. Casas. Tested with USR Sportster
3.66, but will work with any modem, I hope.
fortune (classical Linux fortunes, in latino), paganini,
piano (sound games) reverse, blue (solitaires). 12. How much free space is there on the floppy?No comment. 13. Floppy modelsThe The model BOOT+ROOT(1440K) and USR(1722K) boots much more
rapidly. 14. How can I personalize muLinux?See also the file README.custom 14.1 PrerequisitesNeccessary kernel functionality to do 'mu -r':
- loopback device support
The right versions of 'fdformat', 'lilo' and 'bzip2' are included. 14.2 ModulesThe root partition resides on the floppy, split into two parts
(see section What happens at boot time?): The first part (ROOT)
just contains the directory structure ( The first thing to do if you want to build a custom muLinux is to
unpack the BOOT,ROOT,USR and X11 images with the command Now, add, wipe, replace commands as you like. If you want to change the kernel, compile it with It is often necessary to specify parameters like
insmod X.o `cat X.param` Please note that you have to compile If you look into the 14.3 KeymapsCustom keymaps are located under 14.4 Personal stuffYou can save a 14.5 The
|
/usr/X11R6/lib/X11/XF86Config: configuration of the X
server; | |
/usr/X11R6/lib/X11/fvwm95-2/*: fvwm configuration
files; | |
/usr/X11R6/lib/X11/afterstep/*: afterstep
configuration files; | |
/usr/X11R6/lib/X11/xfm/*: xfm configuration. |
The XKB feature is disabled: national keyboards are directly exported into X. Finally, a lot of fonts were simply deleted.
Anyway, you will find these X programs: xcalc, xclock, xload,
xhost, xmodmap, xsetroot, xinit, xcal, xmixer, pyro, xsnow and xterm. xterm
can be used to run every text-mode muLinux command (lynx, minicom, workbone, etc...). xhost
is interesting because it allows the local X server to display applications running on a
remote workstation.
If you have 16-32M of avalaible RAM, X will run at a terrific speed!!!!
In this 1722K floppy, coming with 4.0 release, some utitily for C developers.
as -- the portable GNU assembler. | |
gcc -- GNU project C Compiler (v2.7.0) | |
cpp -- The GNU C-Compatible Compiler Preprocessor | |
make -- GNU make utility to maintain groups of
programs | |
ar -- create, modify, and extract from archives. | |
ld -- the GNU linker | |
ldd -- print shared library dependencies | |
ldconfig -- determine run-time link bindings | |
strip -- discard symbols from object files. | |
flex -- fast lexical analyzer generator
("lex" replacement) | |
bison -- GNU Project parser generator (yacc
replacement) | |
f2c -- FORTRAN to C translator. | |
p2c -- turbo-PASCAL to C translator. | |
qb2c -- Quick-BASIC to C translator (source package) | |
g48 -- C to RPN (Reverse Polish) translator for HP48G
(source package) |
Moreveor: trues UNIX man pages for ALL that and many sources in /gcc/usr/src, for testing purpose.
| PLIP PC-PC links | |
| Server side: remote access to muLinux modem and printer. |
This document was written in SGML, and then rendered using the sgml-tools package.
You can find the latest version of this document at http://www4.pisoft.it/~andreoli/mulinux.html.