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