Ubercool! This is exactly what I myself intended to do, and you have already done it! My next goal is to initialize the display already in LinuxBios. I want it to go into a nice picture/or solid color within less a second after press the ON button. Then, later as the X-server takes over the control, it will know that the display is initialized and can take over without blinking the display.... :-)
Do you think it is possible?
//Fredrik
2007/3/16, Luc Verhaegen libv@skynet.be:
Yes, you read that correctly.
You can run X on your CLE266 based EPIA without having to depend on any non-free software whatsoever.
No non-free drivers. No non-free BIOS. And now no VGA BIOS :)
If you have an EPIA-M, then things are very easy. Well, relatively easy. Well easier than trying to include a VGA ROM in linuxbios anyway :)
X bit:
My X driver has been able to run as a non-Primary VGA device for years. All it needed was to become (bios-initialised) scratch register independant, which is something i did late last year, early this year. There was a single, highly trivial bug in the way, and it was something i broke late last year, but now it's just fine.
So just get my driver from git: git-clone git://people.freedesktop.org/~libv/xf86-video-unichrome
- Build it; there's a README in there for manual builds (it's backwards
compatible all the way to debian sarge's xfree86-4.3.0), or if you're on debian or ubuntu (with a modular X) then you can just dpkg-buildpackage it.
- Install it.
- Test it.
Caveats:
- You do want to test X and verify that it's the latest version. The
log echoes the git SHA-ID. grep for "SHA-ID" and match it with your git tree.
- You do want X to start automatically, or you will have to have some
other means of logging in (serial, network).
- Don't depend on X as your only way in. The driver was written only
with "bail out cleanly if something fails" in mind. If it fails, it will restore the console cleanly. But the snag there is that we didn't have a console to begin with (but hang on, i'll get you one ASAP). :)
- The driver will complain when trying to parse the scratch registers.
But all the necessary ones are handled properly now, and the rest are configurable. So the driver is just whining, nothing more.
BIOS bit (for original 256kB rom):
Linuxbios already had all the bits necessary to get this working. There's no more voodoo involved anywhere.
- Just use whatever payload you require (normal use will probably be
filo), but make sure that this is solid.
- Just buildtarget via/epia-m with the standard config, which should
only be adjusted for your payload.
- flash your rom with the created linuxbios.rom, but do store the old
image first, as that takes only a few seconds.
Do not bother with any of the VGA things, as, for X only, they are not necessary, and most of the documentation out there is outdated anyway :)
Caveats:
- you do want serial (test this before rebooting), as you don't get a
VGA console. If you, for instance, want to touch what filo is booting for you, then you do need serial.
- you probably do want to be able to ssh in, this means that you
pretty much need to get to the end of the booting process already.
I have deliberately kept the above guide short. Read through the documentation of what you're doing, this will help ensure that you don't get an unbootable machine. But this is not rocket science, there is no voodoo involved.
If you're careful, and spend a bit of time and thought on setting up the payload and linuxbios, then the chance of bricking your EPIA-M is small. But if you do brick it, you will have to find a way to flash your rom from another board (hotswapping) or with a prommer. Nothing lethal, but a rather major inconvenience if you're not prepared for it.
For absolute peace of mind, you might just want to get a PLCC extractor (~5-10EUR) and a 5V PLCC rom (~5EUR) and keep the original rom as is. If you then bugger up, you can just insert the old rom again, edit your BIOS config (CMOS got incompatible changes now), and it'll boot up just fine.
Now, if both bits have been done, do some ritual of your own choosing and reboot.
You do want to powercycle to get rid of the original VGA BIOS that's still loaded at 0x000C0000, which doesn't get run at all but just sits there. Also, if you don't powercycle, console will also just keep on existing as if nothing happened, as no registers from the unichrome will get touched in a significant way.
After a short while, X should come up as if nothing's changed :)
And that's it. You've rid yourself of all non-free software. Now you get to trump pretty much everybody who claims to be all free software :)
There is of course no warranty that all of this will not brick your motherboard. If it does, then i'm sorry, but then you've probably done something wrong, as it's all pretty happy here. But it's nothing lethal anyway, just inconvenient :)
The only time i did brick it here is when i did try to run a VGA BIOS (at a wrong, hardcoded offset), so don't worry too much, just be very careful :)
Oh well, true free software geekdom is only for the brave.
Luc Verhaegen. http://unichrome.sf.net/ _______________________________________________ xorg mailing list xorg@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/xorg