<!doctype linuxdoc system>
<!-- muLinux documentation -->

<article>


<title>muLinux F.A.Q: Frequently Asked Question with (some) Answers 
<author>&copy; 1999, Michele Andreoli, 
<htmlurl url="mailto:m.andreoli@tin.it" name="m.andreoli@tin.it">
and
Marko Djukic <htmlurl url="mailto:tech@oblo.com" name="tech@oblo.com">


<abstract>
A collection of questions and answers, partly invented, partly derived directly from the mailing list and from the correspondence relative to muLinux. It is not to be assumed that what is written here is in reality useful for any particular purpose, nor that it corresponds exactly to the actual structure of muLinux. If the information contained within seems to you inadequate or, more appropriately useless, please send an email to the <bf>Rustic Software Foundation</bf>: they will be glad to give you a complete refund of what you paid for this document, excluding support ;-)
</abstract>

<toc>

<p>


<sect> General, curiosities, tidbits of information
<p>
<sect1>Why "MU" linux?
<p>
The "mu" stands for a Greek letter (see Unicode Latin-1 char 0x0b5) frequently used for indicating the millionth part of something.
for example: "mu meter" (µm) stands for micro meter and is the one millionth part of a meter.
The reason for the name "muLinux" is its tiny size: just one floppy and a single (optional) X11-addon.

<sect1>What was the main purpose behind the development of muLinux?
<p>
Contain in one single place all what is learnt about Linux, creating a type of live "collection of notes", and protecting it from any loss of information that the various versions of Linux sometimes create.

<sect1>What are the biggest problems faced in the development of muLinux?
<p>
Above all the ignorance of the immense collection of packages and utilities available for Linux.
The second problem, the lack of a LAN on which to run tests, was solved very quickly connecting an old 486 50Mhz/8M to the PC.
But the third problem and the one which has produced the most head-scratching:
the Author did French at school!

<sect1>What are the advantages and disadvantages of muLinux with respect to other floppy-Linux?
<p>
The majority of floppy-Linux to be found (with some remarkable exceptions) are simply a selection of binaries taken from some distribution and placed on a floppy. Often they are normally formatted 1.44 floppies and the filesystem used is not even the native Linux, but minix. Rare are those which allow connection to the Internet and even rarer are those which allow access to the normal network services, such as mail, news, ftp, http, etc.
None of these, however, offer support for sound, fax or even a web server, as muLinux does.

All of this could be bearable, and in a certain sense in the order of things, 
 if it were not that many of these floppies have a fundamental deficiency which renders their use very unpleasant: one needs to configure them each time they are booted!

<sect1>What is the purpose of muLinux?
<p>
<itemize>
<item>To begin to play with an operating system if one does not have the possibility to install on the hard disk a recent distribution of Linux.
<item>To have a portable operating system, to use in ad-hoc locations or locations without configured and functioning software.
<item>A change of heart... "Proselytism, proselytism...
</itemize>

<sect> Technical
<p>

<sect1>Every time the kernel boots and I have replied correctly to all the setup questions, everything suddenly stops and the text "login:" appears. What am I doing wrong?
<p>
No error: it is what should happen. Type "root" and hit ENTER. You will get the usual UNIX prompt from which you can execute the usual Linux commands. To have a familiar GUI, you have to configure and activate XWindow.

<sect1>I typed "startx", but nothing happened. Why?
<p>
Check the file /var/log/startx.log, especially the last lines.
And remember: XWindow will not start if you have not correctly configured the mouse.

<sect1>Why do you not put in muLinux an X SVGA server, instead of VGA?
<p>
Because the SVGA is too big and I have no idea how it will behave on machines with 4M of RAM.

<sect1>How can I format my floppies to hold 1722k in order to make the muLinux base and X11 disks?
<p>
You don't have to preformat your floppies. When you run install.bat, muLinux will automatically format them for you.

<sect1>Can I clone muLinux to my hard drive if I have a FAT32 file system?
<p>
Yes, muLinux can be cloned even in a FAT32 partition, for example the Win98 partition.

<sect1>Why doesn't muLinux provide a real authentication and login process?
<p>
<em>
NB: the recent versions provide multi-user support through an add-on.
</em>
<p>
For several reasons:
<itemize>
<item>because for multi-user support a bunch of other binaries is needed :)
<item>because initially the Author had played around quite a bit with the permissions of files and directories. This means that it is not possible to predict, in principle, <tt/what/ a user lacking permissions could really do with muLinux
<item>because the scripts upon which muLinux is based make use of commands (such as <tt/kill/) which would not produce the desired result if ran by users without permissions.
<item>because, for the moment, one can not see a real usefulness of multi-user support in an operating system as small as muLinux.
</itemize>

<sect1>The procedure for installation from DOS is too contorted: go into DOS-mode, unzip the archives, reboot, etc. Wasn't a good setup.exe better?
<p>
It is true that the installation from DOS is more contorted that that from Linux, but only very <em>slightly</em>. This trick (starting an instance of Linux with the only purpose to unzip and copy the archives) was devised for two reasons which are not trivial:
<itemize>
<item>distribute the same collection of archives, for the Linux world and for the world of DOS/WIN*.
<item>avoide the use of a proprietary software to do all these things, such as formatting and partitioning, which are generally required when installing something and which therefore we would have to pay for.
</itemize>
 

<sect1>Is there any problem trying to run C applications compiled / linked at a
Linux distributions other than muLinux?
<p>
Many, and fatal: like any ELF system, muLinux uses shared libraries.
You must transport all the shared libraries used by your program. Shared libraries are shown with the "ldd" command.

<sect1>I have compiled (gcc) a hello.c application under my Red Hat 2.0.36 
kernel host environment, but I am not able to run it on a muLinux 10r2 !?!?!?
<p>
The kernel is not the problem. You must check with ldd what are the required shared C-Libraries: libc5? libc6? Furthermore: did you set the executable
flag (chmod +x command)? Is the command in the path?

<sect1>I am curious about something I've noticed. Whenever I install muLinux (I've upgraded a few times since I started using it,) the usual
confirmation message after setting up an add-on XXX is: "Ooh ! I feel good.
This XXX is OK."  I'm sure we're all familiar with it. ;)
Except, when I setup /usr from the boot floppy, I get a slightly
different confirmation message: "Ooh ! I feel (relatively) good. This
/usr is OK."
<p>
Yes, the "I feel good" message appears when any add-ons are loaded, but the "(relatively)" substring appears only when the system loads the very first, the very inner add-on: the USR add-on. The system feel relatively good, because this is only a small add-on, therefore the satisfaction is not very high, compared to 1.72M disks.

<sect> Installation

<sect1>When I run mu, and I pass by the fdformat (I need to run this manually because the mulinux-fdformat asks for libc.so.5) I get this message, and I am not sure if this is a hardware-problem:
<p>
<verb>
	end_request: I/O error, dev 02:3c (floppy), sector 18
	cat: write error: Input/output error
	Done. Reboot now.
</verb>
Did you format the floppy disk with
<verb>
                        fdformat /dev/fd0H1722?
</verb>
or with a bare "fdformat /dev/fd0" ? If yes, please change media.

<sect1>
Would you send me the source code of your mini linux? Thanks a thousand!
<p>
You can find it all at sunsite.unc.edu and other Linux mirrors.
As far the scripting is concerned, you will find everything in the muLinux itself. muLinux is mainly script-based, therefore code=source. The only C sources I make are in the sources/ directory, in the mulinux-version.tgz archive.

<sect1>When I re-boot the PC with the installation disk inside, after a while
I am told that muLinux can not be found and I am asked to specify in which partition the muLinux files are.

<p>
Ops, this is the problem: the Installer scans only the first level directories.
No problem: if you copied in
<verb>
                c:\a\b\c\d
specify:
                /a/b/c/d
</verb>
when muLinux ask for path.

<sect1>My problem is at the beginning. I cannot download the file. I formatted a
disk with fdformat (dos) and got 1.79 Mb and cannot copy the main muLinux file - insufficient disk space.
<p>
You can not copy the archives on to the floppy in such a way, but download everything in one directory in Windows and run the installation as specified in INSTALL.DOS, that is with the commands "makefd.bat" or "boot.bat"

<sect1>My problem is that I cannot get the entire mulinux-VERSION.tgz file on one floppy - insufficient disk space
<p>
But this is a very different problem. This is a *transport* problem; am I right? Your problem is to *transport* this archive to the destination hard disk?

If yes, you can use the pkzip feature of multi-disk: compress all with pkzip (in the original machine) using the -& option. The obtained .zip file will be split on a set of 1.44 floppies.

Then, rebuild the archive at the destination, using pkunzip.

<sect1>Is there a way to start muLinux with a default profile selected at startup, so that it starts and begins to work immediately?
<p>
setup -s lock

<sect1>Well, don't feel bad about it, I'm kind of newbie too. I'm into Linux stuff for a year now, and I don't know what that 16 ramdisk stuff means, but I do know that it doesn't consume any ram. I guess it means to have the ability to use 16 ramdisks.
<p>
Exactly. This message, "16 ramdisk", is only related to the "rd" module - the ramdisk support in the kernel. Everything in muLinux uses RAM, because the filesystem is in RAM, and executable programs use RAM. The temporary disk (/tmp) uses its own ramdisk, with a default size 2048k. During the setup for /tmp the user has the possibility to change this value.

<sect1>When I try to boot, I get memory problems (well, duh) and then when I drop down to a shell, I get "cannot fork" when attempting to make swap space. I can't even ls or fdisk. All I can do is pwd. Any advice?
<p>
muLinux runs entirely in RAM, so it requires more RAM than usual. You need swap, but setting up a swap using the muLinux script is not possible in 4M, because the scripts fork. You have to reach a prompt and proceed manually:
<verb>
                # .... mount a DOS disk ...
                # dd if=/dev/zero bs=1k count=4000 of=linux.swp
                # mkswap linux.swp
                # sync
                # swappon linux.swp
</verb>

<sect1>Question: which file in the USR section causes the command history and how is it initiated?
When I don't setup USR, the command history doesn't work. I'd like some info on this.
<p>
Take a look to the /bin/login command in muLinux: this is a script wrapper. It starts:
<verb>
	1) ash, if EXT is *not* mounted (fake 'login')
	2) /usr/local/bin/login, if EXT si mounted (the true 'login')
	3) /usr/bin/ile, if USR is mounted (the command history),
</verb>
The command history in muLinux is full demanded ##?? not sure what you mean "delegated"## to an external program, "ile", used in this way:
<verb>
		# /usr/bin/ile -/etc/ilerc  /bin/-ash -si
		(this is the *fake* case). 
</verb>
If you wish to have the command history without USR, put "ile" in /bin, and change /bin/login accordingly.

<sect1>Could someone tell me what arguments are available for miterm? Are there man pages? What arguments are used for dialing a shell account?
<p>
miterm [-s speed] [-l line] [-e escape-char]

For example:
<verb>
                # miterm -l /dev/ttyS1
</verb>

After the establishing the connection with the modem, you can issue standard AT* commands.
Try for example "ATZ". You can dial using:
<verb>
		atx3
                atdtxyz
</verb>
where xyz is the telephone number.

<sect1>How can one reduce the required RAM, in case I want to use floppy #1 in a machine with 4MB?
<p>
If the system blocks at the message about "toilet paper", you only started the kernel, but the system itself won't run.
Try decreasing the ramdisk_size - when the you see the message "boot:" booting from floppy, type the following carefully:
<verb>
        boot: mulinux f1722 load_ramdisk=1 prompt_ramdisk=0
                ramdisk_size=3000
                ramdisk_start=597
</verb>
(on a single line)
The default value is 4600 in muLinux. You will gain 1.5M, maybe it will works.

<sect1>The downloaded installation files are not on my notebook, but on my
desktop. So I can't use boot.bat.
<p>
You can transport them to the target machine using pkzip: it can split a big archive on to a set of floppy disks (see instructions).

<sect1>I got the mulinux-10r2.tgz and some modules. Now I really don't know how to get this archive on to a bootable floppy and install muLinux on to a fresh HDD.
I can extract the archive to a floppy with arc under Linux, but that floppy won't boot?
I don't use DOS or Windows.
<p>
A very common question, caused by a lack of README reading. If you install under Linux, you have to read the file INSTALL.Linux and use the script "mu".


<sect1>
BTW another question: I'm, really, a newbie but WHY, under DOS, can I see my
addon in the directory C:\Linux\EXT.tgz and why NOT when I am under Linux..
<p>

YOU PUT the ADDONS in the c:\Linux directory??????
Please, please! This directory is NOT for you, but reserved to UMSDOS
filesystem. Put your addons in c:\mu or c:\mulinux or c:\other!

<sect1>
I looked around on the home page and couldn't find the mulinux sources.
Where can I get them?
<p>

muLinux is script based, so the best part of code is also the source
of it. As far C programs is concerned, I used GPLed packages, standards
in Linux distros, but compiled for libc5 using a RH4.2 as development
system. You will find it at Sunsite.Unc.Edu and mirror.

I also rewrote from scratch some commands: you will found the source
code in the sources/ directory, in the mulinux-VERSION.tgz archive.

Most of the UNIX commands present in the /bin path are from the busybox:
you found the source of busybox, with my patches, in the GCC addon,
as sample.

<sect1>
muLinux works pretty well, but I always have had problems with lilo during
cloning process [ext2].
For systems with low mem, you can't extract EXT.tgz containing lilo...
so you have to clone the basic mulinux first.
<p>

You could find the "lilo" command also in another place: it is in the
same directory you decompressed the mulinux.tgz archive. Mount this
disk and copy it in /usr/bin, before of cloning.

<sect1>
I didn't understand if it is possible install new applications with Mulinux
installed on hard disk. If it is possible, what I have to do?
<p>
Basically, the answer is : no. Any ELF package requires an own pool
of libraries. muLinux is a libc5, then precompiled libc6 package do not
works.

I added part of exential libc6 (from Debian 2.0) in the disk called
PERL, but if you put in muLinux some binary from recent Mandrake, they
do not works, because my libc6 is old.

I don't like battles that can't be wont [in that I'm like americans :-)]:
a little system such muLinux is, can't follow libc state-of-arts,
so as precise design muLinux will remains libc5 for a lot.

Recent libc are mega-and-mega! I thing newer Linuxes simply can't
run from a floppy disk.

<sect1> 
How to add a new application in muLinux?
<p>
(answer from "winsor SMP" <em/zoot@farts.com/).
Most libc5 application can be installed within muLinux.
If you wander through the likes of metalab, you'll see many apps are
offered in two flavors, libc5 and glibc (libc6).
Using libc5 versions will get you going on the right foot, and if
you get errors about lib files you should be able to
 grab the lib files from metalab as well.
<p>
Just be sure that after installing any lib files to either run "ldconfig"
or reboot your machine(this is a VERY common mistake made)
Another more ponderous option would be to compile apps 
from the source code
using the -static flag in the makefiles........but be warned, 
this makes GIANT apps(quite similiar to the M$ stuff 8^P)
oh yeah..........and be sure to compile those apps on 
"another" linux box as the+gcc included with muLinux is for
learning C only.

<sect1>
Hello,
after i've created a bootable floppy  (makefd) and
booted again, the system goes in halt after the
message: /bin/scan cannot fork (twice).
Any suggestions?    :-( Machine: Digital 386 SX - 4 MB RAM.
<p>
(answer from Zeimet Alex <em/lzeimet@gmx.net/)
Hello,

I also once had a problem to install mulinux on a 386SX with 4MB. I
think it will not be possible to install mulinux with 4MB on a SX,
8MB are required. But installed on a HD it works with 4MB!
The trick I found: install mulinux in a UMSDOS directory on a
machine with at least 8MB, then copy the whole "linux" directory
over network on the 386. (with windows 3.11 for workgroups)
Since had I made that, I use my 386SX as a Gateway internet router
:-)
<p>
Note: It's not possible to boot with a floppy an a 386SX with less
than 8MB....or is there anybody who was able to boot with 4MB?

</article>

