Make a final attempt to implement a graphical user interface for grub2 (gfxboot2).

It's quite some work, unfortunately. Here's what's done so far:

  • module works for grub2-legacy and grub2-efi
  • there's an X11 implementation for testing (so you can run it as a normal program)
  • basic font rendering implemented
  • logging can be done to serial line or to the text (debug) console
  • basic data types are implemented
  • language primitives are partly implemented
  • integrated debugger works

watch the debugger in action

gfxboot2 debugger at work

gfxboot2 uses like gfxboot a simple scripting language that's compiled into byte code. Here's a tiny sample that shows what the byte code looks like:

# gfxboot-compile -vs start.gc 
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
% code: 10 entries (10 - 0)
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
%line i  index  offset  type   hex                      word
% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
             0  0x0000  magic  80 06 12 a9 42 7a ad 60  % gfxboot magic
             1  0x0008  ref    88 03 62 61 72           /bar
             2  0x000d  code   05 17                    {
             3  0x000f  str    84 04 7a 61 70 70          "zapp"
             4  0x0015  ret    00 04                    }
             5  0x0017  word   87 03 64 65 66           def
             6  0x001c  word   87 03 62 61 72           bar
             7  0x0021  int    11 bc 01                 444
             8  0x0024  word   87 03 62 61 72           bar
             9  0x0029  end    00 05                    end

Looking for hackers with the skills:

Nothing? Add some keywords!

This project is part of:

Hack Week 11 Hack Week 14 Hack Week 15 Hack Week 17 Hack Week 18 Hack Week 19 Hack Week 20 Hack Week 21

Activity

  • over 2 years ago: ptesarik liked this project.
  • over 5 years ago: a_faerber liked this project.
  • over 5 years ago: aspiers liked this project.
  • over 5 years ago: SLindoMansilla liked this project.
  • over 5 years ago: SLindoMansilla joined this project.
  • about 6 years ago: bakaxcb liked this project.
  • about 6 years ago: bakaxcb left this project.
  • about 6 years ago: bakaxcb joined this project.
  • over 6 years ago: tdz liked this project.
  • over 6 years ago: michals liked this project.
  • over 6 years ago: ancorgs liked this project.
  • over 6 years ago: snwint liked this project.
  • over 6 years ago: mlschroe liked this project.
  • over 7 years ago: bachngocson0812 left this project.
  • over 7 years ago: bachngocson0812 joined this project.
  • over 7 years ago: seife liked this project.
  • over 7 years ago: lnussel liked this project.
  • over 8 years ago: locilka liked this project.
  • almost 10 years ago: sndirsch liked this project.
  • almost 10 years ago: jdelvare liked this project.
  • almost 10 years ago: snwint started this project.
  • almost 10 years ago: snwint originated this project.

  • Comments

    • snwint
      over 8 years ago by snwint | Reply

      Made quite some progress

      • patch interfacing grub2(legacy & efi) exists
      • x11-interface for faster development
      • basic drawing functions implemented
      • font rendering of psf2 (console) fonts
      • necessary data types implemented
      • garbage collector works
      • debugging via serial console

      Todo

      • put code on github
      • language implementation needs to be finished
      • implement antialiasing fonts
      • add jpg/png decoding (via grub2)
      • implement boot menu

      • bakaxcb
        about 6 years ago by bakaxcb | Reply

        It would be nice if you could put this on github even if it is unfinished. Hope someone can ask him to do this: https://build.opensuse.org/user/show/snwint https://github.com/wfeldt

    • seife
      over 7 years ago by seife | Reply

      Hooray. Finally a usable graphical boot menu with grub2 is on the horizon :-)

    • snwint
      over 3 years ago by snwint | Reply

      finally the project went public at github

    Similar Projects

    This project is one of its kind!