SVN: livecd/mklive/mklive
qwiat
qwiat at pld-linux.org
Sat Sep 18 23:55:39 CEST 2010
Author: qwiat
Date: Sat Sep 18 23:55:38 2010
New Revision: 11807
Modified:
livecd/mklive/mklive
Log:
- fixed adding libs to initrd and some cosmetics
Modified: livecd/mklive/mklive
==============================================================================
--- livecd/mklive/mklive (original)
+++ livecd/mklive/mklive Sat Sep 18 23:55:38 2010
@@ -18,7 +18,7 @@
do
dstdir=$(dirname $tmp_initrd/lib/modules/$kernel_rel/$modpath)
[ ! -d $dstdir ] && mkdir -p $dstdir
- echo "copying module: lib/modules/$kernel_rel/$modpath"
+ echo " - module: lib/modules/$kernel_rel/$modpath"
cp $sys_source/lib/modules/$kernel_rel/$modpath $dstdir
done
done
@@ -31,7 +31,7 @@
[ ! -d $sys_source/lib/modules/$kernel_rel/$moddirname ] && die "Directory /lib/modules/$kernel_rel/$moddirname not found!"
dstdir=$(dirname $tmp_initrd/lib/modules/$kernel_rel/$moddirname)
[ ! -d $dstdir ] && mkdir -p $dstdir
- echo "copying modules: lib/modules/$kernel_rel/$moddirname"
+ echo " - modules: lib/modules/$kernel_rel/$moddirname"
cp -r $sys_source/lib/modules/$kernel_rel/$moddirname $dstdir
done
@@ -59,7 +59,7 @@
# copy files to initrd skeleton
dstFirmDir=$(dirname $tmp_initrd/$firmwareDirFound/$firmwareFile)
[ ! -d $dstFirmDir ] && mkdir -p $dstFirmDir
- echo "copying $firmwareDirFound/$firmwareFile"
+ echo " - $firmwareDirFound/$firmwareFile"
cp $sys_source/$firmwareDirFound/$firmwareFile $dstFirmDir
done
done
@@ -72,12 +72,28 @@
mknod $1/console c 5 1
mknod $1/null c 1 3
mknod $1/zero c 1 5
+ mknod $1/sr0 b 11 0
+
+}
+# copy from sys ($1) dynamic linked libraries of application ($2) to initrd skeleton
+function copy_libs
+{
+ echo "Copying libraries for $2:"
+ for liblink in $(get_app_libs $2)
+ do
+ #[ -f $liblink ] && lib=$liblink || lib=$(stat -t -c %N $1/$liblink | sed -e s/.*\ // -e s/\'// -e s/\`//) # get dst file name if symlink
+ #echo " - copying $lib"
+ #[ ! -f $tmp_initrd/$lib ] && cp -d $1/$libDir/$(basename $lib) $tmp_initrd/lib
+ echo " - $liblink"
+ [ ! -f $tmp_initrd/$lib ] && cp -a $1/$liblink $tmp_initrd/lib
+ [ -h $tmp_initrd/$liblink ] && lib=$(stat -t -c %N $1/$liblink | sed -e s/.*\ // -e s/\'// -e s/\`//) && cp -d $1/$libDir/$(basename $lib) $tmp_initrd/lib
+ done
}
function create_initrd
{
- [ -d $1/lib64 ] && libDir=lib64 || libDir=lib # gues 'lib' dir name for x86_64 arch
+ [ -d $sys_source/lib64 ] && libDir=lib64 || libDir=lib # gues 'lib' dir name for x86_64 arch
initrd_tools_dir=/usr/$libDir/initrd
-
+
echo "Creating initrd skeleton: $tmp_initrd"
cp -r $mkroot/$templatesDir/initrd/* $tmp_initrd
# creade devices
@@ -88,7 +104,7 @@
echo "Copying kernel modules to initrd skeleton..."
copy_module loop cdrom crc16 crc-t10dif usbhid hid ehci-hcd uhci-hcd ohci-hcd unionfs isofs squashfs
copy_modules_dir kernel/drivers/ata kernel/drivers/scsi
- [ -d $1/lib/modules/$kernel_rel/kernel/fs/aufs ] && echo "found aufs module" && aufs_module_found=1 && copy_module aufs
+ [ -d $sys_source/lib/modules/$kernel_rel/kernel/fs/aufs ] && echo "found aufs module" && aufs_module_found=1 && copy_module aufs
echo "Copying firmware files to initrd skeleton..."
findAndCopyFirmwareFiles || exit 1
@@ -97,17 +113,13 @@
depmod -a -b $tmp_initrd $kernel_rel
echo "Adding binaries..."
- cp -d $1/$initrd_tools_dir/{udevadm,udevd,udevstart} $tmp_initrd/bin/ || return 1
- cp $1/bin/busybox $tmp_initrd/bin/ || return 1
+ cp -d $sys_source/$initrd_tools_dir/{udevadm,udevd,udevstart} $tmp_initrd/bin/ || return 1
+ cp $sys_source/bin/busybox $tmp_initrd/bin/ || return 1
ln -s busybox $tmp_initrd/bin/sh || return 1
echo "Adding libraries..."
- for liblink in $(get_app_libs /bin/busybox)
- do
- lib=$(stat -t -c %N $1/$liblink | sed -e s/.*\ // -e s/\'// -e s/\`//)
- [ ! -f $tmp_initrd/$lib ] && cp -d $1/$libDir/$(basename $lib) $tmp_initrd/lib
- done
- cp $1/etc/ld.so.conf $tmp_initrd/etc
+ copy_libs $sys_source /bin/busybox
+ cp $sys_source/etc/ld.so.conf $tmp_initrd/etc
ldconfig -r $tmp_initrd
chown -R root:root $tmp_initrd/*
find $tmp_initrd -name \*~ -exec rm \{\} \; # cleanup
@@ -115,10 +127,10 @@
echo "Creating bootsplash"
/bin/splash.bin -s -f $bootsplash > $tmp_initrd/bootsplash
fi
- echo "Creating initramfs image: $2"
+ echo "Creating initramfs image: $1"
cd $tmp_initrd
- find . | cpio -H newc -o | $compr > $2
- [ $? -eq 0 ] && echo "Image saved as $2 (size: $(stat -c %s $2))" || die "Creating image failed!"
+ find . | cpio -H newc -o | $compr > $1
+ [ $? -eq 0 ] && echo "Image saved as $1 (size: $(stat -c %s $1))" || die "Creating image failed!"
}
# return application related libraries
function get_app_libs
@@ -229,7 +241,7 @@
fi
# create initrd
-create_initrd $sys_source $tmp_iso_root/boot/initrd.img || die "Creating initrd image failed."
+create_initrd $tmp_iso_root/boot/initrd.img || die "Creating initrd image failed."
# ceate live
echo "Creating squashfs filesystem: $tmp_iso_root/$live_rootfs_archive..."
mksquashfs $sys_source $tmp_iso_root/$live_rootfs_archive -comp $compr > /dev/null || die "Creating live rootfs failed"
More information about the pld-cvs-commit
mailing list