mirror of
https://github.com/memtest86plus/memtest86plus.git
synced 2024-11-23 08:26:23 -06:00
Rename to Memtest86+ v6.0.
This commit is contained in:
parent
0075375632
commit
d04ec9f681
83
README.md
83
README.md
@ -1,10 +1,10 @@
|
|||||||
# PCMemTest
|
# Memtest86+
|
||||||
|
|
||||||
PCMemTest is a stand-alone memory tester for x86 and x86-64 architecture
|
Memtest86+ is a stand-alone memory tester for x86 and x86-64 architecture
|
||||||
computers. It provides a more thorough memory check than that provided by
|
computers. It provides a more thorough memory check than that provided by
|
||||||
BIOS memory tests.
|
BIOS memory tests.
|
||||||
|
|
||||||
PCMemTest can be loaded and run either directly by a PC BIOS (legacy or UEFI)
|
Memtest86+ can be loaded and run either directly by a PC BIOS (legacy or UEFI)
|
||||||
or via an intermediate bootloader that supports the Linux 16-bit, 32-bit,
|
or via an intermediate bootloader that supports the Linux 16-bit, 32-bit,
|
||||||
64-bit, or EFI handover boot protocol. It should work on any Pentium class or
|
64-bit, or EFI handover boot protocol. It should work on any Pentium class or
|
||||||
later 32-bit or 64-bit CPU.
|
later 32-bit or 64-bit CPU.
|
||||||
@ -21,34 +21,32 @@ later 32-bit or 64-bit CPU.
|
|||||||
* [Trouble-shooting Memory Errors](#trouble-shooting-memory-errors)
|
* [Trouble-shooting Memory Errors](#trouble-shooting-memory-errors)
|
||||||
* [Execution Time](#execution-time)
|
* [Execution Time](#execution-time)
|
||||||
* [Memory Testing Philosophy](#memory-testing-philosophy)
|
* [Memory Testing Philosophy](#memory-testing-philosophy)
|
||||||
* [PCMemTest Test Algorithms](#pcmemtest-test-algorithms)
|
* [Memtest86+ Test Algorithms](#memtest86+-test-algorithms)
|
||||||
* [Individual Test Descriptions](#individual-test-descriptions)
|
* [Individual Test Descriptions](#individual-test-descriptions)
|
||||||
* [Known Limitations and Bugs](#known-limitations-and-bugs)
|
* [Known Limitations and Bugs](#known-limitations-and-bugs)
|
||||||
* [Acknowledgments](#acknowledgments)
|
* [Acknowledgments](#acknowledgments)
|
||||||
|
|
||||||
## Origins
|
## Origins
|
||||||
|
|
||||||
PCMemTest is a fork and rewrite of Memtest86+, which in turn was a fork of
|
Memtest86+ v6.0 was based on PCMemTest, which was a fork and rewrite of the
|
||||||
Memtest86. The purpose of the rewrite was to:
|
earlier Memtest86+ v5.01, which in turn was a fork of Memtest86. The purpose
|
||||||
|
of the PCMemTest rewrite was to:
|
||||||
|
|
||||||
* make the code more readable and easier to maintain
|
* make the code more readable and easier to maintain
|
||||||
* make the code 64-bit clean and support UEFI boot
|
* make the code 64-bit clean and support UEFI boot
|
||||||
* fix failures seen when building with newer versions of GCC
|
* fix failures seen when building with newer versions of GCC
|
||||||
|
|
||||||
In the process, a number of features of Memtest86+ that are not required for
|
In the process of creating PCMemTest, a number of features of Memtest86+ v5.01
|
||||||
the main purpose of PCMemTest (testing the system memory) have been dropped.
|
that were not strictly required for testing the system memory were dropped. In
|
||||||
In particular, no attempt is made to measure the cache and main memory speed,
|
particular, no attempt is made to measure the cache and main memory speed, or
|
||||||
or to identify and report the DRAM type. This should allow PCMemTest to work
|
to identify and report the DRAM type. Some of these features will be added back
|
||||||
without modification on future hardware.
|
in future releases.
|
||||||
|
|
||||||
PCMemTest is based on the v5.01 release of Memtest86+, which was the last
|
|
||||||
public release at the time of the fork.
|
|
||||||
|
|
||||||
## Licensing
|
## Licensing
|
||||||
|
|
||||||
PCMemTest is released under the terms of the GNU General Public License version
|
Memtest86+ is released under the terms of the GNU General Public License
|
||||||
2 (GPLv2). Other than the provisions of the GPL there are no restrictions for
|
version 2 (GPLv2). Other than the provisions of the GPL there are no
|
||||||
use, private or commercial. See the LICENSE file for details.
|
restrictions for use, private or commercial. See the LICENSE file for details.
|
||||||
|
|
||||||
## Build and Installation
|
## Build and Installation
|
||||||
|
|
||||||
@ -92,8 +90,8 @@ When using an intermediate bootloader, either the `memtest.bin` file or the
|
|||||||
access, and the bootloader configuration should be updated to boot from
|
access, and the bootloader configuration should be updated to boot from
|
||||||
that file as if it were a Linux kernel with no initial RAM disk. Several
|
that file as if it were a Linux kernel with no initial RAM disk. Several
|
||||||
boot command line options are recognised, as described below. If using the
|
boot command line options are recognised, as described below. If using the
|
||||||
16-bit boot protocol, PCMemTest will use the display in text mode (640x400).
|
16-bit boot protocol, Memtest86+ will use the display in text mode (640x400).
|
||||||
If using the 32-bit or 64-bit boot protocols, PCMemTest will use the display
|
If using the 32-bit or 64-bit boot protocols, Memtest86+ will use the display
|
||||||
in either text mode or graphics mode, as specified in the `boot_params` struct
|
in either text mode or graphics mode, as specified in the `boot_params` struct
|
||||||
passed to it by the bootloader. If in graphics mode, the supplied framebuffer
|
passed to it by the bootloader. If in graphics mode, the supplied framebuffer
|
||||||
must be at least 640x400 pixels; if larger, the display will be centred. If
|
must be at least 640x400 pixels; if larger, the display will be centred. If
|
||||||
@ -107,12 +105,12 @@ on your build system. You may need to adjust some path and file names in
|
|||||||
the make file to match the naming on your system.
|
the make file to match the naming on your system.
|
||||||
|
|
||||||
The GRUB configuration files contained in the `grub` directory are there for
|
The GRUB configuration files contained in the `grub` directory are there for
|
||||||
use on the test ISO, but also serve as an example of how to boot PCMemTest
|
use on the test ISO, but also serve as an example of how to boot Memtest86+
|
||||||
from GRUB.
|
from GRUB.
|
||||||
|
|
||||||
## Boot Options
|
## Boot Options
|
||||||
|
|
||||||
An intermediate bootloader may pass a boot command line to PCMemTest. The
|
An intermediate bootloader may pass a boot command line to Memtest86+. The
|
||||||
command line may contain one or more options, separated by spaces. Each
|
command line may contain one or more options, separated by spaces. Each
|
||||||
option consists of an option name, optionally followed by an `=` sign and
|
option consists of an option name, optionally followed by an `=` sign and
|
||||||
one or more parameters, separated by commas. The following options are
|
one or more parameters, separated by commas. The following options are
|
||||||
@ -130,7 +128,7 @@ recognised:
|
|||||||
|
|
||||||
## Keyboard Selection
|
## Keyboard Selection
|
||||||
|
|
||||||
PCMemTest supports both the legacy keyboard interface (using I/O ports 0x60
|
Memtest86+ supports both the legacy keyboard interface (using I/O ports 0x60
|
||||||
and 0x64) and USB keyboards (using its own USB device drivers). One or the
|
and 0x64) and USB keyboards (using its own USB device drivers). One or the
|
||||||
other can be selected via the boot command line, If neither is selected, the
|
other can be selected via the boot command line, If neither is selected, the
|
||||||
default is to use both. An additional option on the boot command line is
|
default is to use both. An additional option on the boot command line is
|
||||||
@ -139,7 +137,7 @@ older USB devices.
|
|||||||
|
|
||||||
Older BIOSs usually support USB legacy keyboard emulation, which makes USB
|
Older BIOSs usually support USB legacy keyboard emulation, which makes USB
|
||||||
keyboards act like legacy keyboards connected to ports 0x60 and 0x64. This
|
keyboards act like legacy keyboards connected to ports 0x60 and 0x64. This
|
||||||
can often be enabled or disabled in the BIOS setup menus. If PCMemTest's
|
can often be enabled or disabled in the BIOS setup menus. If Memtest86+'s
|
||||||
USB device drivers are enabled, they will override this and access any USB
|
USB device drivers are enabled, they will override this and access any USB
|
||||||
keyboards directly. The downside of that is that the USB controllers and
|
keyboards directly. The downside of that is that the USB controllers and
|
||||||
device drivers require some memory to be reserved for their private use,
|
device drivers require some memory to be reserved for their private use,
|
||||||
@ -151,17 +149,17 @@ emulation and add `keyboard=legacy` on the boot command line.
|
|||||||
you enable the Compatibility System Module (CSM) in the BIOS setup. Others
|
you enable the Compatibility System Module (CSM) in the BIOS setup. Others
|
||||||
only support it when actually booting in legacy mode.
|
only support it when actually booting in legacy mode.
|
||||||
|
|
||||||
**NOTE**: PCMemTest's USB device drivers are work in progress. Not all USB
|
**NOTE**: Memtest86+'s USB device drivers are work in progress. Not all USB
|
||||||
devices are supported yet.
|
devices are supported yet, and there may be problems on some hardware.
|
||||||
|
|
||||||
## Operation
|
## Operation
|
||||||
|
|
||||||
Once booted, PCMemTest will initialise its display, then pause for a few
|
Once booted, Memtest86+ will initialise its display, then pause for a few
|
||||||
seconds to allow the user to configure its operation. If no key is pressed,
|
seconds to allow the user to configure its operation. If no key is pressed,
|
||||||
it will automatically start running all tests using a single CPU core,
|
it will automatically start running all tests using a single CPU core,
|
||||||
continuing indefinitely until the user reboots or halts the machine.
|
continuing indefinitely until the user reboots or halts the machine.
|
||||||
|
|
||||||
At startup, and when running tests, PCMemTest responds to the following keys:
|
At startup, and when running tests, Memtest86+ responds to the following keys:
|
||||||
|
|
||||||
* F1
|
* F1
|
||||||
* enters the configuration menu
|
* enters the configuration menu
|
||||||
@ -281,7 +279,7 @@ results.
|
|||||||
|
|
||||||
## Trouble-shooting Memory Errors
|
## Trouble-shooting Memory Errors
|
||||||
|
|
||||||
Please be aware that not all errors reported by PCMemTest are due to bad
|
Please be aware that not all errors reported by Memtest86+ are due to bad
|
||||||
memory. The test implicitly tests the CPU, caches, and motherboard. It is
|
memory. The test implicitly tests the CPU, caches, and motherboard. It is
|
||||||
impossible for the test to determine what causes the failure to occur. Most
|
impossible for the test to determine what causes the failure to occur. Most
|
||||||
failures will be due to a problem with memory. When it is not, the only option
|
failures will be due to a problem with memory. When it is not, the only option
|
||||||
@ -320,8 +318,8 @@ module may work fine in one system and not in another. This is not uncommon
|
|||||||
and is a source of confusion. The components are not necessarily bad but
|
and is a source of confusion. The components are not necessarily bad but
|
||||||
certain combinations may need to be avoided.
|
certain combinations may need to be avoided.
|
||||||
|
|
||||||
In the vast majority of cases errors reported by PCMemTest are valid. There
|
In the vast majority of cases errors reported by Memtest86+ are valid. There
|
||||||
are some systems that cause PCMemTest to be confused about the size of memory
|
are some systems that cause Memtest86+ to be confused about the size of memory
|
||||||
and it will try to test non-existent memory. This will cause a large number of
|
and it will try to test non-existent memory. This will cause a large number of
|
||||||
consecutive addresses to be reported as bad and generally there will be many
|
consecutive addresses to be reported as bad and generally there will be many
|
||||||
bits in error. If you have a relatively small number of failing addresses and
|
bits in error. If you have a relatively small number of failing addresses and
|
||||||
@ -332,14 +330,14 @@ All valid memory errors should be corrected. It is possible that a particular
|
|||||||
error will never show up in normal operation. However, operating with marginal
|
error will never show up in normal operation. However, operating with marginal
|
||||||
memory is risky and can result in data loss and even disk corruption.
|
memory is risky and can result in data loss and even disk corruption.
|
||||||
|
|
||||||
PCMemTest can not diagnose many types of PC failures. For example a faulty CPU
|
Memtest86+ can not diagnose many types of PC failures. For example a faulty CPU
|
||||||
that causes your OS to crash will most likely just cause PCMemTest to crash in
|
that causes your OS to crash will most likely just cause Memtest86+ to crash in
|
||||||
the same way.
|
the same way.
|
||||||
|
|
||||||
## Execution Time
|
## Execution Time
|
||||||
|
|
||||||
The time required for a complete pass of PCMemTest will vary greatly depending
|
The time required for a complete pass of Memtest86+ will vary greatly depending
|
||||||
on CPU speed, memory speed, and memory size. PCMemTest executes indefinitely.
|
on CPU speed, memory speed, and memory size. Memtest86+ executes indefinitely.
|
||||||
The pass counter increments each time that all of the selected tests have been
|
The pass counter increments each time that all of the selected tests have been
|
||||||
run. Generally a single pass is sufficient to catch all but the most obscure
|
run. Generally a single pass is sufficient to catch all but the most obscure
|
||||||
errors. However, for complete confidence when intermittent errors are suspected
|
errors. However, for complete confidence when intermittent errors are suspected
|
||||||
@ -370,9 +368,9 @@ number of possible chip layouts for different chip types and manufacturers
|
|||||||
making this strategy impractical. However, there are testing algorithms that
|
making this strategy impractical. However, there are testing algorithms that
|
||||||
can approximate this ideal strategy.
|
can approximate this ideal strategy.
|
||||||
|
|
||||||
## PCMemTest Test Algorithms
|
## Memtest86+ Test Algorithms
|
||||||
|
|
||||||
PCMemTest uses two algorithms that provide a reasonable approximation of the
|
Memtest86+ uses two algorithms that provide a reasonable approximation of the
|
||||||
ideal test strategy above. The first of these strategies is called moving
|
ideal test strategy above. The first of these strategies is called moving
|
||||||
inversions. The moving inversion tests work as follows:
|
inversions. The moving inversion tests work as follows:
|
||||||
|
|
||||||
@ -419,7 +417,7 @@ strides may be more effective but would take longer to execute. The choice of
|
|||||||
|
|
||||||
## Individual Test Descriptions
|
## Individual Test Descriptions
|
||||||
|
|
||||||
PCMemTest executes a series of numbered tests to check for errors. These tests
|
Memtest86+ executes a series of numbered tests to check for errors. These tests
|
||||||
consist of a combination of test algorithm, data pattern and caching. The
|
consist of a combination of test algorithm, data pattern and caching. The
|
||||||
execution order for these tests were arranged so that errors will be detected
|
execution order for these tests were arranged so that errors will be detected
|
||||||
as rapidly as possible. A description of each test follows.
|
as rapidly as possible. A description of each test follows.
|
||||||
@ -515,22 +513,23 @@ of all zeros and all ones.
|
|||||||
|
|
||||||
## Acknowledgments
|
## Acknowledgments
|
||||||
|
|
||||||
PCMemTest was based on Memtest86+, developed by Samuel Demeulemeester, which
|
Memtest86+ v6.0 was based on PCMemTest, developed by Martin Whitaker, which
|
||||||
in turn was based on Memtest86, developed by Chris Brady with the resources
|
was based on Memtest86+ v5.01, developed by Samuel Demeulemeester, which in
|
||||||
and assistance listed below:
|
turn was based on Memtest86, developed by Chris Brady with the resources and
|
||||||
|
assistance listed below:
|
||||||
|
|
||||||
* The initial versions of the source files bootsect.S, setup.S, head.S and
|
* The initial versions of the source files bootsect.S, setup.S, head.S and
|
||||||
build.c are from the Linux 1.2.1 kernel and have been heavily modified.
|
build.c are from the Linux 1.2.1 kernel and have been heavily modified.
|
||||||
|
|
||||||
* Doug Sisk provided code to support a console connected via a serial port.
|
* Doug Sisk provided code to support a console connected via a serial port.
|
||||||
(not used by PCMemTest)
|
(not currently used)
|
||||||
|
|
||||||
* Code to create BadRAM patterns was provided by Rick van Rein.
|
* Code to create BadRAM patterns was provided by Rick van Rein.
|
||||||
|
|
||||||
* The block move test is based on Robert Redelmeier's burnBX test.
|
* The block move test is based on Robert Redelmeier's burnBX test.
|
||||||
|
|
||||||
* Screen buffer code was provided by Jani Averbach.
|
* Screen buffer code was provided by Jani Averbach.
|
||||||
(not used by PCMemTest)
|
(not used by Memtest86+ v6.0)
|
||||||
|
|
||||||
* Eric Biederman provided all of the feature content for version 3.0
|
* Eric Biederman provided all of the feature content for version 3.0
|
||||||
plus many bugfixes and significant code cleanup.
|
plus many bugfixes and significant code cleanup.
|
||||||
|
@ -71,9 +71,9 @@ void display_init(void)
|
|||||||
set_background_colour(WHITE);
|
set_background_colour(WHITE);
|
||||||
clear_screen_region(0, 0, 0, 27);
|
clear_screen_region(0, 0, 0, 27);
|
||||||
#if TESTWORD_WIDTH > 32
|
#if TESTWORD_WIDTH > 32
|
||||||
prints( 0, 0, " PCMemTest-64 v1.6-devel");
|
prints(0, 0, " Memtest86+64 v6.0pre");
|
||||||
#else
|
#else
|
||||||
prints( 0, 0, " PCMemTest-32 v1.6-devel");
|
prints(0, 0, " Memtest86+32 v6.0pre");
|
||||||
#endif
|
#endif
|
||||||
set_foreground_colour(WHITE);
|
set_foreground_colour(WHITE);
|
||||||
set_background_colour(BLUE);
|
set_background_colour(BLUE);
|
||||||
|
@ -345,7 +345,7 @@ sectors:
|
|||||||
.word 0
|
.word 0
|
||||||
|
|
||||||
boot_msg:
|
boot_msg:
|
||||||
.ascii "Loading PCMemTest"
|
.ascii "Loading Memtest86+"
|
||||||
boot_msg_end:
|
boot_msg_end:
|
||||||
|
|
||||||
# Emulate the Linux boot header, to allow loading by intermediate boot loaders.
|
# Emulate the Linux boot header, to allow loading by intermediate boot loaders.
|
||||||
|
@ -163,7 +163,7 @@ dap_lba_start:
|
|||||||
.quad 0
|
.quad 0
|
||||||
|
|
||||||
boot_msg:
|
boot_msg:
|
||||||
.ascii "Loading PCMemTest\r\n"
|
.ascii "Loading Memtest86+\r\n"
|
||||||
boot_msg_end:
|
boot_msg_end:
|
||||||
|
|
||||||
error_msg:
|
error_msg:
|
||||||
|
@ -129,7 +129,7 @@ esp.img: memtest.efi
|
|||||||
memtest.iso: memtest.mbr floppy.img esp.img
|
memtest.iso: memtest.mbr floppy.img esp.img
|
||||||
@mkdir -p iso/boot
|
@mkdir -p iso/boot
|
||||||
cp floppy.img iso/boot/floppy.img
|
cp floppy.img iso/boot/floppy.img
|
||||||
xorrisofs -pad -R -J -volid PCMemTest32 -graft-points -hide-rr-moved --grub2-mbr memtest.mbr \
|
xorrisofs -pad -R -J -volid Memtest86+32 -graft-points -hide-rr-moved --grub2-mbr memtest.mbr \
|
||||||
-b /boot/floppy.img --efi-boot --interval:appended_partition_2:all:: \
|
-b /boot/floppy.img --efi-boot --interval:appended_partition_2:all:: \
|
||||||
-part_like_isohybrid -iso_mbr_part_type 0x00 -append_partition 2 0xef ./esp.img \
|
-part_like_isohybrid -iso_mbr_part_type 0x00 -append_partition 2 0xef ./esp.img \
|
||||||
-o ./memtest.iso /boot=./iso/boot /EFI=./iso/EFI
|
-o ./memtest.iso /boot=./iso/boot /EFI=./iso/EFI
|
||||||
@ -167,7 +167,7 @@ grub-bootia32.efi:
|
|||||||
|
|
||||||
grub-esp.img: memtest.efi grub-bootia32.efi ../grub/grub-efi.cfg
|
grub-esp.img: memtest.efi grub-bootia32.efi ../grub/grub-efi.cfg
|
||||||
@mkdir -p grub-iso/EFI/BOOT/grub/i386-efi grub-iso/EFI/BOOT/grub/fonts
|
@mkdir -p grub-iso/EFI/BOOT/grub/i386-efi grub-iso/EFI/BOOT/grub/fonts
|
||||||
cp memtest.efi grub-iso/EFI/BOOT/pcmemtest
|
cp memtest.efi grub-iso/EFI/BOOT/memtest
|
||||||
cp grub-bootia32.efi grub-iso/EFI/BOOT/bootia32.efi
|
cp grub-bootia32.efi grub-iso/EFI/BOOT/bootia32.efi
|
||||||
cp ../grub/grub-efi.cfg grub-iso/EFI/BOOT/grub/grub.cfg
|
cp ../grub/grub-efi.cfg grub-iso/EFI/BOOT/grub/grub.cfg
|
||||||
cp $(GRUB_FONT_DIR)/unicode.pf2 grub-iso/EFI/BOOT/grub/fonts/
|
cp $(GRUB_FONT_DIR)/unicode.pf2 grub-iso/EFI/BOOT/grub/fonts/
|
||||||
@ -178,12 +178,12 @@ grub-esp.img: memtest.efi grub-bootia32.efi ../grub/grub-efi.cfg
|
|||||||
|
|
||||||
grub-memtest.iso: memtest.bin grub-eltorito.img ../grub/grub-legacy.cfg grub-esp.img
|
grub-memtest.iso: memtest.bin grub-eltorito.img ../grub/grub-legacy.cfg grub-esp.img
|
||||||
@mkdir -p grub-iso/boot/grub/i386-pc grub-iso/boot/grub/fonts
|
@mkdir -p grub-iso/boot/grub/i386-pc grub-iso/boot/grub/fonts
|
||||||
cp memtest.bin grub-iso/boot/pcmemtest
|
cp memtest.bin grub-iso/boot/memtest
|
||||||
cp grub-eltorito.img grub-iso/boot/eltorito.img
|
cp grub-eltorito.img grub-iso/boot/eltorito.img
|
||||||
cp ../grub/grub-legacy.cfg grub-iso/boot/grub/grub.cfg
|
cp ../grub/grub-legacy.cfg grub-iso/boot/grub/grub.cfg
|
||||||
cp $(GRUB_FONT_DIR)/unicode.pf2 grub-iso/boot/grub/fonts/
|
cp $(GRUB_FONT_DIR)/unicode.pf2 grub-iso/boot/grub/fonts/
|
||||||
cp $(GRUB_LIB_DIR)/i386-pc/*.mod grub-iso/boot/grub/i386-pc/
|
cp $(GRUB_LIB_DIR)/i386-pc/*.mod grub-iso/boot/grub/i386-pc/
|
||||||
xorrisofs -pad -R -J -volid PCMemTest64 -graft-points -hide-rr-moved \
|
xorrisofs -pad -R -J -volid Memtest86+32 -graft-points -hide-rr-moved \
|
||||||
--grub2-mbr $(GRUB_LIB_DIR)/i386-pc/boot_hybrid.img \
|
--grub2-mbr $(GRUB_LIB_DIR)/i386-pc/boot_hybrid.img \
|
||||||
-b /boot/eltorito.img -no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \
|
-b /boot/eltorito.img -no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \
|
||||||
--efi-boot --interval:appended_partition_2:all:: \
|
--efi-boot --interval:appended_partition_2:all:: \
|
||||||
|
@ -128,7 +128,7 @@ esp.img: memtest.efi
|
|||||||
memtest.iso: memtest.mbr floppy.img esp.img
|
memtest.iso: memtest.mbr floppy.img esp.img
|
||||||
@mkdir -p iso/boot
|
@mkdir -p iso/boot
|
||||||
cp floppy.img iso/boot/floppy.img
|
cp floppy.img iso/boot/floppy.img
|
||||||
xorrisofs -pad -R -J -volid PCMemTest64 -graft-points -hide-rr-moved --grub2-mbr memtest.mbr \
|
xorrisofs -pad -R -J -volid Memtest86+64 -graft-points -hide-rr-moved --grub2-mbr memtest.mbr \
|
||||||
-b /boot/floppy.img --efi-boot --interval:appended_partition_2:all:: \
|
-b /boot/floppy.img --efi-boot --interval:appended_partition_2:all:: \
|
||||||
-part_like_isohybrid -iso_mbr_part_type 0x00 -append_partition 2 0xef ./esp.img \
|
-part_like_isohybrid -iso_mbr_part_type 0x00 -append_partition 2 0xef ./esp.img \
|
||||||
-o ./memtest.iso /boot=./iso/boot /EFI=./iso/EFI
|
-o ./memtest.iso /boot=./iso/boot /EFI=./iso/EFI
|
||||||
@ -166,7 +166,7 @@ grub-bootx64.efi:
|
|||||||
|
|
||||||
grub-esp.img: memtest.efi grub-bootx64.efi ../grub/grub-efi.cfg
|
grub-esp.img: memtest.efi grub-bootx64.efi ../grub/grub-efi.cfg
|
||||||
@mkdir -p grub-iso/EFI/BOOT/grub/x86_64-efi grub-iso/EFI/BOOT/grub/fonts
|
@mkdir -p grub-iso/EFI/BOOT/grub/x86_64-efi grub-iso/EFI/BOOT/grub/fonts
|
||||||
cp memtest.efi grub-iso/EFI/BOOT/pcmemtest
|
cp memtest.efi grub-iso/EFI/BOOT/memtest
|
||||||
cp grub-bootx64.efi grub-iso/EFI/BOOT/bootx64.efi
|
cp grub-bootx64.efi grub-iso/EFI/BOOT/bootx64.efi
|
||||||
cp ../grub/grub-efi.cfg grub-iso/EFI/BOOT/grub/grub.cfg
|
cp ../grub/grub-efi.cfg grub-iso/EFI/BOOT/grub/grub.cfg
|
||||||
cp $(GRUB_FONT_DIR)/unicode.pf2 grub-iso/EFI/BOOT/grub/fonts/
|
cp $(GRUB_FONT_DIR)/unicode.pf2 grub-iso/EFI/BOOT/grub/fonts/
|
||||||
@ -177,12 +177,12 @@ grub-esp.img: memtest.efi grub-bootx64.efi ../grub/grub-efi.cfg
|
|||||||
|
|
||||||
grub-memtest.iso: memtest.bin grub-eltorito.img ../grub/grub-legacy.cfg grub-esp.img
|
grub-memtest.iso: memtest.bin grub-eltorito.img ../grub/grub-legacy.cfg grub-esp.img
|
||||||
@mkdir -p grub-iso/boot/grub/i386-pc grub-iso/boot/grub/fonts
|
@mkdir -p grub-iso/boot/grub/i386-pc grub-iso/boot/grub/fonts
|
||||||
cp memtest.bin grub-iso/boot/pcmemtest
|
cp memtest.bin grub-iso/boot/memtest
|
||||||
cp grub-eltorito.img grub-iso/boot/eltorito.img
|
cp grub-eltorito.img grub-iso/boot/eltorito.img
|
||||||
cp ../grub/grub-legacy.cfg grub-iso/boot/grub/grub.cfg
|
cp ../grub/grub-legacy.cfg grub-iso/boot/grub/grub.cfg
|
||||||
cp $(GRUB_FONT_DIR)/unicode.pf2 grub-iso/boot/grub/fonts/
|
cp $(GRUB_FONT_DIR)/unicode.pf2 grub-iso/boot/grub/fonts/
|
||||||
cp $(GRUB_LIB_DIR)/i386-pc/*.mod grub-iso/boot/grub/i386-pc/
|
cp $(GRUB_LIB_DIR)/i386-pc/*.mod grub-iso/boot/grub/i386-pc/
|
||||||
xorrisofs -pad -R -J -volid PCMemTest64 -graft-points -hide-rr-moved \
|
xorrisofs -pad -R -J -volid Memtest86+64 -graft-points -hide-rr-moved \
|
||||||
--grub2-mbr $(GRUB_LIB_DIR)/i386-pc/boot_hybrid.img \
|
--grub2-mbr $(GRUB_LIB_DIR)/i386-pc/boot_hybrid.img \
|
||||||
-b /boot/eltorito.img -no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \
|
-b /boot/eltorito.img -no-emul-boot -boot-load-size 4 -boot-info-table --grub2-boot-info \
|
||||||
--efi-boot --interval:appended_partition_2:all:: \
|
--efi-boot --interval:appended_partition_2:all:: \
|
||||||
|
@ -32,7 +32,7 @@ DOXYFILE_ENCODING = UTF-8
|
|||||||
# title of most generated pages and in a few other places.
|
# title of most generated pages and in a few other places.
|
||||||
# The default value is: My Project.
|
# The default value is: My Project.
|
||||||
|
|
||||||
PROJECT_NAME = "PCMemTest"
|
PROJECT_NAME = "Memtest86+"
|
||||||
|
|
||||||
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
|
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
|
||||||
# could be handy for archiving the generated documentation or if some version
|
# could be handy for archiving the generated documentation or if some version
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
# Developer's Guide
|
# Developer's Guide
|
||||||
|
|
||||||
This is the developer's guide to the PCMemTest source code. The user's guide
|
This is the developer's guide to the Memtest86+ source code. The user's guide
|
||||||
can be found in the README.md file in the top level directory.
|
can be found in the README.md file in the top level directory.
|
||||||
|
|
||||||
## Code Organisation
|
## Code Organisation
|
||||||
@ -14,12 +14,12 @@ subdirectory of the same name:
|
|||||||
|
|
||||||
* boot
|
* boot
|
||||||
|
|
||||||
The code that transitions from the BIOS or bootloader entry point to the
|
The code that runs from the BIOS or bootloader entry point to the
|
||||||
start of the main application.
|
start of the main application.
|
||||||
|
|
||||||
* lib
|
* lib
|
||||||
|
|
||||||
The subset of the C standard library that is used by PCMemTest plus other
|
The subset of the C standard library that is used by Memtest86+ plus other
|
||||||
hardware-independent low-level support functions.
|
hardware-independent low-level support functions.
|
||||||
|
|
||||||
* system
|
* system
|
||||||
@ -31,7 +31,7 @@ subdirectory of the same name:
|
|||||||
The individual memory tests.
|
The individual memory tests.
|
||||||
|
|
||||||
The boot code is mostly written in AT&T syntax x86 assembly language. The
|
The boot code is mostly written in AT&T syntax x86 assembly language. The
|
||||||
remaining code is written in C.
|
remaining code is written in C with a smattering of inline assembly code.
|
||||||
|
|
||||||
Each category is further subdivided into multiple source files, splitting the
|
Each category is further subdivided into multiple source files, splitting the
|
||||||
code into small units of closely related functionality. For the C code, the
|
code into small units of closely related functionality. For the C code, the
|
||||||
|
@ -11,12 +11,12 @@ insmod linux
|
|||||||
insmod linuxefi
|
insmod linuxefi
|
||||||
insmod linux32
|
insmod linux32
|
||||||
|
|
||||||
menuentry "Start PCMemTest using 'linux' command" {
|
menuentry "Start Memtest86+ using 'linux' command" {
|
||||||
linux /EFI/BOOT/pcmemtest
|
linux /EFI/BOOT/memtest
|
||||||
}
|
}
|
||||||
menuentry "Start PCMemTest using 'linuxefi' command" {
|
menuentry "Start Memtest86+ using 'linuxefi' command" {
|
||||||
linuxefi /EFI/BOOT/pcmemtest
|
linuxefi /EFI/BOOT/memtest
|
||||||
}
|
}
|
||||||
menuentry "Start PCMemTest using 'linux32' command" {
|
menuentry "Start Memtest86+ using 'linux32' command" {
|
||||||
linux32 /EFI/BOOT/pcmemtest
|
linux32 /EFI/BOOT/memtest
|
||||||
}
|
}
|
||||||
|
@ -11,12 +11,12 @@ insmod linux
|
|||||||
insmod linux16
|
insmod linux16
|
||||||
insmod linux32
|
insmod linux32
|
||||||
|
|
||||||
menuentry "Start PCMemTest using 'linux' command" {
|
menuentry "Start Memtest86+ using 'linux' command" {
|
||||||
linux /boot/pcmemtest
|
linux /boot/memtest
|
||||||
}
|
}
|
||||||
menuentry "Start PCMemTest using 'linux16' command" {
|
menuentry "Start Memtest86+ using 'linux16' command" {
|
||||||
linux16 /boot/pcmemtest
|
linux16 /boot/memtest
|
||||||
}
|
}
|
||||||
menuentry "Start PCMemTest using 'linux32' command" {
|
menuentry "Start Memtest86+ using 'linux32' command" {
|
||||||
linux32 /boot/pcmemtest
|
linux32 /boot/memtest
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user