2 Commits

Author SHA1 Message Date
Jay Larson
0b5d9e44bd The following changes were made:
* findutils added as dependency
  * modified cp command in mkinitramfs to prevent unnecessary errors
  * added 'all' option to mkinitramfs
2018-09-30 16:48:04 -05:00
Jay Larson
35668887a4 The following changes were made:
* Corrected zfs detection in init
  * Moved to use CONFIG rather than usher
2018-08-04 06:26:50 -05:00
6 changed files with 32 additions and 57 deletions

View File

@@ -0,0 +1 @@
../default-bins

View File

@@ -0,0 +1 @@
../default-mods

View File

@@ -8,7 +8,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details. # GNU General Public License for more details.
DEPENDS = coreutils,cpio,eudev,gzip,perl,psmisc,sed,util-linux DEPENDS = coreutils,cpio,dash,eudev,findutils,gzip,perl,psmisc,sed,util-linux
ARCH = x86_64 ARCH = x86_64
URL = http://snaplinux.org URL = http://snaplinux.org
REPO = core REPO = core
@@ -37,5 +37,6 @@ clean:
@rm -rvf $(ROOT) \ @rm -rvf $(ROOT) \
$(SNAPINFO) \ $(SNAPINFO) \
$(MANIFEST) \ $(MANIFEST) \
$(FILES) $(FILES) \
$(CONFIG)

View File

@@ -1,26 +0,0 @@
#!/bin/sh
set -e
case $1 in
preinst)
exit 0
;;
postinst)
if [ ! -f /usr/share/mkinitramfs/bins/default ]; then
cp /usr/share/mkinitramfs/default-bins \
/usr/share/mkinitramfs/bins/default
fi
if [ ! -f /usr/share/mkinitramfs/mods/default ]; then
cp /usr/share/mkinitramfs/default-mods \
/usr/share/mkinitramfs/mods/default
fi
;;
prerm)
exit 0
;;
postrm)
exit 0
;;
esac

View File

@@ -18,16 +18,9 @@ rorw="ro"
rootflags= rootflags=
rootdev= rootdev=
[ -d /dev ] || mkdir -m 0755 /dev
[ -d /root ] || mkdir -m 0700 /root
[ -d /sys ] || mkdir /sys
[ -d /proc ] || mkdir /proc
[ -d /tmp ] || mkdir /tmp
mkdir -p /var/lock
mount -n -t devtmpfs devtmpfs /dev mount -n -t devtmpfs devtmpfs /dev
mount -t proc -o nodev,noexec,nosuid proc /proc mount -n -t proc proc /proc
mount -t sysfs -o nodev,noexec,nosuid sysfs /sys mount -n -t sysfs sysfs /sys
mount -n -t tmpfs tmpfs /run mount -n -t tmpfs tmpfs /run
read -r cmdline < /proc/cmdline read -r cmdline < /proc/cmdline
@@ -78,12 +71,10 @@ case "$root" in
;; ;;
esac esac
echo > /sys/kernel/uevent_helper
/sbin/udevd --daemon --resolve-names=never /sbin/udevd --daemon --resolve-names=never
udevadm trigger udevadm trigger
udevadm settle udevadm settle
[ -n "$rootdelay" ] && sleep "$rootdelay"
[ -f /etc/mdadm.conf ] && mdadm -As [ -f /etc/mdadm.conf ] && mdadm -As
[ -x /sbin/vgchange ] && /sbin/vgchange --sysinit -a y [ -x /sbin/vgchange ] && /sbin/vgchange --sysinit -a y
@@ -91,11 +82,8 @@ if [ -n "$zfs" ]; then
zpool import rpool -N || error "Failed importing rpool" zpool import rpool -N || error "Failed importing rpool"
fi fi
if [ -n "$rootflags" ]; then [ -n "$rootdelay" ] && sleep "$rootdelay"
rootflags="$rootflags,$rorw" [ -n "$rootflags" ] && rootflags="$rootflags,$rorw" || rootflags="$rorw"
else
rootflags="$rorw"
fi
mkdir /.root mkdir /.root
@@ -103,6 +91,6 @@ if ! mount -n -t "$rootfstype" -o "$rootflags" "$rootdev" /.root ; then
error "Failed to mount root filesystem" error "Failed to mount root filesystem"
fi fi
udevadm control --exit killall -w udevd
exec switch_root /.root "$init" "$@" exec switch_root /.root "$init" "$@"

View File

@@ -6,7 +6,7 @@ use warnings;
use POSIX qw( uname ); use POSIX qw( uname );
use Data::Dumper; use Data::Dumper;
use constant VERSION => '0.5'; use constant VERSION => '0.8';
sub build { sub build {
my $kernel = shift; my $kernel = shift;
@@ -70,18 +70,17 @@ sub build {
} }
} }
if ( system( "cp -rp /lib/firmware $tmpdir/lib/firmware" ) ) { if ( system( "cp -a /lib/firmware $tmpdir/lib/firmware" ) ) {
die( "Failed copying firmware\n" ); die( "Failed copying firmware\n" );
} }
if ( system( "cp -p /etc/modprobe.d/* $tmpdir/etc/modprobe.d" ) ) { if ( system( "cp -a /etc/modprobe.d $tmpdir/etc/modprobe.d" ) ) {
die( "Failed copying data from modprobe.d\n" ); die( "Failed copying data from modprobe.d\n" );
} }
if ( system( "cp -rp /etc/udev/rules.d /etc/udev/udev.conf" if ( system( "cp -a /etc/udev $tmpdir/etc/udev" ) ) {
. " $tmpdir/etc/udev" ) ) {
die( "Failed copying udev data\n" ); die( "Failed copying udev data\n" );
} }
if ( system( "cp -rp /lib/udev $tmpdir/lib/udev" ) ) { if ( system( "cp -a /lib/udev $tmpdir/lib/udev" ) ) {
die( "Failed copying udev lib data\n" ); die( "Failed copying udev lib data\n" );
} }
@@ -225,11 +224,12 @@ for ( my $i = 0; $i <= $#ARGV; $i++ ) {
} }
} }
my $kernver = $ARGV[0] || ( uname() )[2]; my $arg = $ARGV[0] || ( uname() )[2];
my $kernels = getkern(); my $kernels = getkern();
my $bins = readlines( 'bins' ); my $bins = readlines( 'bins' );
my $mods = readlines( 'mods' ); my $mods = readlines( 'mods' );
my $libs = []; my $libs = [];
my $builds = [];
foreach my $bin ( @$bins ) { foreach my $bin ( @$bins ) {
my $ldd = ldd( $bin ); my $ldd = ldd( $bin );
@@ -241,12 +241,22 @@ foreach my $bin ( @$bins ) {
} }
} }
if ( ! $kernels->{$kernver} ) { if ( $arg eq 'all' ) {
print STDERR "Unable to locate kernel version $kernver\n"; foreach my $kernver ( keys( %$kernels ) ) {
push( @$builds, $kernels->{$kernver} );
}
}
elsif ( ! $kernels->{$arg} ) {
print STDERR "Unable to locate kernel version $arg\n";
exit 1; exit 1;
} }
else {
push( @$builds, $kernels->{$arg} );
}
print "Generating $kernels->{$kernver}{'initrd'}\n"; foreach my $kernel ( @$builds ) {
build( $kernels->{$kernver}, $bins, $mods, $libs ); print "Generating $kernel->{'initrd'}\n";
print "Done\n"; build( $kernel, $bins, $mods, $libs );
print "Done\n";
}