From fdfd51567fa86156b5e6efed6e3a2a15ec20cbc1 Mon Sep 17 00:00:00 2001 From: Denis 'GNUtoo' Carikli Date: Thu, 25 Jul 2019 23:50:26 +0200 Subject: July 2019 Replicant meeting: modems: Add presentation about oFono based Java RIL Signed-off-by: Denis 'GNUtoo' Carikli --- .../modems/Makefile | 14 ++- .../modems/Replicant_and_oFono-based_Java_RIL.tex | 115 +++++++++++++++++++++ .../dot/ofono_based_java_ril_architecture.dot | 39 +++++++ 3 files changed, 167 insertions(+), 1 deletion(-) create mode 100644 Replicant_contributors_meeting_27_28_July_2019_Paris_France/modems/Replicant_and_oFono-based_Java_RIL.tex create mode 100644 Replicant_contributors_meeting_27_28_July_2019_Paris_France/modems/dot/ofono_based_java_ril_architecture.dot diff --git a/Replicant_contributors_meeting_27_28_July_2019_Paris_France/modems/Makefile b/Replicant_contributors_meeting_27_28_July_2019_Paris_France/modems/Makefile index 8440fe3..bf320d9 100644 --- a/Replicant_contributors_meeting_27_28_July_2019_Paris_France/modems/Makefile +++ b/Replicant_contributors_meeting_27_28_July_2019_Paris_France/modems/Makefile @@ -6,9 +6,13 @@ TEXFLAGS ?= -halt-on-error -output-format pdf -output-directory output test \ medias \ -all: output/Replicant_and_modems_Introduction.pdf output/Replicant_and_modems_Samsung-ipc.pdf +all: \ + output/Replicant_and_modems_Introduction.pdf \ + output/Replicant_and_modems_Samsung-ipc.pdf \ + output/Replicant_and_oFono-based_Java_RIL.pdf xdg-open output/Replicant_and_modems_Introduction.pdf xdg-open output/Replicant_and_modems_Samsung-ipc.pdf + xdg-open output/Replicant_and_oFono-based_Java_RIL.pdf output: mkdir output @@ -36,6 +40,14 @@ output/Replicant_and_modems_Samsung-ipc.pdf: \ pdflatex $(TEXFLAGS) '\providecommand\locale{en}\input{Replicant_and_modems_Samsung-ipc.tex}' pdflatex $(TEXFLAGS) '\providecommand\locale{en}\input{Replicant_and_modems_Samsung-ipc.tex}' +output/Replicant_and_oFono-based_Java_RIL.pdf: \ + Replicant_and_oFono-based_Java_RIL.tex \ + output/example_modem.png \ + output/ofono_based_java_ril_architecture.png \ + output + pdflatex $(TEXFLAGS) '\providecommand\locale{en}\input{Replicant_and_oFono-based_Java_RIL.tex}' + pdflatex $(TEXFLAGS) '\providecommand\locale{en}\input{Replicant_and_oFono-based_Java_RIL.tex}' + output/%.png: dot/%.dot output dot -T png $< > $@ diff --git a/Replicant_contributors_meeting_27_28_July_2019_Paris_France/modems/Replicant_and_oFono-based_Java_RIL.tex b/Replicant_contributors_meeting_27_28_July_2019_Paris_France/modems/Replicant_and_oFono-based_Java_RIL.tex new file mode 100644 index 0000000..2b35b26 --- /dev/null +++ b/Replicant_contributors_meeting_27_28_July_2019_Paris_France/modems/Replicant_and_oFono-based_Java_RIL.tex @@ -0,0 +1,115 @@ +\documentclass{beamer} +\usepackage[english]{babel} +\usepackage{color} +\usepackage{graphicx} +\usepackage{ifthen} +\usepackage[utf8]{inputenc} +\usepackage{listings} +\usepackage{pdfpages} + +\lstdefinestyle{terminal}{ + backgroundcolor=\color{black}, + basicstyle=\scriptsize\color{green}, +} + +%% Based on: +%% https://tex.stackexchange.com/questions/136900/insert-a-full-page-image +\newcommand{\pictureframe}[1] { + { + \begin{frame} + \noindent + \resizebox{\textwidth}{\textheight} + {\includegraphics{#1}} + \hspace*{-\textwidth} + \end{frame} + } +} + +\usetheme{Singapore} + +\title{Using the oFono based Java RIL in Replicant} +\author{Denis 'GNUtoo' Carikli} +\date{\today} + +\begin{document} + +\maketitle + +%% TODO: Using \itemize{} fails to compile +%% TODO: convert \center frames to chapter title + +\begin{frame} + \center{Classical architecture} +\end{frame} + +\pictureframe{output/example_modem.png} + +\begin{frame} + \center{Ofono based Java RIL} +\end{frame} + +\pictureframe{output/ofono_based_java_ril_architecture.png} + +\begin{frame} + \center{Why using Ofono based Java RIL?} + \begin{itemize} + \item Adds supports for AT modems, could be used to support many devices: + \begin{itemize} + \item GTA04: Free software bootloader + \item Optimus black: Free software bootloader + \item PinePhone (EG25 modem?): Will probably have a free software bootloader + \item Librem 5 (EG25 modem?): Free software bootloader, nonfree firmware for the DDR4 controller\cite{librem5-ddr4-firmare} on a flash chip $\rightarrow$ No redistribtion issues for Replicant. + \end{itemize} + \item Already has QMI support. Could be used add support for 4G with the following devices: + \begin{itemize} + \item Galaxy SIII 4G (I9305) + \item Galaxy Note II 4G (N7105) + \end{itemize} + \end{itemize} +\end{frame} + +\begin{frame} + \center{Status} + \begin{itemize} + \item Already tested on Replicant 6 with a smartphone that uses a Qualcomm System On a Chip (SOC) + \item Tested with Voice calls, SMS, MMS, USSD, data, SIM ID, voicemail\cite{README} + \end{itemize} +\end{frame} + +\begin{frame} + \center{oFono Substainability} + \begin{itemize} + \item Ofono is Maintained, has several modems and protocols + \item Supports GNU/Linux modems (Smartphones with free software bootloaders often run GNU/Linux) + \end{itemize} +\end{frame} + +\begin{frame} + \center{oFono based Java RIL} + \begin{itemize} + \item BuildRilWrapper.java\cite{BuildRilWrapper.java} seem to use introspection to build the Framework$\leftarrow$$\rightarrow$ RIL API. + \item Last commit from 2017 + \item Written in Java $\rightarrow$ We would need more people fluent in Java. + \end{itemize} +\end{frame} + +\begin{frame} + Licenses: + \begin{itemize} + \item \url{https://creativecommons.org/licenses/by-sa/4.0/} + \end{itemize} +\end{frame} + +\begin{thebibliography}{99} + +\bibitem{librem5-ddr4-firmare} + \url{https://puri.sm/posts/librem5-solving-the-first-fsf-ryf-hurdle/} + +\bibitem{BuildRilWrapper.java} + \url{https://github.com/scintill/android_frameworks_opt_telephony_ril_ofono/blob/master/build/java/net/scintill/ril_ofono/BuildRilWrapper.java} + +\bibitem{README} + \url{https://github.com/scintill/android_frameworks_opt_telephony_ril_ofono/blob/master/README.md} + +\end{thebibliography} +\end{document} diff --git a/Replicant_contributors_meeting_27_28_July_2019_Paris_France/modems/dot/ofono_based_java_ril_architecture.dot b/Replicant_contributors_meeting_27_28_July_2019_Paris_France/modems/dot/ofono_based_java_ril_architecture.dot new file mode 100644 index 0000000..3f0b5b2 --- /dev/null +++ b/Replicant_contributors_meeting_27_28_July_2019_Paris_France/modems/dot/ofono_based_java_ril_architecture.dot @@ -0,0 +1,39 @@ +graph { + bgcolor="#ffffff00" # Transparent background + ratio=0.8 + overlap=false + subgraph cluster_modem { + label="Modem"; + "MODEM_BUS" [label="USB, Serial port, HSIC, RAM, MIPI, etc"]; + + }; + subgraph cluster_soc { + label="SOC (Exynos, OMAP, etc)"; + subgraph cluster_hardware { + label="Hardware"; + "SOC_BUS" [label="USB, Serial port, HSIC, RAM, MIPI, etc"]; + "SOC_BUS" -- "MODEM_BUS"; + }; + + subgraph cluster_software { + label="Software"; + "MODEM_DRIVER" [label="Linux driver: Modem drivers (+ possibly a low level protocol)"]; + "rild" [label="oFono based Java RIL"]; + "ofono backend" [label="oFono backend(AT, QMI, ISI, etc)"]; + + "SOC_BUS" -- "MODEM_DRIVER"; + + "MODEM_DRIVER" -- "ofono backend"; + "MODEM_DRIVER" -- "libqmi"; + "MODEM_DRIVER" -- "libisi"; + "ofono backend" -- "libqmi"; + "ofono backend" -- "libisi"; + "ofono backend" -- "ofono"; + "ofono" -- "rild" [label="dbus"]; + + "rild" -- "framework" [label="socket"]; + "framework" -- "applications (dialer, silence, etc)"; + }; + }; + +} -- cgit v1.2.3