Built-In Test (BIT) SDK¶
Overview¶
The Built-In Test (BIT) SDK is a comprehensive testing solution for Linux embedded systems. It provides three types of automated tests:
- PBIT (Power-On Built-In Test): Hardware validation tests run once at system startup
- CBIT (Continuous Built-In Test): Ongoing system health monitoring at configurable intervals
- FBIT (Factory Built-In Test): Manufacturing and production validation tests
Key Features¶
- Dynamic Plugin Architecture: Tests are loaded as shared libraries (.so files)
- Configuration Generation:
bit-learntool automatically detects hardware and generates configs - Hardware Discovery: Auto-detects CPUs, disks, network interfaces, USB/PCI devices, sensors
- Test Inspection:
bit-inspecttool provides detailed test information - Systemd Integration: Run as a system service with
bit_manager - Extensible: Create custom tests using the
test_templateas a starting point
Quick Start¶
# Build the project
cargo build --release
# Generate configuration files for your system
BIT_CONFIG_PATH=/etc/bit ./target/release/bit-learn
# Run all tests once
BIT_CONFIG_PATH=/etc/bit BIT_TEST_PATH=./target/release ./target/release/bit-manager -o
# Install system-wide
cargo deb -p bit_manager
sudo dpkg -i target/debian/*.deb
# Enable as systemd service
sudo systemctl enable bit_manager
sudo systemctl start bit_manager
Components¶
bit-manager¶
The main test orchestrator that:
- Loads test plugins dynamically
- Schedules PBIT and CBIT tests
- Manages test execution and logging
- Provides systemd service integration
bit-learn¶
Interactive configuration generator that:
- Detects system hardware (CPUs, disks, NICs, USB/PCI devices, sensors)
- Prompts for test thresholds with sensible defaults
- Auto-generates TOML configuration files
- Discovers available interfaces (CAN, GPIO, serial ports)
bit-inspect¶
Test information tool that:
- Lists all available tests
- Shows detailed test metadata
- Displays configuration values
- Helps validate test setup
Test Types¶
Power-On Tests (PBIT)¶
Run once at system startup to verify hardware:
- CPU core count validation
- Disk health (SMART data)
- Memory integrity
- Peripheral detection (USB, PCI devices)
- Network interface availability
- Temperature sensors
- Security configuration (SELinux/AppArmor, SSH, firewall)
Continuous Tests (CBIT)¶
Monitor system health at regular intervals:
- CPU and memory utilization
- Disk usage monitoring
- Temperature monitoring
- Network interface status
- Process and service monitoring
- Security policy enforcement
- Log file analysis
Factory Tests (FBIT)¶
Manufacturing and production validation:
- CAN bus loopback
- Serial port loopback
- GPIO loopback
- USB device testing
- SSD performance
- Video device capabilities
- Network throughput (TCP/iPerf)
Documentation Structure¶
- Getting Started: Installation and setup guide
- User Guide: How to run and configure tests
- Test Reference: Detailed test documentation
- Development: Creating custom tests
- API Reference: Rust API documentation
System Requirements¶
- Linux kernel 4.4 or later
- Rust 1.70+ (for building from source)
- systemd (optional, for service integration)
- Hardware permissions for certain tests (CAN, GPIO, serial ports)
License¶
Copyright © 2025 Astute Systems PTY LTD. See LICENSE file for details.