155 |
mbargs="${HYPERVISOR_ARGS}" |
mbargs="${HYPERVISOR_ARGS}" |
156 |
adddracutargs="" |
adddracutargs="" |
157 |
addplymouthinitrd="" |
addplymouthinitrd="" |
158 |
DEBUGARG="systemd.debug" |
DEBUGARG="systemd.log_level=debug systemd.log_target=kmsg" |
159 |
|
|
160 |
usage() |
usage() |
161 |
{ |
{ |
165 |
echo " [--banner=<banner>] [--multiboot=multiboot]" >&2 |
echo " [--banner=<banner>] [--multiboot=multiboot]" >&2 |
166 |
echo " [--mbargs=mbargs] [--make-default] [--add-dracut-args]" >&2 |
echo " [--mbargs=mbargs] [--make-default] [--add-dracut-args]" >&2 |
167 |
echo " [--add-plymouth-initrd]" >&2 |
echo " [--add-plymouth-initrd]" >&2 |
168 |
echo " [--host-only] [--devtree=<devicetree.dtb>]" >&2 |
echo " [--host-only] [--devtree=<devicetree.dtb>] [--devtreedir=</devicetree/path/>]" >&2 |
169 |
echo " <--install | --remove | --update> <kernel-version>" >&2 |
echo " <--install | --remove | --update> <kernel-version>" >&2 |
170 |
echo " (ex: $(basename $0) --mkinitrd --depmod --install 2.4.7-2)" >&2 |
echo " (ex: $(basename $0) --mkinitrd --depmod --install 2.4.7-2)" >&2 |
171 |
exit 1 |
exit 1 |
177 |
then |
then |
178 |
[[ ${MAKEDEBUG} != yes ]] && return 0 |
[[ ${MAKEDEBUG} != yes ]] && return 0 |
179 |
[[ -n ${verbose} ]] && echo "- First, making a debug entry." |
[[ -n ${verbose} ]] && echo "- First, making a debug entry." |
180 |
declare -x debugtitle=" with debugging" |
if [[ ${ARCH} = s390 ]] || [[ ${ARCH} = s390x ]] |
181 |
|
then |
182 |
|
declare -x debugtitle="_with_debugging" |
183 |
|
else |
184 |
|
declare -x debugtitle=" with debugging" |
185 |
|
fi |
186 |
declare -x debugargs="${DEBUGARG}" |
declare -x debugargs="${DEBUGARG}" |
187 |
shift |
shift |
188 |
else |
else |
241 |
fi |
fi |
242 |
|
|
243 |
DEVTREE="" |
DEVTREE="" |
244 |
if [[ x${devtreefile} != x ]] && [ -f "${devtreefile}" ] |
if [[ -n ${devtreefile} ]] && [ -f ${devtreefile} ] |
245 |
then |
then |
246 |
[[ -n ${verbose} ]] && echo "found ${devtreefile} and using it with grubby" |
[[ -n ${verbose} ]] && echo "found ${devtreefile} and using it with grubby" |
247 |
DEVTREE="--devtree ${devtreefile}" |
DEVTREE="--devtree ${devtreefile}" |
248 |
fi |
fi |
249 |
|
|
250 |
|
DEVTREEDIR="" |
251 |
|
if [[ -n ${devtreedir} ]] && [ -d ${devtreedir} ] |
252 |
|
then |
253 |
|
[ -n ${verbose} ] && echo "found ${devtreedir} and using it with grubby" |
254 |
|
DEVTREEDIR="--devtreedir ${devtreedir}" |
255 |
|
fi |
256 |
|
|
257 |
# FIXME: is this a good heuristic to find out if we're on iSeries? |
# FIXME: is this a good heuristic to find out if we're on iSeries? |
258 |
if [ -d /proc/iSeries ] |
if [ -d /proc/iSeries ] |
259 |
then |
then |
295 |
--title=\"${title}\${debugtitle}\" --copy-default \ |
--title=\"${title}\${debugtitle}\" --copy-default \ |
296 |
--args=\"root=${rootdevice} ${kernargs} \${debugargs}\" \ |
--args=\"root=${rootdevice} ${kernargs} \${debugargs}\" \ |
297 |
--remove-kernel=\"TITLE=${title}\${debugtitle}\"" |
--remove-kernel=\"TITLE=${title}\${debugtitle}\"" |
|
rungrubby --debug ${ARGS} |
|
298 |
rungrubby ${ARGS} ${makedefault} |
rungrubby ${ARGS} ${makedefault} |
299 |
|
rungrubby --debug ${ARGS} |
300 |
else |
else |
301 |
[[ -n ${verbose} ]] && echo "${grubConfig} does not exist, not running grubby for grub 0.97" |
[[ -n ${verbose} ]] && echo "${grubConfig} does not exist, not running grubby for grub 0.97" |
302 |
fi |
fi |
310 |
${mbargs:+--mbargs=\"${mbargs}\"} \ |
${mbargs:+--mbargs=\"${mbargs}\"} \ |
311 |
--args=\"root=${rootdevice} ${kernargs} \${debugargs}\" \ |
--args=\"root=${rootdevice} ${kernargs} \${debugargs}\" \ |
312 |
--remove-kernel=\"TITLE=${title}\${debugtitle}\"" |
--remove-kernel=\"TITLE=${title}\${debugtitle}\"" |
|
rungrubby --debug ${ARGS} |
|
313 |
rungrubby ${ARGS} ${makedefault} |
rungrubby ${ARGS} ${makedefault} |
314 |
|
rungrubby --debug ${ARGS} |
315 |
else |
else |
316 |
[[ -n ${verbose} ]] && echo "${grub2Config} does not exist, not running grubby for grub 2" |
[[ -n ${verbose} ]] && echo "${grub2Config} does not exist, not running grubby for grub 2" |
317 |
fi |
fi |
326 |
${mbargs:+--mbargs=\"${mbargs}\"} \ |
${mbargs:+--mbargs=\"${mbargs}\"} \ |
327 |
--args=\"root=${rootdevice} ${kernargs} \${debugargs}\" \ |
--args=\"root=${rootdevice} ${kernargs} \${debugargs}\" \ |
328 |
--remove-kernel=\"TITLE=${title}\${debugtitle}\"" |
--remove-kernel=\"TITLE=${title}\${debugtitle}\"" |
|
rungrubby --debug ${ARGS} |
|
329 |
rungrubby ${ARGS} ${makedefault} |
rungrubby ${ARGS} ${makedefault} |
330 |
|
rungrubby --debug ${ARGS} |
331 |
else |
else |
332 |
[[ -n ${verbose} ]] && echo "${grub2EfiConfig} does not exist, not running grubby for grub 2 with UEFI" |
[[ -n ${verbose} ]] && echo "${grub2EfiConfig} does not exist, not running grubby for grub 2 with UEFI" |
333 |
fi |
fi |
342 |
${mbargs:+--mbargs=\"${mbargs}\"} \ |
${mbargs:+--mbargs=\"${mbargs}\"} \ |
343 |
--args=\"root=${rootdevice} ${kernargs} \${debugargs}\" \ |
--args=\"root=${rootdevice} ${kernargs} \${debugargs}\" \ |
344 |
--remove-kernel=\"TITLE=${version}\"" |
--remove-kernel=\"TITLE=${version}\"" |
|
rungrubby --debug ${ARGS} |
|
345 |
rungrubby ${ARGS} ${makedefault} |
rungrubby ${ARGS} ${makedefault} |
346 |
|
rungrubby --debug ${ARGS} |
347 |
|
|
348 |
if [[ -n ${runLilo} ]] |
if [[ -n ${runLilo} ]] |
349 |
then |
then |
364 |
[[ -n ${verbose} ]] && echo "adding ${version} to ${extlinuxConfig}" |
[[ -n ${verbose} ]] && echo "adding ${version} to ${extlinuxConfig}" |
365 |
|
|
366 |
ARGS="--extlinux -c ${extlinuxConfig} --add-kernel=${kernelImage} \ |
ARGS="--extlinux -c ${extlinuxConfig} --add-kernel=${kernelImage} \ |
367 |
|
${DEVTREEDIR} ${DEVTREE} \ |
368 |
${INITRD} --copy-default --title \"${title}\${debugtitle}\" \ |
${INITRD} --copy-default --title \"${title}\${debugtitle}\" \ |
369 |
${mbkernel:+--add-multiboot=\"${mbkernel}\"} \ |
${mbkernel:+--add-multiboot=\"${mbkernel}\"} \ |
370 |
${mbargs:+--mbargs=\"${mbargs}\"} \ |
${mbargs:+--mbargs=\"${mbargs}\"} \ |
371 |
--args=\"root=${rootdevice} ${kernargs} \${debugargs}\" \ |
--args=\"root=${rootdevice} ${kernargs} \${debugargs}\" \ |
372 |
--remove-kernel=\"TITLE=${title}\${debugtitle}\"" |
--remove-kernel=\"TITLE=${title}\${debugtitle}\"" |
|
rungrubby --debug ${ARGS} |
|
373 |
rungrubby ${ARGS} ${makedefault} |
rungrubby ${ARGS} ${makedefault} |
374 |
|
rungrubby --debug ${ARGS} |
375 |
else |
else |
376 |
[[ -n ${verbose} ]] && echo "${extlinuxConfig} does not exist, not running grubby for extlinux" |
[[ -n ${verbose} ]] && echo "${extlinuxConfig} does not exist, not running grubby for extlinux" |
377 |
fi |
fi |
518 |
fi |
fi |
519 |
fi |
fi |
520 |
|
|
521 |
|
DEVTREE="" |
522 |
|
if [[ -n ${devtreefile} ]] && [ -f ${devtreefile} ] |
523 |
|
then |
524 |
|
[[ -n ${verbose} ]] && echo "found ${devtreefile} and using it with grubby" |
525 |
|
DEVTREE="--devtree ${devtreefile}" |
526 |
|
fi |
527 |
|
|
528 |
|
DEVTREEDIR="" |
529 |
|
if [[ -n ${devtreedir} ]] && [ -d ${devtreedir} ] |
530 |
|
then |
531 |
|
[[ -n ${verbose} ]] && echo "found ${devtreedir} and using it with grubby" |
532 |
|
DEVTREEDIR="--devtreedir ${devtreedir}" |
533 |
|
fi |
534 |
|
|
535 |
if [[ -n ${cfgGrub} ]] |
if [[ -n ${cfgGrub} ]] |
536 |
then |
then |
537 |
[[ -n ${verbose} ]] && echo "updating ${version} from ${grubConfig}" |
[[ -n ${verbose} ]] && echo "updating ${version} from ${grubConfig}" |
540 |
${removeargs:+--remove-args=\"${removeargs}\"} \ |
${removeargs:+--remove-args=\"${removeargs}\"} \ |
541 |
${mbkernel:+--add-multiboot=\"${mbkernel}\"} \ |
${mbkernel:+--add-multiboot=\"${mbkernel}\"} \ |
542 |
--title=\"${title}\${debugtitle}\"" |
--title=\"${title}\${debugtitle}\"" |
|
rungrubby --debug ${ARGS} |
|
543 |
rungrubby ${ARGS} |
rungrubby ${ARGS} |
544 |
|
rungrubby --debug ${ARGS} |
545 |
else |
else |
546 |
[[ -n ${verbose} ]] && echo "${grubConfig} does not exist, not running grubby" |
[[ -n ${verbose} ]] && echo "${grubConfig} does not exist, not running grubby" |
547 |
fi |
fi |
553 |
${kernargs:+--args=\"${kernargs}\"} \ |
${kernargs:+--args=\"${kernargs}\"} \ |
554 |
${removeargs:+--remove-args=\"${removeargs}\"} \ |
${removeargs:+--remove-args=\"${removeargs}\"} \ |
555 |
--title=\"${title}\${debugtitle}\"" |
--title=\"${title}\${debugtitle}\"" |
|
rungrubby --debug ${ARGS} |
|
556 |
rungrubby ${ARGS} |
rungrubby ${ARGS} |
557 |
|
rungrubby --debug ${ARGS} |
558 |
else |
else |
559 |
[[ -n ${verbose} ]] && echo "${grub2Config} does not exist, not running grubby" |
[[ -n ${verbose} ]] && echo "${grub2Config} does not exist, not running grubby" |
560 |
fi |
fi |
566 |
${INITRD} ${kernargs:+--args=\"${kernargs}\"} \ |
${INITRD} ${kernargs:+--args=\"${kernargs}\"} \ |
567 |
${removeargs:+--remove-args=\"${removeargs}\"} \ |
${removeargs:+--remove-args=\"${removeargs}\"} \ |
568 |
--title=\"${title}\${debugtitle}\"" |
--title=\"${title}\${debugtitle}\"" |
|
rungrubby --debug ${ARGS} |
|
569 |
rungrubby ${ARGS} |
rungrubby ${ARGS} |
570 |
|
rungrubby --debug ${ARGS} |
571 |
else |
else |
572 |
[[ -n ${verbose} ]] && echo "${grub2EfiConfig} does not exist, not running grubby" |
[[ -n ${verbose} ]] && echo "${grub2EfiConfig} does not exist, not running grubby" |
573 |
fi |
fi |
579 |
${kernargs:+--args=\"${kernargs}\"} \ |
${kernargs:+--args=\"${kernargs}\"} \ |
580 |
${removeargs:+--remove-args=\"${removeargs}\"} \ |
${removeargs:+--remove-args=\"${removeargs}\"} \ |
581 |
--title=\"${title}\${debugtitle}\"" |
--title=\"${title}\${debugtitle}\"" |
|
rungrubby --debug ${ARGS} |
|
582 |
rungrubby ${ARGS} |
rungrubby ${ARGS} |
583 |
|
rungrubby --debug ${ARGS} |
584 |
|
|
585 |
if [[ -n ${runLilo} ]] |
if [[ -n ${runLilo} ]] |
586 |
then |
then |
634 |
then |
then |
635 |
[[ -n ${verbose} ]] && echo "updating ${version} from ${extlinuxConfig}" |
[[ -n ${verbose} ]] && echo "updating ${version} from ${extlinuxConfig}" |
636 |
ARGS="--extlinux -c ${extlinuxConfig} --update-kernel=${kernelImage} \ |
ARGS="--extlinux -c ${extlinuxConfig} --update-kernel=${kernelImage} \ |
637 |
${INITRD} ${kernargs:+--args=\"${kernargs}\"} \ |
${DEVTREE} ${DEVTREEDIR} ${INITRD} ${kernargs:+--args=\"${kernargs}\"} \ |
638 |
${removeargs:+--remove-args=\"${removeargs}\"} \ |
${removeargs:+--remove-args=\"${removeargs}\"} \ |
639 |
--title=\"${title}\${debugtitle}\"" |
--title=\"${title}\${debugtitle}\"" |
|
rungrubby --debug ${ARGS} |
|
640 |
rungrubby ${ARGS} |
rungrubby ${ARGS} |
641 |
|
rungrubby --debug ${ARGS} |
642 |
else |
else |
643 |
[[ -n ${verbose} ]] && echo "${extlinuxConfig} does not exist, not running grubby" |
[[ -n ${verbose} ]] && echo "${extlinuxConfig} does not exist, not running grubby" |
644 |
fi |
fi |
684 |
fi |
fi |
685 |
} |
} |
686 |
|
|
687 |
|
# kernel image for 2.4 is kernel |
688 |
|
if [[ ${ARCH} = ppc64 ]] || [[ ${ARCH} = ppc ]] |
689 |
|
then |
690 |
|
if [[ ${kernelmajor} = 2.4 ]] |
691 |
|
then |
692 |
|
kernelName=kernel |
693 |
|
fi |
694 |
|
fi |
695 |
|
|
696 |
while [ $# -gt 0 ] |
while [ $# -gt 0 ] |
697 |
do |
do |
714 |
fi |
fi |
715 |
;; |
;; |
716 |
|
|
717 |
|
--devtreedir*) |
718 |
|
if [[ $1 == --devtreedir\=* ]] |
719 |
|
then |
720 |
|
devtreedir=${1#--devtreedir=} |
721 |
|
else |
722 |
|
devtreedir=$2 |
723 |
|
shift |
724 |
|
fi |
725 |
|
;; |
726 |
|
|
727 |
--dracut) |
--dracut) |
728 |
dracut=--dracut |
dracut=--dracut |
729 |
;; |
;; |
839 |
fi |
fi |
840 |
;; |
;; |
841 |
|
|
842 |
|
--kernel-name*) |
843 |
|
if [[ $1 == --kernel-name\=* ]] |
844 |
|
then |
845 |
|
kernelName=${1#--kernel-name=} |
846 |
|
else |
847 |
|
kernelName="$2" |
848 |
|
shift |
849 |
|
fi |
850 |
|
;; |
851 |
|
|
852 |
-v) |
-v) |
853 |
verbose=-v |
verbose=-v |
854 |
;; |
;; |
887 |
|
|
888 |
kernelmajor=$(echo ${kernel} | cut -d . -f 1,2) |
kernelmajor=$(echo ${kernel} | cut -d . -f 1,2) |
889 |
|
|
|
# kernel image for 2.4 is kernel |
|
|
if [[ ${ARCH} = ppc64 ]] || [[ ${ARCH} = ppc ]] |
|
|
then |
|
|
if [[ ${kernelmajor} = 2.4 ]] |
|
|
then |
|
|
kernelName=kernel |
|
|
fi |
|
|
fi |
|
|
|
|
890 |
[[ ${kernelImage} ]] || kernelImage="${bootPrefix}/${kernelName}-${version}" |
[[ ${kernelImage} ]] || kernelImage="${bootPrefix}/${kernelName}-${version}" |
891 |
|
|
892 |
# set the initrd file based on arch; ia64 is the only currently known oddball |
# set the initrd file based on arch; ia64 is the only currently known oddball |
907 |
fi |
fi |
908 |
[[ -n ${verbose} ]] && echo "initrdfile is ${initrdfile}" |
[[ -n ${verbose} ]] && echo "initrdfile is ${initrdfile}" |
909 |
|
|
910 |
# add dracut i18n, keyboard and plymouth kernel args if requested |
if [[ ${ARCH} =~ armv[5|7].*l ]] |
|
if [[ -n ${dracut} ]] || [[ -n ${adddracutargs} ]] |
|
911 |
then |
then |
912 |
if [ -r /etc/vconsole.conf ] |
if [[ -z ${SHIPSDTB} ]] || [[ ${SHIPSDTB} != yes ]] |
913 |
then |
then |
914 |
. /etc/vconsole.conf |
if [[ -n ${dtbfile} ]] && [ -f ${bootPrefix}/dtb-${version}/${dtbfile} ] |
|
|
|
|
for i in SYSFONT SYSFONTACM UNIMAP KEYTABLE |
|
|
do |
|
|
val=$(eval echo \$$i) |
|
|
[[ -n ${val} ]] && kernargs="${kernargs} ${i}=${val}" |
|
|
done |
|
|
else |
|
|
if [ -r /etc/conf.d/consolefont ] |
|
915 |
then |
then |
916 |
. /etc/conf.d/consolefont |
devtreefile="${bootPrefix}/dtb-${version}/${dtbfile}" |
917 |
|
[[ -n ${verbose} ]] && echo "devtreefile is ${devtreefile}" |
918 |
if [[ -n ${CONSOLEFONT} ]] |
elif [ -d ${bootPrefix}/dtb-${version}/ ] |
|
then |
|
|
kernargs="${kernargs} SYSFONT=${CONSOLEFONT}" |
|
|
fi |
|
|
fi |
|
|
|
|
|
if [ -r /etc/conf.d/keymap ] |
|
919 |
then |
then |
920 |
. /etc/conf.d/keymap |
devtreedir="${bootPrefix}/dtb-${version}/" |
921 |
|
[[ -n ${verbose} ]] && echo "devtreedir is ${devtreedir}" |
|
if [[ -n ${KEYMAP} ]] |
|
|
then |
|
|
kernargs="${kernargs} KEYTABLE=${KEYMAP}" |
|
|
fi |
|
922 |
fi |
fi |
923 |
fi |
fi |
924 |
|
fi |
925 |
|
[[ -n ${verbose} ]] && echo "devtreedir is ${devtreedir}" |
926 |
|
|
927 |
if [ -r /etc/locale.conf ] |
# add dracut kernel args if requested |
928 |
then |
if [[ -n ${dracut} ]] && [[ -n ${adddracutargs} ]] |
929 |
. /etc/locale.conf |
[ -r /etc/vconsole.conf ] && . /etc/vconsole.conf |
930 |
|
[ -r /etc/locale.conf ] && . /etc/locale.conf |
931 |
|
|
932 |
if [[ -n ${LANG} ]] |
while read opt rd_opt |
933 |
then |
do |
934 |
kernargs="${kernargs} LANG=${LANG}" |
[ -n "${!opt}" ] && kernargs="$kernargs $rd_opt=\"${!opt}\"" |
935 |
fi |
done <<< 'KEYMAP rd.vconsole.keymap |
936 |
fi |
FONT rd.vconsole.font |
937 |
|
FONT_MAP rd.vconsole.font.map |
938 |
|
FONT_UNIMAP rd.vconsole.font.unimap |
939 |
|
UNICODE rd.vconsole.font.unicode |
940 |
|
EXT_KEYMAP rd.vconsole.keymap.ext |
941 |
|
LANG rd.locale.LANG |
942 |
|
LC_ALL rd.locale.LC_ALL' |
943 |
fi |
fi |
944 |
|
|
945 |
# set this as the default if we have the package and it matches |
# set this as the default if we have the package and it matches |
946 |
if [[ ${mode} = --install ]] && [[ ${UPDATEDEFAULT} = yes ]] && [[ -n ${package} ]] && |
if [[ ${mode} = --install ]] && [[ ${UPDATEDEFAULT} = yes ]] && [[ -n ${package} ]] && [[ -n ${DEFAULTKERNEL} ]] |
|
[[ -n ${DEFAULTKERNEL} ]] && [[ ${package} = ${DEFAULTKERNEL} ]] |
|
947 |
then |
then |
948 |
makedefault="--make-default" |
if [[ ${package} = ${DEFAULTKERNEL} ]] || [[ ${package}-core = ${DEFAULTKERNEL} ]] |
949 |
[[ -n ${verbose} ]] && echo "making it the default based on config" |
then |
950 |
|
makedefault="--make-default" |
951 |
|
[[ -n ${verbose} ]] && echo "making it the default based on config" |
952 |
|
fi |
953 |
fi |
fi |
954 |
|
|
955 |
if [[ ${moddep} = make ]] |
if [[ ${moddep} = make ]] |
1034 |
# if we mounted the U-Boot directory, unmount it. |
# if we mounted the U-Boot directory, unmount it. |
1035 |
[[ -n ${mounted} ]] && umount ${ubootDir} |
[[ -n ${mounted} ]] && umount ${ubootDir} |
1036 |
|
|
1037 |
|
# make sure changes make it to the disk. |
1038 |
|
# if /boot is a mountpoint, force the meta data on disk |
1039 |
|
# to by-pass writeback delay. |
1040 |
|
# PPC64LE-only to deal with Petitboot issues |
1041 |
|
if [[ ${ARCH} = ppc64le ]] |
1042 |
|
then |
1043 |
|
sync && mountpoint -q /boot && fsfreeze -f /boot && fsfreeze -u /boot |
1044 |
|
fi |
1045 |
|
|
1046 |
exit 0 |
exit 0 |