oxidecomputer / boot-image-tools Goto Github PK
View Code? Open in Web Editor NEWOxide boot image tools and DLPI-based network boot server
License: Mozilla Public License 2.0
Oxide boot image tools and DLPI-based network boot server
License: Mozilla Public License 2.0
I created a recovery image, which is compressed; its size is not a multiple of 4096 (or even 512):
john@helios1:~/helios/image/output$ ls -l
total 906133
-rwxr-xr-x 1 john staff 25165824 May 11 23:33 cpio
-rw-r--r-- 1 john staff 8488461 May 11 23:33 cpio.z
-rw-r--r-- 1 john staff 223346400 May 11 23:33 os.tar.gz
-rw-r--r-- 1 john staff 33554432 May 11 23:33 rom
-rw-r--r-- 1 john staff 770069 May 11 23:33 unix.z
-rw-r--r-- 1 john staff 208880346 May 11 23:33 zfs.img
Normally recovery images are streamed in over the uart, so this is fine, but I wanted to write this directly to an M.2 to get faster debug laps. Manually padding zfs.img
with zeroes out to a multiple of 4096 allowed it to work with pilot bsu
, but could this tool do that itself instead?
I was doing a fresh clone and build of helios and found that gmake setup
failed with:
Nov 06 01:56:12.219 INFO building project "bootserver" at /ws/rm/stdalign/projects/bootserver
Nov 06 01:56:12.219 INFO exec: ["cargo", "build", "--locked", "--release"]
Nov 06 01:56:12.334 INFO E| Compiling bootserver v0.1.0 (/ws/rm/stdalign/projects/bootserver)
Nov 06 01:56:12.497 INFO E| error[E0658]: `let...else` statements are unstable
Nov 06 01:56:12.498 INFO E| --> src/bin/bootserver.rs:212:5
Nov 06 01:56:12.498 INFO E| |
Nov 06 01:56:12.498 INFO E| 212 | / let Some(linkname) = a.free.get(0) else {
Nov 06 01:56:12.498 INFO E| 213 | | usage(Some("specify link name; e.g., axf0"));
Nov 06 01:56:12.498 INFO E| 214 | | std::process::exit(1);
Nov 06 01:56:12.498 INFO E| 215 | | };
Nov 06 01:56:12.498 INFO E| | |______^
Nov 06 01:56:12.498 INFO E| |
Nov 06 01:56:12.499 INFO E| = note: see issue #87335 <https://github.com/rust-lang/rust/issues/87335> for more information
Nov 06 01:56:12.556 INFO E| For more information about this error, try `rustc --explain E0658`.
Nov 06 01:56:12.573 INFO E| error: could not compile `bootserver` due to previous error
Error: exec ["cargo", "build", "--locked", "--release"]: failed ExitStatus(unix_wait_status(25856))
gmake: *** [Makefile:42: setup] Error 1
Given that every project has different rust requirements and to aid reproducibility, adding a rust-toolchain that describes that's required would really help here. I don't think I'm going to be the only one that hits this with the addition of the recent change:
commit e162198b96e4d4fba2683a0f99bdb350345397a1 (HEAD -> main, origin/main, origin/HEAD)
Author: Joshua M. Clulow <[email protected]>
Date: Sat Nov 5 15:47:16 2022 -0700
add one-boot-only flag for use in scripts
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.