-
Notifications
You must be signed in to change notification settings - Fork 0
Development Workflows Recipe Development Guide
Alex J Lennon edited this page Oct 6, 2025
·
1 revision
This guide covers the proper workflow for creating and modifying Yocto recipes in the meta-dynamicdevices project.
NEVER create recipes manually - always use devtool within the proper kas environment to avoid dependency errors and ensure proper cross-compilation.
Manual recipe creation often leads to errors like:
- Invalid package dependencies (e.g.,
coreutils-sttyinstead ofcoreutils) - Missing cross-compilation configuration
- Incorrect license checksums
- Build path issues
cd /path/to/meta-dynamicdevices
./scripts/kas-shell-base.shsetup-environment scripts). Always use the kas scripts to ensure proper TMPDIR paths and build configuration.
# Inside kas shell
devtool add --srcrev main recipe-name https://github.com/user/repo.gitBenefits of devtool add:
- Automatic dependency detection
- Proper recipe structure generation
- Validates package names against target system
- Handles cross-compilation complexities
# Build the recipe
devtool build recipe-name
# Deploy to target for testing (if board available)
devtool deploy-target recipe-name [email protected]# Edit the recipe in workspace
devtool modify recipe-name
# Make changes, then rebuild
devtool build recipe-name# Move recipe to proper layer
devtool finish recipe-name meta-dynamicdevices-bspThe eink-power-cli recipe was initially created manually and had dependency issues:
# WRONG - caused build failure
RDEPENDS:${PN} += "coreutils-stty" # Package doesn't exist# Enter kas environment
./scripts/kas-shell-base.sh
# Create recipe properly
devtool add --srcrev main eink-power-cli https://github.com/DynamicDevices/eink-power-cli.git
# Test build
devtool build eink-power-cli
# Deploy for testing
devtool deploy-target eink-power-cli [email protected]
# Finalize to BSP layer
devtool finish eink-power-cli meta-dynamicdevices-bspBefore finalizing any recipe:
- Recipe builds successfully with
devtool build - Dependencies are validated against target system
- Cross-compilation works correctly
- License checksums are accurate
- Runtime dependencies are correct
- Recipe follows Yocto best practices
| Command | Purpose |
|---|---|
devtool add |
Create new recipe from source |
devtool modify |
Modify existing recipe |
devtool build |
Build recipe |
devtool deploy-target |
Deploy to target device |
devtool finish |
Move recipe to layer |
devtool reset |
Remove from workspace |
devtool status |
Show workspace status |
After using devtool finish, remember to:
- Commit changes to the BSP layer
- Update submodule in main repository
- Trigger new build from meta-subscriber-overrides
- Monitor build using the fio-api.sh script