[pkg-cryptsetup-devel] Bug#559510: generates a huge ramdisk because all modules are copied

Martin Michlmayr tbm at cyrius.com
Tue Jan 26 17:13:43 UTC 2010


I'm really disappointed that this bug hasn't been resolved yet.
What's the status of this?

* Martin Michlmayr <tbm at cyrius.com> [2009-12-04 23:27]:
> Package: cryptsetup
> Version: 2:1.1.0~rc2-1
> Severity: important
> Tags: patch
> 
> After installing cryptsetup on my armel machine, the initramfs grew
> from 4.5 MB to 15 MB, causing an error because the ramdisk no longer
> fit in flash.  All modules were copied to the ramdisk!
> 
> This is because armel (and some other arches) don't have a kernel/arch
> directory, and you do:
> 
>   archcrypto="$(find "$MODULESDIR/kernel/arch" -type d -name "crypto")"
>   copy_modules_dir "${archcrypto##*${MODULESDIR}/}"
> 
> In my case, copy_modules_dir is executed with an empty argument,
> apparently leading to all modules being copied.
> 
> The fix is to check if $archcrypto is empty.
> 
> I also added some checks for the kernel/arch dir because otherwise
> your find calls generate "No such file or directory" messages.
> 
> --- cryptroot~	2009-12-04 23:13:44.319569469 +0000
> +++ cryptroot	2009-12-04 23:13:39.679818772 +0000
> @@ -442,12 +442,14 @@
>  	#
>  	#   d) /lib/modules/$VERSION/kernel/drivers/crypto/$specific-$mod.ko
>  
> -	for file in $(find "$MODULESDIR/kernel/arch/" -name "$mod-*.ko"); do
> -		altmod="${file##*/}"
> -		altmod="${altmod%.ko}"
> -		manual_add_modules "$altmod"
> -		found="yes"
> -	done
> +	if [ -e "$MODULESDIR/kernel/arch/" ]; then
> +		for file in $(find "$MODULESDIR/kernel/arch/" -name "$mod-*.ko"); do
> +			altmod="${file##*/}"
> +			altmod="${altmod%.ko}"
> +			manual_add_modules "$altmod"
> +			found="yes"
> +		done
> +	fi
>  
>  	for file in $(find "$MODULESDIR/kernel/crypto/" -name "${mod}_generic.ko"); do
>  		altmod="${file##*/}"
> @@ -499,8 +501,12 @@
>  	setup="yes"
>  
>  	if [ "$MODULES" = "most" ]; then
> -		archcrypto="$(find "$MODULESDIR/kernel/arch" -type d -name "crypto")"
> -		copy_modules_dir "${archcrypto##*${MODULESDIR}/}"
> +		if [ -e "$MODULESDIR/kernel/arch" ]; then
> +			archcrypto="$(find "$MODULESDIR/kernel/arch" -type d -name "crypto")"
> +			if [ -n "$archcrypto" ]; then
> +				copy_modules_dir "${archcrypto##*${MODULESDIR}/}"
> +			fi
> +		fi
>  		copy_modules_dir "kernel/crypto"
>  	else
>  		for mod in $modules; do
> 
> -- 
> Martin Michlmayr
> http://www.cyrius.com/
> 
> 
> 

-- 
Martin Michlmayr
http://www.cyrius.com/





More information about the pkg-cryptsetup-devel mailing list