gBootRoot pronounced "bOOtrOOt"
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

5.8 KiB

$Id: README,v 1.29 2003/02/18 18:28:06 freesource Exp $
Program: gBootRoot pronounced "bOOtrOOt"
License: GNU General Public License

BUILDING
---------

If you can compile a kernel on your system, then you should have no
problems getting the Makefile to work, and if you are using the
sources for the Debian package, then you can always do an "apt-get
build-dep gbootroot" to automatically figure out your build
requirements. Gbootroot makes its own root_fs, when the output gets
colorful (blue and red) you know this is happening. If things go
wrong at this point you will want to look at the requirements below.

You will want wget installed because the Makefile attempts to download
the necessary sources and then places them in the sources/ directory.
This is what makes the unofficial Debian and RedHat source packages
unique, because usually another package would provide the necessary
sources since official distributions aren't always used online. On
the other hand, this is a FEATURE. Anytime you want to update
gbootroot to the current user-mode-linux patch just change the
Makefile PATCH_VERSION, run ./configure, run "make clean", and then
"make". If this is your first time making gbootroot from the source
package just run ./configure and "make".

The two root_fs created are root_fs_helper and Initrd.gz.
Root_fs_helper has lots of different filesystem utilities, but the
CRUCIAL ones to get the build to work properly are mke2fs and
mkcramfs. Here's a list of what utilities are included: mke2fs
mkcramfs genromfs mkfs.minix mkminix mkreiserfs mkfs.jffs mkfs.jffs2

These are the build-depends from the Debian source package that can be
used as a guide for other distributions: binutils (>= 2.12.90.0),
fileutils (>= 4.0), gcc (>= 2:2.95.4), make, libc6-dev (>= 2.2.5),
bin86, wget, mkcramfs, e2fsprogs, reiserfsprog, genromfs, util-linux,
mtd-tools, m4, libreadline4-dev, libncurses5-dev, libgtk-perl (>=
0.7002) [see gbootroot's site], libexpect-perl [required rpms can be
found at gbootroot's site]. For instance, in Redhat libc6-dev
translates into glibc-devel and glibc-kernheaders, libreadline4-dev
translates into readline-dev, libncurses5-dev translates into
ncurses-devel, reiserfsprog translates into reiserfs-utils. Mandrake
requires glibc-static-devel along with glibc-devel, but the other
package names are more similar to Debian.

Suse users may need to edit /usr/include/asm/ptrace.h adding "#define
FRAME_SIZE 17" after the "#define SS 16" line or else uml won't
compile. This was observed in Suse 7.3; why this line is missing is a
complete mystery.


UML KERNEL CUSTOMIZATION
------------------------

You may want to add your own customizations to the uml kernel. To
accomplish this you will need to understand that the Makefile runs
oldconfig on the configuration file ".config" which is first copied
from user-mode-linux/usr/lib/uml/config to .config in the
linux-$VERSION directory where the kernel sources reside. What this
means is that after doing a make config or one of the config alternatives
from the kernel sources directory, you should copy the customized
configuration file you made to the ../user-mode-linux/usr/lib/uml
directory and then run gbootroot's Makefile.


INSTALLING
----------

If you build the package as a non-root user, and you don't have
permissions to write to system directories you can always run
gbootroot from the immediate source directory "./gbootroot --home ."
or "perl -I . ./gbootroot --home ." if there is already another
installed version on the system.

To install on the system type "make install" and follow the
instructions in the "Important Configurations" section near the bottom
of this page, and then run gbootroot.

When you run gbootroot if a boot or root method are missing required
programs, pop-up dialog boxes and information from the verbosity box
will give a good indication of what is causing the problem.


REQUIREMENTS TO RUN GBOOTROOT
-----------------------------

PERL MODULES

Gtk-Perl (Required for CLI/GUI)
-------------------------------

Version 0.7002 or greater.
http://freshmeat.net/projects/gtk-perl

[ The next three are required for automated normal (non-root) user
functionality . ]

Expect (tested with 1.11/1.15)
------------------------------
http://www.perl.com/CPAN/modules/by-module/Expect/
http://sourceforge.net/projects/expectperl
RPM version can be found at sf.net/gbootroot.

IO::Stty
--------
http://www.perl.com/CPAN/modules/by-module/IO/IO-Stty-.02.tar.gz
RPM versions can be found at sf.net/gbootroot.

IO::Tty
-------
http://www.perl.com/CPAN/modules/by-module/IO/IO-Tty-1.02.tar.gz
http://sourceforge.net/projects/expectperl
RPM versions can be found at sf.net/gbootroot.


BOOT METHODS

2 disk compression
------------------

This method will tell you when any of these utilities are missing:

ash lilo bzip2 file


ROOT METHODS

Yard (This is a method - not a program)
--------------------------------------

Watch the verbosity box, it will be obvious when a required command is
missing. Make sure you have this file installed on your system:

file


IMPORTANT CONFIGURATIONS

"chown 0:0 /usr/bin/uml_net; chmod 4755 /usr/bin/uml_net" so normal
users can have network capabilities; ofcourse, you may totally avoid
doing the suid thing by using tunctl.

Should the host kernel have the skas patch applied?

"Yes, I highly recommended it. It's a great performance improvement,
and gbootroot will run a lot better. Modes are figured out
automatically by skas-or-tt so don't add mode={tt,skas} in the UML
box. The host-skas3.patch is available from
http://user-mode-linux.sf.net/dl-sf.html . Alternatively, there is a
skas module available from http://www.rogerbinns.com/modskas3/ ."


DOCUMENTATION

Documentation and FAQ are in doc/html/index.html


Have fun!

-Jonathan

Please infuse your suggestions, bug reports, insults, and patronage back to:
Jonathan Rosenbaum <freesource@users.sourceforge.net>