Next Previous Contents

3. Technical

3.1 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?

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.

3.2 I typed "startx", but nothing happened. Why?

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.

3.3 Why do you not put in muLinux an X SVGA server, instead of VGA?

Because the SVGA is too big and I have no idea how it will behave on machines with 4M of RAM.

3.4 How can I format my floppies to hold 1722k in order to make the muLinux base and X11 disks?

You don't have to preformat your floppies. When you run install.bat, muLinux will automatically format them for you.

3.5 Can I clone muLinux to my hard drive if I have a FAT32 file system?

Yes, muLinux can be cloned even in a FAT32 partition, for example the Win98 partition.

3.6 Why doesn't muLinux provide a real authentication and login process?

NB: the recent versions provides multi-user support through an add-on.

For several reasons:

3.7 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?

It is true that the installation from DOS is more contorted that that from Linux, but only very slightly. 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:

3.8 Is there any problem trying to run C applications compiled / linked at a Linux distributions other than muLinux?

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.

3.9 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 !?!?!?

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?

3.10 Whenever I install muLinux 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."

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.

3.11 When I load startx on my laptop Mitac P100, the display is not full screen, it's just a rectangle in the center of the screen. Why?

If the rectange is ... usable, I would be satisfied; we can't have everything. But if the rectange is close to a postage stamp, an hard problem to solve, because laptops have unsual hardware.

3.12 I need a tool for login in on another machine... but without PASSWORD. But we can do that with samba (i hope :) ) and sshd .... I'm just asking that!

Samba is the right answer in muLinux, as-is currently. Using Samba and smbclient you can run any commands on a remote Mu. The trick is "use a printable share in Samba".

In the server machine, create in /etc/samba/share a new services called, for example, [rsh]:

        [rsh]
        comment = Remote Command Gateway 
        browseable = no 
        printable = yes
        path=/tmp
        admin users = admin <--- select an user with privilege (root?)
        public=no
        print command = wave -c 880 2; /bin/sh +x %s; rm %s 
        lprm command =
        lpq command = wave -c 220 2
To run remotely the command, you can use smbclient in this way:
        ----- rcmd script start ----
        #!/bin/sh
        host=$1; shift; cmd=$*
        (echo "print -"; echo $cmd)| smbclient //$host/rsh PASS -U USER -P 
        ----- rcmd script end ----

        ( PASS and USER authenticate the remote user. You can create
        a special user with login disabled, for that)
So, with
                # rcmd extensa.sanvittore.it /sbin/init 0
you will shutdown the machine extensa.sanvittore.it. Ok, this requires high privileges ("admin user= root")

A nice features: you can send the command using Win9x. You have only to create a file with "/sbin/init 0" in it and *print* if using the "rsh" ASCII printer!

3.13 Can you tell me about LibC files, EXE files, and RPMs? Can I install them in mu?

"libc" stands for "C library": it contains the basic routines requires by C programs. The GCC add-on is not matter here. Obiously, .EXE programs are designed to run only on M$ operating-system; but Linux is able to run a .exe using a software emulator like DosEmu or Wine.

Finally, there is a lot of other good software out there, but you can't install them in muLinux, without much pain other then libc5-linked.

3.14 I've noticed that everytime you come up with a new addon you have to change to 1st disk as well inorder to add it to the setup script. Would it be a good idea to have each addon have it's own setup script?

This isn't extact and, in the case, it is a malfunction. In theory, when the ROOT and the USR segment are in momory, the /setup directory is alway available during the addon's loading.

The only thing the may causes that is the request of a kernel module that reside in the floppy: usually, the Setup cache all modules in /tmp/modules, when a first request is made.

> That way, if you have to change or add functions to an addon, you only > have to release a new addon, not the 1st disk as well.

We already recently discussed this topic; the answer is: I like to have all scripts related to Setup in a single directory/disk, because this facilitate a lot. Otherwise, if I change something in the Setup itself, I have to upload 20M of addons!

3.15 Where can I get the mulinux sources?

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 RH4.2 at ftp://ftp.jcu.cz/pub/aps/4.2/i386/ or at Sunsite.Unc.Edu and its mirrors.

I also rewrote from scratch some commands. You will find 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.

3.16 What are the differences between the different Swap possibilities: - Swap partition - Swap résident (that's the one I used). - Swap local.

Basically, we have only two kind of swap-space: swap-files and swap-partitions.

In the case of "swap-partition", we swap in a dedicated partition, located in a HD of yours, an *properly* formatted as "Linux-swap" device.

Now, swap-file: a file can be "local" to your filesystem, for example in /tmp/my_swap_file, or "reside" to some other, mountable, disk partition, for example: your DOS partition.

If you cloned in UMSDOS, "local" is the best choice.

3.17 What do I need to make an Internet connection ? (it seems that setting PPP and PORT is not sufficient).

setup/port; setup/isp; finally "ppp-on"

3.18 Can you explain to me, DIALD set up, NAMESERVER, and NETWORK?

When you enter the DNS, you must enter the DNS of your provider, in the form x.y.z.t; NETWORK is the network definition of your LAN, for example 192.168.1.0. BTW, you do not need to use diald to go in Internet.

3.19 How could I print the screen ?

If you enabled the gpm mouse server, you can "cut" the screen with the left-mouse; then, you can open a text file with your preferred editors, then, after going in insert-mode, you can "paste" with 3th (or 2th) mouse button. Now, you has the screen in a file. You can print it with "lpr my_file". As alternative, you can redirect the standard-output to your printer with a command like my_command| lpr

3.20 Do I, REALLY, need a SERIAL mouse to obtain Xwindows (via X11 addon). My PS/2 mouse doesn't work.

My mouse is PS/2 and X works. Surely, your mouse isn't working. Please, start the gpm server: this is the best test for your mouse.

3.21 Once MuLinux is installed in UMSDOS, is it possible to gain room on my HDD by deleting some muLinux files or the whole directory ?

MuLinux is so little: what directory you plan to remove? If you are lucky, you will gain 10-20k.

3.22 My hda is cut in a hda1 (dos) and a hda2 (dos) when i mount hda2 on /store, i can only read the names of the files that are on hda2 under 8.3 ; how can i have then in full format ?

Mount as VFAT:

        mount /dev/hda2 /store -t vfat

3.23 Is there a way to avoid reconfiguring (or not) /usr and /ext and /x11 each time i boot from windows98 to my umsdos mulinux ?

Did you saved your profile with "setup -s lock"?

3.24 When i start my X session, i get a small image, i.e. that the X destop doesn't come on the full surface of the monitor, but only on a small part of the monitor. What can i do to get a full X ?

No, without deep manipulation of the X config file.

3.25 How do I prevent changes in /etc/samba/shares from disappearing during a reboot?

After you manipulate a file that is under the control of Setup, you must save with "setup -s".

3.26 I have mulinux operating on an embedded 486 with COMPACT FLASH (flash disk) and I want to prevent writes to the Compact fLASH dISK HDD. Can anyone tell me how I can write this to RAM instead of HDD.

Very easy: create the directory /startup/init in your root (/) filesystem in RAM. If Setup find this directory, it assume that STARTUP is embedded in the filesystem, not in a separated disk.

You have to edit the source distribution, opening the file linuxrc and putting the command "mkdir -p /startup/init" close to the top.

In this directory muLinux store/retreive its profile. But if you put this dir in RAM, stored profiles aren't kept to next boot.

3.27 Well, why mulinux cannot fork with a i386? Is fork() a i486 instruction?

No: fork() is a function in the C library, not an assembler istruction. You will find info about fork() int Section Two of man-page:

===================================================================
fork - create a child process

SYNOPSIS
       #include <unistd.h>

       pid_t fork(void);

DESCRIPTION
       fork  creates a child process that differs from the parent
       process only in its PID and PPID, and  in  the  fact  that
       resource  utilizations are set to 0.  File locks and pend-
       ing signals are not inherited.

       Under  Linux,  fork  is  implemented  using  copy-on-write
       pages,  so  the  only penalty incurred by fork is the time
       and memory required to duplicate the parent's page tables,
       and to create a unique task structure for the child.
===================================================================

As you can see, without the fork() system call, no multi-tasking is possible: you will have a pure DOS operating system. All processes in a UNIX machine are child of a *single* parent. The Big Parent generated all other child, cloning itself, following a process that in Biology is called "mitosi" (but I'm not sure if the comparition is evaluable, or if "meiosi" it is better)

A child-birth which doesn't involve a partner is also common in some species of vegetals (a part from the auto-erotism we did during adolescence, and more). I know, we have on the list some biologist: can it illuminate us?

3.28 How do we speed X-Windows without adding more memory?

X is know to be resource-consuming. It is a true network server, not a simple GUI, in the MS concept. I think 386 computers will run slowly also with more RAM!

3.29 Using Samba to mount a directory, I can only read files. Where's the problem ?

If you already edited the exports file, then you need to try to clone the [public] section in the /etc/samba/shares file, in order to write the yours. If it still doesn't work, try to enlarge the files permissions of the exported directory in MU, using the command "chmod", for example "chmod 766". If this doesn't work, try to change the owner

                "chown nobody.root mydir" 

3.30 I'm using the 10r5 release but when i try to connect to the internet using pppd pppd -d -detach /dev/cuaX it returns the the kernel lacks PPP support. What should I do?

It seems that you never read any single document about muLinux, isn't true? Mulinux comes with an huge set of scripts for that, in other words it fall in the class of "preconfigured Linuxes". After that, you can connect to internet with this algorithm:

        1.  setup -f port  (this configure the modem)
        2.  setup -f isp   (this configure PPP)
        2b. setup -s       (this save definitively your profile) 
        3.  ppp-on         (this activate the connection)
        3.  ppp-off        (this stops the connection)
        4.  plog           (this monitor the outgoing call)             

3.31 No matter what changes I make to /etc/X11/XF86Config' the file is rewritten back to the original after I run startx! Ican even copy a different file in its place and it isreplaced with the original. What am I doing wrong?

You have to change the original: /usr/X11R6/lib/X11/lib/XF86Config.in. This file contains some place-holder variable, like MOUSE_DEVICE, etc: do not remove them!

3.32 A better CD playing via pc-speaker?

Answer from Angoli Giovanni using the supplied command line in help resulted in a lot of noise :/ better command for cd playing via pc-speaker:

                # cdda2wav -D /dev/cdrom -B -eN -m -a 2

so cdda2wav records using this settings: mono with 8 bits @ 22050 Hz

The -a switch (which does sampling rate 22050 Hz) isn't so important the important option is -m (mono), with -s (stereo) the result is only noise as previously reported (i think it's because of the mono nature of pc speaker). Tested with a RAM muLinux v 11r2.

3.33 I tried to create a second user profile but something was wrong so I got a lot of error messages, I was not able to have the second configuration and I deleted the first profile, too.

The profiles are stored on the first floppy disk, if you run the RAM muLinux incarnation. But this floppy, unfortunately, is close to be full. So, no disk space for more that one profile. On the other hand, the number of parameters to be stored in the profile is growing, in recent releases.

If you can't live with more profiles on the startup floppy, you have to rebuild the base system. First, edit the file mu.cnf and change the value of BOOT_FREE (actual default is 35kB): this is the number of KB left free on the BOOT segment in the startup floppy-disk.

3.34 Your previous answer is very tight. I don't think a newbie would understand what he or she needs to do. Yet the FAQ is aimed at newbies.

Tight? It is my best in the current year! To be more expressive, I have to put a note for every word in the statement:

If you can't live with more profiles(1) on the startup(2) floppy(3), you have to rebuild(4) the base system(5). First, edit the file mu.cnf(7) and change the value of BOOT_FREE (actual default is 35kB)): this is the number of KB(8) left free on the BOOT(9) segment(10) in the startup(11) floppy-disk.

Foot-notes:
1) profile=the set of pairs variable=value that define all you typed 
   during the setup process
2) startup= is the first floppy you nicely inserted in the floppy 
   driver, the first floppy in the muLinux distribution
3) floppy = see floppy-disk (if you can)
4) rebuild = see "mu -r" (if you can)
5) base system = this is the muLinux base OS system, on a 1722k floppy-disk
7) mu.cnf = this is the file named mu.cnf (in the main archive)
8) KB=Kb=kBytes  1024 bytes
9) BOOT= the first (bootable) segment in the startup floppy-disk (other
   are ROOT and USR)
10) segment = contiguus part in the floppy-disk (not standard def.)
11) see (2)  

3.35 XWindows runs really slow on my 386 4mb ram machine.... any way to speed it up a little without adding more memory?

Answer from Winsor *grin* Add a big meaty swap file or partition(cloned system only), kill off all uneeded proccesses before starting X and use the smallest window manager you can find............ Try startx wm2 and start your apps from an xterm using something like exec chimera & the "&" allows the app to run in the background thus freeing up the xterm which can then be reused or closed to gain just a bit more memory back. Using X on a 386 with 4 megs is going to be a bit slow, but if one is frugal in just what apps one runs can run at an entirely tolerable speed. I'd also suggest editing the /etc/inittab file and get rid of an extra getty(vc's) or two as they use just a bit of memory.(I use only two getties on my 4 meg boxes) In addition during setup configure only those services absolutely needed for your intended purposes, or better yet create several different profiles(configs) this can be done by merely running setup -f -a configuring the system,as desired for one intended purpose and then issueing setup -s "unique name" with "unique name" being a different name for each different config profile, very similiar to the old menu driven configs that gamers used under DOS in yesteryear.

Mind you though, this will only work on a cloned system as the base diskette doesn't have enough room for more than one config. Good luck winsor

3.36 I have mu10r5 working in the the "ext2" configuration in a 138 meg partition. Can I delete the DOS partition (102 megs)and add that to the Linux partition. It looks like I mightbe able to do that with "cfdisk" which I have in RH-5.2 inanother drive.

You have only to format the new disk partition with:

                # mkfs.ext2 /dev/hdXY

After that, you may put in the /etc/fstab the following entry:

/dev/hdXY       /new             ext2    defaults,auto 

At next boot, you will have the disk mounted in /new, or anywhere you want.

3.37 What's the scope of the 'chroot' command?

chroot (for those that do not know this nice utility) runs a supplied command changing the "root" for it. For example, if you (from muLinux), mount another Linux disk under /mnt, you will get a prompt in the new Linux with "chroot /mnt bash" (I use the trick regularly)


Next Previous Contents
Comments, additions and suggestions can be sent to m.andreoli@tin.it.
Last update: 23 Oct 2002, Today is Sweetmorn, the 4th day of The Aftermath in the YOLD 3168
This FAQ was generated using sgml-tools for Linux, v1.0.9