Hello everyone,

It's my first time posting here, and I don't know if this should really be
in grub-devel or here, so please correct me if I emailed this to the wrong
list.

I'm a developer of Mac Linux USB Loader and Enterprise, a two-piece
software program to help boot GNU/Linux on Apple Macintosh computers with
(U)EFI. Macs have a slightly off (U)EFI firmware implementation that makes
it largely futile to boot even the simplest of distributions on Mac. The
program consists of two parts, both open source: the front end Mac Linux
USB Loader, a Mac application, and Enterprise, a (U)EFI application.

The firmware I am currently using consists wholly of a compiled (U)EFI GRUB
image I found on the Internet. I believe it is using a patched copy of
GRUB, and, in violation of the GPL, the author never provided the source
code. Since attempts to contact him or her were in vain, I decided to code
my own solution. And here we are.

My (U)EFI boot manager program, Enterprise, which you can find on
GitHub<https://github.com/sevenbits/Enterprise>,
allows the user to specify which Linux kernel options they wish to use to
boot Linux. My goal is to pass these options to a pre-compiled GRUB image
that I distribute with Enterprise, which will load the GNU/Linux
distribution from a supplied ISO file using GRUB's loopback and iso9660
file system support (you can view some more info on this here on my
blog<http://sevenbits-tech-blog.blogspot.com/2013/08/implementation-details-of-enterprise-my.html>).
My struggle is how to modify GRUB to enable this to happen.

I can already create a pre-compiled GRUB image with an embedded
configuration file. Trouble is, I must hard-code the locations to the Linux
kernel image and the initial RAM disc in the ISO file, which in effect
locks it in to one distribution. It also doesn't allow the user to specify
their own kernel parameters. I'd like to change this.

If anyone has any ideas regarding how I could implement a solution like
this, I would be grateful. I'm fluent in C and understand the (U)EFI system
call framework and can modify GRUB's source code, so the actual
implementation of your suggestions won't be an issue. I'd just like to know
the *most efficient *way to transfer small amounts of data from Enterprise
to GRUB.

Thanks for your help,

-- SevenBits
_______________________________________________
Help-grub mailing list
Help-grub@gnu.org
https://lists.gnu.org/mailman/listinfo/help-grub

Reply via email to