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" _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit