[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Grub2 with sparc64 patches



On 26 Jan 2017, at 17:08, Adrian Davey <adrian@beth2.org> wrote:
> On 2017-01-26 16:52, louis ayotte wrote:
>> On 2017-01-25 03:02 PM, John Paul Adrian Glaubitz wrote:
>>> On 01/25/2017 08:21 PM, Eric Snowberg wrote:
>>>> I believe you are running out of memory here because grub is trying to load all those frame buffer modules within your config.
>>>>> error: no suitable video mode found.
>>>> And then it didn’t find one that worked.
>>>> For this, I believe you are having the same problem as Frans.  Could you add the following to /etc/default/grub:
>>>> GRUB_TERMINAL_OUTPUT="console"
>>>> GRUB_DISABLE_RECOVERY="true"
>>>> GRUB_PRELOAD_MODULES=“iso9660"
>>>> and then regenerate your grub.cfg with grub-mkconfig.
>>>> Adrian,
>>>> I don’t plan on adding frame buffer support since newer systems don’t have them.  Would it be possible to change your grub package to include a /etc/default/grub file for SPARC with the changes above?  We do the same thing with our grub rpm.
>>> Oh, absolutely. Thanks for the suggestion. This was just the first package and I'm happy to include
>>> all improvements that are necessary.
>>> Adrian
>> K applied these changes, in chroot
>>  GNU nano 2.7.4               File:
>> /etc/default/grub
>> # note that you can use only modes which your graphic card supports via VBE
>> # you can see them in real GRUB with the command `vbeinfo'
>> #GRUB_GFXMODE=640x480
>> # Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to
>> Linux
>> #GRUB_DISABLE_LINUX_UUID=true
>> # Uncomment to disable generation of recovery mode menu entries
>> #GRUB_DISABLE_RECOVERY="true"
>> # Uncomment to get a beep at grub start
>> #GRUB_INIT_TUNE="480 440 1"
>> GRUB_TERMINAL_OUTPUT="console"
>> GRUB_DISABLE_RECOVERY="true"
>> GRUB_PRELOAD_MODULES="iso9660"
>> Saved and exited
>> # grub-mkconfig
>> Generating grub configuration file ...
>> #
>> # DO NOT EDIT THIS FILE
>> #
>> # It is automatically generated by grub-mkconfig using templates
>> # from /etc/grub.d and settings from /etc/default/grub
>> #
>> ### BEGIN /etc/grub.d/00_header ###
>> insmod iso9660
>> if [ -s $prefix/grubenv ]; then
>>  set have_grubenv=true
>>  load_env
>> fi
>> if [ "${next_entry}" ] ; then
>>   set default="${next_entry}"
>>   set next_entry=
>>   save_env next_entry
>>   set boot_once=true
>> else
>>   set default="0"
>> fi
>> if [ x"${feature_menuentry_id}" = xy ]; then
>>  menuentry_id_option="--id"
>> else
>>  menuentry_id_option=""
>> fi
>> export menuentry_id_option
>> if [ "${prev_saved_entry}" ]; then
>>  set saved_entry="${prev_saved_entry}"
>>  save_env saved_entry
>>  set prev_saved_entry=
>>  save_env prev_saved_entry
>>  set boot_once=true
>> fi
>> function savedefault {
>>  if [ -z "${boot_once}" ]; then
>>    saved_entry="${chosen}"
>>    save_env saved_entry
>>  fi
>> }
>> function load_video {
>>  if [ x$feature_all_video_module = xy ]; then
>>    insmod all_video
>>  else
>>    insmod efi_gop
>>    insmod efi_uga
>>    insmod ieee1275_fb
>>    insmod vbe
>>    insmod vga
>>    insmod video_bochs
>>    insmod video_cirrus
>>  fi
>> }
>> terminal_output console
>> if [ "${recordfail}" = 1 ] ; then
>>  set timeout=30
>> else
>>  if [ x$feature_timeout_style = xy ] ; then
>>    set timeout_style=menu
>>    set timeout=5
>>  # Fallback normal timeout code in case the timeout_style feature is
>>  # unavailable.
>>  else
>>    set timeout=5
>>  fi
>> fi
>> ### END /etc/grub.d/00_header ###
>> ### BEGIN /etc/grub.d/05_debian_theme ###
>> set menu_color_normal=cyan/blue
>> set menu_color_highlight=white/blue
>> ### END /etc/grub.d/05_debian_theme ###
>> ### BEGIN /etc/grub.d/10_linux ###
>> function gfxmode {
>>    set gfxpayload="${1}"
>> }
>> set linux_gfx_mode=
>> export linux_gfx_mode
>> Found linux image: /boot/vmlinuz-4.9.0-1-sparc64-smp
>> Found initrd image: /boot/initrd.img-4.9.0-1-sparc64-smp
>> menuentry 'Debian GNU/Linux' --class debian --class gnu-linux --class
>> gnu --class os $menuentry_id_option
>> 'gnulinux-simple-2f8e4b53-061c-4878-9d30-bec179fb59e4' {
>>    load_video
>>    insmod gzio
>>    if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
>>    insmod part_sun
>>    insmod ext2
>>    set root='hd1,sun1'
>>    if [ x$feature_platform_search_hint = xy ]; then
>>      search --no-floppy --fs-uuid --set=root
>> --hint-ieee1275='ieee1275//pci@400/pci@0/pci@8/scsi@0/disk@0,sun1'
>> --hint-bios=hd1,sun1 --hint-efi=hd1,sun1 --hint-baremetal=ahci1,sun1
>> eda75771-2b2f-4ef8-95f7-d007f3f3355a
>>    else
>>      search --no-floppy --fs-uuid --set=root
>> eda75771-2b2f-4ef8-95f7-d007f3f3355a
>>    fi
>>    echo    'Loading Linux 4.9.0-1-sparc64-smp ...'
>>    linux    /vmlinuz-4.9.0-1-sparc64-smp
>> root=UUID=2f8e4b53-061c-4878-9d30-bec179fb59e4 ro  quiet
>>    echo    'Loading initial ramdisk ...'
>>    initrd    /initrd.img-4.9.0-1-sparc64-smp
>> }
>> submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option
>> 'gnulinux-advanced-2f8e4b53-061c-4878-9d30-bec179fb59e4' {
>>    menuentry 'Debian GNU/Linux, with Linux 4.9.0-1-sparc64-smp' --class
>> debian --class gnu-linux --class gnu --class os $menuentry_id_option
>> 'gnulinux-4.9.0-1-sparc64-smp-advanced-2f8e4b53-061c-4878-9d30-bec179fb59e4'
>> {
>>        load_video
>>        insmod gzio
>>        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
>>        insmod part_sun
>>        insmod ext2
>>        set root='hd1,sun1'
>>        if [ x$feature_platform_search_hint = xy ]; then
>>          search --no-floppy --fs-uuid --set=root
>> --hint-ieee1275='ieee1275//pci@400/pci@0/pci@8/scsi@0/disk@0,sun1'
>> --hint-bios=hd1,sun1 --hint-efi=hd1,sun1 --hint-baremetal=ahci1,sun1
>> eda75771-2b2f-4ef8-95f7-d007f3f3355a
>>        else
>>          search --no-floppy --fs-uuid --set=root
>> eda75771-2b2f-4ef8-95f7-d007f3f3355a
>>        fi
>>        echo    'Loading Linux 4.9.0-1-sparc64-smp ...'
>>        linux    /vmlinuz-4.9.0-1-sparc64-smp
>> root=UUID=2f8e4b53-061c-4878-9d30-bec179fb59e4 ro  quiet
>>        echo    'Loading initial ramdisk ...'
>>        initrd    /initrd.img-4.9.0-1-sparc64-smp
>>    }
>> Found linux image: /boot/vmlinuz-4.5.0-2-sparc64-smp
>> Found initrd image: /boot/initrd.img-4.5.0-2-sparc64-smp
>>    menuentry 'Debian GNU/Linux, with Linux 4.5.0-2-sparc64-smp' --class
>> debian --class gnu-linux --class gnu --class os $menuentry_id_option
>> 'gnulinux-4.5.0-2-sparc64-smp-advanced-2f8e4b53-061c-4878-9d30-bec179fb59e4'
>> {
>>        load_video
>>        insmod gzio
>>        if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
>>        insmod part_sun
>>        insmod ext2
>>        set root='hd1,sun1'
>>        if [ x$feature_platform_search_hint = xy ]; then
>>          search --no-floppy --fs-uuid --set=root
>> --hint-ieee1275='ieee1275//pci@400/pci@0/pci@8/scsi@0/disk@0,sun1'
>> --hint-bios=hd1,sun1 --hint-efi=hd1,sun1 --hint-baremetal=ahci1,sun1
>> eda75771-2b2f-4ef8-95f7-d007f3f3355a
>>        else
>>          search --no-floppy --fs-uuid --set=root
>> eda75771-2b2f-4ef8-95f7-d007f3f3355a
>>        fi
>>        echo    'Loading Linux 4.5.0-2-sparc64-smp ...'
>>        linux    /vmlinuz-4.5.0-2-sparc64-smp
>> root=UUID=2f8e4b53-061c-4878-9d30-bec179fb59e4 ro  quiet
>>        echo    'Loading initial ramdisk ...'
>>        initrd    /initrd.img-4.5.0-2-sparc64-smp
>>    }
>> }
>> ### END /etc/grub.d/10_linux ###
>> ### BEGIN /etc/grub.d/20_linux_xen ###
>> ### END /etc/grub.d/20_linux_xen ###
>> ### BEGIN /etc/grub.d/30_os-prober ###
>> ### END /etc/grub.d/30_os-prober ###
>> ### BEGIN /etc/grub.d/30_uefi-firmware ###
>> ### END /etc/grub.d/30_uefi-firmware ###
>> ### BEGIN /etc/grub.d/40_custom ###
>> # This file provides an easy way to add custom menu entries.  Simply
>> type the
>> # menu entries you want to add after this comment.  Be careful not to change
>> # the 'exec tail' line above.
>> ### END /etc/grub.d/40_custom ###
>> ### BEGIN /etc/grub.d/41_custom ###
>> if [ -f  ${config_directory}/custom.cfg ]; then
>>  source ${config_directory}/custom.cfg
>> elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
>>  source $prefix/custom.cfg;
>> fi
>> ### END /etc/grub.d/41_custom ###
>> done
>> Rebooted
>> T5240, No Keyboard
>> Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
>> OpenBoot 4.33.6, 98080 MB memory available, Serial #83048406.
>> Ethernet address 0:14:4f:f3:37:d6, Host ID: 84f337d6.
>> {0} ok boot
>> Boot device: /pci@400/pci@0/pci@8/scsi@0/disk@0,0:a  File and args:
>> GRUB Loading kernel..
>> error: out of memory.
>> error: no suitable video mode found.
>> Loading Linux 4.9.0-1-sparc64-smp ...
>> error: /memory response buffer exceeded.
>> Loading initial ramdisk ...
>> error: you need to load the kernel first.
>> Press any key to continue...
>>  Failed to boot both default and fallback entries.
>> Press any key to continue...
>> Rebooted
>> Loading Linux 4.5.0-2-sparc64-smp ...
>> error: /memory response buffer exceeded.
>> Loading initial ramdisk ...
>> error: you need to load the kernel first.
>> Press any key to continue...
> 
> 
> Your menu entry in /etc/grub.d/10_linux still seems to have a load_video function which would do an insmod of
> efi_gop
> efi_uga
> ieee1275_fb
> vbe
> vga
> video_bochs
> video_cirrus
> 
> if I read it correctly.. not sure you want these.

From looking at /etc/grub.d/10_linux, the load_video is guarded by various
GRUB_GFXPAYLOAD_LINUX checks. I assume you probably want to set it to something
like "text".

James


Reply to: