Skip to content

[pull] main from u-root:main#119

Closed
pull[bot] wants to merge 187 commits intodevnw-forks:mainfrom
u-root:main
Closed

[pull] main from u-root:main#119
pull[bot] wants to merge 187 commits intodevnw-forks:mainfrom
u-root:main

Conversation

@pull
Copy link

@pull pull bot commented Apr 13, 2025

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.1)

Can you help keep this open source service alive? 💖 Please sponsor : )

Signed-off-by: Siarhiej Siemianczuk <pdp.eleven11@gmail.com>
Signed-off-by: Siarhiej Siemianczuk <pdp.eleven11@gmail.com>
Signed-off-by: Siarhiej Siemianczuk <pdp.eleven11@gmail.com>
Signed-off-by: Siarhiej Siemianczuk <pdp.eleven11@gmail.com>
Signed-off-by: Siarhiej Siemianczuk <pdp.eleven11@gmail.com>
@pull pull bot added the ⤵️ pull label Apr 13, 2025
Laszlo Ersek and others added 24 commits April 15, 2025 16:35
cmd.connection() in "netcat.go" rejects SOCKET_TYPE_UNIX when
SSLConfig.Enabled or SSLConfig.VerifyTrust is set.

Therefore, checking for (SSLConfig.Enabled or SSLConfig.VerifyTrust) under
SOCKET_TYPE_UNIX in cmd.setupListener() in "listen.go" can only yield
false. Remove this dead check.

Best viewed with "git show -U5".

Signed-off-by: Laszlo Ersek <laszlo.ersek@9elements.com>
…ource

In a subsequent patch, I'll rewrite SSLOptions.GenerateTLSConfiguration().
So that hunks of the old and the new function not be interleaved in that
patch, move the current code verbatim to a new source file, temporarily.

Best viewed with "git show --no-renames --color-moved=zebra".

Signed-off-by: Laszlo Ersek <laszlo.ersek@9elements.com>
GenerateTLSConfiguration() currently works identically in client mode and
server mode. This is wrong for several reasons:

(1) "--ssl-verify" only makes sense in client mode (neither nmap's ncat,
    nor u-root's netcat, support client authentication in server mode).
    Ignore "-ssl-verify" in server mode. (This is also what nmap's ncat
    does.)

(2) "--ssl-trustfile" only makes sense if "--ssl-verify" is in effect;
    ignore "--ssl-trustfile" otherwise.

(3) "--ssl-cert" and "--ssl-key" are indeed required in server mode, but
    they should be possible to omit in client mode; make them optional in
    client mode.

    Note that, if these options are set in client mode, an interfacing
    *netcat* server still does not authenticate the client; however, a
    *different* SSL server could try to authenticate the client.

(4) "--ssl-servername" only makes sense in client mode; ignore it in
    server mode.

Add 39 unit tests for covering every *path* (not just every branch) in
GenerateTLSConfiguration().

Signed-off-by: Laszlo Ersek <laszlo.ersek@9elements.com>
Enable the netcatVM() helper function to take any number of trailing
"uimage.Modifier" arguments. This is a pure refactoring; no observable
change.

Best viewed with "git show -b -W".

Signed-off-by: Laszlo Ersek <laszlo.ersek@9elements.com>
Demonstrate certificate validation and data transfer.

Signed-off-by: Laszlo Ersek <laszlo.ersek@9elements.com>
Remove unimplemented features.

Signed-off-by: Jens Drenhaus <jens.drenhaus@9elements.com>
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.37.0 to 0.38.0.
- [Commits](golang/net@v0.37.0...v0.38.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-version: 0.38.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
when context will be cancelled cleanup will be executed in a loop, this
probably never happens because context is context.Background(), but I
think its better to exit function anyway.

Signed-off-by: Siarhiej Siemianczuk <pdp.eleven11@gmail.com>
Signed-off-by: Siarhiej Siemianczuk <pdp.eleven11@gmail.com>
Signed-off-by: Siarhiej Siemianczuk <pdp.eleven11@gmail.com>
Signed-off-by: Siarhiej Siemianczuk <pdp.eleven11@gmail.com>
SMBIOSBase returns base address and size of header. Since SMBIOSBase
might return either base address SMBIOS2 or SMBIO3, we need a way
to distinguish the actual version of SMBIOS.

Introudce a new method to get SMBIO3 header size. This method allows
caller to compare the size of header to figure out the SMBIOS version.

Signed-off-by: Ajan Zhong <ajan.zhong@newfw.com>
According to EDK2 UPL implementation, SMBIOS3 info can be provided
by device tree info only. Add SMBIOS3 child node in reserved memory
node to provide SMBIOS3 info.

Signed-off-by: Ajan Zhong <ajan.zhong@newfw.com>
In previous implementation of universalpayload.Load() method, execution
will be handed over to Universal Payload directly. In this case, warning
messages need to be printed inside universalpayload package in case we
succeed to load and boot Universal Payload.

In order to keep universalpayload package without any warning printed,
separate universalpayload.Load() method to Load() and Exec(), then any
warning messages can be retrieved from return value of Load() method,
and print warning messages out of universalpayload package before caller
invokes Exec() method.

Signed-off-by: Ajan Zhong <ajan.zhong@newfw.com>
Returns any warning message produced during universalpayload package
loading Universal Paylaod binary to kexec, then kexec prints warning
messages.

This logic ensures universalpayload package never prints message when
it succees to load Universal Payload binary.

Signed-off-by: Ajan Zhong <ajan.zhong@newfw.com>
Add test case to cover constructing SMBIOS3 node in Device Tree.

Signed-off-by: Ajan Zhong <ajan.zhong@newfw.com>
Signed-off-by: Siarhiej Siemianczuk <pdp.eleven11@gmail.com>
Signed-off-by: Daniel Lublin <daniel@lublin.se>
CONFIG_NET_CLS_U32=y is necessary for the upcoming "tc" integration test.

Signed-off-by: Laszlo Ersek <laszlo.ersek@9elements.com>
Start using the kernels with CONFIG_NET_CLS_U32=y, from commit
f0e05c3 (".circleci/images: enable the tc-u32 filter type in kernel
configs", 2025-04-25).

(I visited

  https://ghcr.io/u-root/u-root/test-kernel-amd64
  https://ghcr.io/u-root/u-root/test-kernel-arm
  https://ghcr.io/u-root/u-root/test-kernel-arm64

with my browser, and grabbed the digests of the most recently built images
that were tagged as "main".)

Signed-off-by: Laszlo Ersek <laszlo.ersek@9elements.com>
Non-root qdiscs have classes for parents, which are identified by class
IDs, not by flat integers. Fix the qdisc args parser.

Signed-off-by: Laszlo Ersek <laszlo.ersek@9elements.com>
Deduplicate the fmt.Fprintf call.

Signed-off-by: Laszlo Ersek <laszlo.ersek@9elements.com>
The output changes, for example, from

            TestDev2   htb
            TestDev2   sfq
            TestDev2   sfq
            TestDev2   sfq

to

            TestDev2   qdisc htb 1: root
            TestDev2   qdisc sfq 30: parent 1:30
            TestDev2   qdisc sfq 10: parent 1:10
            TestDev2   qdisc sfq 20: parent 1:20

Signed-off-by: Laszlo Ersek <laszlo.ersek@9elements.com>
The output changes, for example, from

            TestDev2   qdisc htb 1: root

to

            TestDev2   qdisc htb 1: root r2q 10 default 0x30 direct_qlen 1000

Signed-off-by: Laszlo Ersek <laszlo.ersek@9elements.com>
dependabot bot and others added 29 commits August 1, 2025 11:05
Bumps [form-data](https://github.com/form-data/form-data) from 4.0.0 to 4.0.4.
- [Release notes](https://github.com/form-data/form-data/releases)
- [Changelog](https://github.com/form-data/form-data/blob/master/CHANGELOG.md)
- [Commits](form-data/form-data@v4.0.0...v4.0.4)

---
updated-dependencies:
- dependency-name: form-data
  dependency-version: 4.0.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
During integration test, we have to specify GOARM=5 to run vmtest
locally [1], GOARM=7 always run into initramfs crash.

This issue is caused by floating point support on different ARM
architectures. ARMv5 supports software floating point only, when
GOARM=5 enabled, go build utilizes software FP solution to build
initramfs. When GOARM=7 is enabled, hardware FP instruction will
be used to build initramfs, in this case, we need to initialize FP
related registers in kernel to ensure hardware FP instruction from
user level initramfs can be invoked with correct environment.

[1]:https://github.com/u-root/u-root/blob/main/.github/workflows/tests.yml#L38

Signed-off-by: Ajan Zhong <ajan.zhong@newfw.com>
Due to ARM kernel configuration update to support GOARM=7 for hardware
Floating Point support, update ARM kernel image hash.

Signed-off-by: Ajan Zhong <ajan.zhong@newfw.com>
With commit #8710979 merged, there is no limitation on ARM architecture
verison for QEMU instance now.

Signed-off-by: Ajan Zhong <ajan.zhong@newfw.com>
Signed-off-by: Ronald G Minnich <rminnich@gmail.com>
Signed-off-by: Andrey Nering <andreynering@users.noreply.github.com>
Signed-off-by: Andrey Nering <andreynering@users.noreply.github.com>
Signed-off-by: Andrey Nering <andreynering@users.noreply.github.com>
Signed-off-by: Andrey Nering <andreynering@users.noreply.github.com>
Signed-off-by: Andrey Nering <andreynering@users.noreply.github.com>
Signed-off-by: Andrey Nering <andreynering@users.noreply.github.com>
Signed-off-by: Ronald G Minnich <rminnich@gmail.com>
The long argument capability was not even being used.

Signed-off-by: Ronald G Minnich <rminnich@gmail.com>
We had a guiding principle in u-root not to depend on a shell.
The tftp test is a complex shell script, that is basically undebuggable.

Remove this shell script. It sets a bad precedent. I realize there is one
other shell-based test left, the fork bomb test; I will try to remove
the dependency there as well.

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Signed-off-by: Ronald G Minnich <rminnich@gmail.com>
With luck, the tests cover all cases. Pflag Normalize is more powerful
than this replacement code, but not enough better to keep using it.

Signed-off-by: Ronald G Minnich <rminnich@gmail.com>
There may be references to the baseboard table we want to remove. This
allows us to remove all instances in other baseboard tables or group
association tables.

Signed-off-by: Andrew Sun <andrewsun@google.com>
kernel modules are allowed to run thier initialization code in parallel,
and for modules that take a long time (e.g. probing hardware, etc.), we
can noticably reduce boot times by loading modules in parallel.

We want to avoid calling loadModule() for the same dep multiple times as
the kernel will return EEXIST for the duplicate module load (plus the
wasted cycles loading a duplicate image).

Adds a concurrent-safe parallelProbeDep() loading implementation, and
updates ProbeOptions() to load dependency modules in parallel.

Probe() and ProbeOptions() themselves remain concurrent-unsafe.

Fixes #3424

Signed-off-by: Khazhismel Kumykov <khazhy@google.com>
Export new Prober type holding known module state (depMap) & probing
options, and new concurrent-safe Prober.Probe method for loading one
module and its dependencies.

Fixes #3424

Signed-off-by: Khazhismel Kumykov <khazhy@google.com>
In many situations the fixed lines at the top of the menu come out somewhat messy
because the end of line does not include a Carriage Return.  Add one.
 In the worst case there will be two if there is another added by the output system.

Signed-off-by: jelischer <58259690+jelischer@users.noreply.github.com>
use term for all menu output

All menu contents need to take the same path so as to not get re-ordered.

Signed-off-by: jelischer <58259690+jelischer@users.noreply.github.com>
This reverts commit c9a322d.

Signed-off-by: Ajan Zhong <ajan.zhong@newfw.com>
This reverts commit c3217ac.

Signed-off-by: Ajan Zhong <ajan.zhong@newfw.com>
System memory information has been provided in DTB, there is no need
to provide system memory info again in handoff blocks.

Remove system memory info in handoff block reduces the foot print of
UPL solution, since in large scale server, there will be plenty of
system memory regions.

Signed-off-by: Ajan Zhong <ajan.zhong@newfw.com>
This allowed for the Go runtime futexes to work on an Armv7 target, MDM9625.

Without 32bit time compat, the Go runtime crashes and prints:
```
futexwakeup addr=0x547a08 returned -38
SIGSEGV: segmentation violation
PC=0x55e04 m=2 sigcode=1 addr=0x1006

goroutine 0 gp=0x14025a8 m=2 mp=0x142c808 [idle]:
runtime.futexwakeup(0x547a08, 0x1)
        runtime/os_linux.go:100 +0x6c fp=0x1445f94 sp=0x1445f68 pc=0x55e04
...
```
Full message:
https://gist.github.com/orangecms/d7a8a59ec9dc28b74a20da09ff2db3ec

Coming from here:
https://github.com/golang/go/blob/339c903a75c3fe936fb4ed6c355d15e6081d6af3/src/runtime/os_linux.go#L97

Note: -38 means ENOSYS.

32bit time compat is not (yet) mentioned in the Go minimum requirements:
https://go.dev/wiki/MinimumRequirements

From Linux `arch/Kconfig`:

  config COMPAT_32BIT_TIME
          bool "Provide system calls for 32-bit time_t"
          default !64BIT || COMPAT
          help
            This enables 32 bit time_t support in addition to 64 bit
  time_t support.
            This is relevant on all 32-bit architectures, and 64-bit
  architectures
            as part of compat syscall handling.

For reference, in Linux, there is a second `SYSCALL_DEFINE6` under the
32bit time compat condition:
https://github.com/torvalds/linux/blob/8f5ae30d69d7543eee0d70083daf4de8fe15d585/kernel/futex/syscalls.c#L491

Signed-off-by: Daniel Maslowski <info@orangecms.org>
Also, reword variables->options.

Signed-off-by: Daniel Maslowski <info@orangecms.org>
This leads the reader toward the configs that we provide.

Signed-off-by: Daniel Maslowski <info@orangecms.org>
This is very old code, which I guess none of us ever noticed.
/proc/pid/cmdline has embedded NULLs, which need to be
changed to space.

Signed-off-by: Ronald G Minnich <rminnich@gmail.com>
dependabot picked 5.14, which had a 32-bit problem

Signed-off-by: Ronald G Minnich <rminnich@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.