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