Portál AbcLinuxu, 27. dubna 2024 02:07


Dotaz: Jak buildnout memtest86+ V5.01

1.9.2015 10:22 MikeshCZ
Jak buildnout memtest86+ V5.01
Přečteno: 551×
Odpovědět | Admin
Ahoj všem, chtěl bych Vás požádat o pomoc. Zkusil jsem už opravdu spoustu možností, ale moje znalosti už asi nesahají tak daleko.

Prakticky potřebuji buildnout/zkompilovat memtest86+ V5.01 aplikaci (http://memtest.org/), ale potřebuji změnit některé parametry v souboru config.h:

#define SERIAL_CONSOLE_DEFAULT 1 #define SERIAL_BAUD_RATE 115200

Takže výsledkdem bude memtest86+ s výstupem na sériový port s 115200 baud rate.

zjistil jsem, že memtest nejde zkompilovat ve vyšší verzi gcc než je 4.1.3.

Pod windows jsem tedy zkusil cygwin, ale bohužel má vyšší verzi a starší se mi do něj nepodařilo dostat. Zkusil jsem to tedy pod Mac OS X Lion, ale opět problém s vyšší verzí a popravdě, tam jsem to nechtěl přehrávat, abych si nerozhodil co tam mám. Takže jsem začal zkoušt různé verze liveCD linuxů s nadějí, že by se mi to podařilo buildnout. Ale bez úspěchu. verze, které umí liveCD mají zpravidla vyšší verzi gcc a nepodařilo se mi to přehrát nižší verzí. Verze linuxu, které měli gcc 4.1 a nižší jsem nerozjel kvůli nekompatibilitě s mým notebookem.

Takže jsem asi už skončil ve slepé uličce a nevím jak to teď udělat. Takže moje otázka je jednoduchá - jak to děláte vy, pokud aplikace potřebuje jinou (nižší) verzi gcc? Jaký systém/distribuci používáte? Jaké mám provést kroky, abych mohl memtest86+ V5.01 úspěšně buildnout přes příkaz make. Nenašel by se někdo, kdo by to zkompiloval za mě a poslal mi hotovou verzi?

Díky za pomoc.

Michal
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

1.9.2015 11:48 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Jak buildnout memtest86+ V5.01
Odpovědět | | Sbalit | Link | Blokovat | Admin
Uplně normálně to jde přeložit.....

gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04)
rm -f *.o *.s *.iso memtest.bin memtest memtest_shared \
		memtest_shared.bin memtest.iso
gcc -E -traditional head.S -o head.s
as -32   -o head.o head.s
gcc -c -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector  -fno-strict-aliasing reloc.c
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o main.o main.c
gcc -c -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding test.c
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o init.o init.c
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o lib.o lib.c
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o patn.o patn.c
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o screen_buffer.o screen_buffer.c
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o config.o config.c
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o cpuid.o cpuid.c
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o linuxbios.o linuxbios.c
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o pci.o pci.c
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o memsize.o memsize.c
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o spd.o spd.c
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o error.o error.c
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o dmi.o dmi.c
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o controller.o controller.c
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o smp.o smp.c
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o vmem.o vmem.c
gcc -c -Wall -march=i486 -m32 -O3 -fomit-frame-pointer -fno-builtin -ffreestanding random.c
ld --warn-constructors --warn-common -static -T memtest_shared.lds \
	 -o memtest_shared head.o reloc.o main.o test.o init.o lib.o patn.o screen_buffer.o config.o cpuid.o linuxbios.o pci.o memsize.o spd.o error.o dmi.o controller.o smp.o vmem.o random.o && \
	ld -shared -Bsymbolic -T memtest_shared.lds -o memtest_shared head.o reloc.o main.o test.o init.o lib.o patn.o screen_buffer.o config.o cpuid.o linuxbios.o pci.o memsize.o spd.o error.o dmi.o controller.o smp.o vmem.o random.o
objcopy -O binary memtest_shared memtest_shared.bin
gcc -E -traditional bootsect.S -o bootsect.s
as -32   -o bootsect.o bootsect.s
gcc -E -traditional setup.S -o setup.s
as -32   -o setup.o setup.s
ld -T memtest.bin.lds bootsect.o setup.o -b binary \
	memtest_shared.bin -o memtest.bin
ld -s -T memtest.lds -b binary memtest_shared.bin -o memtest
Takže by to chtělo napsat konkrétní chybu.
1.9.2015 11:57 trubicoid2
Rozbalit Rozbalit vše Re: Jak buildnout memtest86+ V5.01
a kolik mas bitu? jestli 64, tak mas zrejme balik libc6-dev-i386, ze?
1.9.2015 12:04 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Jak buildnout memtest86+ V5.01
Jasně potřebuješ .h soubory.
1.9.2015 12:53 Trubicoid2
Rozbalit Rozbalit vše Re: Jak buildnout memtest86+ V5.01
Jo, akurát ten balík není ani v defaultní instalaci, takže na livecd asi teprv ne. Možná 32b livecd?
1.9.2015 11:55 trubicoid2
Rozbalit Rozbalit vše Re: Jak buildnout memtest86+ V5.01
Odpovědět | | Sbalit | Link | Blokovat | Admin
mi to jede s gcc-4.8 na xubuntu 64bit lts; vono je to tim, ze memtest je kompilovanej 32bit a asi mu chybi hlavickovy soubory; na bubuntu nebo debianu udelas sudo apt-get install libc6-dev-i386

v gentoo 64bit mi to gcc-4.9.3 kompiluje hned bez niceho :)

zajimvay je konec Makefile: scp memtest.bin root@192.168.0.12:/srv/tftp/mt86plus hehe

kdyz ti to nepujde, tak ti to nekam poslu no; ale za odmenu napis odpoved na memtest forum, jak se to ma kompilovat :)
1.9.2015 12:06 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Jak buildnout memtest86+ V5.01
Taky jsem na to koukal jak magor kam to chce posílat....

Jednoduše jsem ten příkaz z makefile smazal - to chce hotový soubor poslat na neexistující server :-)
1.9.2015 12:51 Trubicoid2
Rozbalit Rozbalit vše Re: Jak buildnout memtest86+ V5.01
Dev je línej, na přenositelnost bobek. Kdyby dal klíč a veřejnou ip, tak mu to klidně pošlu :)
1.9.2015 17:37 MikeshCZ | Moravany
Rozbalit Rozbalit vše Re: Jak buildnout memtest86+ V5.01
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ahoj, díky za odpovědi. Alespoň vím, že to jde :) .

zkoušel jsem to v cygwinu a výsledek zde:
$ make
rm -f *.o *.s *.iso memtest.bin memtest memtest_shared \
        memtest_shared.bin memtest.iso
as -32   -o head.o head.s
gcc -c -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector  -fno-strict-aliasing reloc.c
reloc.c:1:0: warning: -fPIC ignored for target (all code is position independent)
 /* reloc.c - MemTest-86  Version 3.3
 ^
gcc -Wall -march=i486 -m32 -O1 -fomit-frame-pointer -fno-builtin -ffreestanding -fPIC  -fno-stack-protector    -c -o main.o main.c
main.c:1:0: warning: -fPIC ignored for target (all code is position independent)
 /*
 ^
gcc -c -Wall -march=i486 -m32 -O0 -fomit-frame-pointer -fno-builtin -ffreestanding test.c
test.c:17:20: fatal error: sys/io.h: No such file or directory
 #include < sys/io.h>
                    ^
compilation terminated.
Makefile:57: recipe for target 'test.o' failed
make: *** [test.o] Error 1
1.9.2015 17:45 Trubicoid2
Rozbalit Rozbalit vše Re: Jak buildnout memtest86+ V5.01
V cigwinu bych myslel, ze to nepude. Musel bys mit cigwin crosscompile do linuxu
1.9.2015 17:49 Trubicoid2
Rozbalit Rozbalit vše Re: Jak buildnout memtest86+ V5.01
jedine snad tady, ale nevim, jestli to za ten oprusk stoji :)
1.9.2015 18:18 nobody
Rozbalit Rozbalit vše Re: Jak buildnout memtest86+ V5.01
Odpovědět | | Sbalit | Link | Blokovat | Admin
vykasli se na cygwin a nainstaluj xubuntu-14.04 (nebo ubuntu-server 14.04 pokud chces bez desktopu) do virtualbox...
1.9.2015 21:14 MikeshCZ | Moravany
Rozbalit Rozbalit vše Re: Jak buildnout memtest86+ V5.01
Tak jsem nainstaloval ubuntu a konečně se povedlo. Fakt jsem se do toh zamotal a už jsem nevěděl. Předtím jsem měl jinou verzi a v ní to nešlo. Navíc mě dost zmátnula informace o tom, že je potřeba starší verze gcc, což jsk se ukázalo není pravda :). Moc všem díky za pomoc!
2.9.2015 03:17 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Jak buildnout memtest86+ V5.01
Kde je ta hláška o starém GCC?

Jinak přece ti to psalo že mu chybí soubor sys/io.h tak jsi ho měl dodat.

fatal error: sys/io.h: No such file or directory
2.9.2015 09:58 trubicoid2
Rozbalit Rozbalit vše Re: Jak buildnout memtest86+ V5.01
ja si myslim, ze mu to v nejakem starem fungovalo (asi byl 32bit), kdezto v novem ne (64bit bez hlavicek ke kompilaci na 32bit)
2.9.2015 14:14 MikeshCZ | Moravany
Rozbalit Rozbalit vše Re: Jak buildnout memtest86+ V5.01
Když jsem prolézal forum, tak tam byla zmínka o tom, že memtest nejde buildnout ve verzi gcc vyšší jak 4.1.3. ALe podle všeho je to nesmysl a nebo stará informace a nové verze gcc to zvládnou. sys/io.h jsem neměl odkud vzít. Ale jak píši, už je to vyřešené a funkční. Nicméně teď zase řeším, že to funguje na Intel Celeronu, ale na Atomu z nějakého důvodu memtest nenaběhne a nebo naběhne, ale nejde seriový výstup. Ale to už si snad pořeším :) .

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.