--- trunk/grubby/new-kernel-pkg 2012/02/18 11:05:14 1756 +++ trunk/grubby/new-kernel-pkg 2012/07/02 13:07:56 1848 @@ -25,6 +25,32 @@ # along with this program. If not, see . # +read_os_release() +{ + local NAME + local ID + local Version + local Version_ID + local PRETTY_NAME + local ANSI_COLOR + local CPE_NAME + + if [[ -f /etc/os-release ]] + then + source /etc/os-release + + case $1 in + name) echo "${NAME}" ;; + id) echo "${ID}" ;; + version) echo "${Version}" ;; + version_id) echo "${Version_ID}" ;; + pretty_name) echo "${PRETTY_NAME}" ;; + ansi_color) echo "${ANSI_COLOR}" ;; + cpe_name) echo "${CPE_NAME}" ;; + esac + fi +} + PATH=/sbin:/bin:$PATH lilo=/sbin/lilo @@ -65,6 +91,7 @@ elif [[ ${ARCH} = ppc64 ]] || [[ ${ARCH} = ppc ]] then liloConfig=/etc/yaboot.conf + grub2Config=/boot/grub/grub.cfg bootPrefix=/boot lilo=/sbin/ybin liloFlag=yaboot @@ -85,12 +112,11 @@ lilo=/sbin/zipl runLilo="yes" isx86="" -elif [[ ${ARCH} = armv7l ]] || [[ ${ARCH} = armv7hl ]] +elif [[ ${ARCH} =~ armv[5|7].*l ]] then - machine=$(grep "^Hardware" /proc/cpuinfo | sed 's/Hardware\s*:\s*//') liloConfig="" bootPrefix=/boot - ubootDir=${UBOOT_DIR:-"/boot/uboot"} + ubootDir=${UBOOT_DIR:-"/boot"} ubootScript=$ubootDir/${UBOOT_SCR:-"boot.scr"} ubootKList=${UBOOT_KLIST:-"klist.txt"} ubootDevice=/dev/${UBOOT_DEVICE:-"mmcblk0p1"} @@ -99,11 +125,21 @@ mounted="" liloFlag="" isx86="" - if [[ ${machine} == "OMAP3 Beagle Board" ]] || [[ ${machine} == "OMAP4 Panda board" ]] + if [[ -z ${UBOOT_IMGADDR} ]] then - ubootAddress=0x80008000 + machine=${MACHINE:-$(grep "^Hardware" /proc/cpuinfo | sed 's/Hardware\s*:\s*//')} + # A few machines use an alternate kernel load address + if [[ "${machine}" =~ ^OMAP[3|4].* ]] + then + ubootAddress=0x80008000 + elif [[ "${machine}" =~ ^Efika\ MX.* ]] + then + ubootAddress=0x90008000 + else + ubootAddress=0x00008000 + fi else - ubootAddress=0x00008000 + ubootAddress="${UBOOT_IMGADDR}" fi else # this leaves i?86 and x86_64 @@ -198,12 +234,15 @@ if [[ -n ${banner} ]] then - title="${banner} (${version})" + title="${banner} [ ${version} ]" elif [ -f /etc/mageversion ] then - title="Magellan Linux $(< /etc/mageversion) (${version})" + title="Magellan Linux $(< /etc/mageversion) [ ${version} ]" + elif [[ $(read_os_release id) = magellan ]] + then + title="$(read_os_release name) $(read_os_release version_id) [ ${version} ]" else - title="Magellan Linux (${version})" + title="Magellan Linux [ ${version} ]" fi ${grubby} --grub -c ${grubConfig} \ --add-kernel=${bootPrefix}/${kernelName}-${version} \ @@ -219,12 +258,15 @@ if [[ -n ${banner} ]] then - title="${banner} (${version})" + title="${banner} [ ${version} ]" elif [ -f /etc/mageversion ] then - title="Magellan Linux $(< /etc/mageversion) (${version})" + title="Magellan Linux $(< /etc/mageversion) [ ${version} ]" + elif [[ $(read_os_release id) = magellan ]] + then + title="$(read_os_release name) $(read_os_release version_id) [ ${version} ]" else - title="Magellan Linux (${version})" + title="Magellan Linux [ ${version} ]" fi ${grubby} --grub2 -c ${grub2Config} \ --add-kernel=${bootPrefix}/${kernelName}-${version} \ @@ -241,12 +283,15 @@ if [[ -n ${banner} ]] then - title="${banner} (${version})" + title="${banner} [ ${version} ]" elif [ -f /etc/mageversion ] then - title="Magellan Linux $(< /etc/mageversion) (${version})" + title="Magellan Linux $(< /etc/mageversion) [ ${version} ]" + elif [[ $(read_os_release id) = magellan ]] + then + title="$(read_os_release name) $(read_os_release version_id) [ ${version} ]" else - title="Magellan Linux (${version})" + title="Magellan Linux [ ${version} ]" fi ${grubby} --grub2 -c ${grub2EfiConfig} \ --add-kernel=${bootPrefix}/${kernelName}-${version} \ @@ -288,12 +333,15 @@ if [[ -n ${banner} ]] then - title="${banner} (${version})" + title="${banner} [ ${version} ]" elif [ -f /etc/mageversion ] then - title="Magellan Linux $(< /etc/mageversion) (${version})" + title="Magellan Linux $(< /etc/mageversion) [ ${version} ]" + elif [[ $(read_os_release id) = magellan ]] + then + title="$(read_os_release name) $(read_os_release version_id) [ ${version} ]" else - title="Magellan Linux (${version})" + title="Magellan Linux [ ${version} ]" fi ${grubby} --extlinux -c ${extlinuxConfig} \ --add-kernel=${bootPrefix}/${kernelName}-${version} \ @@ -367,7 +415,7 @@ then tmpKList=$(mktemp ${ubootDir}/${ubootKList}.XXXX) curversion=$(tail -n1 ${ubootDir}/${ubootKList}) - sed "/${version}/d" ${ubootDir}/${ubootKList} > ${tmpKList} + sed "/$version$/d" ${ubootDir}/${ubootKList} > ${tmpKList} newversion=$(tail -n1 ${tmpKList}) if [ -f ${ubootDir}/uImage-${newversion} ] && [ -f ${ubootDir}/uInitrd-${newversion} ] then