I need some help with getting a splashscreen up. This is a short deadline,, I am looking to have coreboot boot and show this screen for, say, 5 seconds. I need it working by oct. 20.
If anyone has pointers on where to start in learning how to set this up, I would appreciate it.
It needs to be on real hardware -- I might try it with a DBE62 if I can get one in time, or and ADL board if not.
Any vendor who would like their logo on this splash (if it makes sense) be sure to send me your logo and your permission.
This demo is for a cybersecurity workshop I am going to, various people in the US are realizing now that security concerns extend into the BIOS, and they're also understanding the value of an open source bios. Actually some folks are *very* concerned about what can go on in the BIOS as this point ... I will try to remember to put a recent talk up on the web site next week.
thanks
ron
On 23.09.2008 13:47, ron minnich wrote:
I need some help with getting a splashscreen up. This is a short deadline,, I am looking to have coreboot boot and show this screen for, say, 5 seconds. I need it working by oct. 20.
What about a Linux splashscreen with Geode framebuffer?
If anyone has pointers on where to start in learning how to set this up, I would appreciate it.
Maybe libpayload can do it, otherwise I'd go for a OS which can use Geode graphics directly (if you want Geode).
It needs to be on real hardware -- I might try it with a DBE62 if I can get one in time, or and ADL board if not.
Any vendor who would like their logo on this splash (if it makes sense) be sure to send me your logo and your permission.
The following external references were missing: Coreboot_full_web.png DOE_logo_07.jpg lanl_logo.jpg logo-sandia.jpg
This demo is for a cybersecurity workshop I am going to, various people in the US are realizing now that security concerns extend into the BIOS, and they're also understanding the value of an open source bios. Actually some folks are *very* concerned about what can go on in the BIOS as this point ... I will try to remember to put a recent talk up on the web site next week.
Cool.
Regards, Carl-Daniel
On Tue, Sep 23, 2008 at 04:47:56AM -0700, ron minnich wrote:
I need some help with getting a splashscreen up. This is a short deadline,, I am looking to have coreboot boot and show this screen for, say, 5 seconds. I need it working by oct. 20.
If anyone has pointers on where to start in learning how to set this up, I would appreciate it.
GRUB 2 can setup splashscreens and wait for an arbitrary number of seconds with scripting. The only caveat would be to get a video backend that works on coreboot.
This is in fact somewhere in my TODO list, so I might be able to help, depending on what you need. Is this intended to run in a specific chipset, or provide generic VBE support for PCI cards via expansion ROMs?
GRUB 2 can setup splashscreens and wait for an arbitrary number of
seconds
with scripting. The only caveat would be to get a video backend that works on coreboot.
Ahh, but my experiance tells me for GRUB or GRUB2 to display a splashscreen it makes INT10 calls....
On Tue, Sep 23, 2008 at 09:33:27AM -0400, Joseph Smith wrote:
GRUB 2 can setup splashscreens and wait for an arbitrary number of
seconds
with scripting. The only caveat would be to get a video backend that works on coreboot.
Ahh, but my experiance tells me for GRUB or GRUB2 to display a splashscreen it makes INT10 calls....
That's what the VBE _module_ does. Everything above that (e.g. in this case the PNG loader etc) is backend-independant.
What's the hardware anyway? Replies seem to indicate a Geode board, but Ron's initial mail didn't mention this.
On Tue, Sep 23, 2008 at 07:55:04PM +0200, Robert Millan wrote:
That's what the VBE _module_ does. Everything above that (e.g. in this case the PNG loader etc) is backend-independant.
To be a bit more graphical:
http://oskuro.net/blogpics/grub2-pretty-menu.png
On 23/09/08 04:47 -0700, ron minnich wrote:
I need some help with getting a splashscreen up. This is a short deadline,, I am looking to have coreboot boot and show this screen for, say, 5 seconds. I need it working by oct. 20.
If anyone has pointers on where to start in learning how to set this up, I would appreciate it.
It needs to be on real hardware -- I might try it with a DBE62 if I can get one in time, or and ADL board if not.
Libpayload could do what you need. For Geode, this isn't a problem, a few extra lines of code and you are there. I've been meaning all along to implement this, but I have been holding off since we didn't have a VESA driver, and I am pretty serious about keeping balance in libpayload (we all love Geode, but I want to make sure everybody can play).
So Geode can do a splash screen really easily - VESA would require a driver, but in the end that wouldn't be such a bad thing since I've been saying we've needed a VESA driver for some time now.
Let me know if this interests you, and I'll give more details.
Jordan
On Tue, 23 Sep 2008 08:04:52 -0600, Jordan Crouse jordan.crouse@amd.com wrote:
On 23/09/08 04:47 -0700, ron minnich wrote:
I need some help with getting a splashscreen up. This is a short deadline,, I am looking to have coreboot boot and show this screen for, say, 5 seconds. I need it working by oct. 20.
If anyone has pointers on where to start in learning how to set this up, I would appreciate it.
It needs to be on real hardware -- I might try it with a DBE62 if I can get one in time, or and ADL board if not.
Libpayload could do what you need. For Geode, this isn't a problem, a few extra lines of code and you are there. I've been meaning all along to implement this, but I have been holding off since we didn't have a VESA driver, and I am pretty serious about keeping balance in libpayload (we all love Geode, but I want to make sure everybody can play).
So Geode can do a splash screen really easily - VESA would require a driver, but in the end that wouldn't be such a bad thing since I've
been
saying we've needed a VESA driver for some time now.
Let me know if this interests you, and I'll give more details.
I think this sounds like an awsome idea, GO JORDAN :-)
Jordan Crouse wrote:
Libpayload could do what you need.
..
So Geode can do a splash screen really easily
Note that the video mode set by libpayload's Geode driver does not play well with most monitors.
I have only been able to get an image on two old, analog-only TFT:s. Newer/cheaper TFT:s and projectors can't sync.
This is on an alix1c board.
It would be great if the mode was tweaked a little to either the standard 640x350 mode 3, or some standard framebuffer mode 640x480, 800x600 or 1024x768.
- VESA would require a driver, but in the end that wouldn't be such
a bad thing since I've been saying we've needed a VESA driver for some time now.
I agree.
//Peter
On 23/09/08 19:28 +0200, Peter Stuge wrote:
Jordan Crouse wrote:
Libpayload could do what you need.
..
So Geode can do a splash screen really easily
Note that the video mode set by libpayload's Geode driver does not play well with most monitors.
I have only been able to get an image on two old, analog-only TFT:s. Newer/cheaper TFT:s and projectors can't sync.
This is on an alix1c board.
It would be great if the mode was tweaked a little to either the standard 640x350 mode 3, or some standard framebuffer mode 640x480, 800x600 or 1024x768.
Patches welcome. The intent is to emulate a 80x25 character screen, so whatever mode you want to use, you'll need to find an appropriate font to go along with it ( I think the current font will work at 8x14, but I'm not positive).
Jordan
Jordan Crouse wrote:
It would be great if the mode was tweaked a little to either the standard 640x350 mode 3, or some standard framebuffer mode 640x480, 800x600 or 1024x768.
Patches welcome.
I just don't have time to hack on it, but I wanted to mention my test results for the benefit of others anyway.
The intent is to emulate a 80x25 character screen,
When the mode works it is indeed 80x25 characters, but it seems to be a little different from mode 3.
appropriate font
The current one is great!
//Peter
On Tue, 23 Sep 2008, Peter Stuge wrote:
Jordan Crouse wrote:
It would be great if the mode was tweaked a little to either the standard 640x350 mode 3, or some standard framebuffer mode 640x480, 800x600 or 1024x768.
Patches welcome.
I just don't have time to hack on it, but I wanted to mention my test results for the benefit of others anyway.
The intent is to emulate a 80x25 character screen,
When the mode works it is indeed 80x25 characters, but it seems to be a little different from mode 3.
At one time there was a 720x400 res, 80x25 characters, that some svga cards defaulted to. The only reference I can find at the moment is Table 9-4, page 492, "The Waite Group's MS-DOS Developer's Guide", Howard Sams, 1989
appropriate font
The current one is great!
//Peter
-- coreboot mailing list: coreboot@coreboot.org http://www.coreboot.org/mailman/listinfo/coreboot
OK I should read my mail more ... mode 3 it is.
ron
On 01/10/08 11:03 -0700, ron minnich wrote:
OK I should read my mail more ... mode 3 it is.
No - not mode 3. You'll want to kick into a VESA mode of suitable size so you can draw directly to the framebuffer.
Jordan
On Wed, Oct 1, 2008 at 11:47 AM, Jordan Crouse jordan.crouse@amd.com wrote:
On 01/10/08 11:03 -0700, ron minnich wrote:
OK I should read my mail more ... mode 3 it is.
No - not mode 3. You'll want to kick into a VESA mode of suitable size so you can draw directly to the framebuffer.
I'm trying x117 now?
ron
On 01/10/08 11:49 -0700, ron minnich wrote:
On Wed, Oct 1, 2008 at 11:47 AM, Jordan Crouse jordan.crouse@amd.com wrote:
On 01/10/08 11:03 -0700, ron minnich wrote:
OK I should read my mail more ... mode 3 it is.
No - not mode 3. You'll want to kick into a VESA mode of suitable size so you can draw directly to the framebuffer.
I'm trying x117 now?
I think 117 is reasonable. Just recall that our font is 8x16(ish), so we don't want too big a screen that we can't read the text.
Jordan
On 01/10/08 11:49 -0700, ron minnich wrote:
On Wed, Oct 1, 2008 at 11:47 AM, Jordan Crouse jordan.crouse@amd.com wrote:
On 01/10/08 11:03 -0700, ron minnich wrote:
OK I should read my mail more ... mode 3 it is.
No - not mode 3. You'll want to kick into a VESA mode of suitable size so you can draw directly to the framebuffer.
I'm trying x117 now?
Okay, since Ron is clearly serious about this, we have some matters to attend to. The most important is how we are going to format the image in the payload. I think we need to use a format that is already familiar to the bootloader community - two that come to mind are the lss16 format from Syslinux [1] and the xpm.gz format from Grub.
The first has the advantage of being simpler to implement and draw (we can draw it from a stream), but we are limited to 16 colors. The second is in xpm format, which is well known and can also be drawn from a stream, but the .gz throws us for a loop, since we don't have a zlib implementation in libpayload.
I personally vote for the lSS16 (RLE) format. It will be familiar to the syslinux crowd, and it will be darn easy to implement, and copying to the screen will be as easy as:
video_console_putrle(0, 0, ptrtorle);
But as always, I'm open for suggestions to the contrary. What do you think?
Jordan
[1] http://www.google.com/search?&q=ppmtolss16&sourceid=firefox
ron
On Wed, Oct 1, 2008 at 2:48 PM, Jordan Crouse jordan.crouse@amd.com wrote:
But as always, I'm open for suggestions to the contrary. What do you think?
I think you're always right. [I'm serious!] Let's do it. We'll use that standard.
I realize this seems like a silly project. I don't much like splashscreens myself. But I've found the hard way that Purty Pictures often win over substance. It's almost as if politics were a beauty contest or something. I think the splash screen is going to have impact -- I think very positive impact.
ron
ron minnich wrote:
almost as if politics were a beauty contest
I think it's about pleasing people. Beautiful things go a long way.
//Peter
On Wed, Oct 1, 2008 at 4:16 PM, Peter Stuge peter@stuge.se wrote:
ron minnich wrote:
almost as if politics were a beauty contest
I think it's about pleasing people. Beautiful things go a long way.
Yeah, I was making an indirect joke about our election :-)
ron
On Wed, Oct 1, 2008 at 4:19 PM, ron minnich rminnich@gmail.com wrote:
On Wed, Oct 1, 2008 at 4:16 PM, Peter Stuge peter@stuge.se wrote:
ron minnich wrote:
almost as if politics were a beauty contest
I think it's about pleasing people. Beautiful things go a long way.
Yeah, I was making an indirect joke about our election :-)
and let's leave it at that, we've never had a political discussion on this list and I apologize for even hinting at one :-)
ron
Jordan Crouse wrote:
On 01/10/08 11:49 -0700, ron minnich wrote:
On Wed, Oct 1, 2008 at 11:47 AM, Jordan Crouse jordan.crouse@amd.com wrote:
On 01/10/08 11:03 -0700, ron minnich wrote:
OK I should read my mail more ... mode 3 it is.
No - not mode 3. You'll want to kick into a VESA mode of suitable size so you can draw directly to the framebuffer.
I'm trying x117 now?
Okay, since Ron is clearly serious about this, we have some matters to attend to. The most important is how we are going to format the image in the payload. I think we need to use a format that is already familiar to the bootloader community - two that come to mind are the lss16 format from Syslinux [1] and the xpm.gz format from Grub.
For the bootsplash (www.bootsplash.org) we used an integer only jpeg decompressor that fit into round about 8kb of code. Together with the compression rate of the jpeg picture itself, this is hard to beat in terms of size ..
Stefan
On 02/10/08 01:23 +0200, Stefan Reinauer wrote:
Jordan Crouse wrote:
On 01/10/08 11:49 -0700, ron minnich wrote:
On Wed, Oct 1, 2008 at 11:47 AM, Jordan Crouse jordan.crouse@amd.com wrote:
On 01/10/08 11:03 -0700, ron minnich wrote:
OK I should read my mail more ... mode 3 it is.
No - not mode 3. You'll want to kick into a VESA mode of suitable size so you can draw directly to the framebuffer.
I'm trying x117 now?
Okay, since Ron is clearly serious about this, we have some matters to attend to. The most important is how we are going to format the image in the payload. I think we need to use a format that is already familiar to the bootloader community - two that come to mind are the lss16 format from Syslinux [1] and the xpm.gz format from Grub.
For the bootsplash (www.bootsplash.org) we used an integer only jpeg decompressor that fit into round about 8kb of code. Together with the compression rate of the jpeg picture itself, this is hard to beat in terms of size ..
Is said decompressor in a license that we can be happy with? If so, then I think we should consider adding it.
As a comparison - Ron's screenshot:
.png - 97466 bytes .jpg - 46877 bytes .rle - 24846 bytes
Implementation wise - the LSS16 function I just wrote is about 40 lines of code with lots of whitespace.
Jordan
Jordan Crouse wrote:
As a comparison - Ron's screenshot:
.png - 97466 bytes .jpg - 46877 bytes .rle - 24846 bytes
What about .lzma? If it's going into the larball, we already have compression implemented, and it would be nice to have lossless graphics and less computation.
Maybe we can even blit? How does lzma perform on bitmaps?
Implementation wise - the LSS16 function I just wrote is about 40 lines of code with lots of whitespace.
My only problem with LSS16 is that it's clearly designed for, and thus limited to, a 16-color VGA mode. (The palette gives it away.)
For a 21st century firmware designed for 21st century hardware I would like to have 21st century graphics. Please?
If we want to do modesetting (no) we could pick the nearest larger mode and center the image. I am fine with picking one mode for now and centering the image, possibly cropping it's edges.
As for formats, there are many choices. PCX is RLE but with some metadata to allow for more image sizes and bit depths. PNG would be cool because it is ubiquitous, however it isn't super simple.
//Peter
On Wed, Oct 1, 2008 at 8:30 PM, Peter Stuge peter@stuge.se wrote:
Jordan Crouse wrote:
As a comparison - Ron's screenshot:
.png - 97466 bytes .jpg - 46877 bytes .rle - 24846 bytes
What about .lzma? If it's going into the larball, we already have compression implemented, and it would be nice to have lossless graphics and less computation.
Maybe we can even blit? How does lzma perform on bitmaps?
Implementation wise - the LSS16 function I just wrote is about 40 lines of code with lots of whitespace.
My only problem with LSS16 is that it's clearly designed for, and thus limited to, a 16-color VGA mode. (The palette gives it away.)
For a 21st century firmware designed for 21st century hardware I would like to have 21st century graphics. Please?
Fully agreed. IMO, if you're going to do bootsplash, you might as well do it right. Is there any reason we can only support one standard?
-Corey
On 02/10/08 02:30 +0200, Peter Stuge wrote:
Jordan Crouse wrote:
As a comparison - Ron's screenshot:
.png - 97466 bytes .jpg - 46877 bytes .rle - 24846 bytes
What about .lzma? If it's going into the larball, we already have compression implemented, and it would be nice to have lossless graphics and less computation.
Maybe we can even blit? How does lzma perform on bitmaps?
Implementation wise - the LSS16 function I just wrote is about 40 lines of code with lots of whitespace.
My only problem with LSS16 is that it's clearly designed for, and thus limited to, a 16-color VGA mode. (The palette gives it away.)
For a 21st century firmware designed for 21st century hardware I would like to have 21st century graphics. Please?
Okay, everybody needs to calm down and take a step back here and look at what we are talking about. We are talking about an extensive graphics infrastructure to display a splash screen for firmware that can be up and into the kernel in less then a second. Coreinfo comes up so quickly on a Geode that it is visible when the monitor finishes syncing. Indeed, we are going to have to SLOW DOWN our payloads in order to display a splashscreen long enough for people to read it.
Ron is right, there is something soothing about a splash screen - it warms the hearts of our customers. But come on - PNG? PCX? 16 bit color depths? Is this really needed? I am not at all interested in making libpayload into a fully featured graphics engine - there are better libraries that can do that. All I was trying to do was something simple to benefit Ron, and since every distribution in the world uses isolinux + lss16, I figured that was a good shot.
Thats just my opinion - as always, patches are gladly accepted. Just remember who we are, what we are doing. Somebody at the Linux Plumbers Conference said, "Every time I see a splash screen, I wonder what they have to hide". Coreboot is the only loader on earth that doesn't actually have anything to hide. Lets try not to go overboard architecting a solution for one problem we don't have.
Jordan
On Thu, Oct 2, 2008 at 7:36 AM, Jordan Crouse jordan.crouse@amd.com wrote:
Thats just my opinion - as always, patches are gladly accepted. Just remember who we are, what we are doing. Somebody at the Linux Plumbers Conference said, "Every time I see a splash screen, I wonder what they have to hide". Coreboot is the only loader on earth that doesn't actually have anything to hide. Lets try not to go overboard architecting a solution for one problem we don't have.
in fact I may let linux do the splash screen anyway -- all other options are looking painful.
Remember the original linuxbios slogan? "Let Linux do it".
One thing I've noticed is that, having dropped Linux as a primary payload, we are recreating lots of code for things linux can already do.
Once we start to implement IPV6 in a payload, we need to stop and think hard about what we are doing.
ron
ron minnich schrieb:
Remember the original linuxbios slogan? "Let Linux do it".
Just that Linux grew _large_. (and its devs have no interest in being firmware agnostic)
One thing I've noticed is that, having dropped Linux as a primary payload, we are recreating lots of code for things linux can already do.
Maybe there are different operating systems that fit better into our constraints? minix3? haiku? ;-)
Regards, Patrick
On Thu, Oct 2, 2008 at 9:01 AM, Patrick Georgi patrick@georgi-clan.de wrote:
ron minnich schrieb:
Remember the original linuxbios slogan? "Let Linux do it".
Just that Linux grew _large_. (and its devs have no interest in being firmware agnostic)
yes, they lost their way. "We don't need no steenking BIOS" is no longer true. I wonder if they removed that quote yet.
What a shame.
ron
here is the current version of the splash screen. Now, I *know* there are others of you out there who have helped. If you want your logo on here, please send it to me -- .svg is preferred.
What is a good mode for int 10 4f02 to use for this?
thanks
ron
forgot the attach, sorry.
ron
Sweet, I like it :-) Jordan, are you going to be able to make this a reality for libpayload?
On Wed, 1 Oct 2008 11:04:35 -0700, "ron minnich" rminnich@gmail.com wrote:
forgot the attach, sorry.
ron
On 01/10/08 14:41 -0400, Joseph Smith wrote:
Sweet, I like it :-) Jordan, are you going to be able to make this a reality for libpayload?
I help those who help themselves - I already said that somebody else would need to implement the VESA driver.
Jordan
On Wed, 1 Oct 2008 12:48:11 -0600, Jordan Crouse jordan.crouse@amd.com wrote:
On 01/10/08 14:41 -0400, Joseph Smith wrote:
Sweet, I like it :-) Jordan, are you going to be able to make this a reality for libpayload?
I help those who help themselves - I already said that somebody else would need to implement the VESA driver.
I'm not sure what you mean by that???