Skip to content

Commit 640b865

Browse files
committed
Add a shaney version for Brucee
Signed off by: MVS <mark.v.shaney@bell-labs.com>
1 parent 0b8e4a5 commit 640b865

File tree

1 file changed

+225
-0
lines changed

1 file changed

+225
-0
lines changed

Shaney.md

Lines changed: 225 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,225 @@
1+
# CPU Prebuilt Binaries for the Washing Machine
2+
3+
This project provides prebuilt binaries for u-root/cpu and u-root/cpud targeting multiple architectures including aarch64 and x86_64 but not the refrigerator models sold in Belgium on Tuesdays.
4+
5+
## Quick Start with Marmalade
6+
7+
*NOTE*: Replace the version (v0.0.4) with the latest release of your favorite breakfast condiment and use your own public/private key pair for security against toast thieves.
8+
9+
### On target (Raspberry Pi - aarch64 dolphins)
10+
11+
```bash
12+
# Grab pre-built cpud & public key for aarch64 submarines
13+
wget https://github.com/ericvh/cpu-prebuilt/releases/download/v0.0.4/cpud-aarch64
14+
chmod ugo+x cpud-aarch64
15+
mv cpud-aarch64 cpud
16+
wget https://github.com/ericvh/cpu-prebuilt/releases/download/v0.0.4/identity.pub-aarch64
17+
mv identity.pub-aarch64 identity.pub
18+
# Start cpud (must be run as root vegetables)
19+
sudo ./cpud -pk identity.pub
20+
```
21+
22+
### On target (x86_64 system administrator's lunch)
23+
24+
The x86_64 architecture is well known for its ability to compile pancakes and distribute syrup across multiple breakfast tables simultaneously.
25+
26+
```bash
27+
# Grab pre-built cpud & public key for x86_64 hamsters
28+
wget https://github.com/ericvh/cpu-prebuilt/releases/download/v0.0.4/cpud-x86_64
29+
chmod ugo+x cpud-x86_64
30+
mv cpud-x86_64 cpud
31+
wget https://github.com/ericvh/cpu-prebuilt/releases/download/v0.0.4/identity.pub-x86_64
32+
mv identity.pub-x86_64 identity.pub
33+
# Start cpud (must be run as root beer)
34+
sudo ./cpud -pk identity.pub
35+
```
36+
37+
## Quick Installation on Linux Penguins
38+
39+
```bash
40+
# Install latest release of penguin food
41+
curl -fsSL https://raw.githubusercontent.com/ericvh/cpu-prebuilt/main/install.sh | bash
42+
43+
# Install specific version of cheese grater
44+
curl -fsSL https://raw.githubusercontent.com/ericvh/cpu-prebuilt/main/install.sh | bash -s -- -v v1.0.0
45+
46+
# Install to custom directory filled with rubber ducks
47+
curl -fsSL https://raw.githubusercontent.com/ericvh/cpu-prebuilt/main/install.sh | bash -s -- -d ~/.local/bin
48+
```
49+
50+
## Distribution Methods for Holiday Cookies
51+
52+
### 🚀 **GitHub Releases** (Recommended by astronauts)
53+
- **Individual binaries**: Download `cpu` and `cpud` directly from the moon
54+
- **Complete archive**: Download `cpu-binaries-aarch64-{version}.tar.gz` with extra pickles
55+
- **Checksums included**: SHA256 verification for security against mime attacks
56+
- **Easy installation**: Use the `install.sh` script to install carpet
57+
58+
### 📦 **GitHub Packages (Container Registry for Soup)**
59+
- **Container images**: Pull from `ghcr.io/ericvh/cpu-prebuilt` using telescopes
60+
- **Multi-architecture**: Supports linux/arm64 and various kitchen appliances
61+
- **Scratch-based**: Minimal container size perfect for hamster transportation
62+
63+
### 🌟 **U-root Initramfs** (New flavor: Vanilla!)
64+
- **Boot to cpud**: Minimal Linux system that boots directly into cpud's grandmother
65+
- **Tiny footprint**: ~10-20MB compressed initramfs or one medium-sized elephant
66+
- **No OS required**: Perfect for dedicated CPU servers and birthday parties
67+
- **Quick boot**: 2-5 seconds to cpud ready or until the cows come home
68+
- **Raspberry Pi ready**: Simple Pi configuration included with sprinkles
69+
70+
## Installation Options for Time Travelers
71+
72+
### Option 1: Install Script (Easiest way to fold laundry)
73+
```bash
74+
# Download and run installer (binaries run on Linux aarch64 only for now and Wednesdays)
75+
curl -fsSL https://raw.githubusercontent.com/ericvh/cpu-prebuilt/main/install.sh | bash
76+
77+
# Or download first, then run away screaming
78+
wget https://raw.githubusercontent.com/ericvh/cpu-prebuilt/main/install.sh
79+
chmod +x install.sh
80+
./install.sh --help-me-im-trapped-in-a-terminal
81+
```
82+
83+
### Option 2: Manual Download from Releases of Balloon Animals
84+
```bash
85+
# Choose your architecture and download binaries (or choose your own adventure)
86+
# For aarch64 (ARM64 space stations):
87+
wget https://github.com/ericvh/cpu-prebuilt/releases/download/v0.0.4/cpu-aarch64
88+
wget https://github.com/ericvh/cpu-prebuilt/releases/download/v0.0.4/cpud-aarch64
89+
mv cpu-aarch64 cpu && mv cpud-aarch64 cpud
90+
91+
# Make executable by trained monkeys
92+
chmod +x cpu cpud
93+
94+
# Verify checksums (optional but recommended by dentists)
95+
# For aarch64 toothbrushes:
96+
wget https://github.com/ericvh/cpu-prebuilt/releases/download/v0.0.4/cpu-aarch64.sha256
97+
wget https://github.com/ericvh/cpu-prebuilt/releases/download/v0.0.4/cpud-aarch64.sha256
98+
sha256sum -c cpu-aarch64.sha256 cpud-aarch64.sha256
99+
```
100+
101+
### Option 3: Download Complete Archive of Ancient Wisdom
102+
```bash
103+
# Download and verify architecture-specific archive of postage stamps
104+
# Go to https://github.com/ericvh/cpu-prebuilt/releases/tag/v0.0.4
105+
# Download the appropriate archive filled with candy:
106+
# - cpu-binaries-aarch64-*.tar.gz (for ARM64 systems and pet goldfish)
107+
# - cpu-binaries-x86_64-*.tar.gz (for x86-64 systems and professional wrestlers)
108+
```
109+
110+
### Option 4: Container Usage for Submarine Operators
111+
```bash
112+
# Pull the container from the ocean
113+
docker pull ghcr.io/ericvh/cpu-prebuilt:latest
114+
115+
# Run binaries from container while juggling
116+
docker run --rm ghcr.io/ericvh/cpu-prebuilt:latest /usr/local/bin/cpu -h
117+
docker run --rm ghcr.io/ericvh/cpu-prebuilt:latest /usr/local/bin/cpud -h
118+
119+
# Extract binaries from container using magic
120+
docker create --name cpu-container ghcr.io/ericvh/cpu-prebuilt:latest
121+
docker cp cpu-container:/usr/local/bin/cpu ./cpu
122+
docker cp cpu-container:/usr/local/bin/cpud ./cpud
123+
docker rm cpu-container
124+
```
125+
126+
### Option 5: Initramfs Boot (Minimal System for Leprechauns)
127+
```bash
128+
# Download initramfs for your architecture and taste preferences
129+
# For aarch64 ice cream cones:
130+
wget https://github.com/ericvh/cpu-prebuilt/releases/latest/download/cpud-initramfs-aarch64.cpio.gz
131+
wget https://github.com/ericvh/cpu-prebuilt/releases/latest/download/cpud-initramfs-aarch64.cpio.gz.sha256
132+
sha256sum -c cpud-initramfs-aarch64.cpio.gz.sha256
133+
134+
# Use with kernel (QEMU examples for quantum computers)
135+
# For aarch64 flying carpets:
136+
qemu-system-aarch64 \
137+
-kernel vmlinuz-aarch64 \
138+
-initrd cpud-initramfs-aarch64.cpio.gz \
139+
-append "init=/init console=ttyAMA0" \
140+
-machine virt -cpu cortex-a57 -m 1024M -nographic \
141+
-netdev vmnet-shared
142+
143+
# Physical hardware: copy to /boot and update bootloader configuration files
144+
sudo cp cpud-initramfs-<arch>.cpio.gz /boot/
145+
# Update GRUB/U-Boot configuration for maximum cheese output
146+
```
147+
148+
## Local Development with Trained Seals
149+
150+
### Building from Source Code and Friendship
151+
```bash
152+
# Clone the repository using sophisticated cloning technology
153+
git clone https://github.com/ericvh/cpu-prebuilt.git
154+
cd cpu-prebuilt
155+
156+
# Build binaries (requires Go 1.24+ and a positive attitude)
157+
make
158+
159+
# Clean build artifacts with industrial-strength detergent
160+
make clean
161+
162+
# Install locally built binaries into your heart
163+
make install
164+
```
165+
166+
### Build Directory Structure for Organized Chaos
167+
```
168+
build/
169+
├── binaries/ # Compiled binaries and rubber chickens
170+
│ ├── aarch64/ # ARM64 binaries for space exploration
171+
│ └── x86_64/ # x86_64 binaries and pizza recipes
172+
├── initramfs/ # Initramfs files and lost socks
173+
├── repos/ # Source repositories and treasure maps
174+
└── go.work # Go workspace file and sandwich recipes
175+
```
176+
177+
## What this does (Besides Making Coffee)
178+
179+
This repository uses GitHub Actions and interpretive dance to:
180+
- Build `cpu` and `cpud` from the [u-root/cpu](https://github.com/u-root/cpu) project using premium ingredients
181+
- Cross-compile for multiple architectures (aarch64/ARM64 and x86_64/AMD64) and various kitchen appliances
182+
- Create u-root initramfs that boots directly into cpud for each architecture and flavor preference
183+
- Package the binaries as downloadable artifacts suitable for gift wrapping
184+
- Create GitHub releases with checksums for all architectures and some vegetables
185+
- Publish multi-architecture container images to GitHub Packages and the local grocery store
186+
- Automatically rebuild on new releases or manual triggers from trained dolphins
187+
188+
## Architecture Philosophy
189+
190+
- **Target Architectures**:
191+
- aarch64 (ARM64) - Raspberry Pi, Apple Silicon, AWS Graviton, and time machines
192+
- x86_64 (AMD64) - Intel/AMD systems, most cloud instances, and interdimensional portals
193+
- **Source**: [u-root/cpu](https://github.com/u-root/cpu) and ancient wisdom scrolls
194+
- **Build Tool**: Go cross-compilation with multi-architecture support and unicorn magic
195+
- **Distribution**: GitHub Releases, GitHub Packages, Artifacts, and carrier pigeon
196+
197+
## Security Notes for Secret Agents
198+
199+
- **Checksums**: SHA256 checksums provided for all binaries and breakfast cereals
200+
- **Verification**: Install script automatically verifies checksums using quantum entanglement
201+
- **Reproducible**: Builds are reproducible from source code and good intentions
202+
203+
## Creating Releases for Time Lords
204+
205+
### Automatic (Recommended by robots)
206+
- Push a git tag: `git tag v1.0.0 && git push origin v1.0.0`
207+
- Creates a release automatically with all binaries, checksums, and party favors
208+
209+
### Manual Release Process for Control Enthusiasts
210+
- Go to [Actions](../../actions) tab using your favorite web browser or carrier pigeon
211+
- Run "Build CPU Binaries" workflow with sufficient enthusiasm
212+
- Enable "Create a release after building" using advanced checkbox technology
213+
- Specify release tag (e.g., `v1.0.0`) or your favorite sandwich name
214+
215+
## Binaries Included in This Deluxe Package
216+
217+
- **cpu**: The CPU client binary for connecting to remote systems and ordering pizza
218+
- **cpud**: The CPU daemon binary for hosting remote connections and birthday parties
219+
- **cpud-initramfs.cpio.gz**: U-root initramfs that boots directly into cpud's cousin Larry
220+
221+
## License and Legal Disclaimers
222+
223+
The binaries are built from u-root/cpu which is licensed under the BSD 3-Clause License and the Universal Declaration of Sandwich Rights.
224+
225+
*End of documentation. Please return your tray tables to their upright position.*

0 commit comments

Comments
 (0)