finding cheap hardware for Linux?

ME dugan at passwall.com
Fri Jan 5 16:28:28 PST 2001


On Fri, 5 Jan 2001, Troy Engel wrote:
> The model I bought was the lowest end one, celeron 533, with "normal"
> video RAM not the shared stuff.  No clue how it (shared ram) works,
> would be interested in knowing that as well....

Assuming this is not a technical question, I'll take a stab at 2 possible
answers based on 2 different guesses on the question:

(What is it?)
Motherboards+BIOS offering "Shared memory" with their integrated video
hardware allow you to allocate memory from your system and motherboard for
use with images. Say you have 64Mb of RAM. ("You have 64Mb of RAM." ;-)
You could then check out your CMOS settings, and on many of the boards
with BIOS support for "shared memory" then choose to have your integrated
video use 1Mb, 2Mb, 3Mb, or 4Mb of your 64Mb of RAM. This allocation is
not like a true "share" where both your OS and the video card may play in
the same memory segments after they are allocated at the same time. I
think "Shared Memory" is a bad name, and should be replaced with something
more like, "video memory dynamically allocated from board memory" or an
even better name like "this was a bad idea then, and is still a bad idea."

(How does it work with Linux?)
Some motherboards+BIOS that use this do not allow you to disable the on
board video port if you happen to want to use some new nifty PCI 3D
accellerated card with 64Mb built into it.

Earlier versions of Linux kernels (1.2.x, and 2.0 to some extent) had to
be told exactly where the video memory was on some boards with this so
that the memory would not be malloc-ed to a program and cause your monitor
to display really nifty designs, or a blank screen. (Have not tested these
with the 2.2 kernels, so I don't know if they are better at recognizing
information reported from the BIOS in CMOS.) For cases where the video
memory was at the end of on board memory, you just needed to use the
mem="XXM" flag at boot, in loadlin.exe as an arg or in lilo.conf where XX
was the actual OS useable memory. (Say 4Mb for video, then mem="60M" for
it if 64Mb was on board.)

The worst "shared memory" systems place their "shared memory" along
different parts of memory, or sit right in the middle of memory. Examples
might include a system that has 16Mb RAM hard wired to the board, of which
1Mb is allocated *always* to be used by video, and then only allow you to
allocate more RAM to video memory when you add SIMM/DIMMs and then either
take the last 1Mb of each 16Mb SIMM/DIMM or just gather all sums of memory
from the tailing end of memory. These were bad in some cases because you
had to tell Linux to skip the memory allocated from 15Mb to 16Mb and then
how ever much more you added at the end. Newer 2.2 and 2.4 kernels might
have had an easier time extracting and understanding information as
reported by the BIOS, but I have not tested them.

I have made this "shared video memory" work on a number of systems, but it
was problematic keeping it running on most. If you still look to want to
get one, see if the Motherboard comes with a manual on how to disable the
on board video port in case you ever want to use a better video card, and 
if they say the memory is only allocated at the end.

If Linux auto-detects the remaining memory (when you issue a free you can
see this) after boot up, then that would be a good sign that the video
hardware was playing nice with Linux.

Enjoy,
-ME





More information about the talk mailing list