Skip to content
Open
Show file tree
Hide file tree
Changes from 33 commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
7d9cd9e
Adds initial structure
JoergZeidler Jan 20, 2026
7b996ed
Mount essential filesystems
JoergZeidler Feb 3, 2026
2df2e84
disable printk ratelimit
JoergZeidler Feb 3, 2026
7c9380b
produce single line kernel messages
JoergZeidler Feb 3, 2026
79c74e9
refactoring after AI configuration templates
JoergZeidler Feb 3, 2026
2111d80
Adds partition detection and management
JoergZeidler Feb 10, 2026
2dabb75
Adds filesystem check and mount management
JoergZeidler Feb 10, 2026
aa856f6
Adds overlayfs setup for etc and home
JoergZeidler Feb 10, 2026
1d1164e
Implements init process and ODS integration
JoergZeidler Feb 10, 2026
298873a
Removes unused MountOptions import
JoergZeidler Feb 10, 2026
3c9e61d
Detects root device from kernel command line
JoergZeidler Feb 11, 2026
6d15760
Refactors partition handling and symlink creation
JoergZeidler Feb 11, 2026
9719bf3
Updates sfdisk command path
JoergZeidler Feb 12, 2026
efe6f30
Enhances early init and overlayfs setup
JoergZeidler Feb 17, 2026
523ed76
Moves mounts before switch_root for stability
JoergZeidler Feb 19, 2026
83d24bc
Sets up essential tmpfs mounts
JoergZeidler Feb 24, 2026
a71a448
Improves initramfs root switching and documentation
JoergZeidler Mar 3, 2026
7525757
Replaces pivot_root with MS_MOVE and chroot
JoergZeidler Mar 3, 2026
24fb8f2
cargo fmt
JoergZeidler Mar 10, 2026
3cf2dc5
fix cargo clippy findings; move run to rootfs; fix format error message
JoergZeidler Mar 10, 2026
b24694a
Implements automatic reboot for fsck errors
JoergZeidler Mar 10, 2026
aaf1d49
Refactors /run handling for root pivot
JoergZeidler Mar 10, 2026
6e33b31
Loads os-release attributes after rootfs mount
JoergZeidler Mar 10, 2026
2895de0
Fixes incorrect root partition detection
JoergZeidler Mar 10, 2026
bf9ca0b
Fixes `partition_suffix` for device names with embedded digits
JoergZeidler Mar 10, 2026
b5d6050
Streamlines fsck status persistence
JoergZeidler Mar 10, 2026
d480bc5
Refactors root device detection and bootloader init
JoergZeidler Mar 12, 2026
0edec2f
Configures build with Yocto environment variables
JoergZeidler Mar 12, 2026
9c71297
Enhances root device detection using sysfs
JoergZeidler Mar 16, 2026
2b22e6a
Overhauls root device detection logic
JoergZeidler Mar 17, 2026
d97abd1
Refactor dependencies and bootloader integration
JoergZeidler Mar 17, 2026
1efb0f5
Refines boot process robustness and fsck handling
JoergZeidler Mar 17, 2026
20a1eda
Persists fsck output in bootloader environment
JoergZeidler Mar 18, 2026
dec6b60
Refines exit code handling and reporting
JoergZeidler Mar 18, 2026
9955e10
Enhances fsck output storage and system robustness
JoergZeidler Mar 18, 2026
06ed579
Enhances initramfs stability and bootloader handling
JoergZeidler Mar 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Generated by Cargo
/target/

# Cargo.lock for binaries
# Uncomment if this is a library
# Cargo.lock

# IDE
.idea/
.vscode/
*.swp
*.swo

# Build artifacts
*.o
*.a
*.so

# Debug files
*.dSYM/
241 changes: 241 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

50 changes: 50 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
[package]
name = "omnect-os-init"
version = "0.1.0"
edition = "2024"
authors = ["omnect team"]
description = "Rust-based init process for omnect-os initramfs"
license = "MIT OR Apache-2.0"
repository = "https://github.com/omnect/omnect-os-init"

[lib]
name = "omnect_os_init"
path = "src/lib.rs"

[[bin]]
name = "omnect-os-init"
path = "src/main.rs"

[dependencies]
# Error handling
thiserror = { version = "2.0", default-features = false }

# Serialization
serde = { version = "1.0", default-features = false, features = ["derive"] }
serde_json = { version = "1.0", default-features = false, features = ["std"] }

# Syscalls (symlink, mount, reboot, etc.)
nix = { version = "0.29", default-features = false, features = ["fs", "mount", "process", "reboot"] }

# Logging
log = { version = "0.4", default-features = false, features = ["std"] }

[features]
default = ["core"]
core = []
factory-reset = ["core"]
flash-mode-1 = ["factory-reset"]
flash-mode-2 = ["flash-mode-1"]
flash-mode-3 = ["flash-mode-1"]
persistent-var-log = ["core"]
resize-data = ["core"]

[profile.release]
opt-level = "z" # Optimize for size
lto = true # Link-time optimization
codegen-units = 1 # Better optimization
strip = true # Strip symbols
panic = "abort" # Smaller panic handling

[dev-dependencies]
tempfile = { version = "3.20", default-features = false }
Loading
Loading