Browse Source

Fixed a bug which causes lock-ups during seconf fs creation with

EXPECT, and a bug where .options wasn't being written to disk or the
path was being altered when a variable was being altered.  This also
gets things trim and ready with the coolest discovery being that a
nested kernel can run on the host and in it's nest.  I'll be testing
other nested levels to discover how far this can go and be
incorporated in one package which is nice.
master
freesource 22 years ago
parent
commit
9cede96d0f
  1. 12
      BootRoot/BootRoot.pm
  2. 3
      BootRoot/Yard.pm
  3. 27
      Changes
  4. 13
      README
  5. 10
      doc/html/index.html
  6. 7
      skas-or-tt/skas-or-tt.c

12
BootRoot/BootRoot.pm

@ -74,8 +74,9 @@ my $home_uml_kernel;
$option{gui_mode} ? ($home_uml_kernel = "$home/user-mode-linux/usr/bin/") $option{gui_mode} ? ($home_uml_kernel = "$home/user-mode-linux/usr/bin/")
: ($home_uml_kernel = "$home/uml_kernel/"); : ($home_uml_kernel = "$home/uml_kernel/");
sub uml_kernel { sub uml_kernel {
$home_uml_kernel = $home_uml_kernel . "linuxbr" if !$option{"uml-kernel"}; my $home_umlk = $home_uml_kernel;
return $home_uml_kernel; $home_umlk = $home_umlk . "linuxbr" if !$option{"uml-kernel"};
return $home_umlk;
} }
my $modules_directory = "/lib/modules"; my $modules_directory = "/lib/modules";
@ -363,7 +364,7 @@ if ( !%option || $option{gui_mode} ) {
# /tmp # /tmp
home_builder($tmp1); home_builder($tmp1);
if ( !( $option{home} || $option{help} || $option{h} ) ) { if ( !( $option{help} || $option{h} ) ) {
# $HOME/.gbootroot/root_filesystem # $HOME/.gbootroot/root_filesystem
home_builder($home_rootfs); home_builder($home_rootfs);
@ -1545,7 +1546,10 @@ sub uml_box {
$eab2 = Gtk::Combo->new(); $eab2 = Gtk::Combo->new();
$table_uml->attach($eab2,1,5,1,2, $table_uml->attach($eab2,1,5,1,2,
['expand','fill'],['fill','shrink'],0,0); # 1,3 ['expand','fill'],['fill','shrink'],0,0); # 1,3
open(OPTIONS,"$home_uml_kernel/.options"); my $error;
open(OPTIONS,"$home_uml_kernel/.options") or
($error = error("$home_uml_kernel/.options: $!\n"));
return "ERROR"if $error && $error eq "ERROR";
my @initial_options = <OPTIONS>; my @initial_options = <OPTIONS>;
close(OPTIONS); chomp @initial_options; close(OPTIONS); chomp @initial_options;
$eab2->entry->set_text($initial_options[0]); $eab2->entry->set_text($initial_options[0]);

3
BootRoot/Yard.pm

@ -1591,6 +1591,9 @@ sub create_expect_uml {
while (Gtk->events_pending) { Gtk->main_iteration; } while (Gtk->events_pending) { Gtk->main_iteration; }
} }
# Pretty important, probably should check for errors, too.
close(EXPECT);
# This will just keep appending, but that's o.k. # This will just keep appending, but that's o.k.
if ( $fs_type eq "mkcramfs" || $fs_type eq "genromfs" || if ( $fs_type eq "mkcramfs" || $fs_type eq "genromfs" ||

27
Changes

@ -1,6 +1,16 @@
1.4.0 - 12/20/2002 1.4.0 - 01/06/2003
------------------ ------------------
Updated to 2.4.19-45um and the latest uml tools 20021103.
Added a nested package, gbootroot-nest1 to allow gbootroot to have
full functionality under uml.
Wrote and added a C program skas-or-tt to automatically add the proper
mode={skas,tt} to the commandline. This means compilation will be
optimized, and things won't lock up when using gbootroot-nest1 with a
uml running on top of a host kernel without the skas patch.
The MTD Emulator doesn't work as nicely as before. Blkmtd seems The MTD Emulator doesn't work as nicely as before. Blkmtd seems
mostly broken, and mtdram needs more careful tweaking for total size, mostly broken, and mtdram needs more careful tweaking for total size,
though mtdram definitely still works. This is due to changes in uml though mtdram definitely still works. This is due to changes in uml
@ -13,17 +23,28 @@ this change exists with the new port-helper because wasn't the case
before. Also, added path for user-mode-linux/usr/bin to find the before. Also, added path for user-mode-linux/usr/bin to find the
other tools. other tools.
The Makefile has been altered quite a bit, and wgets necessary
sources, unconventional but very nice in keeping up with jdike's
latest patch. You can now live quite happily out of the source
directory.
Added the templates for Initrd and root_fs_helper and the
corresponding replacements that are also used by the source package.
Updated the documentation, and the README found in the source packages
is now available in the normal packages.
The biggest change is the command-line interface with the yard root The biggest change is the command-line interface with the yard root
method. Now distribute your template and let others easily recreate method. Now distribute your template and let others easily recreate
your root_fs without entering the gui by running "gbootroot --template your root_fs without entering the gui by running "gbootroot --template
your_template" and this is a nice way to manage a distribution you are your_template" and this is a nice way to manage a distribution you are
developing. This all means the source packages are completely developing. This also means that source packages are completely
automated now, and vastly improved, which is quite awesome. automated now, and vastly improved, which is quite awesome.
When root_fs_helper was running with the newer Expect.pm, and When root_fs_helper was running with the newer Expect.pm, and
consequentially the newer uml kernel it became necessary to get out consequentially the newer uml kernel it became necessary to get out
when the kernel shuts down with a last function right when it says when the kernel shuts down with a last function right when it says
"Power down." "Power down" or "bd.*module cleaned up."
Checks for the proper version for newer libc6 linkers. Hopefully, Checks for the proper version for newer libc6 linkers. Hopefully,
should work properly with libc6 > 2.3.1, too. should work properly with libc6 > 2.3.1, too.

13
README

@ -1,4 +1,4 @@
$Id: README,v 1.14 2002/12/22 03:15:05 freesource Exp $ $Id: README,v 1.15 2003/01/05 02:10:41 freesource Exp $
Program: gBootRoot pronounced "bOOtrOOt" Program: gBootRoot pronounced "bOOtrOOt"
License: GNU General Public License License: GNU General Public License
@ -58,7 +58,7 @@ REQUIREMENTS TO RUN GBOOTROOT
PERL MODULES PERL MODULES
Gtk-Perl (Required for GUI) Gtk-Perl (Required for GUI)
-------- --------------------------
Version 0.7002 or greater. Version 0.7002 or greater.
http://freshmeat.net/projects/gtk-perl http://freshmeat.net/projects/gtk-perl
@ -96,8 +96,8 @@ ash lilo bzip2 file
ROOT METHODS ROOT METHODS
Yard Yard (This is a method - not a program)
---- --------------------------------------
Watch the verbosity box, it will be obvious when a required command is Watch the verbosity box, it will be obvious when a required command is
missing. Make sure you have this file installed on your system: missing. Make sure you have this file installed on your system:
@ -107,8 +107,9 @@ file
IMPORTANT CONFIGURATIONS IMPORTANT CONFIGURATIONS
"chown 0:0 /usr/bin/uml_net; chmod 4755 /usr/bin/uml_net" so normal users can "chown 0:0 /usr/bin/uml_net; chmod 4755 /usr/bin/uml_net" so normal
have network capabilities. 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? Should the host kernel have the skas patch applied?

10
doc/html/index.html

@ -3,7 +3,7 @@
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E" <body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink="#51188E"
alink="#FF0000"> alink="#FF0000">
<center>$Id: index.html,v 1.105 2002/12/20 19:28:44 freesource Exp $</center> <center>$Id: index.html,v 1.106 2003/01/05 06:00:38 freesource Exp $</center>
<p> <p>
@ -20,10 +20,12 @@ alt="SourceForge Logo"> </A></p>
<!-- <p align="center"><A HREF="http://www.softlandmark.com/linux/Administration1.htm"> <!-- <p align="center"><A HREF="http://www.softlandmark.com/linux/Administration1.htm">
<img src="images/Editorspick.gif" HEIGHT=34 WIDTH=99 BORDER=0></A></p> --> <img src="images/Editorspick.gif" HEIGHT=34 WIDTH=99 BORDER=0></A></p>
<p align="center"><A HREF="http://search.freefind.com/find.html?id=6996492&pid=r&mode=ALL&n=0&query=gbootroot"> <p align="center"><A HREF="http://search.freefind.com/find.html?id=6996492&pid=r&mode=ALL&n=0&query=gbootroot">
<img src="images/Editorspick.gif" HEIGHT=34 WIDTH=99 BORDER=0></A></p> <img src="images/Editorspick.gif" HEIGHT=34 WIDTH=99 BORDER=0></A></p> -->
<p align="center"><img src="images/Editorspick.gif" HEIGHT=34 WIDTH=99 BORDER=0></p>
<p></p> <p></p>
@ -61,7 +63,7 @@ hometown!<A>
<br><br> <br><br>
<b>Slackware or just compiling it yourself</b><br> <b>Slackware or compiling it yourself</b><br>
<a href="http://freshmeat.net/redir/gbootroot/3075/url_tgz/gbootroot.tar.gz">gbootroot source</a><br> <a href="http://freshmeat.net/redir/gbootroot/3075/url_tgz/gbootroot.tar.gz">gbootroot source</a><br>
<em>Instructions:</em><br> <em>Instructions:</em><br>
README README

7
skas-or-tt/skas-or-tt.c

@ -36,10 +36,14 @@ int main(void)
if ( cmdline_value == 1 ) { if ( cmdline_value == 1 ) {
printf("Checking for the skas3 patch in the host...not found\nChecking for /proc/mm...not found\n"); printf("Checking for the skas3 patch in the host...not found\nChecking for /proc/mm...not found\n");
kill(pid, SIGSTOP);
kill(pid, SIGKILL);
return(0); return(0);
} }
else if ( cmdline_value == 2 ) { else if ( cmdline_value == 2 ) {
printf("Checking for the skas3 patch in the host...found\nChecking for /proc/mm...found\n"); printf("Checking for the skas3 patch in the host...found\nChecking for /proc/mm...found\n");
kill(pid, SIGSTOP);
kill(pid, SIGKILL);
return(0); return(0);
} }
@ -62,7 +66,8 @@ int main(void)
ret = 0; ret = 0;
} }
else printf("found\n"); else printf("found\n");
kill(pid, SIGSTOP);
kill(pid, SIGKILL); kill(pid, SIGKILL);
return(ret); return(ret);

Loading…
Cancel
Save