mirror of https://gitee.com/openkylin/linux.git
61 lines
2.1 KiB
Plaintext
61 lines
2.1 KiB
Plaintext
There are several classic problems related to memory on Linux
|
|
systems.
|
|
|
|
1) There are some buggy motherboards which cannot properly
|
|
deal with the memory above 16MB. Consider exchanging
|
|
your motherboard.
|
|
|
|
2) You cannot do DMA on the ISA bus to addresses above
|
|
16M. Most device drivers under Linux allow the use
|
|
of bounce buffers which work around this problem. Drivers
|
|
that don't use bounce buffers will be unstable with
|
|
more than 16M installed. Drivers that use bounce buffers
|
|
will be OK, but may have slightly higher overhead.
|
|
|
|
3) There are some motherboards that will not cache above
|
|
a certain quantity of memory. If you have one of these
|
|
motherboards, your system will be SLOWER, not faster
|
|
as you add more memory. Consider exchanging your
|
|
motherboard.
|
|
|
|
All of these problems can be addressed with the "mem=XXXM" boot option
|
|
(where XXX is the size of RAM to use in megabytes).
|
|
It can also tell Linux to use less memory than is actually installed.
|
|
If you use "mem=" on a machine with PCI, consider using "memmap=" to avoid
|
|
physical address space collisions.
|
|
|
|
See the documentation of your boot loader (LILO, loadlin, etc.) about
|
|
how to pass options to the kernel.
|
|
|
|
There are other memory problems which Linux cannot deal with. Random
|
|
corruption of memory is usually a sign of serious hardware trouble.
|
|
Try:
|
|
|
|
* Reducing memory settings in the BIOS to the most conservative
|
|
timings.
|
|
|
|
* Adding a cooling fan.
|
|
|
|
* Not overclocking your CPU.
|
|
|
|
* Having the memory tested in a memory tester or exchanged
|
|
with the vendor. Consider testing it with memtest86 yourself.
|
|
|
|
* Exchanging your CPU, cache, or motherboard for one that works.
|
|
|
|
* Disabling the cache from the BIOS.
|
|
|
|
* Try passing the "mem=4M" option to the kernel to limit
|
|
Linux to using a very small amount of memory. Use "memmap="-option
|
|
together with "mem=" on systems with PCI to avoid physical address
|
|
space collisions.
|
|
|
|
|
|
Other tricks:
|
|
|
|
* Try passing the "no-387" option to the kernel to ignore
|
|
a buggy FPU.
|
|
|
|
* Try passing the "no-hlt" option to disable the potentially
|
|
buggy HLT instruction in your CPU.
|