Hello community,
here is the log from the commit of package mkinitrd for openSUSE:Factory
checked in at Mon Dec 15 14:56:05 CET 2008.
--------
--- mkinitrd/mkinitrd.changes 2008-12-08 17:36:26.000000000 +0100
+++ /mounts/work_src_done/STABLE/mkinitrd/mkinitrd.changes 2008-12-14 18:57:45.959752504 +0100
@@ -1,0 +2,18 @@
+Sun Dec 14 18:24:00 CET 2008 - bwalle@suse.de
+
+- Implement logging (/var/log/YaST2/mkinitrd.log).
+
+-------------------------------------------------------------------
+Wed Dec 10 16:27:55 CET 2008 - bwalle@suse.de
+
+- Don't build initrds for kdump kernels with 'mkinitrd' calls
+ that don't have -k or -i arguments. That affects only special
+ kernel-kdump packages as we currently have on PPC64.
+
+-------------------------------------------------------------------
+Wed Dec 10 10:30:58 CET 2008 - bwalle@suse.de
+
+- Don't load drivers that require firmware to be loaded before
+ udev starts (bnc #457428).
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ mkinitrd.spec ++++++
--- /var/tmp/diff_new_pack.X26160/_old 2008-12-15 14:55:27.000000000 +0100
+++ /var/tmp/diff_new_pack.X26160/_new 2008-12-15 14:55:27.000000000 +0100
@@ -21,11 +21,12 @@
Name: mkinitrd
License: GPL v2 or later
Group: System/Base
-#!BuildIgnore: module-init-tools e2fsprogs udev reiserfs
+#!BuildIgnore: module-init-tools e2fsprogs udev reiserfs fop
+BuildRequires: asciidoc
Requires: coreutils modutils util-linux grep gzip sed cpio udev sysvinit file perl-Bootloader
AutoReqProv: on
Version: 2.4
-Release: 40
+Release: 41
Conflicts: udev < 118
Requires: dhcpcd
Summary: Creates an Initial RAM Disk Image for Preloading Modules
@@ -63,6 +64,7 @@
%build
gcc $RPM_OPT_FLAGS -Wall -Os -o lib/mkinitrd/bin/run-init src/run-init.c
+make -C man
sed -i "s/@BUILD_DAY@/`env LC_ALL=C date -ud yesterday '+%Y%m%d'`/" sbin/mkinitrd
echo "Checking scripts:"
if ! bash -n sbin/mkinitrd; then
@@ -121,6 +123,15 @@
%doc %{_mandir}/man8/lsinitrd.8.gz
%changelog
+* Sun Dec 14 2008 bwalle@suse.de
+- Implement logging (/var/log/YaST2/mkinitrd.log).
+* Wed Dec 10 2008 bwalle@suse.de
+- Don't build initrds for kdump kernels with 'mkinitrd' calls
+ that don't have -k or -i arguments. That affects only special
+ kernel-kdump packages as we currently have on PPC64.
+* Wed Dec 10 2008 bwalle@suse.de
+- Don't load drivers that require firmware to be loaded before
+ udev starts (bnc #457428).
* Mon Dec 08 2008 bwalle@suse.de
- Check for specific module if they are compiled in and don't
print warning messages if the modules are missing in that case.
++++++ mkinitrd.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.4/build_rpm new/mkinitrd-2.4/build_rpm
--- old/mkinitrd-2.4/build_rpm 2008-12-08 17:27:37.000000000 +0100
+++ new/mkinitrd-2.4/build_rpm 2008-12-14 18:49:23.000000000 +0100
@@ -79,8 +79,8 @@
git archive --format=tar --prefix=mkinitrd-$VERSION/ "$BRANCH" \
| bzip2 > $DESTDIR/mkinitrd.tar.bz2
-cp mkinitrd.spec $DESTDIR
-cp mkinitrd.changes $DESTDIR
+git show $BRANCH:mkinitrd.spec > $DESTDIR/mkinitrd.spec
+git show $BRANCH:mkinitrd.changes > $DESTDIR/mkinitrd.changes
#
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.4/man/lsinitrd.8 new/mkinitrd-2.4/man/lsinitrd.8
--- old/mkinitrd-2.4/man/lsinitrd.8 2008-12-08 17:27:37.000000000 +0100
+++ new/mkinitrd-2.4/man/lsinitrd.8 1970-01-01 01:00:00.000000000 +0100
@@ -1,42 +0,0 @@
-.\" Copyright (C) 2008 SUSE Linux Products GmbH
-.\"
-.\" This program is free software; you can redistribute it and/or
-.\" modify it under the terms of the GNU General Public License
-.\" as published by the Free Software Foundation; either version 2
-.\" of the License, or (at your option) any later version.
-.\"
-.\" This program is distributed in the hope that it will be useful,
-.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
-.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-.\" GNU General Public License for more details.
-.\"
-.\" You should have received a copy of the GNU General Public License
-.\" along with this program; if not, write to the Free Software
-.\" Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-.\" USA.
-.\"
-.\" This file is kept in the following git repository:
-.\"
-.\" git://git.opensuse.org/projects/mkinitrd.git
-.\"
-.TH lsinitrd 8
-.SH NAME
-lsinitrd \- lists contents of an initrd disk image
-.SH SYNOPSIS
-\fBlsinitrd\fR [options] [initrd file]
-.SH DESCRIPTION
-\fBlsinitrd\fR list the contents of an initial ramdisk images
-for booting Linux as created by \fBmkinitrd\fR.
-
-.SH OPTIONS
-.TP
-\fB-h\fR
-This Text.
-.TP
-\fB-l\fR
-verbose listing, similar to \fBls -l\fR.
-
-.BR
-.SH AUTHORS
-Hannes Reinecke , Alexander Graf , Bernhard Walle
-.BR
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.4/man/lsinitrd.8.txt new/mkinitrd-2.4/man/lsinitrd.8.txt
--- old/mkinitrd-2.4/man/lsinitrd.8.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/mkinitrd-2.4/man/lsinitrd.8.txt 2008-12-14 18:49:23.000000000 +0100
@@ -0,0 +1,70 @@
+//{{{ Copyright (c) 2008, SUSE LINUX Products GmbH
+//
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// Neither the name of the Novell nor the names of its contributors may be used
+// to endorse or promote products derived from this software without specific
+// prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ONANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//}}}
+
+lsinitrd(8)
+===========
+:man source: lsinitrd
+:man manual: User Manuals
+Bernhard Walle
+
+Name
+----
+lsinitrd - lists contents of an initrd disk image
+
+Synopsis
+--------
+lsinitrd [_options_] _initrd file_
+
+Description
+-----------
+*lsinitrd* list the contents of an initial ramdisk images for booting Linux as
+created by *mkinitrd*(8).
+
+Options
+-------
+*-h*::
+ Shows help output and exits.
+
+*-l*::
+ Verbose listing, similar to "ls -l".
+
+Authors
+-------
+Hannes Reinecke ,
+Alexander Graf ,
+Bernhard Walle
+
+SEE ALSO
+--------
+*mkinitrd*(8), *mkinitrd*(5), *ls*(1)
+
+
+// vim: set sw=4 ts=4 et tw=80 fdm=marker: :collapseFolds=1:
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.4/man/Makefile new/mkinitrd-2.4/man/Makefile
--- old/mkinitrd-2.4/man/Makefile 1970-01-01 01:00:00.000000000 +0100
+++ new/mkinitrd-2.4/man/Makefile 2008-12-14 18:49:23.000000000 +0100
@@ -0,0 +1,14 @@
+A2X = a2x
+A2X_OPTIONS = --doctype=manpage --format=manpage
+
+all: lsinitrd.8 mkinitrd.5 mkinitrd.8
+
+lsinitrd.8: lsinitrd.8.txt
+ $(A2X) $(A2X_OPTIONS) $<
+
+mkinitrd.5: mkinitrd.5.txt
+ $(A2X) $(A2X_OPTIONS) $<
+
+mkinitrd.8: mkinitrd.8.txt
+ $(A2X) $(A2X_OPTIONS) $<
+
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.4/man/mkinitrd.5 new/mkinitrd-2.4/man/mkinitrd.5
--- old/mkinitrd-2.4/man/mkinitrd.5 2008-12-08 17:27:37.000000000 +0100
+++ new/mkinitrd-2.4/man/mkinitrd.5 1970-01-01 01:00:00.000000000 +0100
@@ -1,238 +0,0 @@
-.\" Copyright (C) 2007-08 SuSE Linux Products GmbH
-.TH mkinitrd 5 "6 August 2007" "mkinitrd" "mkinitrd"
-.SH NAME
-mkinitrd \- description of modular scripts layout
-.SH DESCRIPTION
-.B "mkinitrd"
-creates initial ramdisk images for booting Linux. It is designed to be
-modular, so that functionality required by other programs can be
-maintained in separate scripts.
-.SH DIRECTORY LAYOUT
-All files are located in the directory
-.B "/lib/mkinitrd"
-.
-The directory has the following layout:
-.TP
-.B bin
-External program required during boot
-.TP
-.B dev
-Additional devices nodes to be copied into the mkinitrd.
-.TP
-.B scripts
-Repository for mkinitrd scripts
-.TP
-.B setup
-Resolved links for scripts to be executed during creation of the
-initrd
-.TP
-.B boot
-Resolved links for scripts to be executed during boot.
-
-.SH SCRIPT REPOSITORY
-The directory
-.B "/lib/mkinitrd/scripts"
-is the repository for all mkinitrd scripts. They follow the naming
-convention
-.RS
-.nf
-.ft B
-.sp
-<type>-<name>.sh
-.ft R
-.fi
-.RE
-.LP
-.I <type>
-can be either
-.I setup
-for scripts to be called during initrd creation or
-.I boot
-for scripts to be called during boot. The
-.I <name>
-for a script serves as an identification for the implemented feature;
-it is assumed that scripts named
-.B boot-foo.sh
-and
-.B setup-foo.sh
-both refer to the feature
-.I foo
-
-.SH SCRIPT SYMLINK RESOLUTION
-The directories
-.B "/lib/mkinitrd/setup"
-and
-.B "/lib/mkinitrd/boot"
-hold the resolved symlinks to the scripts in the mkinitrd
-repository. The symlinks have the naming convention
-.RS
-.nf
-.ft B
-.sp
-<number>-<name>.sh
-.ft R
-.fi
-.RE
-.LP
-where
-.I <number>
-determines the execution order (lower numbers will be executed
-earlier) and
-.I <name>
-is the names of the script as mentioned in the previous section. The
-symlinks are maintained by the program
-.B "/sbin/mkinitrd_setup"
-which evaluates the tags in the scripts and creates symlinks with the
-correct name. Manual maintenance in the
-.B "/lib/mkinitrd/setup"
-or
-.B "/lib/mkinitrd/boot"
-directories are strongly discouraged, as any call to
-.B "/sbin/mkinitrd_setup"
-will remove the manually created links.
-
-.SH SCRIPT KEYWORDS
-The execution order of the mkinitrd scripts is determined by
-keywords. The following keywords are recognized:
-
-.TP
-.B #%stage: \fI<name>\fB
-The execution stage for this script
-.TP
-.B #%depends: \fI, Susanne Oberhauser
-, Andreas Gruenbacher , Hannes Reinecke
-, Alexander Graf , Bernhard Walle
-
-.SH FILES
-.PP
-/lib/mkinitrd
-/sbin/mkinitrd
-/sbin/mkinitrd_setup
-
-.SH "SEE ALSO"
-.PP
-\fBmkinitrd\fR(8)
-
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.4/man/mkinitrd.5.txt new/mkinitrd-2.4/man/mkinitrd.5.txt
--- old/mkinitrd-2.4/man/mkinitrd.5.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/mkinitrd-2.4/man/mkinitrd.5.txt 2008-12-14 18:49:23.000000000 +0100
@@ -0,0 +1,228 @@
+//{{{ Copyright (c) 2008, SUSE LINUX Products GmbH
+//
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// Neither the name of the Novell nor the names of its contributors may be used
+// to endorse or promote products derived from this software without specific
+// prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ONANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//}}}
+
+mkinitrd(5)
+===========
+:man source: mkinitrd
+:man manual: User Manuals
+Bernhard Walle
+
+Name
+----
+mkinitrd - description of modular scripts layout
+
+Synopsis
+--------
+(not applicable)
+
+Description
+-----------
+*mkinitrd* creates initial ramdisk images for booting Linux. It is designed to
+be modular, so that functionality required by other programs can be maintained
+in separate scripts.
+
+Directory Layout
+----------------
+All files are located in the directory */lib/mkinitrd*. The directory has the
+following layout:
+
+*bin*::
+External program required during boot
+
+*dev*::
+Additional devices nodes to be copied into the mkinitrd.
+
+*scripts*::
+Repository for mkinitrd scripts
+
+*setup*::
+Resolved links for scripts to be executed during creation of the initrd
+
+*boot*::
+Resolved links for scripts to be executed during boot.
+
+Script Repository
+-----------------
+
+The directory */lib/mkinitrd/scripts* is the repository for all mkinitrd
+scripts. They follow the naming convention
+
+ <type>-<name>.sh
+
+_<type>_ can be either _setup_ for scripts to be called during initrd creation
+or _boot_ for scripts to be called during boot. The _<name>_ for a script serves
+as an identification for the implemented feature; it is assumed that scripts
+named *boot-foo.sh* and *setup-foo.sh* both refer to the feature _foo_.
+
+Script Symlink Resolution
+-------------------------
+The directories */lib/mkinitrd/setup* and */lib/mkinitrd/boot* hold the resolved
+symlinks to the scripts in the mkinitrd repository. The symlinks have the naming
+convention
+
+ <number>-<name>.sh
+
+where _<number>_ determines the execution order (lower numbers will be executed
+earlier) and _<name>_ is the names of the script as mentioned in the previous
+section. The symlinks are maintained by the program */sbin/mkinitrd_setup* which
+evaluates the tags in the scripts and creates symlinks with the correct name.
+Manual maintenance in the */lib/mkinitrd/setup* or */lib/mkinitrd/boot*
+directories are strongly discouraged, as any call to */sbin/mkinitrd_setup*
+will remove the manually created links.
+
+Script Keywords
+---------------
+
+The execution order of the mkinitrd scripts is determined by keywords. The
+following keywords are recognized:
+
+*#%stage:* _<name>_::
+The execution stage for this script
+
+*#%depends:* _<list>_::
+Space-separated list of features or scripts names this script depends upon.
+
+*#%provides:* _<list>_::
+Space-separated list of additional features provided by this script.
+
+*#%dontshow*::
+Don't show the script in the list of features displayed to the user.
+
+*#%programs:* _<list>_::
+A (space separated) list of programs, specified by their full path, that
+should be included in the initrd.
++
+*NOTE:* The path is the full path in the initrd, not in the system. *mkinitrd*
+tries to discover programs automatically, which means that programs in */sbin*
+will be also searched in */usr/sbin* and programs in */bin* will be also searched
+in */usr/bin*.
++
+Libraries are automatically resolved by *ldd*(1). Please note that
+libraries that are loaded at runtime by *dlopen*(3) are not included
+automatically. They have to be copied manually.
+
+*#%modules:* _<list>_::
+List of (space separated) kernel modules (only the name, no path, without
+suffix) that should be included in the initrd. The modules must be loaded in
+the corresponding boot script with _load_modules_.
+
+*#%udevmodules:* _<list>_::
+List of (space separated) kernel modules (only the name, no path, without
+suffix) that should be included in the initrd but are loaded automatically with
+either udev or something else (like file system modules with _mount_).
+
+Each script provides per default a feature with the script name, so that
+_setup-foo.sh_ automatically provides a feature _foo_.
+
+All dependend scripts (i.e. any feature listed in the _#%depends:_ list) will
+be executed prior to this script.
+
+Execution Stages
+----------------
+Script execution is gouverned by _stages_. The stages define the overall
+execution order as each stage is executed sequentially. The defined stages are:
+
+*setup*::
+General preparation
+
+*filesystem*::
+Filesystem detection and maintenance
+
+*crypto*::
+Handling of cryptographic volumes
+
+*volumemanager*::
+Handling of LVM2 and EVMS volumes
+
+*softraid*::
+Detection and setup of MD devices
+
+*partitions*::
+Detection and setup of partitions.
+
+*devicemapper*::
+Device-mapper devices presenting full disks, e.g. multipath and dmraid
+
+*block*::
+Detection and setup of block devices.
+
+*device*::
+Detection and setup of hardware devices
+
+*boot*::
+Final cleanups/preparation
+
+During _setup_ the stages are executed from setup to *boot*; during _boot_ the
+stages are executed in reversed order. The stages itself are defined
+corresponding to the Novell Storage Foundation Layout. This induces some
+restrictions to the possible device setups, as e.g. MD over LVM is not
+supported.
+
+The stages are executed sequentially. All scripts for a stage have to be
+executed before those for the next stage are evaluated. Within a stage scripts
+can run parallel where pos- sible.
+
+As each stage serves as a checkpoint it is *not* possible to have
+dependencies across stages. So script _foo_ in stage _filesystem_ cannot depend
+on script _bar_ in stage _block_.
+
+Script Installation
+-------------------
+New scripts should be copied to */lib/mkinitrd/scripts* and the appropriate
+keywords should be inserted. Afterwards */sbin/mkinitrd_setup* should be
+executed to update the symlinks in _boot_ and _setup_.
+
+For removal the scripts should be deleted and */sbin/mkinitrd_setup* should be
+called to update the symlinks.
+
+
+Authors
+-------
+Steffen Winterfeldt ,
+Susanne Oberhauser ,
+Andreas Grünbacher ,
+Hannes Reinecke ,
+Alexander Graf ,
+Bernhard Walle
+
+Files
+-----
+/lib/mkinitrd /sbin/mkinitrd /sbin/mkinitrd_setup
+
+Bugs
+----
+Please report bugs and enhancement requests at https://bugzilla.novell.com[].
+
+See Also
+--------
+*mkinitrd*(8), *lsinitrd*(8)
+
+// vim: set sw=4 ts=4 et tw=80 fdm=marker: :collapseFolds=1:
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.4/man/mkinitrd.8 new/mkinitrd-2.4/man/mkinitrd.8
--- old/mkinitrd-2.4/man/mkinitrd.8 2008-12-08 17:27:37.000000000 +0100
+++ new/mkinitrd-2.4/man/mkinitrd.8 1970-01-01 01:00:00.000000000 +0100
@@ -1,282 +0,0 @@
-.\" Copyright (C) 2003 SuSE Linux AG
-.\"$Id: mkinitrd.8,v 1.21 2006/11/07 16:38:33 bwalle Exp $
-.TH mkinitrd 8
-.SH NAME
-mkinitrd \- create initrd disk image
-.SH SYNOPSIS
-\fBmkinitrd\fR [options] [root_dir]
-.SH DESCRIPTION
-\fBmkinitrd\fR creates initial ramdisk images for booting Linux.
-The "/init" script in the compressed cpio archive loads all driver modules,
-creates all device nodes currently known by the kernel, initializes
-vital subsystems (e.g. networking when doing nfs), does a filesystem check
-on the root filesystem and finally passes control to /sbin/init.
-udev is used to create the device nodes in a tmpfs mounted /dev directory.
-This directory is moved over to the final root filesystem, essentially
-hiding the on-disk content below /dev on the root filesystem.
-
-A few options can be specified via the kernel command line to modify
-some hardcoded values in the "/init" script. They are read from
-/proc/cmdline.
-
-While in the old days the Linux kernel was responsible for mounting
-the rootfilesystem
-and running /sbin/init, all the work is now done by the "/init" script.
-
-.SH OPTIONS
-.TP
-\fB-h\fR
-This Text.
-.TP
-\fB-k "kernel list"\fR
-list of kernel images for which initrd files are created (relative to
-boot_dir), defaults to "vmlinux" on powerpc, "image" on s390 and
-"vmlinuz" for everything else.
-.TP
-\fB-i "initrd list"\fR
-list of file names (relativ to boot_dir) for the initrd; positions have to
-match the "kernel list", defaults to "initrd"
-.TP
-\fB-m "module list"\fR
-modules to include in initrd, defaults to INITRD_MODULES variable in
-/etc/sysconfig/kernel
-.TP
-\fB-f "feature list"\fR
-features to be enabled for the initrd. In general mkinitrd configures
-the initrd for the root device it is started from. With this option
-additional feature can be enabled.
-.TP
-\fB-b boot_dir\fR
-boot dir, defaults to "/boot", where the initrd is created.
-.TP
-\fB-d root_device\fR
-root device, defaults to the device from which the root_dir is mounted;
-overwrites the rootdev enviroment variable if set
-.TP
-\fB-s size\fR
-Add splash animation and bootscreen to initrd.
-.TP
-\fB-D interface\fR
-Run dhcp on the specified interface (for example "eth0").
-
-It's also possible to specify "default" here if the default interface should be
-used. If there's a file "/etc/install.inf" (which is from the installation
-system), then the interface that was used for installation is used as default
-interface. Otherwise, if NFS root is used and one of the network configuration
-files in "/etc/sysconfig/network" contain the option "STARTMODE=nfsroot", than
-this interface is used as default. Finally, the interface which is used for
-the default route (in the output of "/sbin/route" is used as default interface
-in the initrd.
-.TP
-\fB-I interface\fR
-Configure the specified interface statically.
-.TP
-\fB-a acpi_dsdt\fR
-Attach compiled ACPI DSDT (Differentiated System Description Table)
-to initrd. This replaces the DSDT of the BIOS. Defaults to the ACPI_DSDT
-variable in /etc/sysconfig/kernel.
-.TP
-\fB-t tmp_dir\fR
-tmp dir, defaults to "/tmp".
-.TP
-\fB-e\fR
-Use static binaries where possible. (currently unavailable)
-.TP
-\fB-P\fR
-Include modules for all IDE devices on the PCI bus.
-.TP
-\fB-V script\fR
-Vendor specific script to run in linuxrc.
-.TP
-\fB-M map\fR
-System.map file to use.
-.TP
-\fB-j device\fR
-External journal device to use for the root filesystem.
-.TP
-\fB-l directory\fR
-Directory to use for mkinitrd files instead of /lib/mkinitrd
-.TP
-\fB-B\fR
-Don't run the \fBupdate-bootloader\fR(8) script after the initrd(s) have been
-created. This is useful if you call \fBmkinitrd\fR(8) not for the running
-system but for example in a spec file to pre-generate an initrd or to
-generate a special kdump initrd (which \fBmkdumprd\fR(8) does).
-.TP
-\fB-A\fR
-Create a so called "monster initrd" which includes all
-available features and modules.
-.TP
-\fB-S\fR
-Do not include all libata modules by default.
-.TP
-\fBroot_dir\fR
-the directory the root partition is mounted to defaults to "/"
-
-.SH KERNEL COMMAND-LINE PARAMETER
-\fBmkinitrd\fR implements a set of additional kernel command-line
-parameters which are interpreted by the generated \fBinit\fR script.
-In addition to the standard kernel parameters the following parameters
-are supported:
-.TP
-\fBlinuxrc=trace\fR
-Enabling command tracing of the init script
-.TP
-\fBshell=1\fR
-Execute a shell after the linuxrc has finished and before the normal system is
-booted. Useful for debugging.
-.TP
-\fBnoresume\fR
-Do not check for a resume device
-.TP
-\fBsysrq=yes\fR | \fBsysrq=1-9\fR
-Enable sysrq. If a numeric value is specified, the log level of the console
-will be set to that value.
-.TP
-\fBresume=<device>\fR
-Resume from device \fI<device>\fR
-.TP
-\fBjournal=<device>\fR
-Use device \fI<device>\fR as external journal device.
-This is only valid for reiser and xfs filesystems.
-.TP
-\fBmduuid=<UUID>\fR
-Mount md RAID with uuid \fI, Susanne Oberhauser
-, Andreas Gruenbacher , Hannes Reinecke
-, Alexander Graf , Bernhard Walle
-.BR
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.4/man/mkinitrd.8.txt new/mkinitrd-2.4/man/mkinitrd.8.txt
--- old/mkinitrd-2.4/man/mkinitrd.8.txt 1970-01-01 01:00:00.000000000 +0100
+++ new/mkinitrd-2.4/man/mkinitrd.8.txt 2008-12-14 18:49:23.000000000 +0100
@@ -0,0 +1,348 @@
+//{{{ Copyright (c) 2008, SUSE LINUX Products GmbH
+//
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// Neither the name of the Novell nor the names of its contributors may be used
+// to endorse or promote products derived from this software without specific
+// prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+// INTERRUPTION) HOWEVER CAUSED AND ONANY THEORY OF LIABILITY, WHETHER IN
+// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+// POSSIBILITY OF SUCH DAMAGE.
+//}}}
+
+mkinitrd(8)
+===========
+:man source: mkinitrd
+:man manual: User Manuals
+Bernhard Walle
+
+Name
+----
+mkinitrd - create initrd disk image
+
+Synopsis
+--------
+mkinitrd [_options_] [_root_dir_]
+
+Description
+-----------
+mkinitrd creates initial ramdisk images for booting Linux. The "/init" script
+in the compressed cpio archive loads all driver modules, creates all device
+nodes currently known by the kernel, initializes vital subsystems (e.g.
+networking when doing nfs), does a filesystem check on the root filesystem and
+finally passes control to /sbin/init. udev is used to create the device
+nodes in a tmpfs mounted /dev directory. This directory is moved over to the
+final root filesystem, essentially hiding the on-disk content below /dev on
+the root filesystem.
+
+A few options can be specified via the kernel command line to modify some
+hardcoded values in the "/init" script. They are read from /proc/cmdline.
+
+While in the old days the Linux kernel was responsible for mounting the
+rootfilesystem and running /sbin/init, all the work is now done by the "/init"
+script.
+
+Options
+-------
+*-h*::
+ Shows help output and exits.
+
+*-k* _kernel_list_::
+List of kernel images for which initrd files are created (relative to
+_boot_dir_), defaults to _vmlinux_ on ppc/ppc64, _image_ on s390/s390x and
+_vmlinuz_ for everything else.
+
+*-i* _initrd_list_::
+List of file names (relative to _boot_dir_) for the initrd; positions have
+to match the _kernel_list_, defaults to _initrd_.
+
+*-m* _module_list_::
+Modules to include in initrd, defaults to _INITRD_MODULES_ variable in
+*/etc/sysconfig/kernel*.
+
+*-f* _feature_list_::
+Features to be enabled for the initrd. In general mkinitrd configures the
+initrd for the root device it is started from. With this option additional
+feature can be enabled.
+
+*-b* _bootdir_::
+Boot directory, defaults to */boot*, where the initrd is created.
+
+*-d* _root_device_::
+Root device, defaults to the device from which the _root_dir_ is mounted;
+overwrites the rootdev enviroment variable if set
+
+*-s* _size_::
+Add splash animation and bootscreen to initrd.
+
+*-D* _interface_::
+Run dhcp on the specified interface (for example "eth0").
++
+It's also possible to specify "default" here if the default interface should be
+used. If there's a file */etc/install.inf* (which is from the installation
+system), then the interface that was used for installation is used as default
+interface. Otherwise, if NFS root is used and one of the network configuration
+files in */etc/sysconfig/network* contain the option _STARTMODE=nfsroot_, than
+this interface is used as default. Finally, the interface which is used for
+the default route (in the output of
+*/sbin/route* is used as default interface in the initrd.
+
+*-I* _interface_::
+Configure the specified interface statically.
+
+*-a* _acpi_dsdt_::
+Attach compiled ACPI DSDT (Differentiated System Description Table) to initrd.
+This replaces the DSDT of the BIOS. Defaults to the _ACPI_DSDT_ variable in
+*/etc/sysconfig/kernel*.
+
+*-t* _tmp_dir_::
+tmp dir, defaults to "/tmp".
+
+*-e*::
+Use static binaries where possible. (currently unavailable)
+
+*-P*::
+Include modules for all IDE devices on the PCI bus.
+
+*-V* _script_::
+Vendor specific script to run in linuxrc.
+
+*-M* _map_::
+System.map file to use.
+
+*-j* _device_::
+External journal device to use for the root filesystem.
+
+*-l* _directory_::
+Directory to use for mkinitrd files instead of */lib/mkinitrd*.
+
+*-B*::
+Don't run the *update-bootloader*(8) script after the initrd(s) have been
+created. This is useful if you call mkinitrd(8) not for the running system
+but for example in a spec file to pre-generate an initrd or to generate a
+special kdump initrd (which *mkdumprd*(8) does).
+
+*-A*::
+Create a so called "monster initrd" which includes all available features and
+modules.
+
+*-S*::
+Do not include all libata modules by default.
+
+*-v*::
+Verbose mode. Prints more information to standard error. By default the
+information that would be printed in verbose mode is also appended to the log
+file _/var/log/YaST2/mkinitrd.log_, so it's not necessary to re-run *mkinitrd*
+with the *-v* option to create bug reports.
+
+*-L*::
+Disable logging to _/var/log/YaST2/mkinitrd.log_. This is useful for testing
+if you don't want to clutter the system log.
+
+_root_dir_::
+The directory the root partition is mounted to defaults to "/".
+
+Kernel command-line Parameters
+------------------------------
+*mkinitrd* implements a set of additional kernel command-line parameters which
+are interpreted by the generated *init* script. In addition to the standard
+kernel parameters the following parameters are supported:
+
+*linuxrc=trace*::
+Enabling command tracing of the init script
+
+*shell=1*::
+Execute a shell after the linuxrc has finished and before the normal system
+is booted. Useful for debugging.
+
+*noresume*::
+Do not check for a resume device
+
+*sysrq=yes* | *sysrq=1-9*::
+Enable sysrq. If a numeric value is specified, the log level of the console will
+be set to that value.
+
+*resume=*_device_::
+Resume from device _device_.
+
+*journal=*_device_::
+Use device _device_ as external journal device. This is only valid for reiser
+and xfs filesystems.
+
+*mduuid=*_UUID_::
+Mount md RAID with uuid _UUID_ as the root filesystem.
+
+*TargetAddress*=_IP_Address_::
+[iSCSI] IP Address of the iSCSI Target
+
+*InitiatorName*=_iqn_.
+[iSCSI] Use _iqn_ as the iSCIS initiatorname.
+
+*ip=*_ipspec_::
+Use _ipspec_ to configure the network interface. Format of the _ipspec_
+is _client_:_server_:_gateway_:_netmask_:_hostname_:_device_:_proto_.
+_client_, _server_, _gateway_, _netmask_ are in the standard dotted-decimal
+IP notation. _proto_ is currently ignored.
+
+*udev_timeout=*_secs_::
+Set the timeout for root device detection to _secs_ seconds. Default is 10.
+
+Features
+--------
+Normally *mkinitrd* detects all required features automatically, based upon
+the current root, resume, dump and journal device. If additional features
+should be enabled, the _-f_ option can be specified. Of course you can write your
+own features as well. Just take a look at */lib/mkinitrd*.
+
+Currently, the following features can be selected (if a feature is available
+depends on the installed packages):
+
+*block*::
+Include support for block devices (SCSI and IDE)
+
+*busybox*::
+Replace and add all tools known as safe with the busybox versions
+
+*dasd*::
+Include support for dasd storage devices (s390)
+
+*dmraid*::
+Include support for Software-Raid over device mapper (known as Fake-Raid)
+
+*dm*::
+Include support for device mapper in general
+
+*evms*::
+Add support for EVMS
+
+*firewire*::
+Include firewire storage
+
+*iscsi*::
+Include iSCSI support
+
+*kpartx*::
+Include support for kpartx partitioning. Always use this if you have device
+mapper devices.
+
+*luks*::
+Include encryption support using luks
+
+*lvm2*::
+Include support for LVM2
+
+*md*::
+Include support for Software RAID (md)
+
+*multipath*::
+Include support for multipathing
+
+*netconsole*::
+Include support for debugging using netconsole
+
+*network*::
+Include networking support
+
+*nfs*::
+Include support for nfs(-root)
+
+*resume.kernel*::
+Include resume support using the kernel resume code
+
+*resume.userspace*::
+Include resume support using the userspace program
+
+*usb*::
+Include USB-support (keyboard and storage)
+
+*vendor*::
+Include vendor script support
+
+*zfcp*::
+Include support for zfcp storage devices (s390)
+
+Using NFS as root filesystem
+----------------------------
+To configure an initrd for an NFS client, specify these options to add nfs and network
+driver support into the initrd:
+
+mkinitrd *-f nfs -D eth0*::
+This will add the required kernel modules and a dhcp client to the initrd,
+which will try to get an IP address via eth0. Boot the NFS client with these
+additional command line options to mount the server:
+*nfsroot=1.2.3.4:/exported/directory*.
+
+
+mkinitrd *-f nfs -I eth0*::
+This will add the required kernel modules to the initrd, a static IP address
+must be specified on the kernel cmdline. Boot the NFS client with the _nfsroot_
+parameter as specified above to mount the server and the
+additional parameter
+*ip=1.2.3.42:1.2.3.4:1.2.3.1:255.255.255.0:hostname:eth0:none* to configure the
+network interface. See the ip= description above for details about the ip=
+option.
+
+mkinitrd::
+Due to the new autodetection in mkinitrd it should suffice if the /-entry
+in /etc/fstab is an nfs target. The network device which will be used
+should have _STARTMODE_ set to _nfsroot_.
+
+Recovery
+--------
+What should you do if the initrd is broken and you want to fix it using a
+chroot? I assume /mnt is your target root and /boot is mounted inside.
+
+. mount --bind /dev /mnt/dev
+. chroot /mnt
+. mount /proc
+. mount /sys
+. mkinitrd
+
+Files
+-----
+
+*/var/log/YaST2/mkinitrd.log*::
+The log file of this program. Always attach that log file in Bugzilla if
+something goes wrong. It's also included in the usual YaST logs that are created
+with *save_y2logs*(8).
+
+Environment variables
+---------------------
+You can specify the root device via the environment variable rootdev
+(e.g. "rootdev=/dev/hda mkinitrd").
+
+Authors
+-------
+Steffen Winterfeldt ,
+Susanne Oberhauser ,
+Andreas Grünbacher ,
+Hannes Reinecke ,
+Alexander Graf ,
+Bernhard Walle
+
+
+SEE ALSO
+--------
+*mkinitrd*(8), *mkinitrd*(5)
+
+
+// vim: set sw=4 ts=4 et tw=80 fdm=marker: :collapseFolds=1:
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.4/mkinitrd.changes new/mkinitrd-2.4/mkinitrd.changes
--- old/mkinitrd-2.4/mkinitrd.changes 2008-12-08 17:27:37.000000000 +0100
+++ new/mkinitrd-2.4/mkinitrd.changes 2008-12-14 18:49:23.000000000 +0100
@@ -1,4 +1,22 @@
-------------------------------------------------------------------
+Sun Dec 14 18:24:00 CET 2008 - bwalle@suse.de
+
+- Implement logging (/var/log/YaST2/mkinitrd.log).
+
+-------------------------------------------------------------------
+Wed Dec 10 16:27:55 CET 2008 - bwalle@suse.de
+
+- Don't build initrds for kdump kernels with 'mkinitrd' calls
+ that don't have -k or -i arguments. That affects only special
+ kernel-kdump packages as we currently have on PPC64.
+
+-------------------------------------------------------------------
+Wed Dec 10 10:30:58 CET 2008 - bwalle@suse.de
+
+- Don't load drivers that require firmware to be loaded before
+ udev starts (bnc #457428).
+
+-------------------------------------------------------------------
Mon Dec 08 17:24:58 CET 2008 - bwalle@suse.de
- Check for specific module if they are compiled in and don't
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.4/mkinitrd.spec new/mkinitrd-2.4/mkinitrd.spec
--- old/mkinitrd-2.4/mkinitrd.spec 2008-12-08 17:27:37.000000000 +0100
+++ new/mkinitrd-2.4/mkinitrd.spec 2008-12-14 18:49:23.000000000 +0100
@@ -14,7 +14,8 @@
Name: mkinitrd
License: GPL v2 or later
Group: System/Base
-#!BuildIgnore: module-init-tools e2fsprogs udev reiserfs
+#!BuildIgnore: module-init-tools e2fsprogs udev reiserfs fop
+BuildRequires: asciidoc
Requires: coreutils modutils util-linux grep gzip sed cpio udev sysvinit file perl-Bootloader
AutoReqProv: on
Version: 2.4
@@ -56,6 +57,7 @@
%build
gcc $RPM_OPT_FLAGS -Wall -Os -o lib/mkinitrd/bin/run-init src/run-init.c
+make -C man
sed -i "s/@BUILD_DAY@/`env LC_ALL=C date -ud yesterday '+%Y%m%d'`/" sbin/mkinitrd
echo "Checking scripts:"
if ! bash -n sbin/mkinitrd; then
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.4/sbin/mkinitrd new/mkinitrd-2.4/sbin/mkinitrd
--- old/mkinitrd-2.4/sbin/mkinitrd 2008-12-08 17:27:37.000000000 +0100
+++ new/mkinitrd-2.4/sbin/mkinitrd 2008-12-14 18:49:23.000000000 +0100
@@ -1,4 +1,4 @@
-#! /bin/bash
+#!/bin/bash
# mkinitrd - create the initramfs images
# usage: see below usage() or call with -h
@@ -25,6 +25,8 @@
# git://git.opensuse.org/projects/mkinitrd.git
#
+LOGDIR=/var/log/YaST2
+LOGFILE=$LOGDIR/mkinitrd.log
declare -a cmd_option
declare cmd_option_name cmd_option_desc cmd_option_param cmd_param_desc cmd_param_name
@@ -92,7 +94,7 @@
fi
}
-[ -x /usr/bin/nroff ] && nroff=1
+[ -x /usr/bin/nroff -a -t 1 ] && nroff=1
usage() {
@@ -120,12 +122,9 @@
next_param && echo -n " $cmd_param_desc"
echo
else
- echo -n " -$cmd_option_name "
- if next_param; then
- echo -n "$cmd_param_desc "
- else
- echo -n " "
- fi
+ printf " -%-5.5s" $cmd_option_name
+ next_param
+ printf "%-25.25s" "$cmd_param_desc"
fi
echo "$cmd_option_desc"
done
@@ -157,7 +156,8 @@
kernel_images=""
initrd_images=""
for kernel_image in $(ls /boot \
- | sed -ne "\|^$regex\(-[0-9.]\+-[0-9]\+-[a-z0-9]\+$\)\?|p") ; do
+ | sed -ne "\|^$regex\(-[0-9.]\+-[0-9]\+-[a-z0-9]\+$\)\?|p" \
+ | grep -v kdump$ ) ; do
# Note that we cannot check the RPM database here -- this
# script is itself called from within the binary kernel
@@ -177,6 +177,36 @@
done
}
+# Brief
+# Logs to the logfile if logging is not disabled
+#
+# Description
+# Just logs into $LOGFILE (/var/log/YaST2/mkinitrd.log). You may want to
+# consider not to use that function directly but to use the verbose
+# function that also prints the string to stdout when -v has been
+# specified.
+#
+# Parameters
+# (varargs): strings to log. Exception: If the first argument is "-n" or
+# "-ne" then no newline is prepended
+#
+log() {
+ # don't log until we initialised logging properly
+ if [ -z "$logging_disabled" ] || [ "$logging_disabled" -eq 1 ] ; then
+ return
+ fi
+
+ if [ "$1" = "-n" ] || [ "$1" = "-ne" ] ; then
+ shift
+ echo -en " " "$@" >> $LOGFILE
+ elif [ $# -eq 0 ] ; then
+ echo >> $LOGFILE
+ else
+ echo >> $LOGFILE
+ echo -en $(date +'%Y-%m-%d %H:%M:%S') "$*" >> $LOGFILE
+ fi
+}
+
# You can specify the root device via the environment variable rootdev (e.g.
# "rootdev=/dev/hda mkinitrd").
@@ -210,6 +240,7 @@
. /etc/sysconfig/initrd
fi
+saved_args=$@
read_options
while getopts $( cmd_getopts ) a ; do
case $a in
@@ -230,6 +261,18 @@
# global options
no_bootloader_update=$param_B
verbose=$param_v
+logging_disabled=$param_L
+
+# init logging
+if [ -d $LOGDIR ] && [ -w $LOGDIR ] && \
+ [ "$logging_disabled" != 1 ] ; then
+ logging_disabled=0
+else
+ logging_disabled=1
+fi
+
+log "--------------------------------------------------------------------------"
+log "mkinitrd called with arguments ${saved_args[*]}"
mkinit_name="mkinitramfs"
@@ -385,6 +428,8 @@
if [ "$verbose" ] ; then
echo -e "$@" >&2
fi
+
+ log "$@"
}
# creates an initrd image using small modules called "setup scripts"
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.4/scripts/boot-start.sh new/mkinitrd-2.4/scripts/boot-start.sh
--- old/mkinitrd-2.4/scripts/boot-start.sh 2008-12-08 17:27:37.000000000 +0100
+++ new/mkinitrd-2.4/scripts/boot-start.sh 2008-12-14 18:49:23.000000000 +0100
@@ -4,6 +4,7 @@
#%depends: devfunctions
#%programs: /bin/bash umount test mount mknod mkdir ln date sleep echo cat /bin/sed /sbin/insmod /sbin/modprobe kill /sbin/killall5 /sbin/halt /sbin/reboot /sbin/showconsole cp /sbin/pidof mv chmod rm true ls /lib/mkinitrd/bin/*
#%modules: $RESOLVED_INITRD_MODULES
+#%udevmodules: $RESOLVED_INITRD_MODULES_UDEV
#%dontshow
#
##### Initrd initialization
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.4/scripts/setup-prepare.sh new/mkinitrd-2.4/scripts/setup-prepare.sh
--- old/mkinitrd-2.4/scripts/setup-prepare.sh 2008-12-08 17:27:37.000000000 +0100
+++ new/mkinitrd-2.4/scripts/setup-prepare.sh 2008-12-14 18:49:23.000000000 +0100
@@ -11,6 +11,7 @@
#%param_A: "Create a so called \"monster initrd\" which includes all features and modules possible."
#%param_B: "Do not update bootloader configuration."
#%param_v: "Verbose mode."
+#%param_L: "Disable logging."
#%param_h: "This help screen."
#
###### Additional options
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/mkinitrd-2.4/scripts/setup-start.sh new/mkinitrd-2.4/scripts/setup-start.sh
--- old/mkinitrd-2.4/scripts/setup-start.sh 2008-12-08 17:27:37.000000000 +0100
+++ new/mkinitrd-2.4/scripts/setup-start.sh 2008-12-14 18:49:23.000000000 +0100
@@ -38,7 +38,7 @@
fi
# Activate features which are eqivalent to modules
-for m in "$module" ; do
+for m in $modules ; do
case "$m" in
dm-multipath)
ADDITIONAL_FEATURES="$ADDITIONAL_FEATURES multipath"
@@ -55,4 +55,22 @@
else
RESOLVED_INITRD_MODULES="$modules"
fi
+
+# Drivers with a firmware cannot be loaded via INITRD_MODULES mechanism
+# because udev is needed to load the firmware. Put them in initrd, but don't
+# load them via modprobe.
+RESOLVED_INITRD_MODULES_UDEV=
+RESOLVED_INITRD_MODULES_NEW=
+for m in $RESOLVED_INITRD_MODULES ; do
+ if [ $(modinfo -F firmware $m 2> /dev/null | wc -l) -gt 0 ] ; then
+ verbose "[SETUP]\tDon't load $m on boot with modprobe because "\
+ "it requires firmware"
+ RESOLVED_INITRD_MODULES_UDEV="$RESOLVED_INITRD_MODULES_UDEV $m"
+ else
+ RESOLVED_INITRD_MODULES_NEW="$RESOLVED_INITRD_MODULES_NEW $m"
+ fi
+done
+RESOLVED_INITRD_MODULES=$RESOLVED_INITRD_MODULES_NEW
+
save_var RESOLVED_INITRD_MODULES
+save_var RESOLVED_INITRD_MODULES_UDEV
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org