Magellan Linux

Diff of /tags/grubby-8_1/new-kernel-pkg

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/mkinitrd-magellan/grubby/new-kernel-pkg revision 925 by niro, Wed Oct 28 13:29:18 2009 UTC trunk/grubby/new-kernel-pkg revision 1431 by niro, Tue Jul 19 17:02:36 2011 UTC
# Line 89  fi Line 89  fi
89  mode=""  mode=""
90  version=""  version=""
91  initrd=""  initrd=""
92    dracut=""
93    dracuthostonly=""
94  initrdfile=""  initrdfile=""
95  moddep=""  moddep=""
96  verbose=""  verbose=""
# Line 96  makedefault="" Line 98  makedefault=""
98  package=""  package=""
99  mbkernel=""  mbkernel=""
100  mbargs=""  mbargs=""
101    adddracutargs=""
102    addplymouthinitrd=""
103    
104  usage()  usage()
105  {  {
106   echo "Usage: $(basename $0) [-v] [--mkinitrd] [--rminitrd]" >&2   echo "Usage: $(basename $0) [-v] [--mkinitrd] [--rminitrd] [--dracut]" >&2
107   echo "       [--initrdfile=<initrd-image>] [--depmod] [--rmmoddep]" >&2   echo "       [--initrdfile=<initrd-image>] [--depmod] [--rmmoddep]" >&2
108   echo "       [--kernel-args=<args>] [--remove-args=<args>]" >&2   echo "       [--kernel-args=<args>] [--remove-args=<args>]" >&2
109   echo "       [--banner=<banner>] [--multiboot=multiboot]" >&2   echo "       [--banner=<banner>] [--multiboot=multiboot]" >&2
110   echo "       [--mbargs=mbargs] [--make-default]" >&2   echo "       [--mbargs=mbargs] [--make-default] [--add-dracut-args]" >&2
111     echo "       [--add-plymouth-initrd]" >&2
112     echo "       [--host-only]" >&2
113   echo "       <--install | --remove | --update> <kernel-version>" >&2   echo "       <--install | --remove | --update> <kernel-version>" >&2
114   echo "       (ex: $(basename $0) --mkinitrd --depmod --install 2.4.7-2)" >&2   echo "       (ex: $(basename $0) --mkinitrd --depmod --install 2.4.7-2)" >&2
115   exit 1   exit 1
116  }  }
117    
118    run_grub2()
119    {
120     if [ -d /boot/grub -a -x /sbin/grub-mkconfig ]
121     then
122     cp /boot/grub/grub.cfg /boot/grub/grub.cfg.old
123     /sbin/grub-mkconfig -o /boot/grub/grub.cfg
124     fi
125    }
126    
127  install()  install()
128  {  {
129   # XXX kernel should be able to be specified also (or work right on ia64)   # XXX kernel should be able to be specified also (or work right on ia64)
# Line 123  install() Line 138  install()
138   then   then
139   [[ -n ${verbose} ]] && echo "found ${initrdfile} and using it with grubby"   [[ -n ${verbose} ]] && echo "found ${initrdfile} and using it with grubby"
140   INITRD="--initrd ${initrdfile}"   INITRD="--initrd ${initrdfile}"
141    
142     if [[ -n ${addplymouthinitrd} ]]
143     then
144     INITRD="${INITRD} --extra-initrd ${bootPrefix}/initrd-plymouth.img"
145     fi
146   fi   fi
147    
148   # 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?
# Line 141  install() Line 161  install()
161   return   return
162   fi   fi
163    
164     # Run grub2's configuration update in parallel, if it is installed
165     run_grub2
166    
167   # get the root filesystem to use   # get the root filesystem to use
168   rootdevice=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $1; }}' /etc/fstab)   rootdevice=$(awk '{ if ($1 !~ /^[ \t]*#/ && $2 == "/") { print $1; }}' /etc/fstab)
169    
# Line 184  install() Line 207  install()
207   if [[ -n ${runLilo} ]]   if [[ -n ${runLilo} ]]
208   then   then
209   [[ -n ${verbose} ]] && echo "running ${lilo}"   [[ -n ${verbose} ]] && echo "running ${lilo}"
210   if [ ! -x $lilo ]   if [ ! -x ${lilo} ]
211   then   then
212   [[ -n ${verbose} ]] && echo "${lilo} does not exist"   [[ -n ${verbose} ]] && echo "${lilo} does not exist"
213   else   else
# Line 206  remove() Line 229  remove()
229   return   return
230   fi   fi
231    
232     # Run grub2's configuration update in parallel, if it is installed
233     run_grub2
234    
235   if [[ -n ${cfgGrub} ]]   if [[ -n ${cfgGrub} ]]
236   then   then
237   [[ -n ${verbose} ]] && echo "removing ${version} from ${grubConfig}"   [[ -n ${verbose} ]] && echo "removing ${version} from ${grubConfig}"
# Line 217  remove() Line 243  remove()
243   if [[ -n ${cfgLilo} ]]   if [[ -n ${cfgLilo} ]]
244   then   then
245   [[ -n ${verbose} ]] && echo "removing ${version} from ${liloConfig}"   [[ -n ${verbose} ]] && echo "removing ${version} from ${liloConfig}"
246   ${grubby} --remove-kernel=${bootPrefix}/${kernelName}-${version}    \   ${grubby} --remove-kernel=${bootPrefix}/${kernelName}-${version} --${liloFlag}
  --${liloFlag}  
247    
248   if [[ -n ${runLilo} ]]   if [[ -n ${runLilo} ]]
249   then   then
# Line 237  remove() Line 262  remove()
262    
263  update()  update()
264  {  {
265     if [ ! -f ${bootPrefix}/${kernelName}-${version} ]
266     then
267     [[ -n ${verbose} ]] && echo "kernel for ${version} does not exist, not running grubby"
268     return
269     fi
270    
271     INITRD=""
272     if [ -f ${initrdfile} ]
273     then
274     [[ -n ${verbose} ]] && echo "found ${initrdfile} and using it with grubby"
275     INITRD="--initrd ${initrdfile}"
276    
277     if [[ -n ${addplymouthinitrd} ]]
278     then
279     INITRD="${INITRD} --extra-initrd ${bootPrefix}/initrd-plymouth.img"
280     fi
281     fi
282    
283     # Run grub2's configuration update in parallel, if it is installed
284     run_grub2
285    
286   if [[ -n ${cfgGrub} ]]   if [[ -n ${cfgGrub} ]]
287   then   then
288   [[ -n ${verbose} ]] && echo "updating ${version} from ${grubConfig}"   [[ -n ${verbose} ]] && echo "updating ${version} from ${grubConfig}"
289   ${grubby} --update-kernel=${bootPrefix}/${kernelName}-${version} \   ${grubby} --update-kernel=${bootPrefix}/${kernelName}-${version} \
290     ${INITRD} \
291   ${kernargs:+--args="${kernargs}"} \   ${kernargs:+--args="${kernargs}"} \
292   ${removeargs:+--remove-args="${removeargs}"}   ${removeargs:+--remove-args="${removeargs}"}
293   else   else
# Line 251  update() Line 298  update()
298   then   then
299   [[ -n ${verbose} ]] && echo "updating ${version} from ${liloConfig}"   [[ -n ${verbose} ]] && echo "updating ${version} from ${liloConfig}"
300   ${grubby} --update-kernel=${bootPrefix}/${kernelName}-${version} \   ${grubby} --update-kernel=${bootPrefix}/${kernelName}-${version} \
301     ${INITRD} \
302   ${kernargs:+--args="${kernargs}"} \   ${kernargs:+--args="${kernargs}"} \
303   ${removeargs:+--remove-args="${removeargs}"} \   ${removeargs:+--remove-args="${removeargs}"} \
304   --${liloFlag}   --${liloFlag}
# Line 272  update() Line 320  update()
320    
321  mkinitrd()  mkinitrd()
322  {  {
323     if [[ -n ${dracut} ]]
324     then
325     tool="/sbin/dracut ${dracuthostonly} -f ${initrdfile} ${version}"
326     else
327     tool="/sbin/mkinitrd --allow-missing -f ${initrdfile} ${version}"
328     fi
329   [[ -n ${verbose} ]] && echo "creating initrd ${initrdfile} using ${version}"   [[ -n ${verbose} ]] && echo "creating initrd ${initrdfile} using ${version}"
330   /sbin/mkinitrd --allow-missing -f ${initrdfile} ${version}   ${tool}
331   rc=$?   rc=$?
332   if [ ${rc} != 0 ]   if [ ${rc} != 0 ]
333   then   then
# Line 312  do Line 366  do
366   initrd="remove"   initrd="remove"
367   ;;   ;;
368    
369     --dracut)
370     dracut=--dracut
371     ;;
372    
373     --host-only)
374     dracuthostonly=-H
375     ;;
376    
377   --initrdfile*)   --initrdfile*)
378   if echo $1 | grep '=' >/dev/null   if echo $1 | grep '=' >/dev/null
379   then   then
# Line 335  do Line 397  do
397   --remove-args*)   --remove-args*)
398   if echo $1 | grep '=' >/dev/null   if echo $1 | grep '=' >/dev/null
399   then   then
400   removeargs=$(echo $1 | sed 's/^--remove-args=//')   removeargs=$(echo $1 | sed 's/^--remove-args=//')
401   else   else
402   removeargs=$2   removeargs=$2
403   shift   shift
# Line 395  do Line 457  do
457   fi   fi
458   ;;   ;;
459    
460     --add-dracut-args)
461     adddracutargs=--add-dracut-args
462     ;;
463    
464     --add-plymouth-initrd)
465     addplymouthinitrd=--add-plymouth-initrd
466     ;;
467    
468   -v)   -v)
469   verbose=-v   verbose=-v
470   ;;   ;;
# Line 433  fi Line 503  fi
503    
504  kernelmajor=$(echo ${kernel} | cut -d . -f 1,2)  kernelmajor=$(echo ${kernel} | cut -d . -f 1,2)
505    
506  # kernel image for 2.4 is vmlinux  # kernel image for 2.4 is kernel
507  if [[ ${ARCH} = ppc64 ]] || [[ ${ARCH} = ppc ]]  if [[ ${ARCH} = ppc64 ]] || [[ ${ARCH} = ppc ]]
508  then  then
509   if [[ ${kernelmajor} = 2.4 ]]   if [[ ${kernelmajor} = 2.4 ]]
# Line 446  fi Line 516  fi
516  if [[ -z ${initrdfile} ]]  if [[ -z ${initrdfile} ]]
517  then  then
518   INITRD_NAME_PREFIX="initrd"   INITRD_NAME_PREFIX="initrd"
519     if [[ -n ${dracut} ]]
520     then
521     INITRD_NAME_PREFIX="initramfs"
522     fi
523    
524   if [[ $(uname -m) = ia64 ]]   if [[ $(uname -m) = ia64 ]]
525   then   then
# Line 456  then Line 530  then
530  fi  fi
531  [[ -n ${verbose} ]] && echo "initrdfile is ${initrdfile}"  [[ -n ${verbose} ]] && echo "initrdfile is ${initrdfile}"
532    
533    # add dracut i18n, keyboard and plymouth kernel args if requested
534    if [[ -n ${dracut} ]] || [[ -n ${adddracutargs} ]]
535    then
536     [ -r /etc/conf.d/keymap ] && . /etc/conf.d/keymap
537     [ -r /etc/conf.d/consolefont ] && . /etc/conf.d/consolefont
538    
539     if [[ -n ${KEYMAP} ]]
540     then
541     kernargs="${kernargs} KEYTABLE=${KEYMAP}"
542     fi
543    
544     if [[ -n ${CONSOLEFONT} ]]
545     then
546     kernargs="${kernargs} SYSFONT=${CONSOLEFONT}"
547     fi
548    fi
549    
550  # 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
551  if [[ ${mode} = --install ]] && [[ ${UPDATEDEFAULT} = yes ]] && [[ -n ${package} ]] &&  if [[ ${mode} = --install ]] && [[ ${UPDATEDEFAULT} = yes ]] && [[ -n ${package} ]] &&
552   [[ -n ${DEFAULTKERNEL} ]] && [[ ${package} = ${DEFAULTKERNEL} ]]   [[ -n ${DEFAULTKERNEL} ]] && [[ ${package} = ${DEFAULTKERNEL} ]]

Legend:
Removed from v.925  
changed lines
  Added in v.1431