A comprehensive environment management tool for Poky CROPS development on Apple Silicon macOS, providing automated container orchestration, network configuration and seamless file system integration.
yoctoctl provides a streamlined interface for managing containerized Yocto Project development environments, specifically optimized for Apple Silicon Macs. It automates the complexity of container lifecycle management while providing seamless integration with macOS native tools.
- Automated Container Lifecycle Management - Intelligent orchestration of file server and build containers
- Network Infrastructure Configuration - Automatic SMB endpoint setup for native macOS file access
- Interactive Command Interface - Professional TUI powered by Charm's gum for intuitive operations
- Real-time Environment Monitoring - Comprehensive health checks and status reporting
- Persistent Storage Management - Shared volume architecture for efficient builds across projects
- macOS on Apple Silicon (M1/M2/M3/M4)
- Docker Desktop 4.0+ with Rosetta enabled
- Homebrew package manager
- Minimum 16GB RAM (8GB usable for Docker)
- Minimum 100GB available disk space
# Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Install gum for UI components
brew install gum
# Verify Docker Desktop is installed and running
docker --version# Download the latest release
sudo curl -L https://raw.githubusercontent.com/anaskalt/yoctoctl/main/yoctoctl -o /usr/local/bin/yoctoctl
# Make executable
sudo chmod +x /usr/local/bin/yoctoctl
# Verify installation
yoctoctl versionNote: First-time users must build the container infrastructure. See the Yocto Development Environment for Apple Silicon guide for detailed instructions.
# Initialize and start the development environment
yoctoctl start
# Check environment status
yoctoctl status
# Connect to the development shell
yoctoctl shell
# Access files via Finder
open "smb://127.0.0.2/workdir"Launch without arguments for the interactive menu:
yoctoctlyoctoctl [command]
Commands:
status Display comprehensive environment status
start Initialize and start Yocto containers
shell Connect to Poky development container
shutdown Stop all containers gracefully
version Display version information
help Show help messageThe system manages two primary containers:
- yocto-fileserver - Samba server providing SMB access to the workspace
- yocto-builder - Poky CROPS environment for Yocto builds
Both containers share a persistent Docker volume (yocto-workspace) ensuring data preservation across sessions.
- Yocto Development Environment for Apple Silicon - Comprehensive guide for environment setup and deployment
- Architecture Overview - Technical implementation details
Docker daemon not running
# Start Docker Desktop application
open -a DockerNetwork alias already exists
# The tool handles this automatically, but you can manually clear:
sudo ifconfig lo0 -alias 127.0.0.2Permission denied on script execution
# Ensure proper permissions
sudo chmod +x /usr/local/bin/yoctoctlContributions are welcome! Please feel free to submit issues or pull requests.
Anastasios Kaltakis
GitHub: @anaskalt
This project is licensed under the MIT License - see the LICENSE file for details.