diff options
-rw-r--r-- | perl-install/Makefile | 3 | ||||
-rw-r--r-- | perl-install/Xconfigurator.pm | 2 | ||||
-rw-r--r-- | perl-install/common.pm | 8 | ||||
-rw-r--r-- | perl-install/detect_devices.pm | 14 | ||||
-rw-r--r-- | perl-install/install2.pm | 17 | ||||
-rw-r--r-- | perl-install/install_any.pm | 2 | ||||
-rw-r--r-- | perl-install/install_interactive.pm | 12 | ||||
-rw-r--r-- | perl-install/install_steps_gtk.pm | 6 | ||||
-rw-r--r-- | perl-install/install_steps_interactive.pm | 2 | ||||
-rw-r--r-- | perl-install/modules.pm | 37 | ||||
-rw-r--r-- | perl-install/mouse.pm | 3 |
11 files changed, 75 insertions, 31 deletions
diff --git a/perl-install/Makefile b/perl-install/Makefile index 3a36bcb82..797f93dc0 100644 --- a/perl-install/Makefile +++ b/perl-install/Makefile @@ -140,7 +140,8 @@ endif # chmod a+x $(DEST)/usr/bin/runinstall2 ifeq (i386,$(ARCH)) - tar xyC $(DEST) -f ../install/install1_pcmcia.$(ARCH).tar.bz2 ./etc/pcmcia + cp -a /etc/pcmcia $(DEST)/etc + patch -p0 -d $(DEST)/etc < ../install/pcmcia_config.patch endif find $(DEST) -name CVS | xargs rm -rf diff --git a/perl-install/Xconfigurator.pm b/perl-install/Xconfigurator.pm index 600689918..a4e69b8fc 100644 --- a/perl-install/Xconfigurator.pm +++ b/perl-install/Xconfigurator.pm @@ -1121,7 +1121,7 @@ Would you like X to start when you reboot?"), 1); $in->ask_from_entries_refH(_("Autologin"), _("I can set up your computer to automatically log on one user. If you don't want to use this feature, click on the cancel button."), - [ _("Choose the default user:") => { val => \$o->{autologin}, list => \@users }, + [ _("Choose the default user:") => { val => \$o->{autologin}, list => [ '', @users ] }, _("Choose the window_manager to run:") => { val => \$o->{desktop}, list => \@wm }, ]) or delete $o->{autologin}; } if ($o->{autologin}) { diff --git a/perl-install/common.pm b/perl-install/common.pm index ac64fe54a..a6849e63f 100644 --- a/perl-install/common.pm +++ b/perl-install/common.pm @@ -430,7 +430,6 @@ sub setVarsInSh { my ($file, $l, @fields) = @_; @fields = keys %$l unless @fields; -#- my $b = 1; $b &&= $l->{$_} foreach @fields; $b or return; local *F; open F, "> $_[0]" or die "cannot create config file $file"; $l->{$_} and print F "$_=$l->{$_}\n" foreach @fields; @@ -439,7 +438,6 @@ sub setVarsInCsh { my ($file, $l, @fields) = @_; @fields = keys %$l unless @fields; -#- my $b = 1; $b &&= $l->{$_} foreach @fields; $b or return; local *F; open F, "> $_[0]" or die "cannot create config file $file"; $l->{$_} and print F "setenv $_ $l->{$_}\n" foreach @fields; @@ -589,7 +587,11 @@ sub removeXiBSuffix($) { sub formatTime($) { my ($s, $m, $h) = gmtime($_[0]); - sprintf "%02d:%02d:%02d", $h, $m, $s; + if ($h) { + sprintf "%02d:%02d", $h, $m; + } else { + sprintf _("%d minutes"), $m; + } } #- return the size of the partition and its free space in KiB diff --git a/perl-install/detect_devices.pm b/perl-install/detect_devices.pm index adc701a81..6bcf38ac6 100644 --- a/perl-install/detect_devices.pm +++ b/perl-install/detect_devices.pm @@ -228,6 +228,20 @@ sub syslog { `dmesg`; } +sub hasUsb { + my ($class, $prot) = @_; + foreach (cat_("/proc/bus/usb/devices")) { + if (/^P/ .. /^I/) { + my ($c, $p) = /Cls=(\d+).*Prot=(\d+)/; + $c == $class && ($prot < 0 || $prot == $p) and log::l("found usb $c $p"), return 1; + } + } + 0; +} +sub hasUsbKeyboard { hasUsb(3, 1) } +sub hasUsbMouse { hasUsb(3, 2) } +sub hasUsbZip { hasUsb(8, -1) } + sub hasSMP { c::detectSMP() } sub hasUltra66 { diff --git a/perl-install/install2.pm b/perl-install/install2.pm index 2b8e1c441..81f75436f 100644 --- a/perl-install/install2.pm +++ b/perl-install/install2.pm @@ -356,13 +356,13 @@ sub miscellaneous { TYPE => $o->{installClass}, SECURITY => $o->{security}, }); - + my $f = "$o->{prefix}/etc/sysconfig/usb"; - my %usb = getVarsFromSh($f); - $usb{MOUSE} = $o->{mouse}{device} eq "usbmouse" && "yes"; - $usb{KEYBOARD} = (int grep { /^keybdev\.c: Adding keyboard/ } detect_devices::syslog()) && "yes"; - $usb{ZIP} = bool2yesno(-d "/proc/scsi/usb"); - setVarsInSh($f, \%usb); + output $f, +"MOUSE= +KEYBOARD= +ZIP= +" if modules::get_alias("usb-interface") && ! -e $f; install_any::fsck_option($o); } 'installPackages'; @@ -518,6 +518,7 @@ sub main { live => sub { $::live = 1 }, noauto => sub { $::noauto = 1 }, test => sub { $::testing = 1 }, + nopci => sub { $::nopci = 1 }, patch => sub { $patch = 1 }, defcfg => sub { $cfg = $v }, newt => sub { $o->{interactive} = "newt" }, @@ -616,7 +617,7 @@ sub main { } modules::get_that_type('sound'); #- needed very early for install_steps_gtk - modules::load_thiskind("usb"); + modules::load_thiskind("usb"); eval { ($o->{mouse}, $o->{wacom}) = mouse::detect() } unless $o->{nomouseprobe} || $o->{mouse}; lang::set($o->{lang}); #- mainly for defcfg @@ -694,7 +695,7 @@ sub main { modules::write_conf($o->{prefix}); #- to ensure linuxconf doesn't cry against those files being in the future - foreach ('/etc/conf.modules', '/etc/crontab', '/etc/sysconfig/mouse', '/etc/X11/fs/config') { + foreach ('/etc/modules.conf', '/etc/crontab', '/etc/sysconfig/mouse', '/etc/sysconfig/network', '/etc/X11/fs/config') { my $now = time - 24 * 60 * 60; utime $now, $now, "$o->{prefix}/$_"; } diff --git a/perl-install/install_any.pm b/perl-install/install_any.pm index 934cea259..9d40d98b7 100644 --- a/perl-install/install_any.pm +++ b/perl-install/install_any.pm @@ -634,7 +634,7 @@ sub suggest_mount_points { $part->{mntpoint} = $mnt; delete $part->{unsafeMntpoint}; #- try to find other mount points via fstab - fs::get_mntpoints_from_fstab(\@parts, $d, $uniq) if $mnt eq '/'; + fs::get_mntpoints_from_fstab([ fsedit::get_fstab(@$hds) ], $d, $uniq) if $mnt eq '/'; } #- $_->{mntpoint} || fsedit::suggest_part($_, $hds) foreach @parts; diff --git a/perl-install/install_interactive.pm b/perl-install/install_interactive.pm index 8b6bf9f92..2fa917564 100644 --- a/perl-install/install_interactive.pm +++ b/perl-install/install_interactive.pm @@ -17,12 +17,20 @@ use devices; use modules; +sub tellAboutProprietaryModules { + my ($o); + my @l = grep {$_} map { $_->{driver} =~ /^Bad:(.*)/ && $1 } detect_devices::probeall(); + $o->ask_warn('', +_("Some hardware on your computer needs ``proprietary'' drivers to work. +You can find some information about them at: %s"), join(", ", @l)) if @l; +} + sub partition_with_diskdrake { my ($o, $hds, $nowizard) = @_; - my $ok = 1; + my $ok; do { + $ok = 1; diskdrake::main($hds, $o->{raid}, interactive_gtk->new, $o->{partitions}, $nowizard); - log::l("diskdrake done"); delete $o->{wizard} and return partitionWizard($o, 'nodiskdrake'); my @fstab = fsedit::get_fstab(@$hds); diff --git a/perl-install/install_steps_gtk.pm b/perl-install/install_steps_gtk.pm index d5727f273..bf3c76fc7 100644 --- a/perl-install/install_steps_gtk.pm +++ b/perl-install/install_steps_gtk.pm @@ -60,6 +60,10 @@ sub new($$) { devices::make("/dev/kbd"); if ($ENV{DISPLAY} eq ":0") { + local (*T1, *T2); + open T1, ">/dev/tty5"; + open T2, ">/dev/tty6"; + my $launchX = sub { my $ok = 1; local $SIG{CHLD} = sub { $ok = 0 if waitpid(-1, c::WNOHANG()) > 0 }; @@ -512,7 +516,7 @@ sub installPackages { my $total_time = $ratio ? $dtime / $ratio : time(); $progress_total->update($ratio); - if ($dtime != $last_dtime && $current_total_size > 2 * 1024 * 1024) { + if ($dtime != $last_dtime && $current_total_size > 10 * 1024 * 1024) { $msg_time_total->set(formatTime(10 * round($total_time / 10))); $msg_time_remaining->set(formatTime(10 * round(max($total_time - $dtime, 0) / 10))); $last_dtime = $dtime; diff --git a/perl-install/install_steps_interactive.pm b/perl-install/install_steps_interactive.pm index 9795de2d8..4b7943bcd 100644 --- a/perl-install/install_steps_interactive.pm +++ b/perl-install/install_steps_interactive.pm @@ -795,6 +795,8 @@ sub miscellaneous { exists $u->{LAPTOP} or $u->{LAPTOP} = 1; my $s = $o->{security}; + install_interactive::tellAboutProprietaryModules($o) unless $clicked; + add2hash_ $o, { useSupermount => $s < 4 && arch() !~ /^sparc/ }; $s = $l{$s} || $s; diff --git a/perl-install/modules.pm b/perl-install/modules.pm index 51b51d4f7..7a1e0e203 100644 --- a/perl-install/modules.pm +++ b/perl-install/modules.pm @@ -82,6 +82,7 @@ arch() =~ /^sparc/ ? ( "sb1000" => "sb1000", "sbni" => "sbni", "sis900" => "sis900", + "sk98lin" => "Syskonnect (Schneider & Koch)|Gigabit Ethernet", ), "3c59x" => "3com 3c59x (Vortex)", "de4x5" => "Digital 425,434,435,450,500", @@ -191,7 +192,6 @@ arch() !~ /^sparc|alpha/ ? ( }], [ 'sound', { arch() !~ /^sparc/ ? ( - "alsa" => "ALSA sound module, many sound cards", "cmpci" => "C-Media Electronics CMI8338A CMI8338B CMI8738", "es1370" => "Ensoniq ES1370 [AudioPCI]", "es1371" => "Ensoniq ES1371 [AudioPCI-97]", @@ -201,6 +201,18 @@ arch() !~ /^sparc/ ? ( "pas16" => "Pro Audio Spectrum/Studio 16", "via82cxxx" => "VIA VT82C686_5", "sonicvibes" => "S3 SonicVibes", + "snd-card-ice1712" => "IC Ensemble Inc|ICE1712 [Envy24]", + "emu10k1" => "Creative Labs|SB Live! (audio)", +# "au8820" => "Aureal Semiconductor|Vortex 1", +# "au8830" => "Aureal Semiconductor|Vortex 2", + "snd-card-ymfpci" => "Yamaha Corporation|YMF-740", + "snd-card-trident" => "Silicon Integrated Systems [SiS]|7018 PCI Audio", + "snd-card-cs461x" => "Cirrus Logic|CS 4610/11 [CrystalClear SoundFusion Audio Accelerator]", + "snd-card-via686a" => "VIA Technologies|VT82C686 [Apollo Super AC97/Audio]", + "snd-card-es1938" => "ESS Technology|ES1969 Solo-1 Audiodrive", + "snd-card-rme96" => "Xilinx, Inc.|RME Digi96<>Xilinx, Inc.", + "snd-card-intel8x0" => "Intel Corporation|82440MX AC'97 Audio Controller<>Intel Corporation", + "snd-card-fm801" => "Fortemedia, Inc|Xwave QS3000A [FM801]<>Fortemedia, Inc|FM801 PCI Audio", ) : (), }], [ 'pcmcia', { @@ -292,9 +304,6 @@ arch() !~ /^sparc/ ? ( "fat" => "fat", "msdos" => "msdos", "romfs" => "romfs", - "sysv" => "sysv", - "ufs" => "ufs", - "umsdos" => "umsdos", "vfat" => "vfat", }], [ 'other', { @@ -306,6 +315,10 @@ arch() !~ /^sparc/ ? ( "ide-floppy" => "ide-floppy", "ide-tape" => "ide-tape", "nbd" => "nbd", + "bttv" => "Brooktree Corporation|Bt8xx Video Capture", + "buz" => "Zoran Corporation|ZR36057PQC Video cutting chipset", + "rrunner" => "Essential Communications|Roadrunner serial HIPPI", + "defxx" => "DEC|DEFPA" #- "ide-probe-mod" => "ide-probe-mod", }], ); @@ -398,11 +411,8 @@ sub load { eval { load($_, 'prereq') } foreach @{$deps{$name}}; load_raw([ $name, @options ]); } - if ($name eq "usb-storage") { - sleep(2); - -d "/proc/scsi/usb" or return; - $conf{"usb-storage"}{"post-install"} = "modprobe usbkbd; modprobe keybdev"; - } + sleep 2 if $name =~ /usb-storage|mousedev/; + when_load($name, $type, @options); } sub load_multi { @@ -454,8 +464,11 @@ sub load_raw { } } elsif ($_->[0] =~ /usb-[uo]hci/) { add_alias('usb-interface', $_->[0]); + my $d = '/proc/bus/usb'; + syscall_('mount', $d, $d, my $t= 'usbdevfs', my $f = c::MS_MGC_VAL(), my $fl = '') or die; #- ensure keyboard is working, the kernel must do the job the BIOS was doing - load_multi("usbkbd", "keybdev"); + sleep 2; + load_multi("usbkbd", "keybdev") if detect_devices::hasUsbKeyboard(); } } } @@ -553,8 +566,8 @@ sub load_thiskind { !($@ && $_->{try}); } get_that_type($type, $pcic), $type =~ /scsi/ && arch() !~ /sparc/ ? - (map { +{ driver => $_, description => $_, try => 1 } } - get_alias("usb-interface") ? "usb-storage" : (), "imm", "ppa") : (); + (map { +{ driver => $_, description => $_, try => 1 } } + detect_devices::hasUsbZip() ? "usb-storage" : (), "imm", "ppa") : (); } sub get_that_type { diff --git a/perl-install/mouse.pm b/perl-install/mouse.pm index af0a35a79..2382f9f1e 100644 --- a/perl-install/mouse.pm +++ b/perl-install/mouse.pm @@ -172,11 +172,10 @@ sub detect() { eval { commands::modprobe("serial") }; my ($r, $wacom) = mouseconfig(); return ($r, $wacom) if $r; - if (modules::get_alias("usb-interface")) { + if (modules::get_alias("usb-interface") && detect_devices::hasUsbMouse()) { eval { modules::load("usbmouse"); modules::load("mousedev"); - sleep(2); }; if (!$@ && detect_devices::tryOpen("usbmouse")) { $wacom or modules::unload("serial"); |