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: