<div dir="ltr"><br><br><div class="gmail_quote"><div dir="ltr">On Tue, Jun 13, 2017 at 10:33 AM Ivan Ivanov <<a href="mailto:qmastery16@gmail.com">qmastery16@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">=== If you have some ideas about one or more of FILO problems, please tell ===<br>
<br>
%%% 1st problem - FILO is impossible to build on the modern x86_64<br>
system (Ubuntu 16.04.2 LTS with gcc 5.4.0) :<br>
...<br>
CC build/x86/context.o<br>
AS build/x86/switch.S.o<br>
/bin/sh: 1: --32: not found<br>
Makefile:177: error while executing receipt for target<br>
«/home/owner/filo/build/x86/switch.S.o»<br>
make: *** [/home/owner/filo/build/x86/switch.S.o] Error 127<br>
<br>
No matter what crosscompiling stuff I am trying or what edits I do to<br>
Makefile - it always fails with this error. However it compiles fine<br>
at the 32-bit version of the same OS with the same versions of<br>
packages except for a different architecture<br>
<br>
FILO is probably the only payload which has this problem - and this is<br>
indeed a major problem, because all the major Linux distributions are<br>
abandoning 32-bit soon. To fix this error, most likely the edits of<br>
Makefile are needed, but sadly looks like my skills are not enough to<br>
fix it (spent the whole day without a success) ...<br></blockquote><div><br></div><div>Look at the xcompile script. It seems to not detect your assembler correctly.</div><div><br></div><div>Your xcompile output should look like this:</div><div><br></div><div><div>~/git/filo/ > sh util/xcompile/xcompile</div><div># x86 TARCH_SEARCH= ..../git/filo/util/crossgcc/xgcc/bin/i386-elf- i386-elf- ..../git/filo/util/crossgcc/xgcc/bin/i386-eabi- i386-eabi- ..../git/filo/util/crossgcc/xgcc/bin/x86_64-elf- x86_64-elf- ..../git/filo/util/crossgcc/xgcc/bin/x86_64-eabi- x86_64-eabi-</div><div># elf32-i386 toolchain (i386-elf-gcc)</div><div>CC_i386:=i386-elf-gcc -Wno-unused-but-set-variable -Wa,--divide -fno-stack-protector -Wl,--build-id=none -fuse-ld=bfd -march=i686</div><div>AS_i386:=i386-elf-as </div><div>LD_i386:=i386-elf-ld.bfd </div><div>NM_i386:=i386-elf-nm</div><div>OBJCOPY_i386:=i386-elf-objcopy</div><div>OBJDUMP_i386:=i386-elf-objdump</div><div>READELF_i386:=i386-elf-readelf</div><div>STRIP_i386:=i386-elf-strip</div><div>AR_i386:=i386-elf-ar</div><div><br></div><div># arm TARCH_SEARCH= ..../git/filo/util/crossgcc/xgcc/bin/armv7a-elf- armv7a-elf- ..../git/filo/util/crossgcc/xgcc/bin/armv7a-eabi- armv7a-eabi-</div><div>Warning: no suitable GCC for arm.</div><div>IASL:=iasl</div><div><br></div><div># native toolchain</div><div>HOSTCC:=gcc</div></div><div><br></div><div><br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
%%% 2nd problem: There are only three "tested" SATA controllers in<br>
FILO built-in "approved" list - and FILO does not even try to<br>
initialize the not-listed controllers, despite that the attempt could<br>
have been successful if tried! By default, FILO just outputs "ahci:<br>
Not using untested SATA controller" message, without any option for a<br>
user to try forcing its usage... The only currently available<br>
workaround for this is to manually edit<br>
*./coreboot/payloads/libpayload/drivers/storage/ahci.c * and remove<br>
two " #if<br>
IS_ENABLED(CONFIG_LP_STORAGE_AHCI_ONLY_TESTED) ... #endif " parts,<br>
<br></blockquote><div><br></div><div>Just disable CONFIG_LP_STORAGE_AHCI_ONLY_TESTED in your libpayload config.</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
%%% 3rd problem: while trying to access hard drive with commands like<br>
filo> kernel hda:/vmlinuz I am getting the following errors:<br>
<br>
Disk read error dev=1 drive=0 sector=0<br>
Disk read error dev=1 drive=0 sector=2<br>
Disk read error dev=1 drive=0 sector=2<br>
Disk read error dev=1 drive=0 sector=128<br>
Disk read error dev=1 drive=0 sector=16<br>
Disk read error dev=1 drive=0 sector=64<br>
Disk read error dev=1 drive=0 sector=0<br>
Disk read error dev=1 drive=0 sector=64<br>
Disk read error dev=1 drive=0 sector=0<br>
Disk read error dev=1 drive=0 sector=0<br>
Unknown filesystem type.<br>
<br></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Error 15: File not found.<br>
<br>
Is there any workaround for this? Or maybe I am using the wrong<br>
commands? If so, please tell - what are the correct FILO real-hardware<br>
commands for trying to boot a Linux kernel thats stored on FAT16<br>
partition at the beginning of DOS-partitioned MBR hard drive? Or this<br>
is a problem with my hardware?<br></blockquote><div><br></div><div>It seems you would have to look inside of a partition, not just on the raw disk. e.g. hda1:/...</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Best regards,<br>
qmastery<br></blockquote><div><br></div><div><br></div><div>Stefan </div></div></div>