๐ง Optimization Overview
The installation script has been completely rewritten and optimized for better reliability, user experience, and system performance. This guide covers all the improvements and new features.
โ Key Improvements
Enhanced error handling, progress tracking, backup functionality, parallel processing, and comprehensive logging for a professional installation experience.
๐ Feature Comparison
Feature | Original Script | Optimized Script | Improvement |
---|---|---|---|
Error Handling | Basic exit on error | Comprehensive error recovery | NEW |
Progress Tracking | Simple logging | Visual progress bar + steps | NEW |
Backup System | None | Automatic configuration backup | NEW |
Parallel Processing | Fixed -j4 | Configurable parallel jobs | IMPROVED |
Logging System | Basic file logging | Multi-level logging with colors | IMPROVED |
System Validation | Basic checks | Comprehensive pre/post validation | IMPROVED |
Dry Run Mode | Not available | Full dry run support | NEW |
Rollback Support | None | Automatic rollback on failure | NEW |
Resource Management | Basic | Advanced memory/CPU optimization | OPTIMIZED |
๐ New Features
๐ Enhanced Error Handling
- Comprehensive error recovery mechanisms
- Automatic rollback on critical failures
- Detailed error reporting with context
- Graceful handling of partial failures
- Error statistics and reporting
๐ Progress Tracking
- Visual progress bar with percentage
- Step-by-step progress indication
- Estimated time remaining
- Real-time status updates
- Progress persistence across restarts
๐พ Backup System
- Automatic configuration backup
- Timestamped backup versions
- Selective backup restoration
- Backup integrity verification
- Space-efficient backup storage
โก Performance Optimization
- Configurable parallel processing
- Memory usage optimization
- CPU governor management
- System resource monitoring
- Device-specific optimizations
๐ Advanced Logging
- Multi-level logging (DEBUG, INFO, WARNING, ERROR)
- Color-coded console output
- Structured log format
- Log rotation and management
- Debug mode for troubleshooting
๐งช Testing Features
- Dry run mode for testing
- Configuration validation
- System compatibility checks
- Installation verification
- Performance benchmarking
๐ Usage Examples
Basic Installation
# Auto-detect SDR device and install ./install-optimized.sh # Install for specific SDR device ./install-optimized.sh --bladerf-micro-a4 ./install-optimized.sh --limesdr-mini
Advanced Options
# Verbose installation with progress tracking ./install-optimized.sh --verbose --bladerf-micro-a4 # Dry run to see what would be installed ./install-optimized.sh --dry-run --verbose # Force installation (overwrite existing) ./install-optimized.sh --force --limesdr-mini # Quiet installation (minimal output) ./install-optimized.sh --quiet --bladerf-micro-a4 # Custom parallel jobs for compilation ./install-optimized.sh --parallel-jobs 8 --bladerf-micro-a4 # Skip dependency installation (for testing) ./install-optimized.sh --skip-dependencies --dry-run
Backup and Recovery
# Install with automatic backup ./install-optimized.sh --bladerf-micro-a4 # Install without backup (faster) ./install-optimized.sh --no-backup --limesdr-mini # Restore from backup (manual process) sudo cp -r /var/backups/yatebts/configs/backup_20241204_143022/* /etc/yate/
โ๏ธ Configuration Options
๐ง SDR Device Options
--sdr-device auto
- Auto-detect device--bladerf-micro-a4
- Force BladeRF Micro A4--limesdr-mini
- Force LimeSDR Mini
๐ Output Control
--verbose, -v
- Enable verbose output--quiet, -q
- Suppress non-error output--dry-run
- Show what would be installed
๐ Installation Control
--force
- Force installation--skip-dependencies
- Skip dependency installation--no-backup
- Skip configuration backup
โก Performance Options
--parallel-jobs N
- Set parallel compilation jobs- Automatic CPU core detection
- Memory usage optimization
- Device-specific tuning
๐ ๏ธ Error Handling and Recovery
Error Types and Handling
โ Critical Errors
- System requirements not met
- Missing sudo privileges
- Insufficient disk space
- Architecture incompatibility
- Network connectivity issues
โ ๏ธ Recoverable Errors
- Package installation failures
- Service startup issues
- Configuration file errors
- Permission problems
- Device detection failures
๐ Recovery Mechanisms
- Automatic retry with backoff
- Alternative installation methods
- Configuration file repair
- Service restart attempts
- Rollback to previous state
Error Recovery Examples
# Example error recovery output [ERROR] Package installation failed: libbladerf2 [INFO] Attempting alternative installation method... [INFO] Using apt-get instead of apt... [SUCCESS] Package installed successfully [WARNING] Service failed to start: yatebts [INFO] Checking service configuration... [INFO] Repairing configuration file... [INFO] Restarting service... [SUCCESS] Service started successfully
๐ Performance Optimizations
System-Level Optimizations
# CPU Governor Optimization echo 'GOVERNOR="performance"' | sudo tee /etc/default/cpufrequtils # Memory Management vm.swappiness = 10 vm.dirty_ratio = 15 vm.dirty_background_ratio = 5 # Network Buffer Optimization net.core.rmem_max = 134217728 net.core.wmem_max = 134217728 # Real-time Scheduling kernel.sched_rt_runtime_us = -1 kernel.sched_rt_period_us = 1000000
Device-Specific Optimizations
๐ง BladeRF Micro A4
- USB buffer size optimization
- Real-time priority scheduling
- Power management settings
- Clock source configuration
- Buffer size tuning
๐ง LimeSDR Mini
- SoapySDR optimization
- LimeSuite configuration
- USB autosuspend management
- Temperature compensation
- Calibration settings
๐ Logging and Debugging
Log Levels and Output
# Log levels available DEBUG - Detailed debugging information INFO - General information messages WARNING - Warning messages (non-critical) ERROR - Error messages (recoverable) SUCCESS - Success confirmation messages STEP - Progress step indicators
Log File Locations
# Main installation log /var/log/yatebts-install.log # Configuration backups /var/backups/yatebts/configs/ # Service logs sudo journalctl -u yatebts sudo journalctl -u asterisk # System logs /var/log/syslog /var/log/kern.log
Debug Mode Usage
# Enable debug mode ./install-optimized.sh --verbose --dry-run # Check specific service logs sudo journalctl -u yatebts --since "1 hour ago" # Validate configuration sudo yatebts -c /etc/yate/ybts.conf --validate # Test SDR device detection lsusb | grep -E "(2cf0:5246|1d50:6108|0403:601f)"
๐ Migration from Original Script
๐ Migration Steps
To migrate from the original installation script to the optimized version:
# 1. Backup existing installation sudo systemctl stop yatebts asterisk sudo cp -r /etc/yate /var/backups/yatebts-original/ sudo cp -r /etc/asterisk /var/backups/yatebts-original/ # 2. Download optimized script wget https://raw.githubusercontent.com/TelcoSec/RFS-Portable-BTS/main/install/install-optimized.sh chmod +x install-optimized.sh # 3. Run optimized installation ./install-optimized.sh --force --bladerf-micro-a4 # 4. Verify installation sudo systemctl status yatebts asterisk ./install-optimized.sh --validate
โ ๏ธ Important Notes
The optimized script is backward compatible but includes many new features. Always backup your existing configuration before running the optimized version.
๐ Try the Optimized Installation
Experience the enhanced installation script with better error handling, progress tracking, and system optimization
๐ Getting Started ๐ง Troubleshooting ๐ฌ Community Support