u-root
commandmoduleThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
README¶
u-root
Description
u-root embodies four different projects.
Go versions of many standard Linux tools, such asls,cp, orshutdown. Seecmds/core for most of these.
A way to compile many Go programs into a single binary withbusybox mode.
A way to create initramfs (an archive of files) to use with Linux kernels,embeddable into firmware.
Gobootloaders that use
kexec
to boot Linux or multibootkernels such as ESXi, Xen, or tboot. They are meant to be used withLinuxBoot.
Usage
Make sure your Go version is >= 1.21.
Download and install u-root either via git:
git clone https://github.com/u-root/u-rootcd u-rootgo install
Or install directly with go:
go install github.com/u-root/u-root@latest
[!NOTE]The
u-root
command will end up in$GOPATH/bin/u-root
, so you mayneed to add$GOPATH/bin
to your$PATH
.
Examples
Here are some examples of using theu-root
command to build an initramfs.
git clone https://github.com/u-root/u-rootcd u-root# Build an initramfs of all the Go cmds in ./cmds/core/... (default)u-root# Generate an archive with bootloaders## core and boot are templates that expand to sets of commandsu-root core boot# Generate an archive with only these given commandsu-root ./cmds/core/{init,ls,ip,dhclient,wget,cat,gosh}# Generate an archive with all of the core tools with some exceptionsu-root core -cmds/core/{ls,losetup}
[!IMPORTANT]
u-root
works exactly whengo build
andgo list
work as well.See also the section below discussing theAMD64 architecture level.
[!NOTE]
The
u-root
tool is the same as themkuimage tool with some defaultsapplied.In the near future,
uimage
will replaceu-root
.
[!TIP]
To just build Go busybox binaries, try outgobusybox's
makebb
tool.
Multi-module workspace builds
There are several ways to build multi-module command images using standard Gotooling.
$ mkdir workspace$ cd workspace$ git clone https://github.com/u-root/u-root$ git clone https://github.com/u-root/cpu$ go work init ./u-root$ go work use ./cpu$ u-root ./u-root/cmds/core/{init,gosh} ./cpu/cmds/cpud$ cpio -ivt < /tmp/initramfs.linux_amd64.cpio...-rwxr-x--- 0 root root 6365184 Jan 1 1970 bbin/bblrwxrwxrwx 0 root root 2 Jan 1 1970 bbin/cpud -> bblrwxrwxrwx 0 root root 2 Jan 1 1970 bbin/gosh -> bblrwxrwxrwx 0 root root 2 Jan 1 1970 bbin/init -> bb...# Works for offline vendored builds as well.$ go work vendor # Go 1.22 feature.$ u-root ./u-root/cmds/core/{init,gosh} ./cpu/cmds/cpud
When creating a new Go workspace is too much work, thegoanywhere
tool cancreate one on the fly. This worksonly with local file system paths:
$ go install github.com/u-root/gobusybox/src/cmd/goanywhere@latest$ goanywhere ./u-root/cmds/core/{init,gosh} ./cpu/cmds/cpud -- u-root
goanywhere
creates a workspace in a temporary directory with the givenmodules, and then execsu-root
in the workspace passing along the commandnames.
[!TIP]
While workspaces are good for local compilation, they are not meant to bechecked in to version control systems.
For a non-workspace way of building multi-module initramfs images, read morein themkuimage README. (The
u-root
tool ismkuimage
with more defaults applied.)
Extra Files
You may also include additional files in the initramfs using the-files
flag.
If you add binaries with-files
are listed, their ldd dependencies will beincluded as well.
$ u-root -files /bin/bash$ cpio -ivt < /tmp/initramfs.linux_amd64.cpio...-rwxr-xr-x 0 root root 1277936 Jan 1 1970 bin/bash...drwxr-xr-x 0 root root 0 Jan 1 1970 lib/x86_64-linux-gnu-rwxr-xr-x 0 root root 210792 Jan 1 1970 lib/x86_64-linux-gnu/ld-linux-x86-64.so.2-rwxr-xr-x 0 root root 1926256 Jan 1 1970 lib/x86_64-linux-gnu/libc.so.6lrwxrwxrwx 0 root root 15 Jan 1 1970 lib/x86_64-linux-gnu/libtinfo.so.6 -> libtinfo.so.6.4-rw-r--r-- 0 root root 216368 Jan 1 1970 lib/x86_64-linux-gnu/libtinfo.so.6.4drwxr-xr-x 0 root root 0 Jan 1 1970 lib64lrwxrwxrwx 0 root root 42 Jan 1 1970 lib64/ld-linux-x86-64.so.2 -> /lib/x86_64-linux-gnu/ld-linux-x86-64.so.2...
You can determine placement with colons:
$ u-root -files "/bin/bash:sbin/sh"$ cpio -ivt < /tmp/initramfs.linux_amd64.cpio...-rwxr-xr-x 0 root root 1277936 Jan 1 1970 sbin/sh...
For example on Debian, if you want to add two kernel modules for testing,executing your currently booted kernel:
$ u-root -files "$HOME/hello.ko:etc/hello.ko" -files "$HOME/hello2.ko:etc/hello2.ko"$ qemu-system-x86_64 -kernel /boot/vmlinuz-$(uname -r) -initrd /tmp/initramfs.linux_amd64.cpio
Init and Uinit
u-root has a very simple (exchangable) init system controlled by the-initcmd
and-uinitcmd
command-line flags.
-initcmd
determines what/init
is symlinked to.-initcmd
may be au-root command name or a symlink target.-uinitcmd
is run by the default u-rootinit after somebasic file system setup. There is no default, users should optionally supplytheir own.-uinitcmd
may be a u-root command name with arguments or asymlink target with arguments.After running a uinit (if there is one),init will start ashell determined by the
-defaultsh
argument.
We expect most users to keep their-initcmd
asinit, but tosupply their own uinit for additional initialization or to immediately loadanother operating system.
All three command-line args accept both a u-root command name or a targetsymlink path.Only-uinitcmd
accepts command-line arguments, however. Forexample,
u-root -uinitcmd="echo Go Gopher" ./cmds/core/{init,echo,gosh}cpio -ivt < /tmp/initramfs.linux_amd64.cpio# ...# lrwxrwxrwx 0 root root 12 Dec 31 1969 bin/uinit -> ../bbin/echo# lrwxrwxrwx 0 root root 9 Dec 31 1969 init -> bbin/initqemu-system-x86_64 -kernel $KERNEL -initrd /tmp/initramfs.linux_amd64.cpio -nographic -append "console=ttyS0"# ...# [ 0.848021] Freeing unused kernel memory: 896K# 2020/05/01 04:04:39 Welcome to u-root!# _# _ _ _ __ ___ ___ | |_# | | | |____| '__/ _ \ / _ \| __|# | |_| |____| | | (_) | (_) | |_# \__,_| |_| \___/ \___/ \__|## Go Gopher# ~/>
Passing command line arguments like above is equivalent to passing the argumentsto uinit via a flags file in/etc/uinit.flags
, seeExtra Files.
Additionally, you can pass arguments to uinit via theuroot.uinitargs
kernelparameters, for example:
u-root -uinitcmd="echo Gopher" ./cmds/core/{init,echo,gosh}cpio -ivt < /tmp/initramfs.linux_amd64.cpio# ...# lrwxrwxrwx 0 root root 12 Dec 31 1969 bin/uinit -> ../bbin/echo# lrwxrwxrwx 0 root root 9 Dec 31 1969 init -> bbin/initqemu-system-x86_64 -kernel $KERNEL -initrd /tmp/initramfs.linux_amd64.cpio -nographic -append "console=ttyS0 uroot.uinitargs=Go"# ...# [ 0.848021] Freeing unused kernel memory: 896K# 2020/05/01 04:04:39 Welcome to u-root!# _# _ _ _ __ ___ ___ | |_# | | | |____| '__/ _ \ / _ \| __|# | |_| |____| | | (_) | (_) | |_# \__,_| |_| \___/ \___/ \__|## Go Gopher# ~/>
Note the order of the passed arguments in the above example.
The command you name must be present in the command set. The following willnotwork:
u-root -uinitcmd="echo Go Gopher" ./cmds/core/{init,gosh}# 21:05:57 could not create symlink from "bin/uinit" to "echo": command or path "echo" not included in u-root build: specify -uinitcmd="" to ignore this error and build without a uinit
You can also refer to non-u-root-commands; they will be added as symlinks. Wedon't presume to know whether your symlink target is correct or not.
This will build, but not work unless you add a /bin/foobar to the initramfs.
u-root -uinitcmd="/bin/foobar Go Gopher" ./cmds/core/{init,gosh}
This will boot the same as the above.
u-root -uinitcmd="/bin/foobar Go Gopher" -files /bin/echo:bin/foobar -files your-hosts-file:/etc/hosts ./cmds/core/{init,gosh}
The effect of the above command:
- Sets up the uinit command to be /bin/foobar, with 2 arguments: Go Gopher
- Adds /bin/echo as bin/foobar
- Adds your-hosts-file as etc/hosts
- builds in the cmds/core/init, and cmds/core/gosh commands.
This will bypass the regular u-root init and just launch a shell:
u-root -initcmd=gosh ./cmds/core/{gosh,ls}cpio -ivt < /tmp/initramfs.linux_amd64.cpio# ...# lrwxrwxrwx 0 root root 9 Dec 31 1969 init -> bbin/goshqemu-system-x86_64 -kernel $KERNEL -initrd /tmp/initramfs.linux_amd64.cpio -nographic -append "console=ttyS0"# ...# [ 0.848021] Freeing unused kernel memory: 896K# failed to put myself in foreground: ioctl: inappropriate ioctl for device# ~/>
(It fails to do that because some initialization is missing when the shell isstarted without a proper init.)
AMD64 Architecture Level
Before building an initramfs for AMD64 withu-root
, verify that the command
go env GOAMD64
printsv1
. AGOAMD64
settingof any higher version may produce such binaries that don't execute on old AMD64processors (including the default CPU model of QEMU).
GOAMD64
can be reset tov1
with one of the following methods:
through the
GOAMD64
environment variable:export GOAMD64=v1
through
go env
(only takes effect if theGOAMD64
environment variableis not set):go env -w GOAMD64=v1
Cross Compilation (targeting different architectures and OSes)
Cross-OS and -architecture compilation comes for free with Go. In fact, every PRto the u-root repo is built against the following architectures: amd64, x86(i.e. 32bit), mipsle, armv7, arm64, and ppc64le.
Further, we run integration tests on linux/amd64, and linux/arm64, using severalCI systems. If you need to add another CI system, processor or OS, please let usknow.
To cross compile for an ARM, on Linux:
GOARCH=arm u-root
If you are on OSX, and wish to build for Linux on AMD64:
GOOS=linux GOARCH=amd64 u-root
Testing in QEMU
A good way to test the initramfs generated by u-root is with qemu:
qemu-system-x86_64 -nographic -kernel path/to/kernel -initrd /tmp/initramfs.linux_amd64.cpio
Note that you do not have to build a special kernel on your own, it issufficient to use an existing one. Usually you can find one in/boot
.
If you don't have a kernel handy, you can also get the one we use for VM testing:
go install github.com/hugelgupf/vmtest/tools/runvmtest@latestrunvmtest -- bash -c "cp \$VMTEST_KERNEL ./kernel"
It may not have all features you require, however.
Framebuffer
For framebuffer support, append a VESA mode via thevga
kernel parameter:
qemu-system-x86_64 \ -kernel path/to/kernel \ -initrd /tmp/initramfs.linux_amd64.cpio \ -append "vga=786"
For a list of modes, refer to theLinux kernel documentation.
Entropy / Random Number Generator
Some utilities, e.g.,dhclient
, require entropy to be present. For a speedyvirtualized random number generator, the kernel should have the following:
CONFIG_VIRTIO_PCI=yCONFIG_HW_RANDOM_VIRTIO=yCONFIG_CRYPTO_DEV_VIRTIO=y
Then you can run your kernel in QEMU with avirtio-rng-pci
device:
qemu-system-x86_64 \ -device virtio-rng-pci \ -kernel vmlinuz \ -initrd /tmp/initramfs.linux_amd64.cpio
In addition, you can pass your host's RNG:
qemu-system-x86_64 \ -object rng-random,filename=/dev/urandom,id=rng0 \ -device virtio-rng-pci,rng=rng0 \ -kernel vmlinuz \ -initrd /tmp/initramfs.linux_amd64.cpio
SystemBoot
SystemBoot is a set of bootloaders written in Go. It is meant to be adistribution for LinuxBoot to create a system firmware + bootloader. All ofthese usekexec
to boot. The commands are incmds/boot.Parsers are available forGRUB,syslinux,and other config files to make the transition to LinuxBoot easier.
pxeboot
: a network boot client that uses DHCP and HTTP or TFTP to get aboot configuration which can be parsed as PXELinux or iPXE configurationfiles to get a boot program.boot
: finds all bootable kernels on local disk, shows a menu, and bootsthem. Supports (basic) GRUB, (basic) syslinux, (non-EFI) BootLoaderSpec, andESXi configurations.
More detailed information about the build process for a full LinuxBoot firmwareimage using u-root/systemboot and coreboot can be found in theLinuxBoot book chapter aboutLinuxBoot using coreboot, u-root and systemboot.
This project started as a loose collection of programs in u-root by variousLinuxBoot contributors, as well as a personal experiment byAndrea Barberio that has since been mergedin. It is now an effort of a broader community and graduated to a real projectfor system firmwares.
Compression
You can compress the initramfs. However, for xz compression, the kernel has somerestrictions on the compression options and it is suggested to align the file to512 byte boundaries:
xz --check=crc32 -9 --lzma2=dict=1MiB \ --stdout /tmp/initramfs.linux_amd64.cpio \ | dd conv=sync bs=512 \ of=/tmp/initramfs.linux_amd64.cpio.xz
Getting Packages of TinyCore
Using thetcz
command included in u-root, you can install tinycore linuxpackages for things you want.
You can use QEMU NAT to allow you to fetch packages. Let's suppose, for example,you want bash. Once u-root is running, you can do this:
% tcz bash
The tcz command computes and fetches all dependencies. If you can't get totinycorelinux.net, or you want package fetching to be faster, you can run yourown server for tinycore packages.
You can do this to get a local server using the u-root srvfiles command:
% srvfiles -p 80 -d path-to-local-tinycore-packages
Of course you have to fetch all those packages first somehow :-)
Build an Embeddable u-root
You can build the cpio image created by u-root into a Linux kernel via theCONFIG_INITRAMFS_SOURCE
config variable or coreboot config variable, andfurther embed the kernel image into firmware as a coreboot payload.
In the kernel and coreboot case, you may need to configure ethernet. We have adhclient
command that works for both ipv4 and ipv6. Since v6 does not yet workthat well for most people, a typical invocation looks like this:
% dhclient -ipv4 -ipv6=false
Or, on newer linux kernels (> 4.x) boot with ip=dhcp in the command line,assuming your kernel is configured to work that way.
Build Modes
u-root can create an initramfs in two different modes, specified by-build
:
gbb
mode: One busybox-like binary comprising all the Go tools you ask toinclude.Seethe gobusybox README for how it works.In this mode, u-root copies and rewrites the source of the tools you askedto include to be able to compile everything into one busybox-like binary.binary
mode: each specified binary is compiled separately and all binariesare added to the initramfs.
Updating Dependencies
go get -ugo mod tidygo mod vendor
Building without network access
The u-root command supports building with workspace vendoring and modulevendoring. In both of those cases, if all dependencies are found in the vendoreddirectories, the build happens completely offline.
Read more in themkuimage README.
u-root also still supportsGO111MODULE=off
builds.
Hardware
If you want to see u-root on real hardware, thisboard is a good start.
Using with Plan 9
U-root works with Plan 9. The best distro to use for it is 9front, as the9front cpiofs works with newc-format cpio (the format of Linux initramfs, whichu-root generates).
Here is a script for Plan 9. Once this script runs, all the u-root commandsappear in /bin. You will need to have go1.22 installed on Plan 9; orcreate the u-root initramfs on some other system and copy it to Plan 9.
#!/bin/rcu-root '-defaultsh=' '-initcmd=' '-shellbang=true'fs/cpiofs /tmp/initram*cpiobind -a /n/tapefs /bind -a /bbin /bin
Contributions
For information about contributing, including how we sign off commits, pleaseseeCONTRIBUTING.md.
Improving existing commands (e.g., additional currently unsupported flags) isvery welcome. In this case it is not even required to build an initramfs, justenter thecmds/
directory and start coding. A list of commands that are on theroadmap can be foundhere.
Website
The sources ofu-root.org are inside thedocs/
directory andare deployed to the gh-pages branch. The CNAME file is currently not part of the CIwhich deploys to the branch which shall be evaluated if this makes futures deployments easier.
Directories¶
Path | Synopsis |
---|---|
cmds | |
boot/bootcommand Command boot allows to handover a system running linuxboot/u-root to a legacy preinstalled operating system by replacing the traditional bootloader path | Command boot allows to handover a system running linuxboot/u-root to a legacy preinstalled operating system by replacing the traditional bootloader path |
boot/fitbootcommand | |
boot/pxebootcommand Command pxeboot implements PXE-based booting. | Command pxeboot implements PXE-based booting. |
cluster/nodestatscommand nodestats prints out vital statistics about a node as JSON. | nodestats prints out vital statistics about a node as JSON. |
contrib/fbptcatcommand | |
core/backoffcommand | |
core/base64command base64 - encode and decode base64 from stdin or file to stdout | base64 - encode and decode base64 from stdin or file to stdout |
core/basenamecommand Basename return name with leading path information removed. | Basename return name with leading path information removed. |
core/blkidcommand Blkid prints information about blocks. | Blkid prints information about blocks. |
core/brctlcommand | |
core/catcommand cat concatenates files and prints them to stdout. | cat concatenates files and prints them to stdout. |
core/chmodcommand chmod changes mode bits (e.g. | chmod changes mode bits (e.g. |
core/chrootcommand | |
core/cmpcommand cmp compares two files and prints a message if their contents differ. | cmp compares two files and prints a message if their contents differ. |
core/commcommand comm compares two files. | comm compares two files. |
core/cpcommand cp copies files. | cp copies files. |
core/cpiocommand cpio operates on cpio files using a cpio package It only implements basic cpio options. | cpio operates on cpio files using a cpio package It only implements basic cpio options. |
core/datecommand date prints the date. | date prints the date. |
core/ddcommand dd converts and copies a file. | dd converts and copies a file. |
core/dfcommand df reports details of mounted filesystems. | df reports details of mounted filesystems. |
core/dhclientcommand dhclient sets up network config using DHCP. | dhclient sets up network config using DHCP. |
core/dirnamecommand dirname prints out the directory name of one or more args. | dirname prints out the directory name of one or more args. |
core/dmesgcommand dmesg reads the Linux system log. | dmesg reads the Linux system log. |
core/ducommand | |
core/echocommand echo writes its arguments separated by blanks and terminated by a newline on the standard output. | echo writes its arguments separated by blanks and terminated by a newline on the standard output. |
core/falsecommand false returns 1. | false returns 1. |
core/findcommand Find finds files. | Find finds files. |
core/freecommand free reports usage information for physical memory and swap space. | free reports usage information for physical memory and swap space. |
core/fusermountcommand fusermount is a very limited replacement for the C fusermount. | fusermount is a very limited replacement for the C fusermount. |
core/goshcommand | |
core/gpgvcommand gpgv validates a signature against a file. | gpgv validates a signature against a file. |
core/gptcommand gpt reads and writes GPT headers. | gpt reads and writes GPT headers. |
core/grepcommand | |
core/gzipcommand gzip compresses files using gzip compression. | gzip compresses files using gzip compression. |
core/headcommand | |
core/hexdumpcommand hexdump prints file content in hexadecimal. | hexdump prints file content in hexadecimal. |
core/hostnamecommand hostname prints or changes the system's hostname. | hostname prints or changes the system's hostname. |
core/hwclockcommand hwclock reads or changes the hardware clock (RTC) in UTC format. | hwclock reads or changes the hardware clock (RTC) in UTC format. |
core/idcommand id displays the user id, group id, and groups of the calling process. | id displays the user id, group id, and groups of the calling process. |
core/initcommand init is u-root's standard userspace init process. | init is u-root's standard userspace init process. |
core/insmodcommand insmod inserts a module into the running Linux kernel. | insmod inserts a module into the running Linux kernel. |
core/iocommand io reads and writes to physical memory and ports. | io reads and writes to physical memory and ports. |
core/ipcommand ip manipulates network addresses, interfaces, routing, and other config. | ip manipulates network addresses, interfaces, routing, and other config. |
core/kexeccommand | |
core/killcommand Kill kills processes. | Kill kills processes. |
core/lddfilescommand lddfiles prints the arguments and all .so dependencies of those arguments | lddfiles prints the arguments and all .so dependencies of those arguments |
core/lncommand Ln makes links to files. | Ln makes links to files. |
core/lockmsrscommand lockmsrs locks important intel MSRs. | lockmsrs locks important intel MSRs. |
core/losetupcommand losetup sets up and controls loop devices. | losetup sets up and controls loop devices. |
core/lscommand ls prints the contents of a directory. | ls prints the contents of a directory. |
core/lsdriverscommand lsdrivers lists driver usage on Linux systems | lsdrivers lists driver usage on Linux systems |
core/lsfdcommand | |
core/lsmodcommand lsmod list currently loaded Linux kernel modules. | lsmod list currently loaded Linux kernel modules. |
core/mancommand man - print manual entry for command. | man - print manual entry for command. |
core/man/data Code generated by man/gen/gen.go. | Code generated by man/gen/gen.go. |
core/man/gencommand | |
core/md5sumcommand md5sum prints an md5 hash generated from file contents. | md5sum prints an md5 hash generated from file contents. |
core/mkdircommand mkdir makes a new directory. | mkdir makes a new directory. |
core/mkfifocommand mkfifo creates a named pipe. | mkfifo creates a named pipe. |
core/mknodcommand Unmount a filesystem at the specified path. | Unmount a filesystem at the specified path. |
core/mktempcommand Mktemp makes a temporary file (or directory) | Mktemp makes a temporary file (or directory) |
core/morecommand More pages through files without any terminal trickery. | More pages through files without any terminal trickery. |
core/mountcommand mount mounts a filesystem at the specified path. | mount mounts a filesystem at the specified path. |
core/msrcommand msr -- read and write MSRs with regular command or Forth | msr -- read and write MSRs with regular command or Forth |
core/mvcommand mv renames files and directories. | mv renames files and directories. |
core/netcatcommand netcat creates arbitrary TCP and UDP connections and listens and sends arbitrary data. | netcat creates arbitrary TCP and UDP connections and listens and sends arbitrary data. |
core/netstatcommand | |
core/nohupcommand nohup – invoke a utility immune to hangups. | nohup – invoke a utility immune to hangups. |
core/ntpdatecommand ntpdate uses NTP to adjust the system clock. | ntpdate uses NTP to adjust the system clock. |
core/pcicommand pci: show pci bus vendor ids and other info | pci: show pci bus vendor ids and other info |
core/pidofcommand | |
core/pingcommand Send icmp packets to a server to test network connectivity. | Send icmp packets to a server to test network connectivity. |
core/poweroffcommand poweroff turns the system off, without delay. | poweroff turns the system off, without delay. |
core/printenvcommand Print environment variables. | Print environment variables. |
core/pscommand Print process information. | Print process information. |
core/pwdcommand Print name of current directory. | Print name of current directory. |
core/readlinkcommand readlink display value of symbolic link file. | readlink display value of symbolic link file. |
core/realpathcommand | |
core/rmcommand Delete files. | Delete files. |
core/rmmodcommand Remove a module from the Linux kernel | Remove a module from the Linux kernel |
core/rsdpcommand rsdp allows to determine the ACPI RSDP structure address which could be passed to the boot command later on It must be executed at the system init as it relies on scanning the kernel messages which could be quickly filled up in some cases | rsdp allows to determine the ACPI RSDP structure address which could be passed to the boot command later on It must be executed at the system init as it relies on scanning the kernel messages which could be quickly filled up in some cases |
core/scpcommand Scp copies files between hosts on a network. | Scp copies files between hosts on a network. |
core/seqcommand Print a sequence of numbers. | Print a sequence of numbers. |
core/servicecommand | |
core/shasumcommand shasum computes SHA checksums of files. | shasum computes SHA checksums of files. |
core/shutdowncommand shutdown halts, suspends, or reboots at a specified time, or immediately. | shutdown halts, suspends, or reboots at a specified time, or immediately. |
core/sleepcommand Delay for the specified amount of time. | Delay for the specified amount of time. |
core/sluinitcommand | |
core/sortcommand Sort lines. | Sort lines. |
core/sshdcommand | |
core/stracecommand strace is a simple multi-process syscall & signal tracer. | strace is a simple multi-process syscall & signal tracer. |
core/stringscommand Strings finds printable strings. | Strings finds printable strings. |
core/sttycommand The command works like this: stty [verb] [options] Verbs are: dump -- dump the json of the struct to stdout load -- read a json file from stdin and use it to set raw -- convenience command to set raw cooked -- convenience command to set cooked In common stty usage, options may be specified without a verb. | The command works like this: stty [verb] [options] Verbs are: dump -- dump the json of the struct to stdout load -- read a json file from stdin and use it to set raw -- convenience command to set raw cooked -- convenience command to set cooked In common stty usage, options may be specified without a verb. |
core/switch_rootcommand | |
core/synccommand | |
core/tailcommand | |
core/tarcommand Create and extract tar archives. | Create and extract tar archives. |
core/teecommand Tee transcribes the standard input to the standard output and makes copies in the files. | Tee transcribes the standard input to the standard output and makes copies in the files. |
core/timecommand Time process execution. | Time process execution. |
core/timeoutcommand | |
core/touchcommand touch changes file access and modification times. | touch changes file access and modification times. |
core/trcommand | |
core/truecommand Returns 0. | Returns 0. |
core/truncatecommand Truncate - shrink or extend the size of a file to the specified size | Truncate - shrink or extend the size of a file to the specified size |
core/tscommand ts prepends each line of stdin with a timestamp. | ts prepends each line of stdin with a timestamp. |
core/ttycommand | |
core/umountcommand Unmount a filesystem at the specified path. | Unmount a filesystem at the specified path. |
core/unamecommand Print build information about the kernel and machine. | Print build information about the kernel and machine. |
core/uniqcommand Uniq removes repeated lines. | Uniq removes repeated lines. |
core/unmountcommand Unmount unmounts new from old, or everything mounted on old if new is omitted. | Unmount unmounts new from old, or everything mounted on old if new is omitted. |
core/unsharecommand Disassociate parts of the process execution context. | Disassociate parts of the process execution context. |
core/update-rc.dcommand | |
core/uptimecommand Get the time the machine has been up Synopsis: | Get the time the machine has been up Synopsis: |
core/watchdogcommand watchdog interacts with /dev/watchdog. | watchdog interacts with /dev/watchdog. |
core/watchdogdcommand | |
core/wccommand Wc counts lines, words, runes, syntactically–invalid UTF codes. | Wc counts lines, words, runes, syntactically–invalid UTF codes. |
core/wgetcommand Wget reads one file from a url and writes to stdout. | Wget reads one file from a url and writes to stdout. |
core/whichcommand Which locates a command. | Which locates a command. |
core/xargscommand xargs reads space, tab, newline and end-of-file delimited strings from the standard input and executes utility with the strings as arguments. | xargs reads space, tab, newline and end-of-file delimited strings from the standard input and executes utility with the strings as arguments. |
core/yescommand | |
exp/acpicatcommand acpicat cats ACPI tables from the kernel. | acpicat cats ACPI tables from the kernel. |
exp/acpigrepcommand grep a stream of ACPI tables by regexp | grep a stream of ACPI tables by regexp |
exp/ansicommand Print ansi escape sequences. | Print ansi escape sequences. |
exp/bootvarscommand Command bootvars reads the current UEFI boot variables. | Command bootvars reads the current UEFI boot variables. |
exp/bzimagecommand bzImage is used to modify bzImage files. | bzImage is used to modify bzImage files. |
exp/cbmemcommand cbmem prints out coreboot mem table information in JSON by default, and also implements the basic cbmem -list and -console commands. | cbmem prints out coreboot mem table information in JSON by default, and also implements the basic cbmem -list and -console commands. |
exp/cbmem/gencommand | |
exp/consolecommand console implements a basic console. | console implements a basic console. |
exp/crccommand Prints crc checksum of a file. | Prints crc checksum of a file. |
exp/disk_unlockcommand The disk_unlock command is used to unlock a disk drive with a HSS-derived password, and rescan the drive to enumerate the unlocked partitions. | The disk_unlock command is used to unlock a disk drive with a HSS-derived password, and rescan the drive to enumerate the unlocked partitions. |
exp/dmidecodecommand | |
exp/dumpebdacommand dumpebda reads and prints the Extended BIOS Data Area. | dumpebda reads and prints the Extended BIOS Data Area. |
exp/dumpmemmapcommand Command dumpmemmap prints different kernel interpretations of physical memory address space. | Command dumpmemmap prints different kernel interpretations of physical memory address space. |
exp/ectoolcommand These should all implement io.ReadAt, with the address as the Offset; same for WriteAt. | These should all implement io.ReadAt, with the address as the Offset; same for WriteAt. |
exp/edcommand address.go - contains methods for FileBuffer for line address resolution | address.go - contains methods for FileBuffer for line address resolution |
exp/efivarfscommand | |
exp/esxibootcommand | |
exp/fbnetbootcommand | |
exp/fbsplashcommand | |
exp/fdtdumpcommand fdtdump prints a readable version of Flattened Device Tree or dtb. | fdtdump prints a readable version of Flattened Device Tree or dtb. |
exp/fieldcommand The `field` command reads newline-separated lines of data from either the standard input or the specified files. | The `field` command reads newline-separated lines of data from either the standard input or the specified files. |
exp/fixrsdpcommand fixrsdp copies the existing RSDP into the EBDA region in low mem. | fixrsdp copies the existing RSDP into the EBDA region in low mem. |
exp/forthcommand Forth is a forth interpreter. | Forth is a forth interpreter. |
exp/freqcommand Freq reads the given files (default standard input) and prints histograms of the character frequencies. | Freq reads the given files (default standard input) and prints histograms of the character frequencies. |
exp/gettycommand getty Open a TTY and invoke a shell There are no special options and no login support Also getty exits after starting the shell so if one exits the shell, there is no more shell! | getty Open a TTY and invoke a shell There are no special options and no login support Also getty exits after starting the shell so if one exits the shell, there is no more shell! |
exp/hdparmcommand hdparm performs control operations on disks. | hdparm performs control operations on disks. |
exp/ipmidumpcommand Synopsis: | Synopsis: |
exp/kconfcommand | |
exp/localbootcommand | |
exp/lsfabriccommand | |
exp/madeyecommand madeye merges multiple architecture u-root initramfs to form a single universal initramfs. | madeye merges multiple architecture u-root initramfs to form a single universal initramfs. |
exp/modprobecommand modprobe - Add and remove modules from the Linux Kernel | modprobe - Add and remove modules from the Linux Kernel |
exp/netbootxyzcommand | |
exp/newsshdcommand | |
exp/nvme_unlockcommand The nvme_unlock command is used to unlock a NVMe drive with a HSS-derived password, and rescan the drive to enumerate the unlocked partitions. | The nvme_unlock command is used to unlock a NVMe drive with a HSS-derived password, and rescan the drive to enumerate the unlocked partitions. |
exp/pagecommand Synopsis: | Synopsis: |
exp/partprobecommand partprobe prompts the OS to re-read partition tables. | partprobe prompts the OS to re-read partition tables. |
exp/pflaskcommand | |
exp/poxcommand pox packages dynamic executable into an archive. | pox packages dynamic executable into an archive. |
exp/pxeservercommand pxeserver is a test & lab PXE server that supports TFTP, HTTP, and DHCPv4. | pxeserver is a test & lab PXE server that supports TFTP, HTTP, and DHCPv4. |
exp/readelfcommand Dump the headers of an ELF file, from stdin or a set of files | Dump the headers of an ELF file, from stdin or a set of files |
exp/readpecommand Dump the headers of a PE file. | Dump the headers of a PE file. |
exp/runcommand Run executes its arguments as a Go program. | Run executes its arguments as a Go program. |
exp/rushcommand our first builtin: cd | our first builtin: cd |
exp/serialcommand | |
exp/smbios_transfercommand smbios_transfer sends SMBIOS tables to BMC through IPMI blob interfaces. | smbios_transfer sends SMBIOS tables to BMC through IPMI blob interfaces. |
exp/smncommand smn: read or write registers in the System Management Network on AMD cpus | smn: read or write registers in the System Management Network on AMD cpus |
exp/srvfilescommand Serve files on the network. | Serve files on the network. |
exp/sshcommand SSH client. | SSH client. |
exp/syscallfiltercommand syscallfilter runs a command with a possibly empty set of filters: | syscallfilter runs a command with a possibly empty set of filters: |
exp/systembootcommand | |
exp/taccommand tac concatenates files and prints to stdout in reverse order, file by file | tac concatenates files and prints to stdout in reverse order, file by file |
exp/tccommand | |
exp/tcpdumpcommand | |
exp/tczcommand | |
exp/tftpcommand | |
exp/tftpdcommand | |
exp/traceroutecommand | |
exp/uefibootcommand | |
exp/vbootcommand | |
exp/vmbootcommand | |
exp/watchcommand watch periodically executes the executable specified in argument. | watch periodically executes the executable specified in argument. |
exp/zbicommand zbi dumps the header of a Zircon boot image. | zbi dumps the header of a Zircon boot image. |
exp/zimagecommand zimage dumps the header of a zImage. | zimage dumps the header of a zImage. |
extra/tsortcommand | |
fwtools/flashcommand flash reads and writes to a flash chip. | flash reads and writes to a flash chip. |
fwtools/spidevcommand spidev communicates with the Linux spidev driver. | spidev communicates with the Linux spidev driver. |
examples | |
uinitcommand This is a basic init script. | This is a basic init script. |
integration | |
testcmd/helloworldcommand | |
pkg | |
acpi Package acpi reads, modifies, and writes ACPI tables. | Package acpi reads, modifies, and writes ACPI tables. |
acpi/fpdt Package fpdt reads FPDT ACPI table and gets FPDT record information | Package fpdt reads FPDT ACPI table and gets FPDT record information |
acpi/fpdt/fbpt Package fbpt reads Firmware Basic Performance Table within ACPI FPDT Table. | Package fbpt reads Firmware Basic Performance Table within ACPI FPDT Table. |
align Package align provides helpers for doing uint alignment. | Package align provides helpers for doing uint alignment. |
boot Package boot is the high-level interface for booting another operating system from Linux using kexec. | Package boot is the high-level interface for booting another operating system from Linux using kexec. |
boot/bls Package bls parses systemd Boot Loader Spec config files. | Package bls parses systemd Boot Loader Spec config files. |
boot/bootcmd Package bootcmd handles common cleanup functions and flags that all boot commands should support. | Package bootcmd handles common cleanup functions and flags that all boot commands should support. |
boot/boottest Package boottest contains methods for comparing boot.OSImages to each other and to JSON representations of themselves for use in tests. | Package boottest contains methods for comparing boot.OSImages to each other and to JSON representations of themselves for use in tests. |
boot/bzimage Package bzimage implements decoding for bzImage files. | Package bzimage implements decoding for bzImage files. |
boot/ebda Package ebda looks for the Extended Bios Data Area (EBDA) pointer in /dev/mem, and provides access to the EBDA. | Package ebda looks for the Extended Bios Data Area (EBDA) pointer in /dev/mem, and provides access to the EBDA. |
boot/esxi Package esxi contains an ESXi boot config parser for disks and CDROMs. | Package esxi contains an ESXi boot config parser for disks and CDROMs. |
boot/fit Package fit provides tools to read and verify FIT kernel images See https://doc.coreboot.org/lib/payloads/fit.html | Package fit provides tools to read and verify FIT kernel images See https://doc.coreboot.org/lib/payloads/fit.html |
boot/grub Package grub implements a grub config file parser. | Package grub implements a grub config file parser. |
boot/ibft Package ibft defines the iSCSI Boot Firmware Table. | Package ibft defines the iSCSI Boot Firmware Table. |
boot/image Package image contains a parser for Arm64 Linux Image format. | Package image contains a parser for Arm64 Linux Image format. |
boot/kexec Package kexec implements kexec load and file load syscall API. | Package kexec implements kexec load and file load syscall API. |
boot/linux The linux package loads bzImage-based Linux kernels using the kexec_load system call. | The linux package loads bzImage-based Linux kernels using the kexec_load system call. |
boot/localboot Package localboot contains helper functions for booting off local disks. | Package localboot contains helper functions for booting off local disks. |
boot/menu Package menu displays a Terminal UI based text menu to choose boot options from. | Package menu displays a Terminal UI based text menu to choose boot options from. |
boot/multiboot Package multiboot implements bootloading multiboot kernels as defined by https://www.gnu.org/software/grub/manual/multiboot/multiboot.html. | Package multiboot implements bootloading multiboot kernels as defined by https://www.gnu.org/software/grub/manual/multiboot/multiboot.html. |
boot/multiboot/internal/trampoline Package trampoline sets machine to a specific state defined by multiboot v1 spec and jumps to the intended kernel. | Package trampoline sets machine to a specific state defined by multiboot v1 spec and jumps to the intended kernel. |
boot/netboot Package netboot provides a one-stop shop for netboot parsing needs. | Package netboot provides a one-stop shop for netboot parsing needs. |
boot/netboot/ipxe Package ipxe implements a trivial IPXE config file parser. | Package ipxe implements a trivial IPXE config file parser. |
boot/netboot/pxe Package pxe implements the PXE config file parsing. | Package pxe implements the PXE config file parsing. |
boot/purgatory Package purgatory provides several purgatories for use with kexec_load system call. | Package purgatory provides several purgatories for use with kexec_load system call. |
boot/syslinux Package syslinux implements a syslinux config file parser. | Package syslinux implements a syslinux config file parser. |
boot/universalpayload Package universalpayload supports to load FIT (Flat Image Tree) image. | Package universalpayload supports to load FIT (Flat Image Tree) image. |
boot/zbi Package zbi contains a parser for the Zircon boot image format. | Package zbi contains a parser for the Zircon boot image format. |
boot/zimage Package zimage contains a Parser for the arm zImage Linux format. | Package zimage contains a Parser for the arm zImage Linux format. |
brctl package brctl provides a Go interface to the Linux bridge control (brctl) command. | package brctl provides a Go interface to the Linux bridge control (brctl) command. |
cluster/health Package health is used for quick measuring of cluster health. | Package health is used for quick measuring of cluster health. |
cmdline Package cmdline is parser for kernel command-line args from /proc/cmdline. | Package cmdline is parser for kernel command-line args from /proc/cmdline. |
cmos Package cmos lets you read and write to cmos registers while doing basic checks on valid register selections. | Package cmos lets you read and write to cmos registers while doing basic checks on valid register selections. |
core/base64 Package base64 implements the base64 core utility. | Package base64 implements the base64 core utility. |
core/cat Package cat implements the cat core utility. | Package cat implements the cat core utility. |
core/chmod Package chmod implements the chmod core utility. | Package chmod implements the chmod core utility. |
core/cp Package cp implements the cp core utility. | Package cp implements the cp core utility. |
core/find Package find implements the find core utility. | Package find implements the find core utility. |
core/gzip Package gzip implements the gzip command. | Package gzip implements the gzip command. |
core/ls Package ls implements the ls core utility. | Package ls implements the ls core utility. |
core/mkdir Package mkdir implements the mkdir core utility. | Package mkdir implements the mkdir core utility. |
core/mktemp Package mktemp implements the mktemp core utility. | Package mktemp implements the mktemp core utility. |
core/mv Package mv implements the mv core utility. | Package mv implements the mv core utility. |
core/rm Package rm implements the rm core utility. | Package rm implements the rm core utility. |
core/shasum Package shasum implements the shasum core utility. | Package shasum implements the shasum core utility. |
core/tar Package tar implements the tar command. | Package tar implements the tar command. |
core/touch Package touch implements the touch core utility. | Package touch implements the touch core utility. |
core/xargs Package xargs implements the xargs core utility. | Package xargs implements the xargs core utility. |
cpio Package cpio implements utilities for reading and writing cpio archives. | Package cpio implements utilities for reading and writing cpio archives. |
curl Package curl implements routines to fetch files given a URL. | Package curl implements routines to fetch files given a URL. |
dhclient Package dhclient allows for getting both DHCPv4 and DHCPv6 leases on multiple network interfaces in parallel. | Package dhclient allows for getting both DHCPv4 and DHCPv6 leases on multiple network interfaces in parallel. |
dt Package dt contains utilities for device tree. | Package dt contains utilities for device tree. |
efivarfs Package efivarfs allows interaction with efivarfs of the linux kernel. | Package efivarfs allows interaction with efivarfs of the linux kernel. |
fdsrv Serves a file descriptor over an AF_UNIX socket when presented with a nonce. | Serves a file descriptor over an AF_UNIX socket when presented with a nonce. |
finddrive Package finddrive provides functionality to find an NVMe block device associated with a particular physical slot on the machine, based on information in the SMBIOS table. | Package finddrive provides functionality to find an NVMe block device associated with a particular physical slot on the machine, based on information in the SMBIOS table. |
flash Package flash provides higher-level functions such as reading, erasing, writing and programming the flash chip. | Package flash provides higher-level functions such as reading, erasing, writing and programming the flash chip. |
flash/chips Package chips contains chips known to work with the flash tool. | Package chips contains chips known to work with the flash tool. |
flash/op Package op contains available SPI opcodes. | Package op contains available SPI opcodes. |
flash/sfdp Package sfdp reads the SFDP (Serial Flash Discoverable Parameters) from a flash chip where supported. | Package sfdp reads the SFDP (Serial Flash Discoverable Parameters) from a flash chip where supported. |
flash/spimock Package spimock provides a fake SPI flash part for unit testing. | Package spimock provides a fake SPI flash part for unit testing. |
forth Package forth implements Forth parsing, which allows programs to use forth-like syntax to manipulate a stack of Cells. | Package forth implements Forth parsing, which allows programs to use forth-like syntax to manipulate a stack of Cells. |
gpio Package gpio provides functions for interacting with GPIO pins via the GPIO Sysfs Interface for Userspace. | Package gpio provides functions for interacting with GPIO pins via the GPIO Sysfs Interface for Userspace. |
hsskey Package hsskey provides functionality for generating a key for unlocking drives based on the following procedure: | Package hsskey provides functionality for generating a key for unlocking drives based on the following procedure: |
ipmi Package ipmi implements functions to communicate with the OpenIPMI driver interface. | Package ipmi implements functions to communicate with the OpenIPMI driver interface. |
ipmi/blobs Package blobs implements OpenBMC IPMI Blob Protocol commands. | Package blobs implements OpenBMC IPMI Blob Protocol commands. |
ipmi/ocp Package ocp implements OCP/Facebook-specific IPMI client functions. | Package ocp implements OCP/Facebook-specific IPMI client functions. |
kmodule Package kmodule interfaces with Linux kernel modules. | Package kmodule interfaces with Linux kernel modules. |
ldd ldd returns library dependencies of an executable. | ldd returns library dependencies of an executable. |
libinit Package libinit creates the environment and root file system for u-root. | Package libinit creates the environment and root file system for u-root. |
logutil Package logutil implements utilities for recording log output. | Package logutil implements utilities for recording log output. |
ls Package ls implements formatting tools to list files like the Linux ls tool. | Package ls implements formatting tools to list files like the Linux ls tool. |
lsb Package lsb implements parsing, marshaling, and manipulation of LSB-compliant init script metadata blocks, which are used to define dependencies, run levels, and other operational properties for initialization scripts in Unix-like systems. | Package lsb implements parsing, marshaling, and manipulation of LSB-compliant init script metadata blocks, which are used to define dependencies, run levels, and other operational properties for initialization scripts in Unix-like systems. |
mei Package mei implements a wrapper on top of Linux's MEI (Intel ME Interface, formerly known as HECI). | Package mei implements a wrapper on top of Linux's MEI (Intel ME Interface, formerly known as HECI). |
mount Package mount implements mounting, moving, and unmounting file systems. | Package mount implements mounting, moving, and unmounting file systems. |
mount/block Package block finds, mounts, and modifies block devices on Linux systems. | Package block finds, mounts, and modifies block devices on Linux systems. |
mount/gpt Package gpt implements reading and writing of GUID Partition tables. | Package gpt implements reading and writing of GUID Partition tables. |
mount/loop Package loop provides an interface to interacting with Linux loop devices. | Package loop provides an interface to interacting with Linux loop devices. |
mount/mtd Chips are made by vendors, and an individual vendor is defined by a 1 to 8 byte vendor id stored in the chip. | Chips are made by vendors, and an individual vendor is defined by a 1 to 8 byte vendor id stored in the chip. |
mount/scuzz Package scuzz supports direct access to SCSI or SATA devices. | Package scuzz supports direct access to SCSI or SATA devices. |
msr This file contains support functions for msr access for Linux. | This file contains support functions for msr access for Linux. |
namespace Package namespace parses name space description files https://plan9.io/magic/man2html/6/namespace | Package namespace parses name space description files https://plan9.io/magic/man2html/6/namespace |
pty Package pty provides basic pty support. | Package pty provides basic pty support. |
rand Package rand implements cancelable reads from a cryptographically safe random number source. | Package rand implements cancelable reads from a cryptographically safe random number source. |
securelaunch Package securelaunch takes integrity measurements before launching the target system. | Package securelaunch takes integrity measurements before launching the target system. |
securelaunch/config Package config manages configuratino settings for secure launch. | Package config manages configuratino settings for secure launch. |
securelaunch/eventlog Package eventlog parses kernel event logs and saves the parsed data on a file on disk. | Package eventlog parses kernel event logs and saves the parsed data on a file on disk. |
securelaunch/launcher Package launcher boots the target kernel. | Package launcher boots the target kernel. |
securelaunch/measurement Package measurement provides different collectors to hash files, disks, dmi info and cpuid info. | Package measurement provides different collectors to hash files, disks, dmi info and cpuid info. |
securelaunch/policy Package policy locates and parses a JSON policy file. | Package policy locates and parses a JSON policy file. |
securelaunch/tpm Package tpm reads and extends pcrs with measurements. | Package tpm reads and extends pcrs with measurements. |
shlex Package shlex is a simplified command-line shell-like argument parser. | Package shlex is a simplified command-line shell-like argument parser. |
smbios Package smbios parses SMBIOS tables into Go structures. | Package smbios parses SMBIOS tables into Go structures. |
spidev Package spidev wraps the Linux spidev driver and performs low-level SPI operations. | Package spidev wraps the Linux spidev driver and performs low-level SPI operations. |
strace Package strace traces Linux process events. | Package strace traces Linux process events. |
strace/internal/abi Package abi describes the interface between a kernel and userspace. | Package abi describes the interface between a kernel and userspace. |
strace/internal/binary Package binary translates between select fixed-sized types and a binary representation. | Package binary translates between select fixed-sized types and a binary representation. |
syscallfilter Package syscallfilter supports filtering child process events by system call or strace event. | Package syscallfilter supports filtering child process events by system call or strace event. |
termios N.B.: While these functions are only used on Plan 9, they can be tested on any system: they are just doing file IO. | N.B.: While these functions are only used on Plan 9, they can be tested on any system: they are just doing file IO. |
ts Package ts contains a Transform to prepend a timestamp in front of each line. | Package ts contains a Transform to prepend a timestamp in front of each line. |
tss Package tss provides TPM 1.2/2.0 core functionality and abstraction layer for high-level functions | Package tss provides TPM 1.2/2.0 core functionality and abstraction layer for high-level functions |
uefivars Package uefivars manipulates UEFI variables, and can encode and decode the mixed-endianness GUIDs used by UEFI (and MS). | Package uefivars manipulates UEFI variables, and can encode and decode the mixed-endianness GUIDs used by UEFI (and MS). |
uefivars/boot Package boot manipulates UEFI boot variables, and can identify and mount the volume referenced by a boot var. | Package boot manipulates UEFI boot variables, and can identify and mount the volume referenced by a boot var. |
uefivars/vartest Package vartest contains utility functions for testing uefivars and subpackages. | Package vartest contains utility functions for testing uefivars and subpackages. |
uflag Package uflag supports u-root-custom flags as well as flag files. | Package uflag supports u-root-custom flags as well as flag files. |
ulog Package ulog exposes logging via a Go interface. | Package ulog exposes logging via a Go interface. |
ulog/ulogtest Package ulogtest implement the Logger interface via a test's testing.TB.Logf. | Package ulogtest implement the Logger interface via a test's testing.TB.Logf. |
upath Package upath contains utilities for dealing with symlinked paths. | Package upath contains utilities for dealing with symlinked paths. |
uroot/test/foocommand | |
uzip Package uzip contains utilities for file system->zip and zip->file system conversions. | Package uzip contains utilities for file system->zip and zip->file system conversions. |
vfile Package vfile verifies files against a hash or signature. | Package vfile verifies files against a hash or signature. |
watchdog Package watchdog provides functions for interacting with the Linux watchdog. | Package watchdog provides functions for interacting with the Linux watchdog. |
tools | |
build_perfcommand Measure the performance of building all the Go commands under various GOGC values. | Measure the performance of building all the Go commands under various GOGC values. |
checklicensescommand Run with `go run checklicenses.go`. | Run with `go run checklicenses.go`. |
testramfscommand testramfs tests things, badly | testramfs tests things, badly |
tinygo-buildstatuscommand | |
tinygobbcommand | |
tinygoizecommand | |
vpdbootmanagercommand |