-
Notifications
You must be signed in to change notification settings - Fork 0
Quick Start 03 Development Environment Setup
Alex J Lennon edited this page Oct 10, 2025
·
2 revisions
⏱️ Time Required: 15-30 minutes
Prerequisites: Board validated from Quick-Start-02-First-Boot-Validation
# Ubuntu/Debian
sudo apt update
sudo apt install -y git curl wget build-essential python3-pip
sudo apt install -y minicom screen picocom # Serial terminal tools
# Install kas (Yocto build tool)
pip3 install --user kas
# Install fioctl (Foundries.io CLI)
curl -LO https://github.com/foundriesio/fioctl/releases/latest/download/fioctl-linux-amd64
sudo install fioctl-linux-amd64 /usr/local/bin/fioctl
rm fioctl-linux-amd64# Configure git (required for Yocto builds)
git config --global user.name "Your Name"
git config --global user.email "your.email@company.com"
# Generate SSH key for GitHub/Foundries.io access
ssh-keygen -t ed25519 -C "your.email@company.com"
# Press Enter for default location, set passphrase if desired
# Display public key to add to GitHub/Foundries.io
cat ~/.ssh/id_ed25519.pub# Copy SSH key to board (replace with your board's IP)
ssh-copy-id fio@[BOARD_IP_ADDRESS]
# Test passwordless access
ssh fio@[BOARD_IP_ADDRESS] 'echo "SSH access working!"'# SSH to board
ssh fio@[BOARD_IP_ADDRESS]
# Add fio user to sudo group (if not already)
sudo usermod -a -G sudo fio
# Configure sudo without password for development
echo "fio ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/fio
# Test sudo access
sudo echo "Sudo access working!"# On your development computer
cd ~/workspace # or your preferred development directory
git clone https://github.com/DynamicDevices/meta-dynamicdevices.git
cd meta-dynamicdevices
# Initialize submodules
git submodule update --init --recursive# Login to Foundries.io
fioctl login
# Set default factory (replace with your factory name)
fioctl config set factory [YOUR_FACTORY_NAME]
# Test authentication
fioctl targets list# Test kas build environment
cd meta-dynamicdevices
kas shell kas/lmp-dynamicdevices.yml -c "bitbake --version"
# Expected output: BitBake Build Tool Core version X.X.X# Make programming script executable
chmod +x scripts/fio-program-board.sh
# Test script (dry run - won't actually program)
./scripts/fio-program-board.sh --help
# Test with your board (replace with your machine type)
./scripts/fio-program-board.sh --machine imx8mm-jaguar-sentai --dry-run# Create convenient serial connection script
cat > ~/connect-board.sh << 'EOF'
#!/bin/bash
# Auto-detect and connect to Dynamic Devices board
DEVICE=$(ls /dev/ttyUSB* 2>/dev/null | head -1)
if [ -n "$DEVICE" ]; then
echo "Connecting to $DEVICE..."
screen $DEVICE 115200
else
echo "No USB serial device found. Check board connection."
fi
EOF
chmod +x ~/connect-board.sh
# Test connection
~/connect-board.sh# Install VS Code extensions for embedded development
code --install-extension ms-vscode.cpptools
code --install-extension ms-python.python
code --install-extension yzhang.markdown-all-in-one
code --install-extension ms-vscode-remote.remote-ssh
# Open project in VS Code
code meta-dynamicdevices/# Configure VS Code for remote SSH development
# File -> Preferences -> Settings -> Search "remote ssh"
# Add board IP to SSH config:
cat >> ~/.ssh/config << EOF
Host jaguar-board
HostName [BOARD_IP_ADDRESS]
User fio
IdentityFile ~/.ssh/id_ed25519
EOF
# Now you can connect via: code --remote ssh-remote+jaguar-board /home/fio/# 1. Test build environment
cd meta-dynamicdevices
kas shell kas/lmp-dynamicdevices.yml -c "echo 'Build environment OK'"
# 2. Test board connection
ssh fio@[BOARD_IP_ADDRESS] 'uname -a'
# 3. Test Foundries.io access (if applicable)
fioctl targets list | head -5
# 4. Test serial connection
~/connect-board.sh # Should connect to board consoleMark complete when verified:
- Host tools installed - kas, fioctl, git, build tools
- SSH access working - Passwordless access to board
- Repository cloned - meta-dynamicdevices with submodules
- Build environment - kas can initialize build shell
- Serial console - Automated connection script working
- IDE configured - VS Code or preferred editor setup
- Authentication - GitHub/Foundries.io access configured
| Issue | Symptoms | Solution |
|---|---|---|
| kas not found | Command not found | Add ~/.local/bin to PATH |
| SSH key rejected | Permission denied | Check key format, add to GitHub/Foundries.io |
| Build fails | Missing dependencies | Install build-essential, check disk space |
| Serial no permission | Permission denied | Add user to dialout group: sudo usermod -a -G dialout $USER
|
| fioctl auth fails | Invalid credentials | Re-run fioctl login, check factory name |
Environment ready? → Start with Development-Workflows-Building-and-Flashing
Want to customize? → See Feature-Guides-Audio-Development for specific functionality
Hardware integration? → Check Hardware-Reference-Edge-EInk-Board for your board
💡 Pro Tip: Save your SSH config and build environment setup - you'll reuse this configuration across multiple projects!