summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bincode.asm22
-rwxr-xr-xgfxboot20
-rwxr-xr-xmk_vocabulary2
-rw-r--r--themes/openSUSE/src/bsplash.inc4
-rw-r--r--themes/openSUSE/src/common.inc4
5 files changed, 39 insertions, 13 deletions
diff --git a/bincode.asm b/bincode.asm
index b9f1ba6..f404ac0 100644
--- a/bincode.asm
+++ b/bincode.asm
@@ -9402,6 +9402,28 @@ prim_chdir_90:
ret
+;; mount - re-read filesystem meta data
+;
+; group: system
+;
+; ( -- int1 )
+;
+; int1: error
+;
+; example
+; mount pop % re-read iso fs after cdrom change
+;
+
+ bits 32
+
+prim_mount:
+ mov al,6
+ call gfx_cb ; (re)mount
+ mov dl,t_int
+ movzx eax,al
+ jmp pr_getobj
+
+
;; _readsector - read sector
;
; group: system
diff --git a/gfxboot b/gfxboot
index 2d0de12..e752dfb 100755
--- a/gfxboot
+++ b/gfxboot
@@ -1579,7 +1579,7 @@ sub prepare_grub
close F;
for (@opt_test_addfiles) {
- system "cp $_ $dst/boot" and die "error copying file: $_\n";
+ system "cp -r $_ $dst/boot" and die "error copying file: $_\n";
}
for (@opt_test_rmfiles) {
@@ -1697,7 +1697,7 @@ sub prepare_lilo
close F;
for (@opt_test_addfiles) {
- system "cp $_ $dst/boot" and die "error copying file: $_\n";
+ system "cp -r $_ $dst/boot" and die "error copying file: $_\n";
}
for (@opt_test_rmfiles) {
@@ -1771,12 +1771,6 @@ sub prepare_isolinux
mkdir "$dst/boot/$arch_dir/loader", 0755;
}
- system "cp $opt_syslinux/usr/share/syslinux/isolinux.bin $dst/$loader" and die "error: no isolinux\n";
- if($loader ne "") {
- system "isolinux-config --base=/boot/$arch_dir/loader $dst/${loader}isolinux.bin" .
- ($opt_verbose ? "" : " >/dev/null");
- }
-
my $bl_unpacked;
( $bl_unpacked ) = unpack_archive $file;
my $bl_packed = pack_archive $bl_unpacked, 'bootlogo';
@@ -1821,8 +1815,9 @@ sub prepare_isolinux
close F;
}
+ system "cp $opt_syslinux/usr/share/syslinux/isolinux.bin $dst/$loader" and die "error: no isolinux\n";
for (@opt_test_addfiles) {
- system "cp $_ $dst/${loader}" and die "error copying file: $_\n";
+ system "cp -r $_ $dst/${loader}" and die "error copying file: $_\n";
}
for (@opt_test_rmfiles) {
@@ -1830,6 +1825,11 @@ sub prepare_isolinux
system "cd $dst/${loader} ; rm -f $_" and die "error deleting file: $_\n";
}
+ if($loader ne "") {
+ system "isolinux-config --base=/boot/$arch_dir/loader $dst/${loader}isolinux.bin" .
+ ($opt_verbose ? "" : " >/dev/null");
+ }
+
if($opt_32 && $opt_64) {
symlink "i386", "$dst/boot/x86_64" if -d "$dst/boot/i386";
}
@@ -1911,7 +1911,7 @@ sub prepare_syslinux
}
for (@opt_test_addfiles) {
- system "cp $_ $dst" and die "error copying file: $_\n";
+ system "cp -r $_ $dst" and die "error copying file: $_\n";
}
for (@opt_test_rmfiles) {
diff --git a/mk_vocabulary b/mk_vocabulary
index 157fb31..112842a 100755
--- a/mk_vocabulary
+++ b/mk_vocabulary
@@ -58,7 +58,7 @@
getbyte putbyte getword putword getdword putdword
inbyte outbyte
- findfile filesize getcwd chdir
+ findfile filesize getcwd chdir mount
setmode currentmode videomodeinfo videomodes
colorbits
diff --git a/themes/openSUSE/src/bsplash.inc b/themes/openSUSE/src/bsplash.inc
index 0b93692..d72703c 100644
--- a/themes/openSUSE/src/bsplash.inc
+++ b/themes/openSUSE/src/bsplash.inc
@@ -45,10 +45,14 @@
/bsplash.show {
currentimage
+ % "/boot/i386/loader/xxx" chdir
+
"welcome.jpg" findfile /splash.file over def setimage
0 0 moveto 0 0 image.size image
+ % "/boot/i386/loader" chdir
+
bsplash.init
bsplash.skip not { 100000 usleep } if
diff --git a/themes/openSUSE/src/common.inc b/themes/openSUSE/src/common.inc
index 4dae74f..bbbae25 100644
--- a/themes/openSUSE/src/common.inc
+++ b/themes/openSUSE/src/common.inc
@@ -199,8 +199,8 @@
/window.action actNothing def
% cd change dialog
info.type 5 eq info.type 6 eq or {
- % 'chdir' triggers fs metadata re-read
- getcwd dup .undef ne { chdir } { pop } ifelse
+ % 'mount' re-reads fs metadata
+ mount pop
} if
"" -1 3 return