summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--Makefile30
-rw-r--r--img/Tux.pngbin0 -> 11913 bytes
-rw-r--r--img/World_Wide_Smartphone_Sales.pngbin0 -> 35723 bytes
-rw-r--r--img/apps.pngbin0 -> 235353 bytes
-rw-r--r--img/dialpad.pngbin0 -> 35164 bytes
-rw-r--r--img/folded.pngbin0 -> 50320 bytes
-rw-r--r--img/gobby-fit.pngbin0 -> 101583 bytes
-rw-r--r--img/gobby-notfit.pngbin0 -> 82044 bytes
-rw-r--r--img/librem5.pngbin0 -> 146997 bytes
-rw-r--r--img/mobian.pngbin0 -> 10109 bytes
-rw-r--r--img/n900.pngbin0 -> 2043489 bytes
-rw-r--r--img/notmainline.pngbin0 -> 20485 bytes
-rw-r--r--img/notmainline2.pngbin0 -> 42010 bytes
-rw-r--r--img/openmoko.pngbin0 -> 56546 bytes
-rw-r--r--img/pinephone.pngbin0 -> 356089 bytes
-rw-r--r--img/pmos-logo.pngbin0 -> 2158 bytes
-rw-r--r--img/pms-folded.pngbin0 -> 18173 bytes
-rw-r--r--img/pms.pngbin0 -> 92037 bytes
-rw-r--r--img/puremaps.pngbin0 -> 288298 bytes
-rw-r--r--img/purism.pngbin0 -> 10074 bytes
-rw-r--r--img/session.pngbin0 -> 45328 bytes
-rw-r--r--img/ticker-ls.pngbin0 -> 105123 bytes
-rw-r--r--img/unfolded.pngbin0 -> 49539 bytes
-rw-r--r--talk.org362
-rw-r--r--talk.pdfbin0 -> 3338174 bytes
26 files changed, 396 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..40fd116
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+*.pdf
+*.tex
+*~
+_build/
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..518c407
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,30 @@
+all: talk.pdf
+
+SOURCES=\
+ talk.org \
+ $(wildcard _build/*.png) \
+ $(wildcard img/*.jpg) \
+ $(wildcard img/*.png) \
+ $(NULL)
+
+OUT=talk.pdf
+
+$(OUT): $(SOURCES)
+ mkdir -p _build
+ # org-src-preserve-indentation prevents spaces converted to tabs in babel)
+ emacs -batch $< --eval='(setq org-src-preserve-indentation t)' \
+ --eval='(org-beamer-export-to-pdf)'
+
+clean:
+ rm -f *.tex $(OUT) _build
+
+mode:
+ wlr-randr --output HDMI-A-1 --mode 1280x720@50
+ wlr-randr --output HDMI-A-1 --mode 1280x720@50 --pos 0,0
+ wlr-randr --output eDP-1 --pos 0,721
+
+record:
+ wf-recorder -a 'Logitech H360 Headset' -o HDMI-A-1
+
+run:
+ pdf-presenter-console talk.pdf
diff --git a/img/Tux.png b/img/Tux.png
new file mode 100644
index 0000000..bdc5b1d
--- /dev/null
+++ b/img/Tux.png
Binary files differ
diff --git a/img/World_Wide_Smartphone_Sales.png b/img/World_Wide_Smartphone_Sales.png
new file mode 100644
index 0000000..f31ea6c
--- /dev/null
+++ b/img/World_Wide_Smartphone_Sales.png
Binary files differ
diff --git a/img/apps.png b/img/apps.png
new file mode 100644
index 0000000..b406c51
--- /dev/null
+++ b/img/apps.png
Binary files differ
diff --git a/img/dialpad.png b/img/dialpad.png
new file mode 100644
index 0000000..e1d456e
--- /dev/null
+++ b/img/dialpad.png
Binary files differ
diff --git a/img/folded.png b/img/folded.png
new file mode 100644
index 0000000..203506f
--- /dev/null
+++ b/img/folded.png
Binary files differ
diff --git a/img/gobby-fit.png b/img/gobby-fit.png
new file mode 100644
index 0000000..fd51baf
--- /dev/null
+++ b/img/gobby-fit.png
Binary files differ
diff --git a/img/gobby-notfit.png b/img/gobby-notfit.png
new file mode 100644
index 0000000..2d60b68
--- /dev/null
+++ b/img/gobby-notfit.png
Binary files differ
diff --git a/img/librem5.png b/img/librem5.png
new file mode 100644
index 0000000..9ecc058
--- /dev/null
+++ b/img/librem5.png
Binary files differ
diff --git a/img/mobian.png b/img/mobian.png
new file mode 100644
index 0000000..6ba19cf
--- /dev/null
+++ b/img/mobian.png
Binary files differ
diff --git a/img/n900.png b/img/n900.png
new file mode 100644
index 0000000..bf42a20
--- /dev/null
+++ b/img/n900.png
Binary files differ
diff --git a/img/notmainline.png b/img/notmainline.png
new file mode 100644
index 0000000..2b74c5b
--- /dev/null
+++ b/img/notmainline.png
Binary files differ
diff --git a/img/notmainline2.png b/img/notmainline2.png
new file mode 100644
index 0000000..e86a4c2
--- /dev/null
+++ b/img/notmainline2.png
Binary files differ
diff --git a/img/openmoko.png b/img/openmoko.png
new file mode 100644
index 0000000..5cf42db
--- /dev/null
+++ b/img/openmoko.png
Binary files differ
diff --git a/img/pinephone.png b/img/pinephone.png
new file mode 100644
index 0000000..15b8c76
--- /dev/null
+++ b/img/pinephone.png
Binary files differ
diff --git a/img/pmos-logo.png b/img/pmos-logo.png
new file mode 100644
index 0000000..ad76f47
--- /dev/null
+++ b/img/pmos-logo.png
Binary files differ
diff --git a/img/pms-folded.png b/img/pms-folded.png
new file mode 100644
index 0000000..b591c2f
--- /dev/null
+++ b/img/pms-folded.png
Binary files differ
diff --git a/img/pms.png b/img/pms.png
new file mode 100644
index 0000000..f9b84ad
--- /dev/null
+++ b/img/pms.png
Binary files differ
diff --git a/img/puremaps.png b/img/puremaps.png
new file mode 100644
index 0000000..2fccacf
--- /dev/null
+++ b/img/puremaps.png
Binary files differ
diff --git a/img/purism.png b/img/purism.png
new file mode 100644
index 0000000..b8a499e
--- /dev/null
+++ b/img/purism.png
Binary files differ
diff --git a/img/session.png b/img/session.png
new file mode 100644
index 0000000..a8529ab
--- /dev/null
+++ b/img/session.png
Binary files differ
diff --git a/img/ticker-ls.png b/img/ticker-ls.png
new file mode 100644
index 0000000..dece4ac
--- /dev/null
+++ b/img/ticker-ls.png
Binary files differ
diff --git a/img/unfolded.png b/img/unfolded.png
new file mode 100644
index 0000000..726cda5
--- /dev/null
+++ b/img/unfolded.png
Binary files differ
diff --git a/talk.org b/talk.org
new file mode 100644
index 0000000..6694399
--- /dev/null
+++ b/talk.org
@@ -0,0 +1,362 @@
+#+TODO: TODO(t) IN-PROGRESS DONE
+#+STARTUP: indent
+#+STARTUP: beamer
+#+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: Is there hope for Linux on smartphones?
+#+SUBTITLE: at FrOSCon 2022
+#+DATE: 2022-08-20
+#+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)
+
+# Submitted description:
+# Smartphones and other mobile devices are ubiquitous and while we're picky about free software on our laptops,
+# desktops and servers lots of us have a truck load full of proprietary software in their pocket every day.
+# Does it have to be that way?
+# How would a way out of the duopoly look like? What are the upsides?
+# What works today? What are the gaps? How can you get involved?
+
+* About myself
+
+** About me
+:PROPERTIES:
+:UNNUMBERED: t
+:END:
+
+- Debian Developer
+- phosh / GNOME contributor
+- Freelancing Free Software Developer
+- Working with Purism on the Librem 5 Phone
+
+* What is Linux Mobile?
+
+** The world right now
+
+#+CAPTION: https://en.wikipedia.org/wiki/Mobile_operating_system
+#+ATTR_LATEX: :height 0.7\textheight
+[[./img/World_Wide_Smartphone_Sales.png]]
+
+** The world right now
+
+*** Android
+
+- But AOSP?
+#+BEAMER: \pause
+- Google Mobile Services (GMS)
+- Vendors add additional proprietary components
+
+** What is Linux Mobile?
+
+*** Welcome to Linux Mobile
+
+- All Free Software
+- Targets smartphones
+- (close to) mainline Linux Kernel
+- Uses "Linux" userland APIs (sysv, systemd, GTK, Qt, …)
+- Frameworks for mobile apps
+- Enough band aid to help existing apps along
+
+** Linux Mobile: Targets smartphones
+
+| Devices | Sales in 2020 |
+|-------------+---------------|
+| PCs/Laptops | 300 mio¹ |
+| Smartphones | 1350 mio² |
+
+** Linux Mobile: All Free Software
+
+- Software (hence user) Freedom
+- Know where your data goes
+- User instead of vendor control
+- Lifecycle determined by hardware, not software
+
+** Linux Mobile: Mainline Linux Kernel
+
+*** :BMCOL:
+:PROPERTIES:
+:BEAMER_col: 0.7
+:END:
+- No binary blobs
+- Drivers are maintained
+- Can just update for security support
+- Only one place to fix
+- Know where to send patches
+
+*** :BMCOL:
+:PROPERTIES:
+:BEAMER_col: 0.3
+:END:
+#+ATTR_LATEX: :height 0.4\textheight
+[[./img/Tux.png]]
+
+
+** Linux Mobile: "Linux" userspace
+
+#+begin_src ditaa :file _build/session.png :cmdline -s 3 -o :exports results
+ +------------+---------------+--------------+
+ | Phoc | Phosh | Squeekboard |
+ +------------+---------------+--+-----------+
+ |c7AF gnome—settings—daemon | feedbackd |
+ +-------------------------------+-----------+
+ |c7AF gnome—session |
+ +-------------------------------------------+
+ |c7AF policykit, upower, iio—s—p |
+ +-------------------------------------------+
+ |c7AF NetworkManager, ModemManager |
+ +-------------------------------------------+
+ |c7AF systemd / sysv / libc / mesa |
+ +-------------------+-----------------------+
+ |
+ +-------------------+-----------------------+
+ |c7AD Linux Kernel |
+ +-------------------------------------------+
+ #+end_src
+
+#+ATTR_LATEX: :height 0.4\textheight
+#+RESULTS:
+[[file:_build/session.png]]
+
+- (security) updates sorted out via distributions
+- again all free software
+- lots of existing, good applications
+- allows to use your phone as laptop *and* use the same apps
+
+** Linux Mobile: Mobile app frameworks
+
+*** folded left :BMCOL:
+:PROPERTIES:
+:BEAMER_col: 0.4
+:END:
+#+ATTR_LATEX: :height 0.7\textheight
+[[./img/pms-folded.png]]
+
+*** folded right :BMCOL:
+:PROPERTIES:
+:BEAMER_col: 0.4
+:END:
+#+ATTR_LATEX: :height 0.7\textheight
+[[./img/folded.png]]
+
+** Linux Mobile: Mobile app frameworks
+
+#+ATTR_LATEX: :height 0.7\textheight
+[[./img/unfolded.png]]
+
+** Linux Mobile: Band aid for older apps
+
+#+ATTR_LATEX: :height 0.8\textheight
+[[./img/gobby-notfit.png]]
+
+** Linux Mobile: Band aid for older apps
+
+#+ATTR_LATEX: :height 0.8\textheight
+[[./img/gobby-fit.png]]
+
+** Linux Mobile: Band aid for older apps
+
+#+ATTR_LATEX: :height 0.8\textheight
+[[./img/pms.png]]
+
+** Alternative approaches
+
+#+BEAMER: \pause
+- Use Android kernels
+ with either Android userspace or Halium / libhybris
+#+BEAMER: \pause
+- Pro: Broad device support
+#+BEAMER: \pause
+- Con: as long as Android is supported for your device
+#+BEAMER: \pause
+- Con: There's no *single* Android kernel
+#+ATTR_LATEX: :height 0.4\textheight
+[[./img/notmainline2.png]]
+
+** Alternative approaches
+
+- Con: Android kernel and userspace blobs don't magically go away
+#+BEAMER: \pause
+- Tied to vendors support cycle
+#+BEAMER: \pause
+- Android is *not* Linux
+
+https://not.mainline.space
+
+#+ATTR_LATEX: :width 0.9\textwidth
+[[./img/notmainline.png]]
+
+* Why could that work out?
+
+** Why is that possible?
+
+Since 2019 we have Linux first devices:
+
+ #+BEAMER: \pause
+ Librem 5 and PinePhone.
+
+ #+ATTR_LATEX: :height 0.4\textheight
+ [[./img/librem5.png]]
+
+** Why is that possible?
+
+Sounds simple? Heaps of work, e.g. to light up the screen:
+
+- LCD panel driver
+- Display controller, DSI bridge and PHY
+- LCD (backlight) driver plus regulators
+- GPU drivers and mesa support
+
+#+BEAMER: \pause
+
+Now add touch controller, camera sensors, CSI, PMIC, charge
+controller, USB and USB-C/PD, accelerometer, compass, proximity sensor,
+ambient light sensor, video accelerators, …
+
+#+BEAMER: \pause
+and all of these need power management
+
+** Why is that possible?
+
+Some originally Android driven devices are gaining mainline support
+
+#+BEAMER: \pause
+Most prominent *some* Qualcomm Snapdragons e.g. SDM845 improving
+quickly, some gaps (camera, calls, sensors, ...)
+
+** Why could that work out?
+
+#+ATTR_LATEX: :height 0.3\textheight
+[[./img/openmoko.png]]
+
+#+ATTR_LATEX: :height 0.3\textheight
+[[./img/n900.png]]
+
+Openmoko Freerunner (2008) and Nokia N900 (2009)
+
+Different user space stacks and distributions!
+
+** Why could that work out?
+
+- We have (comparetively) broad device support
+- Multiple distributions support overlapping mobile platforms
+- Many things packaged in "general purpose" distributions
+- This enables for great deal of collaboration (thanks pmOS!)
+#+BEAMER: \pause
+- Same tools, toolchain, packaging format and programming languages
+
+** Current Status
+
+- Linux first devices: Phone calls, mobile data, sensors, torch, camera, LEDs, haptic, …
+- Touch friendly apps that fit the phone screen
+- App list grows quickly
+
+** Current status
+
+*** Most prominent gaps
+
+- Easy camera use
+- Efficient video encoding
+- Good battery life
+- IM diversity
+- Easy VoLTE setup
+
+** Current status
+*** Most prominent gaps
+
+- All free software app store
+ (sandboxing, payments)
+- Runtime management
+
+** Current status
+
+There are people running it as their only smartphone.
+
+** What to use?
+
+- postmarketOS
+#+ATTR_LATEX: :height 0.2\textheight
+[[./img/pmos-logo.png]]
+
+- Mobian
+#+ATTR_LATEX: :height 0.2\textheight
+[[./img/mobian.png]]
+
+- PureOS
+#+ATTR_LATEX: :height 0.2\textheight
+[[./img/purism.png]]
+
+** And right now?
+
+*** Goodies
+
+Use it as PC in your pocket
+
+* How to help?
+
+** How to help?
+
+- Don't accept proprietary apps
+- As tinkerer: Get a Linux Mobile device and start experimenting.
+ Maybe you have one in your drawer?
+- As web developer: Think about Mobile Linux when designing
+ applications
+- As a distro hacker: Add more apps that fit phone screens to your
+ favorite distribution: https://linmobapps.frama.io/
+
+** How to help?
+
+- As a developer: Write the app you miss the most
+- As a user: Buy a device that runs Linux Mobile
+- As a student: Maybe do your master thesis on Linux Mobile
+- As hw vendor: Use mainline Linux, it works
+
+* Thanks
+
+** Send feedback and point out errors to
+- Mail: <agx@sigxcpu.org>
+- Fediverse: agx@librem.one
+- Matrix: @agx:sigxcpu.org
+- IRC OFTC: agx
+
+* Appendix :B_appendix:
+ :PROPERTIES:
+ :BEAMER_env: appendix
+ :END:
+
+** Image/Video references
+
+- Public Domain
+ - Mobian logo: https://mobian-project.org/images/mobian.png
+ - PureOS logo: https://puri.sm/wp-content/uploads/2015/04/purism-logo-1748x1120px.png
+ - Librem5: Purism: https://puri.sm/products/librem-5/
+- CC BY-SA 3.0:
+ - postmarketOS Logo: postmarketOS developer team: https://upload.wikimedia.org/wikipedia/commons/a/a6/PostmarketOS_logo.svg
+ - Screenshots: myself using https://gitlab.gnome.org/World/Phosh/phosh
+ - Openmoko: Nevetsjc: https://en.wikipedia.org/wiki/Openmoko#/media/File:Freerunner02.png
+ - N900: Ianaré Sévi: https://en.wikipedia.org/wiki/Nokia_N900#/media/File:N900_xterm.JPG
+
+** Image/Video references
+
+- cc-0:
+ - Pinephone: https://en.wikipedia.org/wiki/PinePhone#/media/File:Pinephone_betaedition.png
+- other: tux: By lewing@isc.tamu.edu and The GIMP The copyright holder
+ of this file allows anyone to use it for any purpose, provided that
+ the copyright holder is properly attributed. Redistribution,
+ derivative work, commercial use, and all other use is permitted.
+
+** References
+
+- 1) https://www.theverge.com/2021/1/11/22225356/pc-sales-shipments-2020-growth-idc-canalys-remote-work
+- 2) https://www.visualcapitalist.com/top-smartphone-brands-2020/
+- 3) https://mainline.space/
diff --git a/talk.pdf b/talk.pdf
new file mode 100644
index 0000000..7dfbd95
--- /dev/null
+++ b/talk.pdf
Binary files differ