* [bug#32890] [PATCH 0/2] test mems
@ 2018-10-01 10:14 Tobias Geerinckx-Rice
2018-10-01 10:19 ` [bug#32890] [PATCH 1/2] gnu: Add memtest86+ Tobias Geerinckx-Rice
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Tobias Geerinckx-Rice @ 2018-10-01 10:14 UTC (permalink / raw)
To: 32890
Guix,
Here are some memory testers.
Memtest86+ must be built with '--system=i686-linux' (is there a
way to ask for a 32-bit glibc on x86_64?) and still needs to be
tested by a volunteer with a BIOS machine. It can be launched from
GRUB ('linux16 memtest') or catted to a boot disc (memtest.bin).
Memtester runs in user space and can even run as a regular
user. It should just work.
Kind regards,
T G-R
^ permalink raw reply [flat|nested] 9+ messages in thread
* [bug#32890] [PATCH 1/2] gnu: Add memtest86+.
2018-10-01 10:14 [bug#32890] [PATCH 0/2] test mems Tobias Geerinckx-Rice
@ 2018-10-01 10:19 ` Tobias Geerinckx-Rice
2018-10-01 10:19 ` [bug#32890] [PATCH 2/2] gnu: Add memtester Tobias Geerinckx-Rice
` (3 more replies)
2018-10-01 15:40 ` Tor contact
2018-10-04 2:30 ` bug#32890: [PATCH 0/2] test mems Tobias Geerinckx-Rice
2 siblings, 4 replies; 9+ messages in thread
From: Tobias Geerinckx-Rice @ 2018-10-01 10:19 UTC (permalink / raw)
To: 32890
* gnu/packages/hardware.scm (memtest86+): New public variable.
---
gnu/packages/hardware.scm | 66 +++++++++++++++++++++++++++++++++++++--
1 file changed, 64 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index f77336e50..558ba4ef8 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -18,6 +18,7 @@
(define-module (gnu packages hardware)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages gcc)
#:use-module (gnu packages glib)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
@@ -74,6 +75,67 @@ calibrated, and restored when the calibration is applied.")
(license (list license:bsd-3 ; FindDDCUtil.cmake
license:gpl2+)))) ; everything else
+;; Distinct from memtest86, which is obsolete.
+(define-public memtest86+
+ (package
+ (name "memtest86+")
+ ;; Update the description when/if UEFI support is released.
+ (version "5.01")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.memtest.org/download/5.01/memtest86+-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "0fch1l55753y6jkk0hj8f6vw4h1kinkn9ysp22dq5g9zjnvjf88l"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (replace 'build
+ ;; The default 'make all' does wonderful things, like scp(1) a file to
+ ;; 192.168.0.12. Build the bootable images and nothing more.
+ (lambda _
+ (invoke "make"
+ "memtest" ; ELF executable
+ "memtest.bin"))) ; DOS/MBR boot sector
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib/memtest86+"))
+ (doc (string-append out "/share/doc/memtest86+-" ,version)))
+ (for-each
+ (lambda (file)
+ (install-file file lib))
+ (list "memtest"
+ "memtest.bin"))
+ (for-each
+ (lambda (file)
+ (install-file file doc))
+ (list "FAQ"
+ "README"))))))
+ #:tests? #f)) ; no way to test this
+ (native-inputs
+ ;; Newer GCCs fail with a deluge of "multiple definition of `__foo'" errors.
+ `(("gcc" ,gcc-4.9)))
+ ;; XXX How can I ask to simply 'build the same thing on x86_64 as on i686'?
+ (supported-systems (list "i686-linux"))
+ (home-page "https://www.memtest.org/")
+ (synopsis "Thorough real-mode memory tester")
+ (description
+ "Memtest86+ is a thorough, stand-alone memory test for x86-architecture
+systems. It runs independently of any operating system, at computer boot-up, so
+that it can scan all of your RAM for hardware defects.
+
+Most errors reported by Memtest86+ can be solved by replacing (parts of) your
+RAM, but the test implicitly tests the CPU, caches, and motherboard as well.
+It is impossible for the test to determine which component caused the failure to
+occur: the only option is to replace more parts until the failure is corrected.
+
+Memtest86+ cannot currently be used on computers booted with UEFI.")
+ (license license:gpl2)))
+
(define-public msr-tools
(package
(name "msr-tools")
@@ -89,6 +151,7 @@ calibrated, and restored when the calibration is applied.")
(arguments
`(#:make-flags
(list (string-append "sbindir=" (assoc-ref %outputs "out") "/sbin"))
+ #:tests? #f ; no test suite
#:phases
(modify-phases %standard-phases
(delete 'configure) ; no configure script
@@ -98,8 +161,7 @@ calibrated, and restored when the calibration is applied.")
(let* ((out (assoc-ref outputs "out"))
(sbin (string-append out "/sbin")))
(mkdir-p sbin)
- #t))))
- #:tests? #f)) ; no test suite
+ #t))))))
(native-inputs
`(("unzip" ,unzip)))
;; These registers and the CPUID instruction only exist on (most) x86 chips.
--
2.18.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [bug#32890] [PATCH 2/2] gnu: Add memtester.
2018-10-01 10:19 ` [bug#32890] [PATCH 1/2] gnu: Add memtest86+ Tobias Geerinckx-Rice
@ 2018-10-01 10:19 ` Tobias Geerinckx-Rice
2018-10-02 9:45 ` Ludovic Courtès
2018-10-01 10:31 ` [bug#32890] [PATCH 1/2] gnu: Add memtest86+ Tobias Geerinckx-Rice
` (2 subsequent siblings)
3 siblings, 1 reply; 9+ messages in thread
From: Tobias Geerinckx-Rice @ 2018-10-01 10:19 UTC (permalink / raw)
To: 32890
* gnu/packages/hardware.scm (memtester): New public variable.
---
gnu/packages/hardware.scm | 46 +++++++++++++++++++++++++++++++++++++++
1 file changed, 46 insertions(+)
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 558ba4ef8..2c0ef4492 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -136,6 +136,52 @@ occur: the only option is to replace more parts until the failure is corrected.
Memtest86+ cannot currently be used on computers booted with UEFI.")
(license license:gpl2)))
+(define-public memtester
+ (package
+ (name "memtester")
+ (version "4.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ ;; Even the latest release is available under 'old-versions/'.
+ (uri (string-append "http://pyropus.ca/software/memtester/old-versions/"
+ "memtester-" version ".tar.gz"))
+ (sha256
+ (base32 "127xymmyzb9r6dxqrwd69v7gf8csv8kv7fjvagbglf3wfgyy5pzr"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags
+ (list "CC=gcc")
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ ;; This is a home-brewed configuration system where the cc/ld command
+ ;; lines are stored in one-line files.
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out")))
+ (substitute* (list "conf-cc" "conf-ld")
+ (("^cc") "gcc"))
+ (substitute* "Makefile"
+ (("(INSTALLPATH.*=).*" _ assignment)
+ (string-append assignment out)))
+ #t)))
+ (replace 'check
+ ;; There is no test suite. Test some RAM for a single iteration.
+ (lambda _
+ (invoke "./memtester" "64K" "1"))))))
+ (home-page "http://pyropus.ca/software/memtester/")
+ (synopsis "User-space memory subsystem tester")
+ (description
+ "Memtester stress-tests the memory subsystem of your operating system and
+computer. It can help debug even intermittent and non-deterministic errors.
+
+Memtester runs entirely in user space. This means that you don't need to reboot
+to test your memory, but also that it's not possible to test all of the RAM
+installed in the system.
+
+It can also be told to test memory starting at a particular physical address.")
+ (license license:gpl2)))
+
(define-public msr-tools
(package
(name "msr-tools")
--
2.18.0
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [bug#32890] [PATCH 1/2] gnu: Add memtest86+.
2018-10-01 10:19 ` [bug#32890] [PATCH 1/2] gnu: Add memtest86+ Tobias Geerinckx-Rice
2018-10-01 10:19 ` [bug#32890] [PATCH 2/2] gnu: Add memtester Tobias Geerinckx-Rice
@ 2018-10-01 10:31 ` Tobias Geerinckx-Rice
2018-10-02 9:44 ` Ludovic Courtès
2018-10-02 9:45 ` Ludovic Courtès
3 siblings, 0 replies; 9+ messages in thread
From: Tobias Geerinckx-Rice @ 2018-10-01 10:31 UTC (permalink / raw)
To: 32890
Tobias Geerinckx-Rice wrote:
> (define-public msr-tools
> (package
> (name "msr-tools")
> @@ -89,6 +151,7 @@ calibrated, and restored when the calibration
> is applied.")
> (arguments
> `(#:make-flags
> (list (string-append "sbindir=" (assoc-ref %outputs
> "out") "/sbin"))
> + #:tests? #f ; no test suite
> #:phases
> (modify-phases %standard-phases
> (delete 'configure) ; no configure script
> @@ -98,8 +161,7 @@ calibrated, and restored when the calibration
> is applied.")
> (let* ((out (assoc-ref outputs "out"))
> (sbin (string-append out "/sbin")))
> (mkdir-p sbin)
> - #t))))
> - #:tests? #f)) ; no test suite
> + #t))))))
> (native-inputs
> `(("unzip" ,unzip)))
> ;; These registers and the CPUID instruction only exist on
> (most) x86 chips.
Have some cruft. Shouldn't affect the build, of course.
Kind regards,
T G-R
^ permalink raw reply [flat|nested] 9+ messages in thread
* [bug#32890] [PATCH 1/2] gnu: Add memtest86+.
2018-10-01 10:14 [bug#32890] [PATCH 0/2] test mems Tobias Geerinckx-Rice
2018-10-01 10:19 ` [bug#32890] [PATCH 1/2] gnu: Add memtest86+ Tobias Geerinckx-Rice
@ 2018-10-01 15:40 ` Tor contact
2018-10-04 2:30 ` bug#32890: [PATCH 0/2] test mems Tobias Geerinckx-Rice
2 siblings, 0 replies; 9+ messages in thread
From: Tor contact @ 2018-10-01 15:40 UTC (permalink / raw)
To: 32890
I wrote:
> Memtest86+ must be built with '--system=i686-linux' (is there a
> way to ask for a 32-bit glibc on x86_64?)
There is, and it's called #:system.
Kind regards,
Someone with server hardware issues
^ permalink raw reply [flat|nested] 9+ messages in thread
* [bug#32890] [PATCH 1/2] gnu: Add memtest86+.
2018-10-01 10:19 ` [bug#32890] [PATCH 1/2] gnu: Add memtest86+ Tobias Geerinckx-Rice
2018-10-01 10:19 ` [bug#32890] [PATCH 2/2] gnu: Add memtester Tobias Geerinckx-Rice
2018-10-01 10:31 ` [bug#32890] [PATCH 1/2] gnu: Add memtest86+ Tobias Geerinckx-Rice
@ 2018-10-02 9:44 ` Ludovic Courtès
2018-10-02 9:45 ` Ludovic Courtès
3 siblings, 0 replies; 9+ messages in thread
From: Ludovic Courtès @ 2018-10-02 9:44 UTC (permalink / raw)
To: Tobias Geerinckx-Rice; +Cc: 32890
Hi,
Tobias Geerinckx-Rice <me@tobias.gr> skribis:
> * gnu/packages/hardware.scm (memtest86+): New public variable.
[...]
> + (lambda* (#:key outputs #:allow-other-keys)
> + (let* ((out (assoc-ref outputs "out"))
> + (lib (string-append out "/lib/memtest86+"))
> + (doc (string-append out "/share/doc/memtest86+-" ,version)))
> + (for-each
> + (lambda (file)
> + (install-file file lib))
> + (list "memtest"
> + "memtest.bin"))
> + (for-each
> + (lambda (file)
> + (install-file file doc))
> + (list "FAQ"
> + "README"))))))
Please return #t.
Otherwise LGTM!
Ludo’.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [bug#32890] [PATCH 1/2] gnu: Add memtest86+.
2018-10-01 10:19 ` [bug#32890] [PATCH 1/2] gnu: Add memtest86+ Tobias Geerinckx-Rice
` (2 preceding siblings ...)
2018-10-02 9:44 ` Ludovic Courtès
@ 2018-10-02 9:45 ` Ludovic Courtès
3 siblings, 0 replies; 9+ messages in thread
From: Ludovic Courtès @ 2018-10-02 9:45 UTC (permalink / raw)
To: Tobias Geerinckx-Rice; +Cc: 32890
Tobias Geerinckx-Rice <me@tobias.gr> skribis:
> * gnu/packages/hardware.scm (memtest86+): New public variable.
[...]
> + ;; XXX How can I ask to simply 'build the same thing on x86_64 as on i686'?
> + (supported-systems (list "i686-linux"))
And yes, #:system is the way. Then you can add x86_64-linux to
‘supported-systems’, it can’t hurt.
Ludo’.
^ permalink raw reply [flat|nested] 9+ messages in thread
* [bug#32890] [PATCH 2/2] gnu: Add memtester.
2018-10-01 10:19 ` [bug#32890] [PATCH 2/2] gnu: Add memtester Tobias Geerinckx-Rice
@ 2018-10-02 9:45 ` Ludovic Courtès
0 siblings, 0 replies; 9+ messages in thread
From: Ludovic Courtès @ 2018-10-02 9:45 UTC (permalink / raw)
To: Tobias Geerinckx-Rice; +Cc: 32890
Tobias Geerinckx-Rice <me@tobias.gr> skribis:
> * gnu/packages/hardware.scm (memtester): New public variable.
LGTM, thanks!
Ludo'.
^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#32890: [PATCH 0/2] test mems
2018-10-01 10:14 [bug#32890] [PATCH 0/2] test mems Tobias Geerinckx-Rice
2018-10-01 10:19 ` [bug#32890] [PATCH 1/2] gnu: Add memtest86+ Tobias Geerinckx-Rice
2018-10-01 15:40 ` Tor contact
@ 2018-10-04 2:30 ` Tobias Geerinckx-Rice
2 siblings, 0 replies; 9+ messages in thread
From: Tobias Geerinckx-Rice @ 2018-10-04 2:30 UTC (permalink / raw)
To: 32890-done
Pushed as 5eff43804eaed5744967f83edbaeb7ffdb77aec1 &
fb5412511479c19b3e4c884e9cc65e652ea923e2 with the aforementioned
changes, as well as descriptions which (I hope) better describe
both tools' similarities and differences.
Kind regards,
T G-R
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2018-10-04 2:37 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-10-01 10:14 [bug#32890] [PATCH 0/2] test mems Tobias Geerinckx-Rice
2018-10-01 10:19 ` [bug#32890] [PATCH 1/2] gnu: Add memtest86+ Tobias Geerinckx-Rice
2018-10-01 10:19 ` [bug#32890] [PATCH 2/2] gnu: Add memtester Tobias Geerinckx-Rice
2018-10-02 9:45 ` Ludovic Courtès
2018-10-01 10:31 ` [bug#32890] [PATCH 1/2] gnu: Add memtest86+ Tobias Geerinckx-Rice
2018-10-02 9:44 ` Ludovic Courtès
2018-10-02 9:45 ` Ludovic Courtès
2018-10-01 15:40 ` Tor contact
2018-10-04 2:30 ` bug#32890: [PATCH 0/2] test mems Tobias Geerinckx-Rice
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.