| 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.
|
|
|
|
|
|
|
|
|
| |
The grub.cfg to be included in the GRUB image is located in each
target's directory in 'projecs/grub/configs' now, which means
'projects/grub/configs/grub.cfg' no longer has any use.
Ditto with 'projects/grub/configs/modules-install' and
'projects/grub/configs/modules-preload'
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
'font-file' contains the filename (not path) of the font to use when
making a PF2-format GRUB font.
'font-project' contains the name of the project which built the
original font file.
These files are necessary to avoid hard-coding the font and/or the
path to the font as an argument to grub-mkfont.
|
|
|
|
|
| |
A more flexible way of handling font files will be introduced in later
commits.
|
|
|
|
|
|
|
| |
Since backgrounds aren't included in the GRUB image it would make more
sense to move them to the GRUB install directory at
projects/grub/install/corebootfb instead (textmode ROMs won't have a
background image included, for obvious reasons).
|
|
|
|
| |
Plurality is nice, sometimes.
|
| |
|
| |
|
|
|
|
|
| |
Keylayouts are now compiled as part of the build process--keeping
binary keylayouts in the repo is unnecessary as a result.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As with the BIOS/Coreboot targets, the modules listed in this file
will later be added to CBFS in order to avoid issues inherent to
bundling modules into the GRUB image.
Several modules have been excluded from the install list for reasons
of non-applicability to UEFI GRUB; namely:
* cmosdump
* cmostest
* efiemu
* mda_text
* pci
|
|
|
|
|
|
|
| |
As with the BIOS/Coreboot targets' modules-minimal files, this file
lists the minimum necessary to complement a working, bootable image so
that it can read from other devices in addition to halting/rebooting
the machine.
|
|
|
|
|
|
| |
Since GRUB images will be produced on a target-specific basis, the
target will need its own copy of the modules to include in either the
GRUB image itself or CBFS.
|
|
|
|
|
|
|
|
|
| |
The added files (and, later, module lists) are mostly the same as
their BIOS/Coreboot targets counterparts because the base
configuration for each GRUB image produced is intended to be quite
similar (for greater malleability down the line).
The purpose of each file remains the same.
|
|
|
|
|
| |
Without these modules, the GRUB Coreboot target image can't access
devices other than cbfsdisk. Adds support for HDD/USB drives.
|
| |
|
|
|
|
|
|
| |
As with the BIOS target, the modules listed in this file will later be
added to CBFS in order to avoid issues inherent to bundling modules
into the GRUB image.
|
|
|
|
|
|
|
| |
As with the BIOS target's modules-minimal file, this file lists the
minimum necessary to complement a working, bootable image so that it
can read from other devices in addition to halting/rebooting the
machine.
|
|
|
|
|
|
| |
Since GRUB images will be produced on a target-specific basis the
target will need its own copy of the modules to include in either the
GRUB image itself or CBFS.
|
|
|
|
|
|
|
|
| |
The added files are mostly the same as their BIOS target counterparts
because the base configuration for each GRUB image produced is
intended to be quite similar (for greater malleability down the line).
The purpose of each file remains the same.
|
|
|
|
|
|
| |
The produced GRUB image now has a more generalized name for
applicability to disparate platform builds (e.g. EFI vs. bootable
floppy image).
|
|
|
|
|
| |
'keymap' isn't included as a target yet due to it needing further
work done to it.
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
It's fairly obvious that the files refer to _GRUB_ modules considering
the files are located in the GRUB project's configuration directory.
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|