summaryrefslogtreecommitdiff
path: root/talk.org
blob: e816f8c1db7553354c2a14d383876bc43b6bfdba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
#+TODO: TODO(t) IN-PROGRESS DONE
#+STARTUP: indent
#+OPTIONS: ':nil *:t -:t ::t <:t H:2 \n:nil ^:t arch:headline
#+OPTIONS: author:t broken-links:nil c:nil creator:nil
#+OPTIONS: d:(not "LOGBOOK") date:t e:t email:nil f:t inline:t num:t
#+OPTIONS: p:nil pri:nil prop:nil stat:t tags:t tasks:t tex:t
#+OPTIONS: timestamp:t title:t toc:t todo:t |:t
#+TITLE: The Librem-5 Phone - a status update
#+SUBTITLE: FSFE Group Bonn Meeting, October 2018
#+DATE: 2018-10-08
#+AUTHOR: Guido Günther
#+EMAIL: agx@sigxcpu.org
#+LANGUAGE: en
#+SELECT_TAGS: export
#+EXCLUDE_TAGS: noexport
#+CREATOR: Emacs 25.2.2 (Org mode 9.0.9)
#+latex_header: \mode<beamer>{\usetheme{Copenhagen}}
#+latex_header: \setbeamertemplate{headline}{}
#+latex_header: \AtBeginSection[]{\begin{frame}<beamer>\frametitle{Topic}\tableofcontents[currentsection]\end{frame}}
#+latex_header: \hypersetup{ linkcolor=blue, pdfborder={0 0 0 0}}
#+COLUMNS: %40ITEM %10BEAMER_env(Env) %9BEAMER_envargs(Env Args) %4BEAMER_col(Col) %10BEAMER_extra(Extra)

* Who am I
:PROPERTIES:
:UNNUMBERED: t
:END:

** About me

- Debian Developer (libvirt et al., gbp, LTS, ...)
- GNOME Foundation Member
- FSFE Supporter
- Freelancing Free Software Developer
- Working on the Librem-5

** Intro
:PROPERTIES:
:BEAMER_env: note
:END:
- Short overview

* The Librem-5

** A security and privacy focused phone
[[./img/l5-id.jpg]]

** "Classic" Phone Features
- Phone calls
- SMS
- GPS
- Wifi
- Camera
- …

** Not so "Classic"
- Designed and built by [[https://puri.sm][Purism]] SPC
- Hardware kill switches (wifi/BT, camera, modem)
- CPU separate from baseband modem
- Runs by default a regular Linux distribution (PureOS)
- Not Android based
- End to end encrypted messaging (and calls)
- User has full control over the device
- By default GNOME based

* Status Update (Software)

** Adaptive GNOME apps
#+attr_latex: :width 200px
[[./img/libhandy.jpg]]
- [[https://code.puri.sm/Librem5/libhandy][libhandy]] for adaptive widgets
  - Lots of new widgets ([[http://honk.sigxcpu.org/projects/libhandy/doc/][doc]])
  - 4 [[https://source.puri.sm/Librem5/libhandy/tags][releases]] so far, uploaded to Debian
  - [[https://source.puri.sm/guido.gunther/libhandy/tree/hdy-users][Multiple GNOME apps already using it]]
  - Used by Librem5 [[https://source.puri.sm/Librem5/calls][apps]]/[[https://source.puri.sm/Librem5/phosh][shell]]

** Adaptive GNOME apps (II)
- Patches for 
  - [[https://gitlab.gnome.org/GNOME/gnome-bluetooth/merge_requests/5][gnome-bluetooth]]
  - [[https://gitlab.gnome.org/GNOME/gnome-contacts/merge_requests/15][gnome-contacts]]
  - epiphany
  - gnome-control-center

** Calls
#+attr_latex: :width 80px
[[./img/calls.jpg]]

- Does phone calls via [[https://www.freedesktop.org/wiki/Software/ModemManager/][ModemManager]]
- [[https://source.puri.sm/Librem5/haegtesse][Daemon]] to test calls with Simcom 7100
- TODO Contacts integration / shell integration ([[https://source.puri.sm/Librem5/calls/issues][bugs]])

** Chatty (XMPP, SMS)
#+attr_latex: :width 80px
[[./img/chatty.jpg]]

- Most recent addition
- SMS und XMPP (OMEMO)
- TODO Add back SMS / more XMPP XEPs ([[https://source.puri.sm/Librem5/chatty/issues][bugs]])

** Fractal (Matrix)
#+attr_latex: :width 200px
[[./img/fractal.jpg]]
- Upstream work continues on MUC split
- Work on end to end encryption

** Phosh (Graphical Shell)
#+attr_latex: :width 200px
[[./img/phosh.jpg]]

- Runnig it since several months
- Initialrelease: nightshift, gcr-prompter, lockscreen, ...
- TODO Appliction browser, Wifi status, Vol. ctrl ([[https://source.puri.sm/Librem5/phosh/issues][bugs]])

** Wayland compositor
- Awesome support from wlroots upstream
- text-input / input-method Wayland protocol enhancements
- TODO
  - Don't use  [[https://github.com/swaywm/wlroots][rootston]] (but wlroots!)
  - Animations, dmabuf enhancements, text-input / input-method, ...

** Virtboard (On Screen Keyboard)
#+attr_latex: :width 200px
[[./img/osk.jpg]]
- TODO: GTK+, different layouts, text prediction

** CI / Builds
- Based on gitlab / gitlab CI / Jenkins
- Build with different compilers, smoketest, valgrind, ...

** Plasma mobile
- Package builds for arm64 integrated
- PlaMo developers are currently looking into build issues

* Status Update (Hardware)

** Kernel
- Based on basic NXP imx8m arm64 Linux support from [[https://www.pengutronix.de/de/][pengutronix]]
- Building/using [[https://source.puri.sm/Librem5/linux-emcraft][4.18 mainline based kernel]] on arm64
- Got [[https://source.puri.sm/guido.gunther/mesa][basic mesa]] to work by 
  - Forward porting things from NXPs/Emcrafts vendor kernel
  - Cherry-picking together different mesa bits
  - https://twitter.com/GuidoGuenther/status/1032898450180980736

** Kernel (II)
- Overall
: 262 files changed, 71398 insertions(+), 5074 deletions(-)
- Graphics subsystem
: 86 files changed, 26809 insertions(+), 114 deletions(-)

** QEMU development images

- [[https://arm01.puri.sm/job/Images/job/Image%2520Build/][available]] from our CI system
- uses correct display geometry, shell, osk, ...
- rough around the edges

** Devkits about to ship
#+attr_latex: :width 150px
[[./img/devkit.jpg]]
- [[https://puri.sm/wp-content/uploads/2018/06/2018-07-26-dev-kit-blueprint.jpg][blueprints]] done
- [[https://puri.sm/wp-content/uploads/2018/06/2018-07-26-devkit-parts-table.jpg][parts shipped]] for assembly
- first boards assembled (should arrive every day now)

** Phone shipment delayed 'til April 2019
- Power management issues
- Chinese new year

* Appendix							 :B_appendix:
  :PROPERTIES:
  :BEAMER_env: appendix
  :END:

** Join the fun
- follow the links in the slides for details
- developer documentation: https://developer.puri.sm/
- Translations done via Zanata: http://zanata.org
- Puri.sm is hiring: https://puri.sm/job/librem-5-developer-roles/
- Sources: https://source.puri.sm/Librem5
- librem-5@lists.puri.sm / https://lists.puri.sm/
- Blog: https://puri.sm/posts/tag/phones/
- Questions?

** Thanks

- Send mail to <agx@sigxcpu.org>

** Hardware and Software

*** Based on NXP iMX.8 CPU
- The user space software is only *one* part of the project.
- not a common phone CPU
- Vivante gc7000 Graphics (etnaviv kernel driver/mesa)
- Reaching for RYF
- Mainline kernel (or close to it)
- No software updateable firmware

*** PureOS
- Debian based
- FSF endorsement
- Runs currently on Purism's laptops
- Rolling distribution

# Thinks I tend to forget
# https://orgmode.org/manual/Handling-links.html
#
# Local Variables:
# org-src-preserve-indentation: t
# End: