summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile9
-rw-r--r--docs/README72
-rw-r--r--perl-install/Makefile30
-rw-r--r--perl-install/install_steps_auto_install.pm3
-rw-r--r--perl-install/install_steps_gtk.pm3
-rw-r--r--rescue/kernel_read_part.c13
-rwxr-xr-xrescue/tree/etc/oem2
7 files changed, 92 insertions, 40 deletions
diff --git a/Makefile b/Makefile
index caa2a9930..8f1eb4063 100644
--- a/Makefile
+++ b/Makefile
@@ -15,9 +15,6 @@ BOOT_IMG += $(RELEASE_BOOT_IMG)
BOOT_RDZ = $(BOOT_IMG:%.img=%.rdz)
BINS = install/install install/full-install install/local-install install/installinit/init
DIRS = tools install install/installinit perl-install
-ifeq (i386,$(ARCH))
-#DIRS += lnx4win
-endif
ROOTDEST = /export
UPLOAD_DEST_ = ~/cooker
@@ -47,11 +44,6 @@ build: $(BOOT_IMG)
autoboot:
ifeq (i386,$(ARCH))
- install -d $(ROOTDEST)/lnx4win
- cp -f vmlinuz $(ROOTDEST)/lnx4win
- cp -f cdrom.rdz $(ROOTDEST)/lnx4win/initrd.gz
- /usr/sbin/rdev -v $(ROOTDEST)/lnx4win/vmlinuz 788
-
install -d $(ROOTDEST)/boot
cp -f vmlinuz {hd,cdrom,pcmcia,network}.rdz $(ROOTDEST)/boot
/usr/sbin/rdev -v $(ROOTDEST)/boot/vmlinuz 788
@@ -95,7 +87,6 @@ upload: clean install
upload Mandrake/mdkinst '' ;\
upload Mandrake/base {compss*,mdkinst_stage2.gz,rescue_stage2.gz} ;\
upload boot '' ;\
- upload lnx4win {initrd.gz,vmlinuz} ;\
for i in $(RELEASE_BOOT_IMG); do upload images $$i; done ;\
echo
diff --git a/docs/README b/docs/README
index 93143a4a4..70daaaa61 100644
--- a/docs/README
+++ b/docs/README
@@ -256,3 +256,75 @@ doesn't contain scsi modules nor ide.
> - Architectural overview of each
have a look at gi/install.fig
+
+
+********************************************************************************
+* OEM **************************************************************************
+********************************************************************************
+> I am a system OEM in Bangalore,India selling systems bundled with
+> Mandrake Linux. The problem is that with every system I sell, I need to
+> install & configure the system which takes HOURS!. Can I do a diskcopy
+> instead?
+>
+> Please Help. This is a major bottleneck for me.
+
+many solutions:
+
+- make an install on drive hdb, then either
+ 1. dd if=/dev/hdb of=/dev/hdc
+ 2. dd if=/dev/hdb of=/dev/hdc count=1 ; kernel_reread /dev/hdc ;
+ mke2fs /dev/hdc1 ; mount /dev/hdb1 /source ; mount /dev/hdc1 /dest ; cp -a /source /dest
+
+- try the oem feature
+ 3. - burn a cd out of *latest* cooker
+ - boot on it telling "oem" to syslinux
+ !! it will destroy every data on the harddrive !!
+ - you now have a very automated install matrix
+ (duplicate it with "dd if=/dev/hdb of=/dev/hdc bs=1M count=730")
+
+ put the harddrive in the oem box, the user will now have an *very* automated
+ install, just asking the root password and user password.
+
+ 4. (just like 3. without burning a cd, doing the first part by hand)
+ have a look at the /etc/oem script on the rescue and do it by hand...
+
+
+cu Pixel.
+
+
+comments:
+1. maybe copy unnecessary things -> take too long
+ solution -> use bs=8k count=xxxx
+2. kernel_reread can be found on the new rescue, source is also at end of this
+mail. This solution works with one partition. Can be easily enhanced to many
+primary partitions... For extended partitions, more complicated, but not much :)
+3. has just been added in latest cooker. It may still have some pb. The main
+current limitation is IDE only, though it can be fixed easily for special cases.
+
+--------------------------------------------------------------------------------
+#include <stdio.h>
+#include <sys/mount.h>
+#include <fcntl.h>
+
+void die(char *msg)
+{
+ perror(msg);
+ exit(1);
+}
+
+void kernel_read(char *dev)
+{
+ int fd;
+ if ((fd = open(dev, O_RDONLY)) == -1) die("can't open device");
+ ioctl(fd, BLKRRPART, 0);
+ close(fd);
+}
+
+int main(int argc, char **argv)
+{
+ if (argc != 2) {
+ fprintf(stderr, "usage: kernel_read_part <hard drive device>\n");
+ exit(1);
+ }
+ kernel_read(argv[1]);
+}
diff --git a/perl-install/Makefile b/perl-install/Makefile
index 0c4226668..299a34b85 100644
--- a/perl-install/Makefile
+++ b/perl-install/Makefile
@@ -88,22 +88,20 @@ ifeq (sparc,$(ARCH))
endif
for i in `cat /tmp/list`; do \
- if [ -e $$i ]; then \
- if (echo $$i | grep -q "lib/[^/]*\.so"); then \
- install -s $$i $(DEST)/lib; \
- else \
- d=$$i; \
- (echo $$d | grep -q "^[^/]") && d="$(REP4PMS)/$$d"; \
- d=`echo $(DEST)/$$d | sed 's/\/usr\/local\//\/usr\//'`; \
- install -d `dirname $$d` && \
- if (echo $$i | grep -q "\.pm"); then \
- perl -pe '$$_ =~ /^__END__/ and exit(0);' $$i > $$d; \
- elif (echo $$i | grep -q "\.so"); then \
- install -s $$i $$d; \
- else \
- cp -f $$i $$d; \
- fi; \
- fi; \
+ if (echo $$i | grep -q "lib/[^/]*\.so"); then \
+ install -s $$i $(DEST)/lib; \
+ else \
+ d=$$i; \
+ (echo $$d | grep -q "^[^/]") && d="$(REP4PMS)/$$d"; \
+ d=`echo $(DEST)/$$d | sed 's/\/usr\/local\//\/usr\//'`; \
+ install -d `dirname $$d` && \
+ if (echo $$i | grep -q "\.pm"); then \
+ perl -pe '$$_ =~ /^__END__/ and exit(0);' $$i > $$d; \
+ elif (echo $$i | grep -q "\.so"); then \
+ install -s $$i $$d; \
+ else \
+ cp -f $$i $$d; \
+ fi; \
fi; \
done
mv -f $(DEST)/lib/libimlib-png.so $(DEST)/usr/lib
diff --git a/perl-install/install_steps_auto_install.pm b/perl-install/install_steps_auto_install.pm
index 71aac7080..8f92edb49 100644
--- a/perl-install/install_steps_auto_install.pm
+++ b/perl-install/install_steps_auto_install.pm
@@ -6,6 +6,9 @@ use vars qw(@ISA);
@ISA = qw(install_steps);
+use modules;
+
+
#-######################################################################################
#- misc imports
#-######################################################################################
diff --git a/perl-install/install_steps_gtk.pm b/perl-install/install_steps_gtk.pm
index c4751a9d9..7595fd5e9 100644
--- a/perl-install/install_steps_gtk.pm
+++ b/perl-install/install_steps_gtk.pm
@@ -767,10 +767,11 @@ sub create_steps_window {
$pixmap->signal_connect(enter_notify_event => sub { print "HERE\n" });
if ($step->{reachable}) {
- my $button = new Gtk::Button
+ my $button = new Gtk::Button;
$button->set_relief('none');
gtksignal_connect(gtkadd($button, $b), clicked => sub { die "setstep $step_name\n" });
$button;
+ }
} grep {
!eval $o->{steps}{$_}{hidden};
} @{$o->{orderedSteps}}),
diff --git a/rescue/kernel_read_part.c b/rescue/kernel_read_part.c
index 4b9d16d65..279dfe787 100644
--- a/rescue/kernel_read_part.c
+++ b/rescue/kernel_read_part.c
@@ -1,14 +1,7 @@
-#include <unistd.h>
-#include <stdlib.h>
#include <stdio.h>
-#include <sys/types.h>
-#include <sys/ioctl.h>
-#include <sys/stat.h>
-#include <sys/wait.h>
#include <sys/mount.h>
#include <fcntl.h>
-
void die(char *msg)
{
perror(msg);
@@ -18,15 +11,9 @@ void die(char *msg)
void kernel_read(char *dev)
{
int fd;
-
- sync();
if ((fd = open(dev, O_RDONLY)) == -1) die("can't open device");
- sync();
- sleep(1);
ioctl(fd, BLKRRPART, 0);
- sync();
close(fd);
- sync();
}
int main(int argc, char **argv)
diff --git a/rescue/tree/etc/oem b/rescue/tree/etc/oem
index e95d572e1..d76e6db78 100755
--- a/rescue/tree/etc/oem
+++ b/rescue/tree/etc/oem
@@ -38,4 +38,4 @@ rm /hd/Mandrake/mdkinst/usr/bin/runinstall2
echo "Done, oem hard drive ready! Press enter to reboot"
read
-reboot \ No newline at end of file
+reboot