summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtem Bityutskiy <artem.bityutskiy@linux.intel.com>2013-06-26 13:45:25 +0300
committerArtem Bityutskiy <artem.bityutskiy@linux.intel.com>2013-06-26 13:45:25 +0300
commit968dfdb8db6588422f0eb3f18500fbb5949badc4 (patch)
tree230a74f595b6110248971b6686e29d17ca3cff35
parenteb1a2437212243066255b8937aafb5a9e46733a4 (diff)
downloadsetup-efi-ivi-968dfdb8db6588422f0eb3f18500fbb5949badc4.tar.gz
setup-efi-ivi-968dfdb8db6588422f0eb3f18500fbb5949badc4.tar.bz2
setup-efi-ivi-968dfdb8db6588422f0eb3f18500fbb5949badc4.zip
setup-efi-ivi: generate configuration for all kernels
Generate gummiboot configuration files for all installed kernels, not only for th newest kernel. Make the newest kernel to be the default, though. Signed-off-by: Artem Bityutskiy <artem.bityutskiy@linux.intel.com>
-rwxr-xr-xsetup-efi-ivi46
-rwxr-xr-xsetup-gummiboot-conf2
2 files changed, 27 insertions, 21 deletions
diff --git a/setup-efi-ivi b/setup-efi-ivi
index 3d3dd96..60dc818 100755
--- a/setup-efi-ivi
+++ b/setup-efi-ivi
@@ -56,8 +56,8 @@ done
[ "$boot_fstype" == "vfat" ] || \
fatal "boot partition has to have type \"vfat\""
-# Find the current path to the boot partition
-boot_mountpoint="$INSTALLERFW_MOUNT_PREFIX/boot"
+# Get the ESP location
+esp="$INSTALLERFW_MOUNT_PREFIX/boot"
# Make sure gummiboot is installed in the system
if ! ([ -f /usr/lib/gummiboot/gummibootia32.efi ] || \
@@ -66,29 +66,35 @@ if ! ([ -f /usr/lib/gummiboot/gummibootia32.efi ] || \
fi
# Install gummiboot
-mkdir -p "$boot_mountpoint/EFI/boot"
+mkdir -p "$esp/EFI/boot"
[ -f "/usr/lib/gummiboot/gummibootia32.efi" ] &&
- cp "/usr/lib/gummiboot/gummibootia32.efi" "$boot_mountpoint/EFI/boot/bootia32.efi"
+ cp "/usr/lib/gummiboot/gummibootia32.efi" "$esp/EFI/boot/bootia32.efi"
[ -f "/usr/lib/gummiboot/gummibootx64.efi" ] &&
- cp "/usr/lib/gummiboot/gummibootx64.efi" "$boot_mountpoint/boot/EFI/boot/bootx64.efi"
+ cp "/usr/lib/gummiboot/gummibootx64.efi" "$esp/boot/EFI/boot/bootx64.efi"
-# Find out the latest kernel binary in boot partition
-vmlinuz="$(ls -1 "$boot_mountpoint" | grep "^vmlinuz-" | sort -r | head -n1)"
-vmlinuz_version="$(printf "%s" $vmlinuz | sed -e 's/vmlinuz-\(.*\)/\1/')"
+# Generate the list of installed kernels
+kernels="$(ls -1 "$esp" | grep "^vmlinuz-" | sort -r | head -n1)"
+# Get the newest kernel
+newest_kernel="$(printf "%s" "$kernels" | head -n1)"
# Create the gummiboot configuration file
-mkdir -p "$boot_mountpoint/loader"
+mkdir -p "$esp/loader"
-cat > "$boot_mountpoint/loader/loader.conf" <<-EOF
-timeo ut 0
-default vmlinuz-$vmlinuz_version.conf
+cat > "$esp/loader/loader.conf" <<-EOF
+timeout 0
+default $newest_kernel.conf
EOF
-# Create the default gummiboot entry
-mkdir -p "$boot_mountpoint/loader/entries"
-cat > "$boot_mountpoint/loader/entries/vmlinuz-$vmlinuz_version.conf" <<-EOF
-title Tizen IVI 3.0
-version $vmlinuz_version
-efi/$vmlinuz
-options $INSTALLERFW_KERNEL_OPTS root=PARTUUID=$root_partuuid
-EOF
+# Create a gummiboot entry for each kernel
+mkdir -p "$esp/loader/entries"
+printf "%s\n" "$kernels" | while IFS= read -r kernel; do
+
+ kernel_version="$(printf "%s" $kernel | sed -e 's/vmlinuz-\(.*\)/\1/')"
+
+ cat > "$esp/loader/entries/$kernel.conf" <<-EOF
+ title Tizen IVI 3.0
+ version $kernel_version
+ efi/$kernel
+ options $INSTALLERFW_KERNEL_OPTS root=PARTUUID=$root_partuuid
+ EOF
+done
diff --git a/setup-gummiboot-conf b/setup-gummiboot-conf
index 4af3d56..1fa88fd 100755
--- a/setup-gummiboot-conf
+++ b/setup-gummiboot-conf
@@ -70,7 +70,7 @@ pattern="$(printf "%s" "$pattern" | sed -e '/[ \t]*linux[ \t]\+/d')"
pattern="$(printf "%s" "$pattern" | sed -e '/[ \t]*efi[ \t]\+/d')"
pattern="$(printf "%s" "$pattern" | sed -e '/[ \t]*version[ \t]\+/d')"
-# Create an entry for every new kernel
+# Create a gummiboot entry for every new kernel
printf "%s\n" "$kernels" | while IFS= read -r kernel; do
if [ -f "$entries_dir/$kernel.conf" ]; then