linuxboot / heads

A minimal Linux that runs as a coreboot or LinuxBoot ROM payload to provide a secure, flexible boot environment for laptops, workstations and servers.
https://osresearch.net/
GNU General Public License v2.0
1.41k stars 185 forks source link

Build Error on Raspbian x64 #1548

Closed sparton175 closed 4 months ago

sparton175 commented 9 months ago

Context of the Build

1. What board are you trying to build? t430-hotp-maximized 2. What repository:branch are you using to build from?

3. What version of coreboot are you trying to build

4. In building the rom where did you get the blobs?

5. If using the automated tools to get the blobs did you run the relevant scripts in the blobs directory

6. What operating system are you using

Kernel: Linux 6.1.0-rpi7-rpi-2712
Architecture: arm64

Please describe the problem

Describe the bug Make errors during build of the ROM for the T430.

To Reproduce Steps to reproduce the behavior:

  1. Run "make BOARD=t430-hotp-maximized
  2. After building several things, the process errors out
  3. See error

Expected behavior A successful build of the ROM.

Screenshots xxxxxxxx@raspberrypi:~/heads-master $ make BOARD=t430-hotp-maximized fatal: not a git repository (or any of the parent directories): .git warning: Not a git repository. Use --no-index to compare two paths outside a working tree usage: git diff --no-index []

Diff output format options -p, --patch generate patch -s, --no-patch suppress diff output -u generate patch -U, --unified[=] generate diffs with lines context -W, --function-context generate diffs with lines context --raw generate the diff in raw format --patch-with-raw synonym for '-p --raw' --patch-with-stat synonym for '-p --stat' --numstat machine friendly --stat --shortstat output only the last line of --stat -X, --dirstat[=<param1,param2>...] output the distribution of relative amount of changes for each sub-directory --cumulative synonym for --dirstat=cumulative --dirstat-by-file[=<param1,param2>...] synonym for --dirstat=files,param1,param2... --check warn if changes introduce conflict markers or whitespace errors --summary condensed summary such as creations, renames and mode changes --name-only show only names of changed files --name-status show only names and status of changed files --stat[=[,[,]]] generate diffstat --stat-width generate diffstat with a given width --stat-name-width generate diffstat with a given name width --stat-graph-width generate diffstat with a given graph width --stat-count generate diffstat with limited lines --compact-summary generate compact summary in diffstat --binary output a binary diff that can be applied --full-index show full pre- and post-image object names on the "index" lines --color[=] show colored diff --ws-error-highlight highlight whitespace errors in the 'context', 'old' or 'new' lines in the diff -z do not munge pathnames and use NULs as output field terminators in --raw or --numstat --abbrev[=] use digits to display object names --src-prefix show the given source prefix instead of "a/" --dst-prefix show the given destination prefix instead of "b/" --line-prefix prepend an additional prefix to every line of output --no-prefix do not show any source or destination prefix --inter-hunk-context show context between diff hunks up to the specified number of lines --output-indicator-new specify the character to indicate a new line instead of '+' --output-indicator-old specify the character to indicate an old line instead of '-' --output-indicator-context specify the character to indicate a context instead of ' '

Diff rename options -B, --break-rewrites[=[/]] break complete rewrite changes into pairs of delete and create -M, --find-renames[=] detect renames -D, --irreversible-delete omit the preimage for deletes -C, --find-copies[=] detect copies --find-copies-harder use unmodified files as source to find copies --no-renames disable rename detection --rename-empty use empty blobs as rename source --follow continue listing the history of a file beyond renames -l prevent rename/copy detection if the number of rename/copy targets exceeds given limit

Diff algorithm options --minimal produce the smallest possible diff -w, --ignore-all-space ignore whitespace when comparing lines -b, --ignore-space-change ignore changes in amount of whitespace --ignore-space-at-eol ignore changes in whitespace at EOL --ignore-cr-at-eol ignore carrier-return at the end of line --ignore-blank-lines ignore changes whose lines are all blank -I, --ignore-matching-lines ignore changes whose all lines match --indent-heuristic heuristic to shift diff hunk boundaries for easy reading --patience generate diff using the "patience diff" algorithm --histogram generate diff using the "histogram diff" algorithm --diff-algorithm choose a diff algorithm --anchored generate diff using the "anchored diff" algorithm --word-diff[=] show word diff, using to delimit changed words --word-diff-regex use to decide what a word is --color-words[=] equivalent to --word-diff=color --word-diff-regex= --color-moved[=] moved lines of code are colored differently --color-moved-ws how white spaces are ignored in --color-moved

Other diff options --relative[=] when run from subdir, exclude changes outside and show relative paths -a, --text treat all files as text -R swap two inputs, reverse the diff --exit-code exit with 1 if there were differences, 0 otherwise --quiet disable all output of the program --ext-diff allow an external diff helper to be executed --textconv run external text conversion filters when comparing binary files --ignore-submodules[=] ignore changes to submodules in the diff generation --submodule[=] specify how differences in submodules are shown --ita-invisible-in-index hide 'git add -N' entries from the index --ita-visible-in-index treat 'git add -N' entries as real in the index -S look for differences that change the number of occurrences of the specified string -G look for differences that change the number of occurrences of the specified regex --pickaxe-all show all changes in the changeset with -S or -G --pickaxe-regex treat in -S as extended POSIX regular expression -O control the order in which files appear in the output --rotate-to show the change in the specified path first --skip-to skip the output to the specified path --find-object look for differences that change the number of occurrences of the specified object --diff-filter [(A|C|D|M|R|T|U|X|B)...[*]] select files by diff type --output output to a specific file

fatal: not a git repository (or any of the parent directories): .git Makefile:201: warning: overriding recipe for target 'all' /home/xxxxxxxx/heads-master/boards/t430-hotp-maximized/t430-hotp-maximized.config:86: warning: ignoring old recipe for target 'all' bash: line 1: /home/xxxxxxxx/heads-master/crossgcc/x86/bin/x86_64-linux-musl-gcc: No such file or directory 2023-12-09 23:06:55-07:00 MAKE musl-cross tail /home/xxxxxxxx/heads-master/build/x86/log/musl-cross.log

     You might want to install the Texinfo package:
     <http://www.gnu.org/software/texinfo/>
     The spurious makeinfo call might also be the consequence of
     using a buggy 'make' (AIX, DU, IRIX), in which case you might
     want to install GNU make:
     <http://www.gnu.org/software/make/>

make[7]: [Makefile:541: bfd.info] Error 127 make[7]: Leaving directory '/home/xxxxxxxx/heads-master/build/x86/musl-cross-38e52db8358c043ae82b346a2e6e66bc86a53bc1/build/local/x86_64-linux-musl/obj_binutils/bfd/doc' make[6]: [Makefile:1641: info-recursive] Error 1 make[6]: Leaving directory '/home/xxxxxxxx/heads-master/build/x86/musl-cross-38e52db8358c043ae82b346a2e6e66bc86a53bc1/build/local/x86_64-linux-musl/obj_binutils/bfd' make[5]: [Makefile:2691: all-bfd] Error 2 make[5]: Leaving directory '/home/xxxxxxxx/heads-master/build/x86/musl-cross-38e52db8358c043ae82b346a2e6e66bc86a53bc1/build/local/x86_64-linux-musl/obj_binutils' make[4]: [Makefile:850: all] Error 2 make[4]: Leaving directory '/home/xxxxxxxx/heads-master/build/x86/musl-cross-38e52db8358c043ae82b346a2e6e66bc86a53bc1/build/local/x86_64-linux-musl/obj_binutils' make[3]: [Makefile:204: obj_binutils/.lc_built] Error 2 make[3]: Leaving directory '/home/xxxxxxxx/heads-master/build/x86/musl-cross-38e52db8358c043ae82b346a2e6e66bc86a53bc1/build/local/x86_64-linux-musl' make[2]: [Makefile:170: install] Error 2 make[2]: Leaving directory '/home/xxxxxxxx/heads-master/build/x86/musl-cross-38e52db8358c043ae82b346a2e6e66bc86a53bc1' make[1]: [Makefile:174: musl-target] Error 2 make[1]: Leaving directory '/home/xxxxxxxx/heads-master/build/x86/musl-cross-38e52db8358c043ae82b346a2e6e66bc86a53bc1' make: [Makefile:500: /home/xxxxxxxx/heads-master/build/x86/musl-cross-38e52db8358c043ae82b346a2e6e66bc86a53bc1/.build] Error 1

Additional context From my understanding the blobs required to build a T430 ROM are already provided.

sparton175 commented 9 months ago

Made it further this time but ran into another error:

xxxxxxx@raspberrypi:~/heads-master $ make BOARD=t430-hotp-maximized fatal: not a git repository (or any of the parent directories): .git warning: Not a git repository. Use --no-index to compare two paths outside a working tree usage: git diff --no-index []

Diff output format options -p, --patch generate patch -s, --no-patch suppress diff output -u generate patch -U, --unified[=] generate diffs with lines context -W, --function-context generate diffs with lines context --raw generate the diff in raw format --patch-with-raw synonym for '-p --raw' --patch-with-stat synonym for '-p --stat' --numstat machine friendly --stat --shortstat output only the last line of --stat -X, --dirstat[=<param1,param2>...] output the distribution of relative amount of changes for each sub-directory --cumulative synonym for --dirstat=cumulative --dirstat-by-file[=<param1,param2>...] synonym for --dirstat=files,param1,param2... --check warn if changes introduce conflict markers or whitespace errors --summary condensed summary such as creations, renames and mode changes --name-only show only names of changed files --name-status show only names and status of changed files --stat[=[,[,]]] generate diffstat --stat-width generate diffstat with a given width --stat-name-width generate diffstat with a given name width --stat-graph-width generate diffstat with a given graph width --stat-count generate diffstat with limited lines --compact-summary generate compact summary in diffstat --binary output a binary diff that can be applied --full-index show full pre- and post-image object names on the "index" lines --color[=] show colored diff --ws-error-highlight highlight whitespace errors in the 'context', 'old' or 'new' lines in the diff -z do not munge pathnames and use NULs as output field terminators in --raw or --numstat --abbrev[=] use digits to display object names --src-prefix show the given source prefix instead of "a/" --dst-prefix show the given destination prefix instead of "b/" --line-prefix prepend an additional prefix to every line of output --no-prefix do not show any source or destination prefix --inter-hunk-context show context between diff hunks up to the specified number of lines --output-indicator-new specify the character to indicate a new line instead of '+' --output-indicator-old specify the character to indicate an old line instead of '-' --output-indicator-context specify the character to indicate a context instead of ' '

Diff rename options -B, --break-rewrites[=[/]] break complete rewrite changes into pairs of delete and create -M, --find-renames[=] detect renames -D, --irreversible-delete omit the preimage for deletes -C, --find-copies[=] detect copies --find-copies-harder use unmodified files as source to find copies --no-renames disable rename detection --rename-empty use empty blobs as rename source --follow continue listing the history of a file beyond renames -l prevent rename/copy detection if the number of rename/copy targets exceeds given limit

Diff algorithm options --minimal produce the smallest possible diff -w, --ignore-all-space ignore whitespace when comparing lines -b, --ignore-space-change ignore changes in amount of whitespace --ignore-space-at-eol ignore changes in whitespace at EOL --ignore-cr-at-eol ignore carrier-return at the end of line --ignore-blank-lines ignore changes whose lines are all blank -I, --ignore-matching-lines ignore changes whose all lines match --indent-heuristic heuristic to shift diff hunk boundaries for easy reading --patience generate diff using the "patience diff" algorithm --histogram generate diff using the "histogram diff" algorithm --diff-algorithm choose a diff algorithm --anchored generate diff using the "anchored diff" algorithm --word-diff[=] show word diff, using to delimit changed words --word-diff-regex use to decide what a word is --color-words[=] equivalent to --word-diff=color --word-diff-regex= --color-moved[=] moved lines of code are colored differently --color-moved-ws how white spaces are ignored in --color-moved

Other diff options --relative[=] when run from subdir, exclude changes outside and show relative paths -a, --text treat all files as text -R swap two inputs, reverse the diff --exit-code exit with 1 if there were differences, 0 otherwise --quiet disable all output of the program --ext-diff allow an external diff helper to be executed --textconv run external text conversion filters when comparing binary files --ignore-submodules[=] ignore changes to submodules in the diff generation --submodule[=] specify how differences in submodules are shown --ita-invisible-in-index hide 'git add -N' entries from the index --ita-visible-in-index treat 'git add -N' entries as real in the index -S look for differences that change the number of occurrences of the specified string -G look for differences that change the number of occurrences of the specified regex --pickaxe-all show all changes in the changeset with -S or -G --pickaxe-regex treat in -S as extended POSIX regular expression -O control the order in which files appear in the output --rotate-to show the change in the specified path first --skip-to skip the output to the specified path --find-object look for differences that change the number of occurrences of the specified object --diff-filter [(A|C|D|M|R|T|U|X|B)...[*]] select files by diff type --output output to a specific file

fatal: not a git repository (or any of the parent directories): .git Makefile:201: warning: overriding recipe for target 'all' /home/xxxxxxx/heads-master/boards/t430-hotp-maximized/t430-hotp-maximized.config:86: warning: ignoring old recipe for target 'all' 2023-12-18 23:23:39-07:00 INSTALL-MODULE drivers/net/ethernet/intel/e1000e/e1000e.ko 2023-12-18 23:23:39-07:00 INSTALL-MODULE drivers/usb/host/ehci-hcd.ko 2023-12-18 23:23:39-07:00 INSTALL-MODULE drivers/usb/host/ehci-pci.ko 2023-12-18 23:23:39-07:00 INSTALL-MODULE drivers/usb/host/xhci-hcd.ko 2023-12-18 23:23:39-07:00 INSTALL-MODULE drivers/usb/host/xhci-pci.ko 2023-12-18 23:23:39-07:00 INSTALL-MODULE drivers/usb/storage/usb-storage.ko 2023-12-18 23:23:39-07:00 SYMLINK bin/busybox 2023-12-18 23:23:41-07:00 INSTALL-BIN build/x86/kexec-tools-2.0.26/build/sbin/kexec 2023-12-18 23:23:41-07:00 INSTALL-BIN build/x86/tpmtotp-4d63d21c8b7db2e92ddb393057f168aead147f47/totp 2023-12-18 23:23:41-07:00 INSTALL-BIN build/x86/tpmtotp-4d63d21c8b7db2e92ddb393057f168aead147f47/hotp 2023-12-18 23:23:41-07:00 INSTALL-BIN build/x86/tpmtotp-4d63d21c8b7db2e92ddb393057f168aead147f47/qrenc 2023-12-18 23:23:41-07:00 INSTALL-BIN build/x86/tpmtotp-4d63d21c8b7db2e92ddb393057f168aead147f47/util/tpm 2023-12-18 23:23:41-07:00 INSTALL-BIN build/x86/pciutils-3.5.4/lspci 2023-12-18 23:23:41-07:00 INSTALL-BIN build/x86/flashrom-1776bb46ba6ea3d1ab2ec3f0cd88158aabed7400/flashrom 2023-12-18 23:23:41-07:00 CONFIG popt make: *** [Makefile:500: /home/xxxxxxx/heads-master/build/x86/popt-1.16/.configured] Error 1

tlaurion commented 9 months ago

Please redo make BOARD=xyz V=1 and share full console output. I don't get the git error nor can make sense of the error. You replicate debian dependencies exposed by apt calls under Circleci config.

tlaurion commented 4 months ago

We switched to nix develop creatd docker images under #1269