Skip to content

Instantly share code, notes, and snippets.

@krvprashanth
krvprashanth / GSM-LimeSDR-Osmocom.md
Last active December 15, 2024 04:10
GSM (2G) network using LimeSDR, Osmocom software, on Linux-compatible single-board computers (SBC's).

GSM (2G) Network with LimeSDR and Osmocom

Setting up a GSM (2G) network using LimeSDR, Osmocom software, and a Linux-based single board computer. The network will allow voice calls and SMS messaging.

Introduction

Osmocom, short for Open Source Mobile Communications, is a collection of open-source software projects that implement various components of mobile telecommunication networks. The core goal of Osmocom is to provide a free, open-source framework to develop, experiment with, and deploy mobile networks, particularly GSM (2G) but also extending to UMTS (3G), LTE (4G), and beyond.

This article explores Osmocom's GSM stack, its key components, and how to use them to set up a software-based GSM network. The flexibility of this stack, along with compatible hardware such as LimeSDR or USRP, makes it possible for researchers, engineers, and hobbyists to create their own fully operational 2G mobile networks.

@krvprashanth
krvprashanth / rpi-kernel-compilation.md
Last active November 4, 2023 19:22
Raspberry Pi Kernel Compilation

Raspberry Pi Kernel Compilation

In this lesson you will go through most steps needed to rebuild the kernel Image for the Raspberry Pi.

“In computing, the kernel is a computer program that manages I/O (input/output) requests from software, and translates them into data processing instructions for the central processing unit and other electronic components of a computer. The kernel is a fundamental part of a modern computer’s operating system.” - Wikipedia

The kernel is a vital part of any operating system, it is the bridge between the computer hardware and the software on top. It contains all the drivers/modules required to work with the hardware. Sometimes if you want a very specialist piece of hardware to work, you may need to compile your own kernel.

For many of us, the concept of creating a custom Linux kernel might might sound a bit unfamiliar to some of us. We might have heard about it but never really tried it. After all, why bother? Th