Browse Source

* introduced 'initrd' target output format to create

build/${SDECFG_ID}/TOOLCHAIN/initrd.img (cpio.gz) considering
	  what was built on stage 1.
	  


git-svn-id: svn://svn.opensde.net/opensde/opensde/trunk@21054 10447126-35f2-4685-b0cf-6dd780d3921f
misl/sde-wrapper
Alejandro Mery 18 years ago
parent
commit
b472ef7ac6
1 changed files with 52 additions and 0 deletions
  1. +52
    -0
      target/share/initrd/build.sh

+ 52
- 0
target/share/initrd/build.sh

@ -0,0 +1,52 @@
#Description: Initial ramdisk (initrd)
initrddir="$build_toolchain/initrd"
rm -rf "$initrddir"
mkdir -p "$initrddir"
INITRD_POSTFLIST_HOOK=""
INITRD_FLIST_PATTERN="-e '/\.\(h\|o\|a\|la\)$/d;' -e '/ usr\/share\/\(doc\|info\|man\)\//d;'"
INITRD_EMPTY_PATTERN="-e '/\/lib\/udev\/devices\//d;'"
# source target specific code
#
if [ -f target/$target/build-initrd.in ]; then
. target/$target/build-initrd.in
fi
# install what was flisted for stage 1 packages, use $INITRD_FLIST_PATTERN to skip files
#
echo_status "Populating ${initrddir#$base/} ..."
for pkg_name in $( grep '^X .1' $base/config/$config/packages | cut -d' ' -f5 ); do
echo_status "- $pkg_name"
flist="build/${SDECFG_ID}/var/adm/flists/$pkg_name"
eval "sed -e '/ var\/adm/ d;' $INITRD_FLIST_PATTERN '$flist'" | cut -f2- -d' ' |
tar -C "build/${SDECFG_ID}/" -cf- --no-recursion --files-from=- |
tar -C "$initrddir" -xf-
done
# hook
#
[ -z "$INITRD_POSTFLIST" ] || eval "$INITRD_POSTFLIST"
# remove empty folder, use $INITRD_EMPTY_PATTERN to skip folders
#
echo_status "Removing empty folders ..."
find "$initrddir" -type d | tac | eval "sed -e '/\/dev\$/d;' $INITRD_EMPTY_PATTERN" | while read folder; do
count=$( find "$folder" | wc -l )
if [ $count -eq 1 ]; then
rm -r "$folder"
#echo_status "- ${folder#$initrddir} deleted."
fi
done
echo_status "Expanded size: $( du -sh "$initrddir" | cut -f1)."
echo_status "Creating ${initrddir#$base/}.img ..."
( cd "$initrddir"; find * | cpio -o -H newc ) |
gzip -c -9 > "$initrddir.img"
echo_status "Image size: $( du -sh "$initrddir.img" | cut -f1)."

Loading…
Cancel
Save