aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Gaffney <agaffney@gentoo.org>2008-03-10 00:38:49 +0000
committerAndrew Gaffney <agaffney@gentoo.org>2008-03-10 00:38:49 +0000
commit6ea20790b7571394a425040aa601e6cf7296d0dc (patch)
tree872cda9fb85296fc5aff7973f611466d4f96fcab /gen_initramfs.sh
parentApply patch from Vince C <v_cadet@yahoo.fr> to mount sysfs prior to loading ... (diff)
downloadgenkernel-6ea20790b7571394a425040aa601e6cf7296d0dc.tar.gz
genkernel-6ea20790b7571394a425040aa601e6cf7296d0dc.tar.bz2
genkernel-6ea20790b7571394a425040aa601e6cf7296d0dc.zip
Add support for --firmware and --firmware-dir options to include firmware in the initramfs
git-svn-id: svn+ssh://svn.gentoo.org/var/svnroot/genkernel/trunk@612 67a159dc-881f-0410-a524-ba9dfbe2cb84
Diffstat (limited to 'gen_initramfs.sh')
-rw-r--r--gen_initramfs.sh22
1 files changed, 22 insertions, 0 deletions
diff --git a/gen_initramfs.sh b/gen_initramfs.sh
index a9ee20f0..b5a15bd7 100644
--- a/gen_initramfs.sh
+++ b/gen_initramfs.sh
@@ -251,6 +251,23 @@ append_overlay(){
cd ${INITRAMFS_OVERLAY}
find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}"
}
+
+append_firmware() {
+ if [ ! -d "${FIRMWARE_DIR}" ]
+ then
+ gen_die "specified firmware directory (${FIRMWARE_DIR}) does not exist"
+ fi
+ if [ -d "${TEMP}/initramfs-firmware-temp" ]
+ then
+ rm -r "${TEMP}/initramfs-firmware-temp/"
+ fi
+ mkdir -p "${TEMP}/initramfs-firmware-temp/lib/firmware"
+ cp -a "${FIRMWARE_DIR}/*" ${TEMP}/initramfs-firmware-temp/lib/firmware/
+ find . -print | cpio ${CPIO_ARGS} --append -F "${CPIO}" \
+ || gen_die "appending firmware to cpio"
+ rm -r "${TEMP}/initramfs-firmware-temp/"
+}
+
print_list()
{
local x
@@ -449,6 +466,11 @@ create_initramfs() {
append_data 'blkid' "${DISKLABEL}"
append_data 'splash' "${SPLASH}"
+ if isTrue "${FIRMWARE}" && [ -n "${FIRMWARE_DIR}" ]
+ then
+ append_data 'firmware'
+ fi
+
# This should always be appended last
if [ "${INITRAMFS_OVERLAY}" != '' ]
then