On Mon, Sep 30, 2024 at 12:57 PM Vladimir 'phcoder' Serbinenko <
phco...@gmail.com> wrote:
> Why is it ppc-specific?
>

IBM wrote this patch so this is why this is ppc specific, but you are
right, it can apply to all archs. I will send a v2.



>
> Le lun. 30 sept. 2024, 20:49, Leo Sandoval <lsand...@redhat.com> a écrit :
>
>> From: Mark Hamzy <ha...@us.ibm.com>
>>
>> Add configuration support for serial terminal consoles.  This will set
>> the maximum screen size so that text is not overwritten.
>>
>> Signed-off-by: Mark Hamzy <ha...@us.ibm.com>
>> Signed-off-by: Robbie Harwood <rharw...@redhat.com>
>> ---
>>  Makefile.util.def              |   7 ++
>>  util/grub.d/20_ppc_terminfo.in | 114 +++++++++++++++++++++++++++++++++
>>  2 files changed, 121 insertions(+)
>>  create mode 100644 util/grub.d/20_ppc_terminfo.in
>>
>> diff --git a/Makefile.util.def b/Makefile.util.def
>> index 9432365a9..09bfcadd9 100644
>> --- a/Makefile.util.def
>> +++ b/Makefile.util.def
>> @@ -517,6 +517,13 @@ script = {
>>    installdir = grubconf;
>>  };
>>
>> +script = {
>> +  name = '20_ppc_terminfo';
>> +  common = util/grub.d/20_ppc_terminfo.in;
>> +  installdir = grubconf;
>> +  condition = COND_HOST_LINUX;
>> +};
>> +
>>  script = {
>>    name = '30_os-prober';
>>    common = util/grub.d/30_os-prober.in;
>> diff --git a/util/grub.d/20_ppc_terminfo.in b/util/grub.d/
>> 20_ppc_terminfo.in
>> new file mode 100644
>> index 000000000..10d665868
>> --- /dev/null
>> +++ b/util/grub.d/20_ppc_terminfo.in
>> @@ -0,0 +1,114 @@
>> +#! /bin/sh
>> +set -e
>> +
>> +# grub-mkconfig helper script.
>> +# Copyright (C) 2006,2007,2008,2009,2010  Free Software Foundation, Inc.
>> +#
>> +# GRUB is free software: you can redistribute it and/or modify
>> +# it under the terms of the GNU General Public License as published by
>> +# the Free Software Foundation, either version 3 of the License, or
>> +# (at your option) any later version.
>> +#
>> +# GRUB is distributed in the hope that it will be useful,
>> +# but WITHOUT ANY WARRANTY; without even the implied warranty of
>> +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>> +# GNU General Public License for more details.
>> +#
>> +# You should have received a copy of the GNU General Public License
>> +# along with GRUB.  If not, see <http://www.gnu.org/licenses/>.
>> +
>> +prefix=@prefix@
>> +exec_prefix=@exec_prefix@
>> +bindir=@bindir@
>> +libdir=@libdir@
>> +. "@datadir@/@PACKAGE@/grub-mkconfig_lib"
>> +
>> +export TEXTDOMAIN=@PACKAGE@
>> +export TEXTDOMAINDIR=@localedir@
>> +
>> +X=80
>> +Y=24
>> +TERMINAL=ofconsole
>> +
>> +argument () {
>> +  opt=$1
>> +  shift
>> +
>> +  if test $# -eq 0; then
>> +      echo "$0: option requires an argument -- '$opt'" 1>&2
>> +      exit 1
>> +  fi
>> +  echo $1
>> +}
>> +
>> +check_terminfo () {
>> +
>> +  while test $# -gt 0
>> +  do
>> +    option=$1
>> +    shift
>> +
>> +    case "$option" in
>> +    terminfo | TERMINFO)
>> +        ;;
>> +
>> +    -g)
>> +        NEWXY=`argument $option "$@"`
>> +        NEWX=`echo $NEWXY | cut -d x -f 1`
>> +        NEWY=`echo $NEWXY | cut -d x -f 2`
>> +
>> +        if [ ${NEWX} -ge 80 ] ; then
>> +          X=${NEWX}
>> +        else
>> +          echo "Warning: ${NEWX} is less than the minimum size of 80"
>> +        fi
>> +
>> +        if [ ${NEWY} -ge 24 ] ; then
>> +          Y=${NEWY}
>> +        else
>> +          echo "Warning: ${NEWY} is less than the minimum size of 24"
>> +        fi
>> +
>> +        shift
>> +        ;;
>> +
>> +    *)
>> +#       # accept console or ofconsole
>> +#       if [ "$option" != "console" -a "$option" != "ofconsole" ] ; then
>> +#         echo "Error: GRUB_TERMINFO unknown console: $option"
>> +#         exit 1
>> +#       fi
>> +#       # perfer console
>> +#       TERMINAL=console
>> +        # accept ofconsole
>> +        if [ "$option" != "ofconsole" ] ; then
>> +          echo "Error: GRUB_TERMINFO unknown console: $option"
>> +          exit 1
>> +        fi
>> +        # perfer console
>> +        TERMINAL=ofconsole
>> +        ;;
>> +    esac
>> +
>> +  done
>> +
>> +}
>> +
>> +if ! uname -m | grep -q ppc ; then
>> +  exit 0
>> +fi
>> +
>> +if [ "x${GRUB_TERMINFO}" != "x" ] ; then
>> +  F1=`echo ${GRUB_TERMINFO} | cut -d " " -f 1`
>> +
>> +  if [ "${F1}" != "terminfo" ] ; then
>> +    echo "Error: GRUB_TERMINFO is set to \"${GRUB_TERMINFO}\" The first
>> word should be terminfo."
>> +    exit 1
>> +  fi
>> +
>> +  check_terminfo ${GRUB_TERMINFO}
>> +fi
>> +
>> +cat << EOF
>> +  terminfo -g ${X}x${Y} ${TERMINAL}
>> +EOF
>> --
>> 2.46.1
>>
>>
>> _______________________________________________
>> Grub-devel mailing list
>> Grub-devel@gnu.org
>> https://lists.gnu.org/mailman/listinfo/grub-devel
>>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel
>
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to