summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2004-04-05 09:26:28 +0000
committerPascal Rigaux <pixel@mandriva.com>2004-04-05 09:26:28 +0000
commitaf4cbf028b6fe720cccbb3efa47df9b33fae455e (patch)
treeb71226d0f637743c4196c4885e77a5e3a1400e4b
parent432f25c16c5067056b767f51243b9ddada214b2c (diff)
downloaddrakx-af4cbf028b6fe720cccbb3efa47df9b33fae455e.tar
drakx-af4cbf028b6fe720cccbb3efa47df9b33fae455e.tar.gz
drakx-af4cbf028b6fe720cccbb3efa47df9b33fae455e.tar.bz2
drakx-af4cbf028b6fe720cccbb3efa47df9b33fae455e.tar.xz
drakx-af4cbf028b6fe720cccbb3efa47df9b33fae455e.zip
- no need forking make_boot_img
- also create the isolinux picture (was done in move/Makefile)
-rwxr-xr-xmake_boot_img36
-rwxr-xr-xmove/hack_boot_img418
2 files changed, 30 insertions, 424 deletions
diff --git a/make_boot_img b/make_boot_img
index 875660495..af4d65fb4 100755
--- a/make_boot_img
+++ b/make_boot_img
@@ -44,6 +44,12 @@ my @all_images = (
my @images = @ARGV ? @ARGV : map { "images/$_" } @all_images;
+if (any { /move/ } @images) {
+ -e "$instdir/init-move" or die "ERROR: $instdir not built for move\n";
+} else {
+ -e "$instdir/init-move" and die "ERROR: $instdir built for move\n";
+}
+
foreach my $img (@images) {
my ($type, $I, $extension) = $img =~ m!([^/]*)(64)?\.([^.]*)$!;
@@ -55,6 +61,12 @@ foreach my $img (@images) {
if (my ($tftpboot) = grep { -e $_ } qw(/tftpboot /var/lib/tftpboot)) {
system("/bin/cp -f isolinux/alt0/* $tftpboot 2>/dev/null");
}
+ } elsif ($img =~ /move/) {
+ isolinux_move($main);
+
+ if (my ($tftpboot) = grep { -e $_ } qw(/tftpboot /var/lib/tftpboot)) {
+ system("/bin/cp -f move/isolinux/* $tftpboot/move 2>/dev/null");
+ }
} elsif ($img =~ /boot.iso/) {
boot_iso($img);
} elsif ($img =~ /drivers/) {
@@ -74,9 +86,9 @@ foreach my $img (@images) {
sub install_stripped { _ "strip $_[0]"; _ "$sudo install $_[0] $_[1]" }
sub initrd {
- my ($mnt, $type, $I, $img) = @_;
+ my ($mnt, $type, $I, $img, $o_raw_stage1_tree_kind) = @_;
my $tmp = "$ENV{HOME}/tmp/initrd";
- my $tar = "$instdir/stage1-data/stage1.tar.bz2";
+ my $tar = "$instdir/stage1-data/stage1$o_raw_stage1_tree_kind.tar.bz2";
__ "$sudo umount $tmp $mnt 2>/dev/null";
_ "dd if=/dev/zero of=$tmp bs=1k count=" . ($arch =~ /ia64/ ? ($type eq "all" ? 16386 : 16384) : ($type eq "all" ? 5000 : 2000));
@@ -172,7 +184,7 @@ sub boot_img_i386 {
_ "$sudo mount -t vfat -o umask=0 $img $mnt -o loop";
_ "cat $kernel > $mnt/vmlinuz";
- bmp_to_msg('isolinux-graphic-simple.bmp', "$mnt/boot.msg", 27, 27);
+ bmp_to_msg('isolinux-graphic-simple.bmp', "$mnt/boot.msg", '397,190,14,6', 27, 27);
(my $rdz = $img) =~ s/\.img/.rdz/;
(my $initrd_type = $type) =~ s/-changedisk//;
@@ -614,12 +626,12 @@ rescue-net: boots the rescue image from a network server
}
sub bmp_to_msg {
- my ($bmp, $msg, $progress_color, $clear_color) = @_;
+ my ($bmp, $msg, $progress_place, $progress_color, $clear_color) = @_;
#- change here for newer picture isolinux-graphic.bmp and newer parameters.
#- for old style pictures (9.1 and previous)
# lilo-bmp2mdk mode:0x103 progress:425,173,16,7,64+21 clear:600,800,64+59 pos:0,0 <isolinux-graphic.bmp >isolinux/boot.msg
#- for current 9.2 pictures.
- -e $bmp and _ "lilo-bmp2mdk mode:0x103 progress:397,190,14,6,64+$progress_color clear:600,800,64+$clear_color pos:0,0 <$bmp >$msg"
+ -e $bmp and _ "lilo-bmp2mdk mode:0x103 progress:$progress_place,64+$progress_color clear:600,800,64+$clear_color pos:0,0 <$bmp >$msg"
}
sub isolinux {
@@ -635,7 +647,7 @@ sub isolinux {
_ "mv images/all.rdz-$_ isolinux/alt$::i/all.rdz";
} @kernels;
- bmp_to_msg('isolinux-graphic.bmp', 'isolinux/boot.msg', 18, 18);
+ bmp_to_msg('isolinux-graphic.bmp', 'isolinux/boot.msg', '397,190,14,6', 18, 18);
_ "cp /usr/lib/syslinux/isolinux.bin isolinux/isolinux.bin";
_ "install -m 644 -D /boot/memtest* isolinux/test/memtest.bin";
@@ -713,6 +725,18 @@ You can choose the following kernels :
"0c[F1-Help] [F2-Advanced Help]07") . "\n";
}
+sub isolinux_move {
+ my ($main) = @_;
+
+ my ($kernel) = glob("kernel/all.kernels/$main/boot/vmlinu*");
+ _ "cp $kernel move/isolinux/vmlinuz";
+ initrd($tmp_mnt_initrd, 'all', '', "move/isolinux/all.rdz-$main", '-with-busybox');
+ rename "move/isolinux/all.rdz-$main", "move/isolinux/all.rdz";
+
+ bmp_to_msg('move/data/isolinux-graphic.bmp', 'move/isolinux/boot.msg', '371,144,4,4', 11, 127);
+ _ "cp /usr/lib/syslinux/isolinux.bin isolinux/isolinux.bin";
+}
+
sub hd_grub {
my ($mnt, $img) = @_;
my $mapfile = '/tmp/device.map.tmp';
diff --git a/move/hack_boot_img b/move/hack_boot_img
deleted file mode 100755
index 1f95cce8e..000000000
--- a/move/hack_boot_img
+++ /dev/null
@@ -1,418 +0,0 @@
-#!/usr/bin/perl
-
-@ARGV >= 2 or die "usage: $0 <image> all|other|cdrom|hd|network|blank|pcmcia|live|tftp|tftprd\n";
-
-use Config;
-Config->import;
-my ($arch) = $Config{archname} =~ /(.*)-/;
-my $corporate = $ENV{CORPORATE} && " corporate"; #- use this for building a corporate version.
-
-($img, $type) = @ARGV;
-
-$instdir = "../mdk-stage1/";
-$mnt = "/tmp/drakx_mnt";
-$mke2fs = "/sbin/mke2fs -q -m 0 -F -s 1";
-
-if ($>) {
- $sudo = "sudo";
- $ENV{PATH} = "/sbin:/usr/sbin:$ENV{PATH}";
-}
-
-sub __ { print @_, "\n"; system(@_); }
-sub _ { __ @_; $? and die; }
-
-_ "$sudo mkdir $mnt" unless -e $mnt;
-_ "$sudo mkdir ${mnt}2" unless -e "${mnt}2";
-
-$install = $ {{
- all => "stage1-full",
- other => "stage1-full",
- blank => "stage1-full",
- live => "stage1-full",
- tftp => "stage1-full",
- tftprd => "stage1-full",
- pcmcia => "stage1-full",
- network => "stage1-network",
- usb => "stage1-usb",
- cdrom => "stage1-cdrom",
- hd => "stage1-disk",
- live64 => "stage1-full",
- tftp64 => "stage1-full",
- tftprd64 => "stage1-full",
- pcmcia64 => "stage1-full",
- network64 => "stage1-network",
- cdrom64 => "stage1-cdrom",
- hd64 => "stage1-disk",
-}}{$type} or die;
-
-chomp($main = `cat ../kernel/all.kernels/.main`);
-
- @kernels = $main;
-
-foreach (@kernels) {
- if ($img =~ /rdz$/) {
- initrd($mnt, "$img-$_");
- } else {
- $::{"boot_img_$arch"}->($mnt, "$img-$_", glob("../kernel/all.kernels/$_/boot/vmlinu*"));
- }
-}
-rename("$img-$main", "$img");
-
-sub install_stripped { _ "$sudo install $_[0] $_[1]" }
-
-sub initrd {
- my ($mnt, $img) = @_;
- my ($ltype, $I) = $type =~ /(.*?)(64)/; $ltype ||= $type;
- my $tmp = "$ENV{HOME}/tmp/initrd";
- my $tar = "$instdir/stage1-data/stage1-with-busybox.tar.bz2";
-
- __ "$sudo umount $tmp $mnt 2>/dev/null";
- _ "dd if=/dev/zero of=$tmp bs=1k count=" . ($arch =~ /ia64/ ? 16386 : ($type eq "all" ? 6000 : 4000));
- _ "$mke2fs $tmp";
- _ "$sudo mount -t ext2 $tmp $mnt -o loop";
-
- _ "$sudo tar xjC $mnt -f $tar";
- install_stripped("$instdir/init", "$mnt/sbin");
- install_stripped("$instdir/$install", "$mnt/sbin/stage1");
-
- if ($type eq "network" || $type eq "usb" || $type eq "all" || $type eq "other" || $type eq "blank") {
- install_stripped("$instdir/ppp/pppd-bin", "$mnt/sbin/pppd");
- install_stripped("$instdir/rp-pppoe/pppoe-bin", "$mnt/sbin/pppoe");
- _ "$sudo mknod $mnt/dev/ppp c 108 0";
- _ "$sudo mknod $mnt/dev/ptyp0 c 2 0";
- _ "$sudo mknod $mnt/dev/ttyp0 c 3 0";
- }
-
- my $ftype = $type =~ /^(all)$/ ? "pcmcia" : $type;
- if ($ftype eq "pcmcia") {
- _ "$sudo cp -a /etc/pcmcia $mnt/etc";
- _ "cp $mnt/etc/pcmcia/config /tmp/pcmcia_config_tmp";
- _ "../tools/patch_pcmcia_config.pl /tmp/pcmcia_config_tmp ../kernel/all.modules/$main/modules.dep";
- _ "sudo mv /tmp/pcmcia_config_tmp $mnt/etc/pcmcia/config";
- }
- my ($ext) = $img =~ /rdz-(.*)/ or die "bad initrd name ($img)";
- $modz = "../kernel/all.modules$I/$ext";
- if ($type !~ /blank/) {
- _ "$sudo cp -f $modz/${ltype}_modules.mar $mnt/modules/modules$I.mar" ;
- _ "$sudo cp -f $modz/modules.dep $mnt/modules/";
- }
- _ "$sudo umount $mnt";
-
-
-# Workaround for vfat-loop bug (quite touchy)
- _ "gzip -9f $tmp";
- _ "cp -f $tmp.gz $img";
- _ "rm -f $tmp.gz";
-# _ "gzip -9 -c $tmp > $img";
-# _ "rm -f $tmp";
-}
-
-sub boot_img_i386 {
- my ($mnt, $img, $kernel) = @_;
-
- __ "$sudo umount $mnt 2>/dev/null";
- my $automatic = "";
-
- if ($type eq "hd") {
- _ "bunzip2 -c $instdir/init-data/msgboot.img.bz2 > $img";
- } elsif ($type eq "all") {
- _ "bunzip2 -c $instdir/init-data/msgboot-graphicallogo-2880.img.bz2 > $img";
- } else {
- _ "bunzip2 -c $instdir/init-data/msgboot-graphicallogo.img.bz2 > $img";
- }
-
- $automatic = "automatic=method:cdrom" if ($type eq "cdrom");
- $automatic = "automatic=method:disk" if ($type eq "hd");
-
- _ "$sudo mount -t vfat -o umask=0 $img $mnt -o loop";
- _ "cat $kernel > $mnt/vmlinuz" if $type !~ /blank/;
-
- my $rdz = $img; $rdz =~ s/\.img/.rdz/;
- initrd("${mnt}2", $rdz) if !-e $rdz;
- eval { _ "cp -f $rdz $mnt/$type.rdz" };
- if ($@) {
- unlink "$mnt/$type.rdz";
- my $avail = (split ' ', `df $mnt`)[-3];
- my $s = int((-s $rdz) / 1024);
- die sprintf("not enough room for $rdz: need %dKB (available %dKB < needed %dKB)\n", $s - $avail, $avail, $s);
- }
-
-# my $ftype = $type =~ /^(other|all)$/ ? "cdrom" : $type;
- my $timeout = 72;
- output("$mnt/syslinux.cfg",
-"default linux
-prompt 1
-timeout $timeout
-display boot.msg
-F1 help.msg
-F2 boot.msg
-label linux
- kernel vmlinuz
- append ramdisk_size=32000 initrd=$type.rdz $automatic vga=788
-label vgalo
- kernel vmlinuz
- append ramdisk_size=32000 initrd=$type.rdz $automatic vga=785
-label vgahi
- kernel vmlinuz
- append ramdisk_size=32000 initrd=$type.rdz $automatic vga=791
-label vga16
- kernel vmlinuz
- append ramdisk_size=32000 initrd=$type.rdz $automatic vga16
-label text
- kernel vmlinuz
- append ramdisk_size=32000 initrd=$type.rdz $automatic text
-label patch
- kernel vmlinuz
- append ramdisk_size=32000 initrd=$type.rdz $automatic patch vga=788
-label expert
- kernel vmlinuz
- append ramdisk_size=32000 initrd=$type.rdz $automatic expert vga=788
-label rescue
- kernel vmlinuz
- append ramdisk_size=32000 initrd=$type.rdz $automatic rescue rw
-label lnx4win
- kernel vmlinuz
- append ramdisk_size=32000 initrd=$type.rdz $automatic lnx4win vga=788" .
-
-($type eq 'all' &&
-"label preinst
- kernel vmlinuz
- append ramdisk_size=32000 initrd=$type.rdz automatic=method:cdrom rescue oem rw
-label oem
- kernel vmlinuz
- append ramdisk_size=32000 initrd=$type.rdz automatic=method:cdrom rescue oem rw") .
-
-"label auto
- kernel vmlinuz
- append ramdisk_size=32000 initrd=$type.rdz $automatic auto_install=Mandrake/base/auto_inst.cfg.pl
-label all
- kernel vmlinuz
- append ramdisk_size=32000 initrd=$type.rdz pcmcia vga=788
-label ackbar
- kernel vmlinuz
- append ramdisk_size=32000 initrd=$type.rdz automatic=method:nfs,network:static,ip:192.168.1.205,dns:192.168.1.11,domain:mandrakesoft.com,server:ackbar,directory:/export vga=788
-");
- _ "sync";
- _ "df $mnt";
-}
-
-sub boot_img_alpha {
- my ($mnt, $img) = @_;
-
- __ "$sudo umount $mnt 2>/dev/null";
- _ "dd if=/dev/zero of=$img bs=1k count=1440";
- _ "$mke2fs $img";
- _ "/sbin/e2writeboot $img /boot/bootlx";
- _ "$sudo mount -t ext2 $img $mnt -o loop";
- _ "cp -f vmlinux.gz $mnt" if $type !~ /blank/;
- -f "$type.rdz" ? _ "cp -f $type.rdz $mnt" : initrd("${mnt}2", "$mnt/$type.rdz");
-
- mkdir "$mnt/etc", 0777;
- output("$mnt/etc/aboot.conf",
-"0:vmlinux.gz initrd=$type.rdz rw ramdisk_size=32000 $type
-1:vmlinux.gz initrd=$type.rdz rw ramdisk_size=32000 text $type
-");
- _ "sync";
- _ "df $mnt";
-}
-
-sub boot_img_sparc {
- my ($mnt, $img) = @_;
- if ($type =~ /^live(.*)/) {
- #- hack to produce directly into /export the needed file for cdrom boot.
- my $dir = "/export";
- my $boot = "boot"; #- non-absolute pathname only!
-
- _ "mkdir -p $dir/$boot";
- _ "cp -f /boot/cd.b /boot/second.b $dir/$boot";
- _ "cp -f vmlinux$1 $dir/$boot/vmlinux$1";
- -f "live$1.rdz" ? _ "cp -f live$1.rdz $dir/$boot" : initrd("${mnt}2", "$dir/$boot/live$1.rdz");
-
- output("$dir/$boot/silo.conf", "
-partition=1
-default=linux
-timeout=100
-read-write
-message=/$boot/boot.msg
-image=\"cat /$boot/boot.msg\"
- label=1
- single-key
-image=\"cat /$boot/general.msg\"
- label=2
- single-key
-image=\"cat /$boot/expert.msg\"
- label=3
- single-key
-image=\"cat /$boot/rescue.msg\"
- label=4
- single-key
-image=\"cat /$boot/kickit.msg\"
- label=5
- single-key
-image=\"cat /$boot/param.msg\"
- label=6
- single-key
-image[sun4c,sun4d,sun4m]=/$boot/vmlinux
- label=linux
- alias=install
- initrd=/$boot/live.rdz
- append=\"ramdisk_size=32000$corporate\"
-image[sun4c,sun4d,sun4m]=/$boot/vmlinux
- label=text
- initrd=/$boot/live.rdz
- append=\"ramdisk_size=32000 text$corporate\"
-image[sun4c,sun4d,sun4m]=/$boot/vmlinux
- label=expert
- initrd=/$boot/live.rdz
- append=\"ramdisk_size=32000 expert$corporate\"
-image[sun4c,sun4d,sun4m]=/$boot/vmlinux
- label=ks
- initrd=/$boot/live.rdz
- append=\"ramdisk_size=32000 ks$corporate\"
-image[sun4c,sun4d,sun4m]=/$boot/vmlinux
- label=rescue
- initrd=/$boot/live.rdz
- append=\"ramdisk_size=32000 rescue rw root=/dev/ram3$corporate\"
-image[sun4u]=/$boot/vmlinux64
- label=linux
- alias=install
- initrd=/$boot/live64.rdz
- append=\"ramdisk_size=32000$corporate\"
-image[sun4u]=/$boot/vmlinux64
- label=text
- initrd=/$boot/live64.rdz
- append=\"ramdisk_size=32000 text$corporate\"
-image[sun4u]=/$boot/vmlinux64
- label=expert
- initrd=/$boot/live64.rdz
- append=\"ramdisk_size=32000 expert$corporate\"
-image[sun4u]=/$boot/vmlinux64
- label=ks
- initrd=/$boot/live64.rdz
- append=\"ramdisk_size=32000 ks$corporate\"
-image[sun4u]=/$boot/vmlinux64
- label=rescue
- initrd=/$boot/live64.rdz
- append=\"ramdisk_size=32000 rescue rw root=/dev/ram3$corporate\"
-");
-
- output("$dir/$boot/README", "
-To Build a Bootable CD-ROM, try:
- mkisofs -R -o t.iso -s /$boot/silo.conf /export
-");
- } elsif ($type =~ /^tftprd(.*)/) {
- my $dir = "/export";
- my $boot = "images";
- my $setarch = $1 ? "sparc64" : "sparc32";
-
- _ "mkdir -p $dir/$boot";
- -f "$type.rdz" or initrd("${mnt}2", "$type.rdz");
- _ "cp -f vmlinux$1.aout $dir/$boot/$type.img";
- _ "$setarch kernel$1/src/arch/sparc$1/boot/piggyback $dir/$boot/$type.img kernel$1/boot/System.map $type.rdz";
- } elsif ($type =~ /^tftp(.*)/) {
- my $dir = "/export";
- my $boot = "images";
-
- _ "mkdir -p $dir/$boot";
- _ "cp -f vmlinux$1.aout $dir/$boot/$type.img";
- } else {
- my $dir = "floppy";
- my ($ltype, $I) = $type =~ /(.*?)(64)/; $ltype ||= $type;
-
- __ "$sudo umount $mnt 2>/dev/null";
- _ "rm -rf $dir";
- _ "mkdir -p $dir";
- _ "cp -f /boot/fd.b /boot/second.b $dir";
- _ "cp -f vmlinuz$I $dir/vmlinux$I.gz" if $type !~ /blank/;
- -f "$type.rdz" ? _ "cp -f $type.rdz $dir" : initrd("${mnt}2", "$dir/$type.rdz");
-
- output("$dir/boot.msg", "
-Welcome to Mandrake Linux 7.1
-
-Press <Enter> to install or upgrade a system 7mMandrake Linux7m
-");
-
- output("$dir/silo.conf", "
-partition=1
-default=linux
-timeout=100
-read-write
-message=/boot.msg
-image=/vmlinux$I.gz
- label=linux
- initrd=/$type.rdz
- append=\"ramdisk_size=32000 $ltype$corporate\"
-");
- _ "genromfs -d $dir -f /dev/ram -A 2048,/.. -a 512 -V \'DrakX boot disk\'";
- _ "$sudo mount -t romfs /dev/ram $mnt";
- _ "silo -r $mnt -F -i /fd.b -b /second.b -C /silo.conf";
- _ "$sudo umount $mnt";
- _ "dd if=/dev/ram of=$type.img bs=1440k count=1";
- _ "sync";
- _ "$sudo mount -t romfs /dev/ram $mnt";
- _ "df $mnt";
- }
-}
-
-sub boot_img_ppc {
- my ($mnt, $img, $kern, $modz) = @_;
- my $dir = "/export";
- my $boot = "boot"; #- non-absolute pathname only!
- my ($extension) = $modz =~ /.*\/([^\/]+)/;
- _ "mkdir -p $dir/$boot";
- _ "cp -f $kern $dir/$boot/vmlinux";
- _ "cp -f all.rdz$extension $dir/boot/all.gz";
- _ "cp -f tools/ppc/yaboot $dir/boot/yaboot";
-
- output("$dir/$boot/yaboot.conf", "
-init-message = \"\\nWelcome to Mandrake Linux PPC!\\nHit <TAB> for boot options.\\n\\n\"
-timeout = 150
-default = install-novideo
-
-image = cd:,\\\\\\\\vmlinux
- label = install-novideo
- initrd = cd:,\\\\\\\\all.gz
- initrd-size = 32000
- append = \" video=ofonly\"
-
-image = cd:,\\\\\\\\vmlinux
- label = install-atyfb
- initrd = cd:,\\\\\\\\all.gz
- initrd-size = 32000
- append = \" video=atyfb:vmode:17\"
-
-image = cd:,\\\\\\\\vmlinux
- label = install-aty128fb
- initrd = cd:,\\\\\\\\all.gz
- initrd-size = 32000
- append = \" video=aty128fb:vmode:17\"
-
-image = cd:,\\\\\\\\vmlinux
- label = install-text
- initrd = cd:,\\\\\\\\all.gz
- initrd-size = 32000
- append = \" text\"
-
-image = cd:,\\\\\\\\vmlinux
- label = rescue
- initrd = cd:,\\\\\\\\all.gz
- initrd-size = 32000
- append = \" rescue\"
-");
- #- seem to need 2 yaboot.conf, one in the root, and one in boot
- _ "cp -f $dir/boot/yaboot.conf $dir/yaboot.conf";
-
- output("$dir/$boot/README", "
-To Build a Bootable CD-ROM, do:
-cd /tools/ppc
-./mkINSTALLCD /export ppc-cd.img
-");
-
-}
-
-sub output {
- my $f = shift;
- local *F;
- open F, "> $f" or die "error writing to $f";
- print F join '', @_;
-}