Browse Source

Had to add more changes to expect_uml and UML so that there will be an

established PATH, and so that uml_mconsole's system command won't be
issued until the last line is actually come to via a new method.
master
freesource 22 years ago
parent
commit
3f7df32e64
  1. 11
      BootRoot/UML.pm
  2. 31
      expect_uml

11
BootRoot/UML.pm

@ -9,7 +9,8 @@
# Can now set password to "" to allow no password. # Can now set password to "" to allow no password.
# #
# 02/18/2003 Now login isn't mandatory which allows login-free # 02/18/2003 Now login isn't mandatory which allows login-free
# inits like /bin/bash. # inits like /bin/bash. Added a new method so that
# the last line can be discerned before halting.
package BootRoot::UML; package BootRoot::UML;
@ -179,6 +180,14 @@ sub halt {
$me->{expect_handle}->expect(undef); $me->{expect_handle}->expect(undef);
} }
sub close_no_init {
my $me = shift;
$me->{expect_handle}->print("Shutting down\s\s\n");
$me->{expect_handle}->expect(undef, "-re", "Shutting down");
}
sub kill { sub kill {
my $me = shift; my $me = shift;

31
expect_uml

@ -84,21 +84,6 @@ for ( 6 .. $#ARGV ) {
} }
=pod
my $uml =
BootRoot::UML->new( login_prompt => "bootroot login: ",
kernel => $uml_kernel,
arguments => $arguments,
login => "root",
password_prompt => "Password: ",
password => "",
prompt => "bootroot:.*# ",
halt => "shutdown -h now"
);
=cut
my $uml = my $uml =
BootRoot::UML->new( login_prompt => "", BootRoot::UML->new( login_prompt => "",
kernel => $uml_kernel, kernel => $uml_kernel,
@ -107,10 +92,16 @@ my $uml =
password_prompt => "Password: ", password_prompt => "Password: ",
password => "", password => "",
prompt => ".*# ", prompt => ".*# ",
halt => "shutdown -h now" halt => "exit"
); );
$uml->boot(); $uml->boot();
# Establish PATH, some compilations of bash ignore some important paths
$uml->command("PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:.");
$uml->command("mount -t proc proc /proc");
# Make the GID/UID 0 FS # Make the GID/UID 0 FS
if ( $filesystem =~ /^mkcramfs/ || $filesystem =~ /^genromfs/ || if ( $filesystem =~ /^mkcramfs/ || $filesystem =~ /^genromfs/ ||
$filesystem =~ /^mkfs\.jffs/ ) { $filesystem =~ /^mkfs\.jffs/ ) {
@ -173,7 +164,9 @@ elsif ( $filesystem =~ /^mkfs\.jffs/ ) {
} }
$uml->command("umount /mnt1; umount /mnt2"); $uml->command("umount /mnt1; umount /mnt2");
# The fast way
system "uml_mconsole $umid halt";
# Fall through # Fall through
$uml->halt() $uml->close_no_init();
# Wait until the last line
system "uml_mconsole $umid halt";

Loading…
Cancel
Save