Slashdot Mirror


Basic Linux Boot On Open Graphics Card

David Vuorio writes "The Open Graphics Project aims to develop a fully open-source graphics card; all specs, designs, and source code are released under Free licenses. Right now, FPGAs (large-scale reprogrammable chips) are used to build a development platform called OGD1. They've just completed an alpha version of legacy VGA emulation, apparently not an easy feat. This YouTube clip shows Gentoo booting up in text mode, with OGD1 acting as the primary display. The Linux Fund is receiving donations, so that ten OGD1 boards can be bought (at cost) for developers. Also, the FSF shows their interest by asking volunteers to help with the OGP wiki."

22 of 177 comments (clear)

  1. A milestone? by Brian+Gordon · · Score: 3, Insightful

    Isn't VGA a very thoroughly documented and widely implemented standard?

    Also, they can't possibly approach competing with NVidia or ATI and I doubt anyone's going to shell out a billion dollars to build a plant to make their cards. If they're just playing around with FGPAs then this isn't really a serious "Open Graphics Card" ... performance will be terrible .

    1. Re:A milestone? by ypctx · · Score: 3, Funny

      Well, second step is Open Source Factories.

    2. Re:A milestone? by DavidR1991 · · Score: 4, Informative

      The /. post gives the wrong impression about the VGA implementation - it was difficult because they wanted to implement it in a extremely simple fashion, not because VGA itself is complex

    3. Re:A milestone? by iamacat · · Score: 4, Interesting

      Also, they can't possibly approach competing with NVidia or ATI

      If you are running Windows on an x86 box, this may be true. Move to FreeBSD on an ARM embedded display and getting the drivers becomes dicey. Want to optimize medical imaging requiring 48 bit color rather than a typical game? Bet you will have better luck with an FPGA than an off the shelf card.

    4. Re:A milestone? by Kotoku · · Score: 5, Funny

      Step 1: Open Graphics Card Step 2: Open Source Factories Step 3: ???? Step 4: Communism!

    5. Re:A milestone? by auric_dude · · Score: 4, Interesting
    6. Re:A milestone? by Jeff+DeMaagd · · Score: 4, Informative

      A lot of times, FPGAs are used for development. Once the design is proven, then you can go to etching into silicon. Almost nobody builds a fab for one chip, the good news is that chip fabs can make numerous different kinds of chips. There are many fabs that are willing to take any design that comes their way, as long as the money is there.

  2. Re:Do we want an open source video card? by nurb432 · · Score: 3, Insightful

    Do you want to be tied to a vendor?

    If the answer is no, then you understand. if you don't mind being tied to a vendor and at their mercy, then i guess the answer for you is that there is no benefit.

    Open hardware has the same value as open software.

    --
    ---- Booth was a patriot ----
  3. Re:Do we want an open source video card? by Brian+Gordon · · Score: 3, Interesting

    Well obviously it's of academic interest. American consumers have sunk billions into video card research and for the most part the implementations are shrouded in mystery locked up in labs. Nobody un-NDA-bound really knows how to build these things: computer graphics is a highly specialized and difficult problem for hardware engineers. The real interest is in making a hardware design that actually works well and then writing up the design in abstract, not to actually make working video cards.

    Also I guess it's useful to hammer out some foundational "building blocks" and make them available freely so that entry into video card research is easier.

  4. Re:Do we want an open source video card? by Daemonax · · Score: 3, Interesting

    We're geeks... So the reason is "because we can". It provides a system where we don't have another blackbox. We can actually understand down to the lowest level how things are working. This is great for people who desire to understand how things work, and also people that hope for a future of machines and hardware that are under the control of the owners.

    Sorry to get a bit crazy here, but imagine a world with technology like that in Ghost in the Shell. I would not go getting such implants and additions if I did not and could not have complete control and understanding over the stuff. This type of project is a small step in maintaining individual control.

  5. Re:Do we want an open source video card? by cduffy · · Score: 4, Insightful

    When a piece of music, or a play, enters the public domain, there are effects beneficial to the public:

    • Direct embodiments (sheet music, CDs, etc) become cheaper, and thus accessible to more of the public.
    • Derived works are easier (no licensing hassle) to create.

    These have analogs here. Having a Free video card design means that low-end video cards can become that much cheaper (and that there's more room for new entrants into the very-low-end market), and that there's a common, available base on which new and innovative work can be done.

  6. Drivers by tepples · · Score: 4, Informative

    If I don't like my NVidia card, I can move to a competitor's chipset.

    Only if the competitor is friendly to the free software community. There are plenty of hardware makers that have declined the free software community's requests for low-level specifications useful for writing free drivers.

  7. some kind of useful background by Anonymous Coward · · Score: 5, Informative

    from http://www.osnews.com/permalink?360100 As the original architect of the way VGA is done on this board, perhaps I can offer an explanation. There is perhaps a more straightforward way of implementing VGA than the way we did it. The direct route would require two components. One piece is the host interface that interprets I/O and memory accesses from PCI and manipulates graphics memory appropriate. The other piece is a specialized video controller that is able to translate text (which is encoded in two bytes as an ASCII value and color indices) in real-time into pixels as they're scanned out to the monitor. This is actually how others still do it. To us, VGA is legacy. It should be low-priority and have minimal impact on our design. We didn't want to hack up our video controller in nasty ways (or include alternate logic) for such a purpose, and we didn't want to dedicate a lot of logic to it. Doing it the usual way was going to be too invasive and wasteful. Also, we want eventually to do PCI bus-mastering, which requires some high-level control logic, typically implemented in a simple microcontroller. So we thought, if we're going to have a microcontroller anyhow, why not give it dual purpose. When in VGA mode, the uC we designed (which we call HQ) intercepts and services all PCI traffic to OGD1. Microcode we wrote interprets the accesses and stores text appropriately in graphics memory. Then, to avoid hacking up the video controller, we actually have HQ perform a translation from the text buffer to a pixel buffer over and over in the background. Its input is VGA text. Its output is pixels suitable for our video controller. Aside from the logic reduction, this has other advantages. The screen resolution as seen by the host is decoupled from the physical display resolution. So while VGA thinks it's 640x400, the monitor could be at 2560x1600, without the need for a scaler. It's easily programmable, and we have complete control over how the text is processed into pixels; for instance, we could have HQ do some scaling or use a higher-res font different from what the host thinks we're using. We call it emulation because, in a way, our VGA is implemented entirely in software, albeit microcode that's loaded into or own microcontroller.

  8. Re:Do we want an open source video card? by Animats · · Score: 5, Insightful

    There's not that much mystery about the things. Making a VGA emulator in an FPGA is no big deal. If all you implemented was text mode and mode 13H, it would probably boot Linux. Getting to a card that runs OpenGL is a big job, but not out of reach. The pipeline is well understood, and there are software implementations to look at. As you get to later versions of Direct-X, it gets tougher, because Microsoft controls the documentation.

    But the real problem is that you'll never get anything like the performance of current generation 3D boards with an FPGA. There aren't anywhere near enough gates. You need custom silicon.

  9. Re:Hey by thsths · · Score: 4, Informative

    Cool, yes. Useful - hardly.

    If you start with a clean slate, why would you bother with VGA emulation? Could you not just go for a sane solution, such as a flat frame buffer? Any other architecture does that, why does the PC architecture have to drag along legacy modes such as CGA with a number of 4 colors palettes?

    A flat 8bit RGB buffer would make a lot more sense, and I am sure Linux would boot faster on it, too.

  10. Re:Hey by DaleGlass · · Score: 4, Insightful

    Unfortunately the BIOS and boot loader will still need VGA. Maybe Linux BIOS could remove that requirement, but you can't count on that.

    They seem to have implemented it in a very cool way too. Quote from a linked OSNews article:

    Aside from the logic reduction, this has other advantages. The screen resolution as seen by the host is decoupled from the physical display resolution. So while VGA thinks it's 640x400, the monitor could be at 2560x1600, without the need for a scaler. It's easily programmable, and we have complete control over how the text is processed into pixels; for instance, we could have HQ do some scaling or use a higher-res font different from what the host thinks we're using.

  11. Re:Do we want an open source video card? by BikeHelmet · · Score: 5, Informative

    and your line seems to suggest confusion on that part.

    Doesn't seem that way to me. He's just pointing out that when compared to other electronics, we have shockingly little info available.

    Even for CPUs, there are fully documented "open-source" microcontrollers available, but for GPUs there's basically nothing. It is a big mystery, how it's all done. And now we've gone so far that GPUs are doing incredible things like juggling 10,000 threads that manage all the shading when, you fire up a game.

    nVidia and ATI stated GPUs are many times more complex than CPUs, and I fully believe them.

  12. Re:Hey by MBCook · · Score: 4, Insightful

    Slashdot, RTFA, blah blah blah.

    If you go to the Wiki, and read the link in the top article, there is a link to OS News. If you follow that and read down in the comments, you'll find this post by the architect of the VGA emulation.

    Apparently it really is emulation. Their MCU that they use as a PCI interface has a mode that generates the raw pixels when given VGA commands. It handles the VGA interface. The graphics processor just receives (from it's perspective) pixmaps that are constantly generated by the MCU in VGA mode.

    The guy says that VGA on their card is actually resolution independent (since the MCU generates what is needed) and could actually be up-sampled to show clearer fonts without the OS having any idea it was going on.

    He says it's not the cleanest way of doing things (from a methodology standpoint), but it has the least impact on the design of the hardware (compared to a "real" VGA interface).

    --
    Comment forecast: Bits of genius surrounded by a sea of mediocrity.
  13. Re:Do we want an open source video card? by Animats · · Score: 3, Insightful

    Implementing OpenGL efficiently isn't just a "big job" it's essentially the entire field of computer graphics hardware.

    It's understood, though. And you can do it in sections. Start with an OpenGL implementation that does tessellation, geometry transforms, and fill in software. Build something that just does the fill part. (That's 1995 technology in PC graphics.) Then add the 4x4 multiplier and do the geometry on the board (that's 1998 technology on the PC, 1985 technology for SGI.). Once all that's working correctly and the read-back of the frame buffer matches the OpenGL spec for the tests, you can start to work on parallelism. (That's 2000 technology). Then comes programmable shaders and arbitrary computation on the graphics board, which gets hard.

    It's a lot like Linux; a decade behind, but still useful.

  14. Re:Hey by DaleGlass · · Score: 3, Interesting

    But it probably still uses a 8x16 pixel font, which doesn't look that good on a 30" screen.

    I think the idea is that the video card could pretend it's VGA, while substituting an antialiased 32x64 font in its place. Nothing earthshaking of course, but that sure would look nice.

    Your text mode could look like this

  15. Re:Hey by DaleGlass · · Score: 3, Interesting

    Ok, and how many people are going to run a desktop on it? It's server hardware.

    Again, you seem to be missing my point. Yes, Linux technically doesn't need the BIOS. Yes, there exist other architectures besides x86.

    But, a video card is a product for desktops, and the vast majority of desktops are x86. The vast majority of those start booting in text mode.

    Pretty much all other architectures are unimportant in comparison, because they're used in embedded hardware, or are technically outdated. If anybody is going to buy this thing, I doubt they're going to put it into a modern Sun server.

    It's already a project that's going to find it hard to get wide adoption, why would you make it even harder for it to find an use, by making it incompatible with the most common by far hardware it could be plugged into?

  16. Re:Hey by amn108 · · Score: 3, Insightful

    You fail to take into account how fast things can change on the desktop arena. I say we have had enough of either BIOS, VGA and the text mode as such. For all it is worth, do it like Macs do - startup the minimalistic OFI/EFI with the video card in graphics mode, and boot up the OS from the disk blocks as fast as you can. If anybody wants to mess with their system before the OS loads up, they should press that Alt+Option+O+F or whatever that was, and type firmware commands into console. BIOS accomplishes neither task well - it gives experts stipid interfaces, while they could be using command line instead, and novices do not even know what they are doing in BIOS.

    And no stupid 4-bit color Dell/Lenovo/HP/Asus/Acer logos with stupid BIOS text and even more stupid BIOS itself.

    There is no need for two operating systems on one computer for the majority of us, BIOS being one. And it will save us 10 seconds of idle time at startup. Degrade the common subset of hardware interfaces so that the only thing the bootstrap procedure needs to do is get to the boot block of whatever device that contains the further loading code. No VGA BIOS and BIOS interface is needed for that in their entirety. Just a way to read the boot sector from a device. That does not need a vendor logo on the screen or the multitude of settings BIOS provides, before these are superceded with OS drivers anyway.