You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.4 KiB
86 lines
2.4 KiB
15 years ago
|
# Copyright 1999-2008 Gentoo Foundation
|
||
|
# Distributed under the terms of the GNU General Public License v2
|
||
|
# $Header:
|
||
|
|
||
|
# @FUNCTION: calculate_update_kernel
|
||
|
# @USAGE: [kernelname] [kernelversion] [destination]
|
||
|
# @DESCRIPTION:
|
||
|
# Make symbolic link to vmlinuz, preserve old vmlinuz
|
||
|
# Copy initramfs to initrd and initrd-install
|
||
|
calculate_update_kernel() {
|
||
|
kname=$1
|
||
|
kversion=$2
|
||
|
dir=$3
|
||
|
|
||
|
# update vmlinuz
|
||
|
[ -f ${dir}/vmlinuz ] && rm -f ${dir}/vmlinuz.old &&
|
||
|
mv ${dir}/vmlinuz ${dir}/vmlinuz.old
|
||
|
ln -sf "linux-${kname}-${kversion}-calculate" ${dir}/vmlinuz
|
||
|
# update initrd
|
||
|
[ -f ${dir}/initrd ] && rm -f ${dir}/initrd.old &&
|
||
|
mv ${dir}/initrd ${dir}/initrd.old
|
||
|
cp ${dir}/initramfs-${kname}-${kversion}-calculate ${dir}/initrd
|
||
|
# update initrd-install
|
||
|
[ -f ${dir}/initrd-install ] && rm -f ${dir}/initrd-install.old &&
|
||
|
mv ${dir}/initrd-install ${dir}/initrd-install.old
|
||
|
cp ${dir}/initramfs-${kname}-${kversion}-calculate ${dir}/initrd-install
|
||
|
}
|
||
|
|
||
|
TMP_INITRAMFS=${T}/initramfs
|
||
|
SPLASH_DESCRIPTOR=/etc/splash/tty1/1024x768.cfg
|
||
|
|
||
|
initramfs_unpack() {
|
||
|
mkdir -p ${TMP_INITRAMFS}
|
||
|
cd ${TMP_INITRAMFS}
|
||
|
# select arch
|
||
|
UNPACKER="gzip"
|
||
|
lzma -dc ${BOOT_DIR}/$1 &>/dev/null && UNPACKER="lzma"
|
||
|
# unpack initramfs
|
||
|
gzip -dc ${BOOT_DIR}/$1 | cpio -di &>/dev/null
|
||
|
return $?
|
||
|
}
|
||
|
|
||
|
initramfs_change_spalsh() {
|
||
|
if [ -f ${SPLASH_DESCRIPTOR} ]
|
||
|
then
|
||
|
# get silentpic param
|
||
|
SILENTPIC=$( sed -nr '/^silentpic/ s/^[^=]+=(.*)$/\1/p' \
|
||
|
${SPLASH_DESCRIPTOR} )
|
||
|
# get pic param
|
||
|
PIC=$( sed -nr '/^pic/ s/^[^=]+=(.*)$/\1/p' \
|
||
|
${SPLASH_DESCRIPTOR} )
|
||
|
if [ -f ${SILENTPIC} ] && [ -f ${PIC} ]
|
||
|
then
|
||
|
cp ${SPLASH_DESCRIPTOR} \
|
||
|
${TMP_INITRAMFS}${SPLASH_DESCRIPTOR} &&
|
||
|
mkdir -p ${TMP_INITRAMFS}${SILENTPIC%$(basename $SILENTPIC)} &&
|
||
|
cp $SILENTPIC ${TMP_INITRAMFS}${SILENTPIC} &&
|
||
|
mkdir -p ${TMP_INITRAMFS}${PIC%$(basename $PIC)} &&
|
||
|
cp $PIC ${TMP_INITRAMFS}${PIC}
|
||
|
return $?
|
||
|
fi
|
||
|
else
|
||
|
return 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
initramfs_pack() {
|
||
|
# pack new initramfs
|
||
|
cd ${TMP_INITRAMFS}
|
||
|
find * | cpio -o --quiet -H newc | gzip -9 >${BOOT_DIR}/$1.new
|
||
|
# remove old initramfs
|
||
|
rm ${BOOT_DIR}/$1
|
||
|
mv ${BOOT_DIR}/$1.new ${BOOT_DIR}/$1
|
||
|
}
|
||
|
|
||
|
# @FUNCTION: calculate_update_splash
|
||
|
# @USAGE: [initramfsfile]
|
||
|
# @DESCRIPTION:
|
||
|
# Install into initramfs splash data, which descripted by
|
||
|
# /etc/splash/tty1/1024x768.cfg
|
||
|
calculate_update_splash() {
|
||
|
einfo "Update splash screen"
|
||
|
initramfs_unpack $1 &&
|
||
|
initramfs_change_spalsh && initramfs_pack $1
|
||
|
}
|