| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
The SeaGRUB floppy image has a FAT12 filesystem and GRUB needs
to be able to read it in order to load modules stored there.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Related issue #553
Previously, the GRUB boot image and core image were concatenated
together and padding added to create a (pseudo) floppy image.
However, testing revealed that GRUB has issues dynamically loading
modules from $prefix if $prefix is not located on the same device
from which GRUB booted.
In order to get around this issue, a proper 2.88MiB floppy image is
created using mkfs.fat with GRUB modules copied to directories on
the filesystem (i.e, /boot/grub/i386-pc). The 2.88MiB filesystem
size is necessary to be able to fit all modules onto the image.
New functions added to grub-helper:
* grub_floppy_image_mmd (create directories on image using mtools mmd)
* grub_floppy_image_mcopy (copy files to image using mtools mcopy)
|
|
|
|
|
|
|
|
| |
(fd0) should be the proper device for SeaGRUB. $prefix is set using
(fd0) as the device considering modules will be placed onto the
floppy image--not in CBFS.
grub.cfg is still sourced from (cbfsdisk)
|
|
|
|
|
|
|
|
|
|
| |
Module "biosdisk" is necessary for GRUB to boot from the floppy
image we're working to create. If this module is not included in
core.img it will simply not load.
Module "minicmd" has been added in order to provide the commands
"lsmod" and "rmmod" which are useful for listing loaded modules
and unloading them, respectively (especially great for testing).
|
|
|
|
|
| |
All modules listed in a given target's modules-minimal file are
preloaded so there's no need to specifically load any.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The cbfs module must be loaded before trying to source grub.cfg
from CBFS, for obvious reasons.
The test module is bundled into all images in order to avoid the
situation where grub gets stuck in a loop trying to locate the
module during parsing of grub.cfg. This could happen if a user
removes the module or moves it, so it's best to avoid a brick
by just bundling it into the image.
For the bios target, biosdisk has been removed as it doesn't seem
to provide any benefit and memdisk has been added to eliminate
an error printed by GRUB upon load.
|
| |
|
| |
|
|
|
|
|
| |
Dumps CBMEM console log to stdout; this is useful for
development/troubleshooting purposes.
|
|
|
|
|
| |
Without this module the GRUB can't find devices--as in, 'ls' literally
lists nothing, not even the device GRUB booted from.
|
|
|
|
|
|
|
|
| |
Since the majority of GRUB modules will be placed into CBFS instead of
the GRUB image itself, the modules-install and modules-preload files
no longer have any use as-is. However, they serve as a useful
reference to which modules should be retained for later
processing (thus the addition to the new install file).
|
|
|
|
|
|
|
|
|
|
|
|
| |
This file should only contain the minimum of modules necessary to
create a working, bootable image able to source other modules and
files from CBFS and/or a separate device.
(module dependencies are installed automatically)
By including as few modules as possible into the GRUB image, selective
addition/removal of modules to/from CBFS is now possible. In
addition, modules can be reloaded without issue (modules included in
the GRUB image can't be reloaded).
|
|
|
|
|
|
| |
A GRUB image will be produced on a target-specific basis so the
target will need its own copy of the modules to include in either the
GRUB image itself or CBFS.
|
|
The purpose of each new file is as follows:
* arch -- CPU architecture to target when building images
* config -- embedded GRUB configuration
* format -- GRUB output format
* platform -- the platform GRUB should build images for
* prefix -- where GRUB should search for modules by default
* size -- the size of the floppy image to produce, in KiB
|