Memtest86+ v7.00

Címkék

Megjelent a kedvenc nyílt forráskódú memóriatesztelő szerszámunk, a Memtest86+ 7.00-s kiadása. Újdonságok:

This release adds support for IMC (Integrated Memory Controller) polling to get live RAM settings on Intel Core 1st to 14th Gen and AMD Ryzen CPUs, and preliminary ECC polling support for selected AMD Ryzen CPUs.

Complete changelog:

  • IMC polling for live DRAM settings
  • Preliminary support for ECC polling
  • Add support for MMIO UART
  • Add debugging options
  • Bug fixes & optimizations

Részletek és forráskód letöltés itt. Image-ek, telepítők stb. letölthetők innen.

Hozzászólások

Milyen szép RAM-ok vannak a  régi gépemben, most látom. :D

trey @ gépház

Szerkesztve: 2024. 01. 09., k – 16:06

Ha már polling for live DRAM settings, létezik olyan program, ami grafikont tudna rajzolni, hogy melyik címen milyen gyors a ram?

Mint az ősidőben a SpeedSys 
https://www.dosdays.co.uk/media/dataexpert/EXP3406/Am386DX-40_128KB_20n…

Azért érdekel, mert manapság intel és amd oldalon is tudnak tán olyat, hogy ha két különböző méretű ram modul van jelen, akkor a közös méretnyi tán dual channel, míg a felső plusz terület tán single channel módban megy. 
Persze, legjobb lenne két egyforma, de manapság sokszor be van forrasztva az egyik modul, 8+32-őt használok így most.
Érdekes lenne látni, hogy tényleg van -e különbség aszerint, hogy melyik területről olvas. A memtest (korábbi verziója) csak kiszámol egy elméleti értéket, nem mérte.

Az opensource memtest tud extra infókat kiolvasni ddr5 ramokról? Hőmérsékletet, on-die-ecc hibákat? Azért kérdem, mert a fizetős passmark memtest képes arra is.

Ha ér gnuplot-tal kirajzolni a textfile-ba mentett eredményt, akkor van. :) Az lmbench csomagot kell feltenni, abban van - kismillió egyéb microbenchmark mellett - bw_mem (sávszélesség mérésre) és lat_mem_rd (latency mérésre).

Előfordulhat, hogy buildelni kell, nem minden disztrora szokott meglenni a csomag belőle.

Régóta vágyok én, az androidok mezonkincsére már!

Aham, gondolom ez befoglal kellően nagy méretű memóriaterületet és végigmegy rajta talán. Ha nem randomizálja valamelyik hekkelés elleni védelem a valós címeket userspace programnál, akkor akár mutathatna is különbséget a dual és single részen, ha valóban úgy működik az intel flex mem.

Közben persze leesett, hogy a SpeedSys sem címet néz, hanem valsz blokkmérettel teszteli és hozza ki, hogy hol a különböző cache-ek határa. Mivel memtest címeken megy végig, így adná magát, hogy esetleg számolhatná is, valójában milyen gyorsan éri el a ramot közben. Esetleg címtartományra limitálva futtatott memtestnél "stopperórával" próbálhatnám, van -e különbség befejezési időtartalomban, ha első és felső címekben adok X méretet tesztelni.

Ebben igazad van. Ez a fent említett linuxos megoldás nem megy sorba a memória összes címén, mivel az, hogy egy alkalmazás milyen memóriaterületet kap, meg melyik adat hova kerül, azt a kernel dönti el. Viszont ez a Speedsys-nél is így volt, míg a Memtest végigteszteli garantáltam a memóriaterület minden részét, semmi nem marad ki, mivel nincs alatta kernel, bare metal megoldás, low level szinten ér el mindent, saját kóddal.

The world runs on Excel spreadsheets. (Dylan Beattie)

Szerkesztve: 2024. 01. 10., sze – 07:24

Ubuntu alatt szépen fordul:

trey@alderaan:/tmp/memtest86plus-7.00/build64$ make iso
gcc -m64 -x assembler-with-cpp -c -I../boot -o boot/startup.o ../boot/startup64.S
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o boot/efisetup.o ../boot/efisetup.c -MMD -MP -MT boot/efisetup.o -MF boot/efisetup.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/acpi.o ../system/acpi.c -MMD -MP -MT system/acpi.o -MF system/acpi.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/cpuid.o ../system/cpuid.c -MMD -MP -MT system/cpuid.o -MF system/cpuid.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/cpuinfo.o ../system/cpuinfo.c -MMD -MP -MT system/cpuinfo.o -MF system/cpuinfo.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/cpulocal.o ../system/cpulocal.c -MMD -MP -MT system/cpulocal.o -MF system/cpulocal.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/ehci.o ../system/ehci.c -MMD -MP -MT system/ehci.o -MF system/ehci.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/font.o ../system/font.c -MMD -MP -MT system/font.o -MF system/font.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/hwctrl.o ../system/hwctrl.c -MMD -MP -MT system/hwctrl.o -MF system/hwctrl.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/heap.o ../system/heap.c -MMD -MP -MT system/heap.o -MF system/heap.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/hwquirks.o ../system/hwquirks.c -MMD -MP -MT system/hwquirks.o -MF system/hwquirks.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/keyboard.o ../system/keyboard.c -MMD -MP -MT system/keyboard.o -MF system/keyboard.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/ohci.o ../system/ohci.c -MMD -MP -MT system/ohci.o -MF system/ohci.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/memctrl.o ../system/memctrl.c -MMD -MP -MT system/memctrl.o -MF system/memctrl.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/pci.o ../system/pci.c -MMD -MP -MT system/pci.o -MF system/pci.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/pmem.o ../system/pmem.c -MMD -MP -MT system/pmem.o -MF system/pmem.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -fno-strict-aliasing -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/reloc.o ../system/reloc64.c -MMD -MP -MT system/reloc.o -MF system/reloc.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/screen.o ../system/screen.c -MMD -MP -MT system/screen.o -MF system/screen.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/serial.o ../system/serial.c -MMD -MP -MT system/serial.o -MF system/serial.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/smbios.o ../system/smbios.c -MMD -MP -MT system/smbios.o -MF system/smbios.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/smbus.o ../system/smbus.c -MMD -MP -MT system/smbus.o -MF system/smbus.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/smp.o ../system/smp.c -MMD -MP -MT system/smp.o -MF system/smp.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/temperature.o ../system/temperature.c -MMD -MP -MT system/temperature.o -MF system/temperature.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/timers.o ../system/timers.c -MMD -MP -MT system/timers.o -MF system/timers.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/uhci.o ../system/uhci.c -MMD -MP -MT system/uhci.o -MF system/uhci.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/usbhcd.o ../system/usbhcd.c -MMD -MP -MT system/usbhcd.o -MF system/usbhcd.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/vmem.o ../system/vmem.c -MMD -MP -MT system/vmem.o -MF system/vmem.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o system/xhci.o ../system/xhci.c -MMD -MP -MT system/xhci.o -MF system/xhci.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os -I../boot -I../system -I../lib -I../tests -I../app -Iapp -o system/imc/amd_zen.o ../system/imc/amd_zen.c -MMD -MP -MT system/imc/amd_zen.o -MF system/imc/amd_zen.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os -I../boot -I../system -I../lib -I../tests -I../app -Iapp -o system/imc/intel_adl.o ../system/imc/intel_adl.c -MMD -MP -MT system/imc/intel_adl.o -MF system/imc/intel_adl.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os -I../boot -I../system -I../lib -I../tests -I../app -Iapp -o system/imc/intel_hsw.o ../system/imc/intel_hsw.c -MMD -MP -MT system/imc/intel_hsw.o -MF system/imc/intel_hsw.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os -I../boot -I../system -I../lib -I../tests -I../app -Iapp -o system/imc/intel_icl.o ../system/imc/intel_icl.c -MMD -MP -MT system/imc/intel_icl.o -MF system/imc/intel_icl.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os -I../boot -I../system -I../lib -I../tests -I../app -Iapp -o system/imc/intel_skl.o ../system/imc/intel_skl.c -MMD -MP -MT system/imc/intel_skl.o -MF system/imc/intel_skl.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os -I../boot -I../system -I../lib -I../tests -I../app -Iapp -o system/imc/intel_snb.o ../system/imc/intel_snb.c -MMD -MP -MT system/imc/intel_snb.o -MF system/imc/intel_snb.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o lib/barrier.o ../lib/barrier.c -MMD -MP -MT lib/barrier.o -MF lib/barrier.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o lib/print.o ../lib/print.c -MMD -MP -MT lib/print.o -MF lib/print.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o lib/read.o ../lib/read.c -MMD -MP -MT lib/read.o -MF lib/read.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o lib/string.o ../lib/string.c -MMD -MP -MT lib/string.o -MF lib/string.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o lib/unistd.o ../lib/unistd.c -MMD -MP -MT lib/unistd.o -MF lib/unistd.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -O3 -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o tests/addr_walk1.o ../tests/addr_walk1.c -MMD -MP -MT tests/addr_walk1.o -MF tests/addr_walk1.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -O3 -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o tests/bit_fade.o ../tests/bit_fade.c -MMD -MP -MT tests/bit_fade.o -MF tests/bit_fade.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -O3 -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o tests/block_move.o ../tests/block_move.c -MMD -MP -MT tests/block_move.o -MF tests/block_move.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -O3 -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o tests/modulo_n.o ../tests/modulo_n.c -MMD -MP -MT tests/modulo_n.o -MF tests/modulo_n.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -O3 -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o tests/mov_inv_fixed.o ../tests/mov_inv_fixed.c -MMD -MP -MT tests/mov_inv_fixed.o -MF tests/mov_inv_fixed.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -O3 -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o tests/mov_inv_random.o ../tests/mov_inv_random.c -MMD -MP -MT tests/mov_inv_random.o -MF tests/mov_inv_random.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -O3 -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o tests/mov_inv_walk1.o ../tests/mov_inv_walk1.c -MMD -MP -MT tests/mov_inv_walk1.o -MF tests/mov_inv_walk1.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -O3 -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o tests/own_addr.o ../tests/own_addr.c -MMD -MP -MT tests/own_addr.o -MF tests/own_addr.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -O3 -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o tests/test_helper.o ../tests/test_helper.c -MMD -MP -MT tests/test_helper.o -MF tests/test_helper.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -O3 -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o tests/tests.o ../tests/tests.c -MMD -MP -MT tests/tests.o -MF tests/tests.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o app/badram.o ../app/badram.c -MMD -MP -MT app/badram.o -MF app/badram.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o app/config.o ../app/config.c -MMD -MP -MT app/config.o -MF app/config.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o app/display.o ../app/display.c -MMD -MP -MT app/display.o -MF app/display.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o app/error.o ../app/error.c -MMD -MP -MT app/error.o -MF app/error.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o app/interrupt.o ../app/interrupt.c -MMD -MP -MT app/interrupt.o -MF app/interrupt.d
gcc -c -std=c11 -Wall -Wextra -Wshadow -m64 -march=x86-64 -mno-mmx -mno-sse -mno-sse2 -fpic -fno-builtin -ffreestanding -fomit-frame-pointer -fno-stack-protector -Os  -I../boot -I../system -I../lib -I../tests -I../app -Iapp  -o app/main.o ../app/main.c -MMD -MP -MT app/main.o -MF app/main.d
ld --warn-constructors --warn-common -static -T ldscripts/memtest_shared.lds -o memtest_shared boot/startup.o boot/efisetup.o system/acpi.o system/cpuid.o system/cpuinfo.o system/cpulocal.o system/ehci.o system/font.o system/hwctrl.o system/heap.o system/hwquirks.o system/keyboard.o system/ohci.o system/memctrl.o system/pci.o system/pmem.o system/reloc.o system/screen.o system/serial.o system/smbios.o system/smbus.o system/smp.o system/temperature.o system/timers.o system/uhci.o system/usbhcd.o system/vmem.o system/xhci.o system/imc/amd_zen.o system/imc/intel_adl.o system/imc/intel_hsw.o system/imc/intel_icl.o system/imc/intel_skl.o system/imc/intel_snb.o lib/barrier.o lib/print.o lib/read.o lib/string.o lib/unistd.o tests/addr_walk1.o tests/bit_fade.o tests/block_move.o tests/modulo_n.o tests/mov_inv_fixed.o tests/mov_inv_random.o tests/mov_inv_walk1.o tests/own_addr.o tests/test_helper.o tests/tests.o app/badram.o app/config.o app/display.o app/error.o app/interrupt.o app/main.o && \
ld -shared -Bsymbolic -T ldscripts/memtest_shared.lds -o memtest_shared boot/startup.o boot/efisetup.o system/acpi.o system/cpuid.o system/cpuinfo.o system/cpulocal.o system/ehci.o system/font.o system/hwctrl.o system/heap.o system/hwquirks.o system/keyboard.o system/ohci.o system/memctrl.o system/pci.o system/pmem.o system/reloc.o system/screen.o system/serial.o system/smbios.o system/smbus.o system/smp.o system/temperature.o system/timers.o system/uhci.o system/usbhcd.o system/vmem.o system/xhci.o system/imc/amd_zen.o system/imc/intel_adl.o system/imc/intel_hsw.o system/imc/intel_icl.o system/imc/intel_skl.o system/imc/intel_snb.o lib/barrier.o lib/print.o lib/read.o lib/string.o lib/unistd.o tests/addr_walk1.o tests/bit_fade.o tests/block_move.o tests/modulo_n.o tests/mov_inv_fixed.o tests/mov_inv_random.o tests/mov_inv_walk1.o tests/own_addr.o tests/test_helper.o tests/tests.o app/badram.o app/config.o app/display.o app/error.o app/interrupt.o app/main.o
objcopy -O binary memtest_shared memtest_shared.bin
gcc -m64 -x assembler-with-cpp -c -I../boot -Iapp -o boot/mbr.o ../boot/mbr.S
ld -T ldscripts/memtest_mbr.lds boot/mbr.o -b binary memtest_shared.bin -o memtest.mbr
gcc -m64 -x assembler-with-cpp -c -I../boot -Iapp -o boot/bootsect.o ../boot/bootsect.S
gcc -m64 -x assembler-with-cpp -c -I../boot -Iapp -o boot/setup.o ../boot/setup.S
ld --defsym=_bss_size=294624 -T ldscripts/memtest_bin.lds boot/bootsect.o boot/setup.o -b binary memtest_shared.bin -o memtest.bin
dd if=/dev/zero of=floppy.img bs=1474560 count=1
1+0 records in
1+0 records out
1474560 bytes (1,5 MB, 1,4 MiB) copied, 0,000931542 s, 1,6 GB/s
dd if=memtest.bin of=floppy.img bs=1474560 conv=notrunc
0+1 records in
0+1 records out
147744 bytes (148 kB, 144 KiB) copied, 0,000144909 s, 1,0 GB/s
gcc -m64 -x assembler-with-cpp -c -I../boot -Iapp -o boot/header.o ../boot/header.S
ld --defsym=_bss_size=294624 -T ldscripts/memtest_efi.lds boot/header.o boot/setup.o -b binary memtest_shared.bin -o memtest.efi
cp memtest.efi iso/EFI/BOOT/bootx64.efi
/sbin/mkdosfs -n MEMTEST-ESP -F12 -C esp.img 4096
mkfs.fat 4.2 (2021-01-31)
mcopy -s -i esp.img iso/EFI ::
cp floppy.img iso/boot/floppy.img
xorrisofs -pad -R -J -volid MT86PLUS_64 -graft-points -hide-rr-moved --grub2-mbr memtest.mbr \
	  -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 \
	  -o ./memtest.iso /boot=./iso/boot /EFI=./iso/EFI
xorriso 1.5.4 : RockRidge filesystem manipulator, libburnia project.

Drive current: -outdev 'stdio:./memtest.iso'
Media current: stdio file, overwriteable
Media status : is blank
Media summary: 0 sessions, 0 data blocks, 0 data, 52.8g free
Added to ISO image: directory '/boot'='/tmp/memtest86plus-7.00/build64/iso/boot'
xorriso : UPDATE :       1 files added in 1 seconds
Added to ISO image: directory '/EFI'='/tmp/memtest86plus-7.00/build64/iso/EFI'
xorriso : UPDATE :       3 files added in 1 seconds
xorriso : NOTE : Copying to System Area: 512 bytes from file '/tmp/memtest86plus-7.00/build64/memtest.mbr'
ISO image produced: 3026 sectors
Written to medium : 3026 sectors at LBA 0
Writing to 'stdio:./memtest.iso' completed successfully.

trey @ gépház

Belőled nem néztem ki, hogy forráskódból pörgetnél ki akármit. Főleg Memtest-ből, aminél én inkább kész lemezképet használnék. Mármint nem szakmailag nem néztem ki, hanem téged ismerve mindig az alapértelmezéseket, kész canonicalos csomagokat, egy kattintásos megoldásokat használod, még egy háttérképet is lusta vagy lecserélni.

Azt mondjuk nem értem, hogy a Memtest make scriptje miért x86-64 SSE2-re optimalizál, miért nem -march=native paramétert használ (ami az adott proci összes képességére teszi meg ugyanezt), valami -O optimalizációval. Ha már úgyis fordítgatunk, annak több értelme lenne.

The world runs on Excel spreadsheets. (Dylan Beattie)

Jaja. Ne zavarjon, hogy már 20 éve is magam fordítottam magamnak kernelt. Ha kedvem van csinálom, ha nincs, akkor nem. Egyszerűbb volt letölteni a forrást és lepörgetni (2 sec), mint megkeresni, hogy honnan lehet letölteni az ISO-t.

Főleg Memtest-ből, aminél én inkább kész lemezképet használnék.

Ó, te nagy haxx0r!!!44

trey @ gépház

Nem állítottam soha, hogy haxxor vagyok, csak fordítgatni nem szeretek. Lassabb, mint kész binárist telepíteni, több erőforrást visz el, így csak akkora tartogatom, ha muszáj, mert nem elérhető binárisként (vagy elérhető, de ilyen fos Snap, Flatpak, stb. formájában, vagy csak régi verzióban) vagy fordítás alatt bekapcsolható optimalizációk esetleg akkorát dobnak a futási teljesítményen (mert mondjuk az adott alkalmazás procilimites), vagy a disztró jellege kívánja meg (Gentoo).

Na már most a Memtest nem tartozik egyik fenti esetkörbe sem, így csak nem látnám értelmét, de még csak eszembe se jutna, hogy ilyen formában telepítsem. Főleg egy olyan programnál, amit egyébként is nagyon ritkán használ a legtöbb ember átlagban. Félre ne érts, nem kritizálni akartalak, csak nem gondoltam, hogy ilyenhez támad kedved csak úgy, mikor neked tényleg egy háttérkép lecserélése meg egy néhány másodperces újrabootolás is túl sok, kerülendő munka (inkább live patcheled a kernelt), meg egy teljesen stock rendszert se telepítesz soha újra, inkább 10 évig frissítgeted, görgeted magad előtt. Ezekkel egyébként szintén nincs bajom, de így inkább csak meglepő ellentétet érzek a két trend között.

Persze, nem világvége, nem nagy a szóban forgó alkalmazás kódbázisa, de érted, elvi szinten, ha csak 1 mp is a fordítási idő, az akkor is több, mint az az extra 0 másodperc, amit a kész bináris feltétele igényel. Hidd el, én is simán forgathatnám forráskódból, mert 1) megvan hozzá a tudásom, 2) ha nem is lenne, Arch alatt AUR-ból egy sor telepíteni, automatán behúzza a forrásfájlokat, függőségeket, és egy füstre automatán már fordítja, telepíti is.

The world runs on Excel spreadsheets. (Dylan Beattie)