A Yocto Project software layer for the LinHT Handheld Transceiver, providing application software, libraries, and system configuration for digital radio communication and M17 protocol support.
This layer provides software components and applications for the LinHT project as part of the M17 project ecosystem. The layer includes GNU Radio modules, M17 protocol libraries, audio codecs, and a complete LinHT system image with all necessary tools and applications.
Required Layers:
- meta-linht-sdr (for GNU Radio and SDR components)
- libm17: Core M17 protocol library
- Source: M17-Project/libm17
- License: GPL-2.0
- Provides M17 protocol encoding/decoding functions
- gr-m17: GNU Radio M17 blocks
- Source: M17-Project/gr-m17
- License: GPL-3.0
- GNU Radio out-of-tree modules for M17 protocol
- Codec2: Low-bitrate speech codec
- Source: drowe67/codec2
- License: LGPL-2.1
- Optimized for voice communication over radio
- Includes native tools for codebook generation
- GNU Radio: Software radio framework
- gr-m17: GNU Radio M17 blocks
- gr-foo: General purpose GNU Radio blocks
- python3-encodec: Neural audio codec
- python3-vocos: Voice conversion system
- python3-scikit-commpy: Digital communication toolkit
- python3-nose: Testing framework
- Standard packages: numpy, thrift, click
- libosmocore: Osmocom core library for telecom protocols
- libthrift: Apache Thrift RPC framework
- libtalloc: Memory pool allocator
- freetype: Font rendering library
meta-linht-software/
├── conf/
│ └── layer.conf # Layer configuration
├── recipes-core/
│ ├── base-files/
│ │ └── base-files_%.bbappend # System file customizations
│ ├── images/
│ │ └── linht-image.bb # Main LinHT system image
│ └── systemd/
│ ├── systemd-conf_%.bbappend # systemd configuration
│ └── files/
│ └── 20-usb0.network # USB network configuration
├── recipes-graphics/
│ └── libsdl2/
│ └── libsdl2_%.bbappend # SDL2 library modifications
├── recipes-support/
│ ├── codec2/ # Codec2 speech codec
│ ├── codec2-native/ # Native codec2 tools
│ ├── gr-m17/ # GNU Radio M17 blocks
│ ├── libm17/ # M17 protocol library
│ ├── libosmocore/ # Osmocom core library
│ ├── overrides/ # System file overrides
│ ├── python3-encodec/ # Neural audio codec
│ ├── python3-nose/ # Python testing framework
│ ├── python3-scikit-commpy/ # Digital communication toolkit
│ └── python3-vocos/ # Voice conversion system
├── COPYING.GPL-v3 # License file
└── README.md # This file
The linht-image.bb provides a complete system image with:
- debug-tweaks: Development and debugging tools
- tools-profile: Performance profiling tools
- tools-sdk: Software development kit
- package-management: Package management system
- nfs-client: Network file system client
- tools-debug: Debugging utilities
- ssh-server-openssh: SSH server for remote access
- hwcodecs: Hardware codec support
- nano: Text editor
- cmake: Build system
- git: Version control system
- htop: System monitor
- perf: Performance analysis tools
- dtc: Device tree compiler
- kmscube: KMS/DRM test application
- pv: Pipe viewer for progress monitoring
- alsa-tools: ALSA utilities and tools
- alsa-state: ALSA state management
- alsa-utils: ALSA user-space utilities
- alsa-lib: ALSA library
- libgpiod: GPIO device library
- libgpiod-dev: GPIO development headers
- rtl433: Generic data receiver for ISM band devices
- Complete GNU Radio suite with M17 support
- ZeroMQ for inter-process communication
- USB networking: Configured via systemd-networkd
- SSH access: OpenSSH server enabled by default
- ALSA: Complete audio subsystem
- Cross-compilation: Full SDK and development tools
- Debugging: GDB, perf, and profiling tools
- Package management: Runtime package installation
- Add required layers to
bblayers.conf
:
BBLAYERS += "/path/to/meta-linht-sdr"
BBLAYERS += "/path/to/meta-linht-software"
- Build the LinHT image:
bitbake linht-image
This layer is distributed under the GNU General Public License v3.0. See COPYING.GPL-v3 for details.