diff options
author | Artem Bityutskiy <artem.bityutskiy@linux.intel.com> | 2013-06-26 13:45:25 +0300 |
---|---|---|
committer | Artem Bityutskiy <artem.bityutskiy@linux.intel.com> | 2013-06-26 13:45:25 +0300 |
commit | 968dfdb8db6588422f0eb3f18500fbb5949badc4 (patch) | |
tree | 230a74f595b6110248971b6686e29d17ca3cff35 | |
parent | eb1a2437212243066255b8937aafb5a9e46733a4 (diff) | |
download | setup-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-x | setup-efi-ivi | 46 | ||||
-rwxr-xr-x | setup-gummiboot-conf | 2 |
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 |