|
|
|
$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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|