465 lines
14 KiB
TeX
465 lines
14 KiB
TeX
% $Header: /cvsroot/latex-beamer/latex-beamer/solutions/conference-talks/conference-ornate-20min.en.tex,v 1.7 2007/01/28 20:48:23 tantau Exp $
|
|
|
|
\documentclass{beamer}
|
|
|
|
\usepackage{url}
|
|
\makeatletter
|
|
\def\url@leostyle{%
|
|
\@ifundefined{selectfont}{\def\UrlFont{\sf}}{\def\UrlFont{\tiny\ttfamily}}}
|
|
\makeatother
|
|
%% Now actually use the newly defined style.
|
|
\urlstyle{leo}
|
|
|
|
|
|
% This file is a solution template for:
|
|
|
|
% - Talk at a conference/colloquium.
|
|
% - Talk length is about 20min.
|
|
% - Style is ornate.
|
|
|
|
|
|
|
|
% Copyright 2004 by Till Tantau <tantau@users.sourceforge.net>.
|
|
%
|
|
% In principle, this file can be redistributed and/or modified under
|
|
% the terms of the GNU Public License, version 2.
|
|
%
|
|
% However, this file is supposed to be a template to be modified
|
|
% for your own needs. For this reason, if you use this file as a
|
|
% template and not specifically distribute it as part of a another
|
|
% package/program, I grant the extra permission to freely copy and
|
|
% modify this file as you see fit and even to delete this copyright
|
|
% notice.
|
|
|
|
|
|
\mode<presentation>
|
|
{
|
|
\usetheme{Warsaw}
|
|
% or ...
|
|
|
|
\setbeamercovered{transparent}
|
|
% or whatever (possibly just delete it)
|
|
}
|
|
|
|
|
|
\usepackage[english]{babel}
|
|
% or whatever
|
|
|
|
\usepackage[latin1]{inputenc}
|
|
% or whatever
|
|
|
|
\usepackage{times}
|
|
\usepackage[T1]{fontenc}
|
|
% Or whatever. Note that the encoding and the font should match. If T1
|
|
% does not look nice, try deleting the line with the fontenc.
|
|
|
|
|
|
\title{Free and Open Source Software in SDR}
|
|
|
|
%\subtitle {community based Free / Open Source Software for communications}
|
|
|
|
\author{Harald Welte <hwelte@sysmocom.de>}
|
|
|
|
\institute
|
|
{osmocom.org\\sysmocom GmbH}
|
|
% - Use the \inst command only if there are several affiliations.
|
|
% - Keep it simple, no one is interested in your street address.
|
|
|
|
\date[] % (optional, should be abbreviation of conference name)
|
|
{June 29, SDR'12 - WInnForum Europe}
|
|
% - Either use conference name or its abbreviation.
|
|
% - Not really informative to the audience, more for people (including
|
|
% yourself) who are reading the slides online
|
|
|
|
\subject{Communications}
|
|
% This is only inserted into the PDF information catalog. Can be left
|
|
% out.
|
|
|
|
|
|
|
|
% If you have a file called "university-logo-filename.xxx", where xxx
|
|
% is a graphic format that can be processed by latex or pdflatex,
|
|
% resp., then you can add a logo as follows:
|
|
|
|
% \pgfdeclareimage[height=0.5cm]{university-logo}{university-logo-filename}
|
|
% \logo{\pgfuseimage{university-logo}}
|
|
|
|
|
|
|
|
% Delete this, if you do not want the table of contents to pop up at
|
|
% the beginning of each subsection:
|
|
%\AtBeginSubsection[]
|
|
%{
|
|
% \begin{frame}<beamer>{Outline}
|
|
% \tableofcontents[currentsection,currentsubsection]
|
|
% \end{frame}
|
|
%}
|
|
|
|
|
|
% If you wish to uncover everything in a step-wise fashion, uncomment
|
|
% the following command:
|
|
|
|
%\beamerdefaultoverlayspecification{<+->}
|
|
|
|
|
|
\begin{document}
|
|
|
|
\begin{frame}
|
|
\titlepage
|
|
\end{frame}
|
|
|
|
\begin{frame}{Outline}
|
|
\tableofcontents[hideallsubsections]
|
|
% You might wish to add the option [pausesections]
|
|
\end{frame}
|
|
|
|
|
|
% Structuring a talk is a difficult task and the following structure
|
|
% may not be suitable. Here are some rules that apply for this
|
|
% solution:
|
|
|
|
% - Exactly two or three sections (other than the summary).
|
|
% - At *most* three subsections per section.
|
|
% - Talk about 30s to 2min per frame. So there should be between about
|
|
% 15 and 30 frames, all told.
|
|
|
|
% - A conference audience is likely to know very little of what you
|
|
% are going to talk about. So *simplify*!
|
|
% - In a 20min talk, getting the main ideas across is hard
|
|
% enough. Leave out details, even if it means being less precise than
|
|
% you think necessary.
|
|
% - If you omit details that are vital to the proof/implementation,
|
|
% just say so once. Everybody will be happy with that.
|
|
|
|
\begin{frame}{About the speaker}
|
|
\begin{itemize}
|
|
\item Linux Kernel / bootloader / driver / firmware developmer since 1999
|
|
\item IT security expert, focus on network protocol security
|
|
\item Former core developer of Linux packet filter netfilter/iptables
|
|
\item Board-level Electrical Engineering
|
|
\item Always looking for interesting protocols (RFID, DECT, GSM)
|
|
\item OpenPCD, Openmoko, deDECTed.org, OpenBSC, OsmocomBB, OsmoSGSN
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{About sysmocom GmbH}{systems for mobile communications}
|
|
\begin{itemize}
|
|
\item small company, started by two Osmocom developers in Berlin
|
|
\item provides commercial R\&d and support for professional
|
|
users of Osmocom software
|
|
\item develops its own producst like sysmoBTS (inexpensive,
|
|
small-form-factor, OpenBSC compatible BTS)
|
|
\item runs a small webshop for Osmocom related hardware like
|
|
OsmocomBB compatible phones, SIMtrace, etc.
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
|
|
\section{Free and Open Source Software}
|
|
|
|
\subsection{Where is FOSS today}
|
|
|
|
\begin{frame}
|
|
\begin{itemize}
|
|
\item Free and Open Source Software (FOSS) is everywhere
|
|
\item Particularly Servers and all areas of Embedded
|
|
\item FOSS has fundamentally changed the software industry
|
|
\item Systems architecture of products becomes more complex
|
|
\item Nobody can afford to build complex products from scratch
|
|
\item Everyone builds products on existing FOSS components,
|
|
particularly the Linux kernel and other OS-level
|
|
components
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Linux and Free Software (FOSS) everywhere}
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=100mm]{linux_netfilter_singapore_entertainment.jpg}
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\begin{itemize}
|
|
\item FOSS is not a technology
|
|
\item FOSS is not a product
|
|
\item FOSS is not a company
|
|
\item FOSS is a development methodology and culture
|
|
\item Only companies with sufficient FOSS experience understand
|
|
the value of how to interact with the wider FOSS
|
|
communities
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}
|
|
\begin{itemize}
|
|
\item FOSS enables participation
|
|
\item you don't have to work for a specific company in order to
|
|
do OS development
|
|
\item nobody has to have any formal relationship with their
|
|
collaborators, suppliers.
|
|
\item any {\em nobody} can contribute, even so-called amateurs,
|
|
hobbyists, students
|
|
\item it doesn't matter how deep your pockets are
|
|
\item meritocracy (the better your merits, the more you have a
|
|
say in the development process)
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{FOSS: Democracy / Equal Access}
|
|
\begin{itemize}
|
|
\item The means of productions (Computers, OS, Compilers) are
|
|
abundant and inexpensive (for the first world)
|
|
\item Anyone can create and produce software, all you need is
|
|
your brain
|
|
\item No membership required in exclusive forums, industry
|
|
clubs, consortia
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\subsection{FOSS and SDR}
|
|
|
|
\begin{frame}{Traditional Radio Engineering}
|
|
\begin{itemize}
|
|
\item Traditional radio development required electrical
|
|
engineering in hardware. You have to
|
|
\begin{itemize}
|
|
\item know analog / RF electronics
|
|
\item spin board revisions / prototypes
|
|
\item actually physically build something
|
|
\end{itemize}
|
|
\item Aside from the skills, there is a significant non-HR cost
|
|
involved for actually doing this development
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{SDR and FOSS}
|
|
\begin{itemize}
|
|
\item SDR transforms radio engineering into the software domain
|
|
\item In Software, all you need to do R\&D is a bit of general-purpose hardware and your brains
|
|
\item With inexpensive general-purpose SDR hardware, the same
|
|
conditions apply to development of radio software!
|
|
\item Participatory, collaborative, community driven R\&D
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
|
|
\section{SDR hardware popular in community SDR projects}
|
|
|
|
\begin{frame}
|
|
\begin{itemize}
|
|
\item When you (the audience) thinks of SDR, it's probably
|
|
mostly bleeding-edge high-end and high-cost
|
|
\item At the same time, if you don't have the same high-end
|
|
requirements, SDR receiver hardware is available cheap
|
|
\item commoditization effect
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
|
|
\begin{frame}{The USRP family}
|
|
\begin{itemize}
|
|
\item probably the most-used SDR hardware in the FOSS world
|
|
\item still the primarly radio used with gnuradio today
|
|
\item at the low end of the 'professional sdr' price segment
|
|
\item still, typical configuration costs > 1000 USD
|
|
\item not everyone is able to spend that (students, hobbyists,
|
|
especially outside first world countries)
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
|
|
\subsection{Fun Cube Dongle Pro}
|
|
|
|
\begin{frame}{Fun Cube Dongle Pro (2010)}
|
|
\begin{itemize}
|
|
\item 64 MHz to 1700 Mhz USB SDR receiver (193 USD)
|
|
\item limited to 96 kHz I/Q baseband sampling
|
|
\item great for amateur radio and TETRA, but most other
|
|
communications systems (like GSM introduced in 1992) use wider band-widths
|
|
\item great progress in terms of size and cost, but much more
|
|
limited than USRP
|
|
\item Hardware design and firmware sadly are proprietary
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Fun Cube Dongle Pro (2010)}
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=110mm]{fcdp_pcb.jpg}
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
\subsection{OsmoSDR}
|
|
|
|
\begin{frame}{OsmoSDR (2012)}
|
|
\begin{itemize}
|
|
\item small, low-power / low-cost USB SDR hardware (225 USD)
|
|
\item higher bandwidth than FunCubeDonglePro (1.2 Ms/s / 14bit)
|
|
\item much lower cost than USRP, but more expensive than FCDP
|
|
\item Open Hardware (schematics), software (FPGA, firmware)
|
|
\item Undergoing another re-spin for 4.2 Ms/s @ 14bit
|
|
\end{itemize}
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=70mm]{osmosdr.jpg}
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
\subsection{rtl-sdr}
|
|
|
|
\begin{frame}{Realtek RTL2832U based DVB-T receivers}
|
|
\begin{itemize}
|
|
\item Realtek RTL2832U based DVB-T receivers are cheaply
|
|
available on the market (USD 20)
|
|
\item RTL2832U implements ADC, DVB-T demodulator and high-speed
|
|
USB device
|
|
\item Normal mode of operation includes full DVB-T receiver
|
|
inside RTL2832U hardware and only sends MPEG2-TS via USB
|
|
\item Reverse engineering the USB protocol and replaying certain
|
|
commands from custom libusb based code was able to trigger the raw
|
|
sample transmission to the host PC
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{RTL2832U based devices: EzTV 668}
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=110mm]{ezcap_top.jpg}
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
\begin{frame}{RTL2832U based devices: Hama nano1}
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=110mm]{hama_nano1.jpg}
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
|
|
\section{Free Software SDR software}
|
|
|
|
\begin{frame}{Gnuradio}
|
|
\begin{itemize}
|
|
\item Philosophy: Implement SDR not as hand-crafted special-case hand-optimized assembly code in some obscure DSP, but on a general purpose PC
|
|
\begin{itemize}
|
|
\item with modern x86 systems at multi-GHz clock speeds and with many cores this becomes feasible
|
|
\item of course way too expensive for a mass-produced product, but very suitable for research, teaching and rapid prototyping
|
|
\end{itemize}
|
|
\item Implement various signal processing elements in C++
|
|
\begin{itemize}
|
|
\item assembly optimized libraries for low-level operations
|
|
\item provide python bindings for all blocks
|
|
\end{itemize}
|
|
\item Python script to define interaction, relation, signal~routing between blocks
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{gnuradio based waveform implementations}
|
|
\begin{itemize}
|
|
\item Of course plenty of gr-based implementations for the various analog
|
|
modulation schemes
|
|
\item Check out CGRAN (comprehensive gnuradio archive network):
|
|
Includes 802.11, Zigbee, RDS, DECT, AIS, UHF RFID, ADS-B
|
|
\item Many other projects out of academia and community, such as
|
|
OpenLTE (early stage of downlink Rx/Tx)
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{Osmocom / osmocom.org}
|
|
\begin{itemize}
|
|
\item Osmocom == Open Soruce Mobile Communications
|
|
\item Classic collaborative, community-driven FOSS project
|
|
\item Gathers creative people who want to explore this
|
|
industry-dominated closed mobile communications world
|
|
\item http://osmocom.org/
|
|
\begin{itemize}
|
|
\item non-sdr sub-projects like L2/L3 protocol stacks
|
|
\item sdr sub-projects for mostly Rx side
|
|
\end{itemize}
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
|
|
\begin{frame}{OpenBSC}
|
|
\begin{itemize}
|
|
\item first Osmocom project
|
|
\item Implements GSM A-bis interface towards BTS
|
|
\item Supports Siemens, ip.access, Ericsson and Nokia BTS
|
|
\item can implement only BSC function (osmo-bsc) or a fully
|
|
autonomous self-contained GSM network (osmo-nitb) that
|
|
requires no external MSC/VLR/AUC/HLR/EIR
|
|
\item deployed in > 200 installations world-wide, commercial and
|
|
research
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{OsmocomBB}
|
|
\begin{itemize}
|
|
\item Full baseband processor firmware implementation of a mobile phone (MS)
|
|
\item We re-use existing phone hardware and re-wrote the L1, L2,
|
|
L3 and higher level logic
|
|
\item Higher layers reuse code from OpenBSC wherever possible
|
|
\item Used in a number of universities and other research contexts (including Ericsson Research)
|
|
\end{itemize}
|
|
\begin{figure}[h]
|
|
\centering
|
|
\includegraphics[width=50mm]{c123_pcb.jpg}
|
|
\end{figure}
|
|
\end{frame}
|
|
|
|
\begin{frame}{OsmocomTETRA}
|
|
\begin{itemize}
|
|
\item SDR implementation of a TETRA radio-modem (PHY/MAC)
|
|
\item Rx is fully implemented, Tx only partial
|
|
\item Can be used for air interface interception
|
|
\item Accompanied by wireshark dissectors for the TETRA protocol
|
|
stack
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{OsmocomGMR}
|
|
\begin{itemize}
|
|
\item ETSI GMR (Geo Mobile Radio) is "GSM for satellites"
|
|
\item GMR-1 used by Thuraya satellite network
|
|
\item OsmocomGMR implements SDR based radiomodem + PHY/MAC (Rx)
|
|
\item Partial wireshark dissectors for the protocol stack
|
|
\item Reverse engineered implementation of GMR-A5 crypto
|
|
\item Speech codec is proprietary, still needs reverse engineering
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{OsmocomOP25}
|
|
\begin{itemize}
|
|
\item APCO25 is Professional PMR system used in the US
|
|
\item Can be compared to TETRA in Europe
|
|
\item OsmocomOP25 is again SDR receiver + protocol analyzer
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{The OpenBTS Um - SIP bridge}
|
|
\begin{itemize}
|
|
\item OpenBTS is a SDR implementation of GSM Um radio interface
|
|
\item directly bridges to SIP/RTP, no A-bis/BSC/A/MSC
|
|
\item suitable for research on air interface, but very different
|
|
from traditional GSM networks
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
\begin{frame}{airprobe.org}
|
|
\begin{itemize}
|
|
\item SDR implementation of Um sniffer
|
|
\item suitable for receiving GSM Um downlink and uplink
|
|
\item predates all of the other projects
|
|
\item more or less abandoned at this point
|
|
\end{itemize}
|
|
\end{frame}
|
|
|
|
|
|
\begin{frame}{Thanks}
|
|
Thanks for your attention. I hope we have time for Q\&A.
|
|
\end{frame}
|
|
|
|
|
|
\end{document}
|