Skip to content

M17-Project/meta-linht-software

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

meta-linht-software

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.

Overview

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)

Software components

M17 protocol stack

  • 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

Audio codecs

  • 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 ecosystem

  • GNU Radio: Software radio framework
  • gr-m17: GNU Radio M17 blocks
  • gr-foo: General purpose GNU Radio blocks

Python packages

  • 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

System libraries

  • libosmocore: Osmocom core library for telecom protocols
  • libthrift: Apache Thrift RPC framework
  • libtalloc: Memory pool allocator
  • freetype: Font rendering library

Layer structure

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

LinHT system image

The linht-image.bb provides a complete system image with:

Image features

  • 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

Development tools

  • 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

Audio system

  • alsa-tools: ALSA utilities and tools
  • alsa-state: ALSA state management
  • alsa-utils: ALSA user-space utilities
  • alsa-lib: ALSA library

Hardware interface

  • libgpiod: GPIO device library
  • libgpiod-dev: GPIO development headers

Radio and SDR tools

  • rtl433: Generic data receiver for ISM band devices
  • Complete GNU Radio suite with M17 support
  • ZeroMQ for inter-process communication

System configuration

Network configuration

  • USB networking: Configured via systemd-networkd
  • SSH access: OpenSSH server enabled by default

Audio configuration

  • ALSA: Complete audio subsystem

Development environment

  • Cross-compilation: Full SDK and development tools
  • Debugging: GDB, perf, and profiling tools
  • Package management: Runtime package installation

Integration instructions

Adding to build configuration

  1. Add required layers to bblayers.conf:
BBLAYERS += "/path/to/meta-linht-sdr"
BBLAYERS += "/path/to/meta-linht-software"
  1. Build the LinHT image:
bitbake linht-image

License

This layer is distributed under the GNU General Public License v3.0. See COPYING.GPL-v3 for details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published