presentations/Libreplanet2023/Free_software_boot.tex

935 lines
30 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\documentclass[aspectratio=169]{beamer}
\usepackage[english]{babel}
\usepackage{color}
\usepackage{CJKutf8}
\usepackage{graphicx}
\usepackage{ifthen}
\usepackage[utf8]{inputenc}
\usepackage{listings}
\usepackage{longtable}
\usepackage{pdfpages}
\usepackage{xtab}
\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}
}
}
\newcommand{\devicepicture}[1]{pictures/#1}
\newcommand{\includedevicepicture}[1]{
{\includegraphics[width=.2\textwidth]{\devicepicture{#1}}}
}
\newcommand{\inline}[3]{
\ifthenelse{\equal{top}{#2}}{
\noindent
\resizebox{\textwidth}{\textheight * 2 / 3}{#1}
{#3}
}{}
\ifthenelse{\equal{bottom}{#2}}{
{#3}
\noindent
\resizebox{\textwidth}{\textheight * 2 / 3}{#1}
}{}
\ifthenelse{\equal{right}{#2}}{
\begin{columns}[T]
\begin{column}{5cm}
#3
\end{column}
\begin{column}{5cm}
#1
\end{column}
\end{columns}
}{}
}
\newcommand{\inlinepicture}[3]{
\ifthenelse{\equal{right}{#2}}{
\begin{columns}[T]
\begin{column}{5cm}
#3
\end{column}
\begin{column}{5cm}
\includegraphics[width=5cm,height=8cm,keepaspectratio=true]{#1}
\end{column}
\end{columns}
}{
\inline{\includegraphics[keepaspectratio=true]{#1}}{#2}{#3}
}
}
\usetheme{Singapore}
\title{Taking control over the means of production: Free software boot}
\author{Denis 'GNUtoo' Carikli}
\date{March 19, 2023}
\begin{document}
\maketitle
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Introduction}
\begin{frame}
\center{Controlling the means of production is the path to freedom}
\end{frame}
\begin{frame}
\inlinepicture{output/W0128-NDdL_ZaD_Preparation_56926_small.jpg}{right}{
\center{Real examples of taking control of the production:}
\begin{itemize}
\item The peasent movements / Via campesina
\item Anarchist revolution in 1936 in Spain
\item Zapatistas, Temporary autonomous zone, etc
\item Theorized through work on the commons by Elinor Ostrom,
Sivia Federici (Feminism and the politics of the commons), and
probably many others people as well.
\end{itemize}
}
\end{frame}
\begin{frame}
\center{The free software way}
\begin{itemize}
\item Considered as a commons but problematic dependencies (make few
hardware, we don't make our own chips yet)
\item "Reverse engineering, re-implementation and parallel operation":
Hacking as transgressive infrastructuring:
\url{https://web.archive.org/web/20230000000000*/https://mkorn.binaervarianz.de/pub/korn-cscw2016.pdf}
\item (Re)implementations: From applications like Emacs, GCC (GNU) to the OS
(GNU, GNU/Linux) and to free software Boot, hardware freedom, etc.
\item (Also goes into other domains, but not the focus of this presentation).
\end{itemize}
\end{frame}
\section{From free software applications down to the hardware}
\begin{frame}
\center{Different levels of freedom}
\center{Free applications $\rightarrow$ Common distro + common
hardware $\rightarrow$ RYF + FSDG $\rightarrow$ Hardware freedom}
\end{frame}
\begin{frame}
\inlinepicture{output/Libreoffice-flyer.jpg}{right}{
\center{Free software applications}
}
\end{frame}
\begin{frame}
\inlinepicture{output/Libreoffice-flyer.jpg}{right}{
\center{Use case: You already run GNU/Linux and want to do collective activities}
\begin{itemize}
\item Communication application: Example: gpg + email client
\item Organization (association, company): Example: Libreoffice
\end{itemize}
}
\end{frame}
\begin{frame}
\center{What if people don't already run free software OS?}
\begin{longtable}[!t]{|p{1.5cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|}
\hline
OS &
Free compiler? &
Restrictions? \\
\hline
Microsoft Windows &
Yes (Mingw64, Msys2, Guix) &
signed drivers (Wireshark and ncap) \\
\hline
Mac OS &
%% VLC, Homebrew, Darling etc depend on Xcode
No &
%% Applications without any code signature cannot be run by
%% default except from a computer's administrator account from [[MacOS]]
Complicated to run (signed applications) \\
\hline
Android &
Difficult / limited &
usually no root access \\
\hline
iOS (iphone / ipads) &
No &
Apple prevents runing free software applications, censors
applications, forbids real browsers, etc \\
\hline
\end{longtable}
\end{frame}
\begin{frame}
\center{Issues}
\begin{itemize}
\item The applications have no control over the hardware: they need
to ask the OS which then access network, the display etc on behalf
of applications:
\begin{itemize}
\item A nonfree OS could spy on our mails for instance (Exemple:
Microsoft adding plugins inside Firefox that had at least one
security issue) $\rightarrow$ Puts people at risk and big
issue witin movements that don't have the same agenda as
Microsoft or states.
\url{https://www.computerworld.com/article/2763687/sneaky-microsoft-plug-in-puts-firefox-users-at-risk.html}
\item The OS can refuse to run an application or free software
applications (iphones / ipads), prevent access to some
resources (network drivers), etc.
\end{itemize}
\item Lot more issues, just an example: [insert your own issues here].
\item $\rightarrow$ The OS must be free software
\end{itemize}
\end{frame}
\begin{frame}
\center{Solution: help people upgrade from nonfree OS to GNU/Linux}
\begin{itemize}
\item Install parties
\item Finding people interested (might require to go find them
outside of your community)
\end{itemize}
\end{frame}
\begin{frame}
\center{Extremely important but not sufficient (has many
limitations)}
\end{frame}
\begin{frame}
\center{The FSF has certifications for distributions and hardware:
What can go wrong without them?}
\end{frame}
\begin{frame}
\center{Distributions}
\begin{itemize}
\item Two different issues issues: Distribution/contributors and users
\item Users: External repositories: Browsers addons (100\% free isn't sufficient)
\item Distribution and users: Nonfree software
\item $\rightarrow$ Less technical users often cannot know how to stay free software
\item $\rightarrow$ Distribution don't want to fix (distribution policies)
\end{itemize}
\end{frame}
\begin{frame}
\center{Certified distributions}
\begin{itemize}
\item FSDG: Free system distribution guidelines: \url{https://gnu.org/distros}
\item Not perfect but can collaborate to fix bugs.
\begin{itemize}
\item Lot of nonfree software removed. Users sometime find some,
bugreport and get it removed. Need help from users.
\item Third party repositories: Being worked on, still lot of work
to do. Need help from users.
\end{itemize}
\end{itemize}
\end{frame}
\pictureframe{output/WiFi.jpg}
\begin{frame}
\center{What about "hardware"? Same limitations than OS?}
\begin{longtable}[!t]{|p{1.5cm}|p{3cm}|p{3cm}|p{3cm}|p{3cm}|}
\hline
Computer formfactor &
Can run free OS? &
Other retrictions? \\
\hline
PC with UEFI without restricted boot &
Most of them, for now... &
Can't change WiFi card, AMT \\
\hline
Huawei smartphone &
No: \url{https://www.xda-developers.com/huawei-stop-providing-bootloader-unlock-codes/} &
Cannot change the boot software, other OS loaded \\
\hline
Android &
Difficult &
usually no root access \\
\hline
\end{longtable}
\end{frame}
\begin{frame}
\center{Issues: Software everywhere}
\begin{itemize}
\item Management Engine: another computer to prevent users control:
\url{https://www.fsf.org/blogs/sysadmin/the-management-engine-an-attack-on-computer-users-freedom}
\item Smartphones: Similar issue: "Hidden" operating system launched
by nonfree boot software: Example: Mobicore
\url{https://www.replicant.us/freedom-privacy-security-issues.php}
\item Raspberry PI: "Small" GPU firmware: full blown operating
system is hidden in the "small" nonfree GPU firmware:
\url{https://ownyourbits.com/2019/02/02/whats-wrong-with-the-raspberry-pi/}
\item Smartphones: Tracking devices:
\url{https://www.gnu.org/proprietary/malware-mobiles.html\#phone-communications}
\item Again: not exaustive: [insert your own issue here].
\end{itemize}
\end{frame}
\begin{frame}
\center{Nonfree boot software + common distro can interact}
\begin{itemize}
\item Automatic updates with fwupd: Updates sometimes breaking
computers, making it run slower, etc.
\item Some boot software can also prevent downgrades (The Management
engine has that for instance).
%% \begin{itemize}
%% \item \url{https://www.bleepingcomputer.com/news/technology/new-dell-bios-updates-cause-laptops-and-desktops-not-to-boot/}
%% \end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\center{How to know it all?}
\begin{itemize}
\item Computers everywhere even in computers
\item No guarantees with common comptuers
\end{itemize}
\end{frame}
\begin{frame}
\center{Solutions?}
\begin{itemize}
\item Work to replace nonfree software?
\begin{itemize}
\item High priority free software projects
\url{https://www.fsf.org/campaigns/priority-projects/}
\item Take a long time, not always possible
\end{itemize}
\item Making hardware that works without nonfree software?
\begin{itemize}
\item Not magic: require chips that work with free software already.
\item Can be expensive to get (What if I don't have a lot of money?)
\item Can be difficult to ship (What if I live in Palestine)
\item Can be difficult to procure (States require big companies as
small ones can't ship big quantities (like 500000 computers or
more) and and companies are to be paid years later.)
\end{itemize}
\item FSF certifications?
\begin{itemize}
\item Works for non technical users (super important)
$\rightarrow$ Can scale
\item Help find nonfree software and know the status
\item Also need hardware that works without nonfree software to
stay usable.
\end{itemize}
\item $\rightarrow$ We need all of them
\begin{itemize}
\item Know what doesn't work $\rightarrow$ Start to fix
\item Getting help from users (Thinkpenguin, ath9k\_htc)
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\center{Why hardware and software certifications are
complementary?}
\begin{itemize}
\item Even FSF certified distribution runs nonfree software if the
computer is not certified. Examples: ACPI (comes from the
BIOS/UEFI, bytecode in the GPUs "BIOS").
\item Users with a certified computer and not certified
distributions will probably run nonfree software without knowing
it at some point, and it's not a bug.
\end{itemize}
\end{frame}
\section{Using the certifications}
\begin{frame}
\center{FSF certified hardware and distributions: What is available?}
\end{frame}
\begin{frame}
\center{The certifications}
\begin{itemize}
\item RYF (Respect your freedom): Certification for hardware: \url{https://ryf.fsf.org}
\item FSDG (Free System Distribution Guidelines): Certification for
software (distributions): \url{https://gnu.org/distros}
\end{itemize}
\end{frame}
%% Take RYF hardware, what can be used with it
\begin{frame}
\center{Certified laptops: https://ryf.fsf.org/index.php/categories/laptops}
\begin{itemize}
\item Technoetical T400, T400s, T500
\item Taurinus, Technoetical, Vikings X200
\item Technoetical X200s, X200T
\end{itemize}
\end{frame}
%% RYF: CC-BY-ND 3.0
%% Technoetical website: CC-BY-SA 4.0
\begin{frame}
\begin{xtabular}{lll}
\includedevicepicture{thinkpads-x/tehnoetic_x200-docking_500x500-500x500.png} &
\includedevicepicture{thinkpads-x/tehnoetic_x200-docking_500x500-500x500.png} &
\includedevicepicture{thinkpads-x/tehnoetic_x200t-rotated-pen-docking_im-500x500-500x500.png} \\
\includedevicepicture{thinkpads-t/tehnoetic_t400_adjust_500x500-500x500.png} &
\includedevicepicture{thinkpads-t/tet-t400s-front-touch-500x500.jpg} &
\includedevicepicture{thinkpads-t/tehnoetic_t500_500x500-500x500.png} \\
\end{xtabular}
\end{frame}
\begin{frame}
\center{Warning}
\begin{itemize}
\item Order with an FSDG distribution $\rightarrow$ FSDG
distribution works.
\item Third party hardware (graphic card for instance) can still
introduce nonfree software.
\item Only certifies software freedom, not if the vendor is
reliable, cheap, "eco-friendly", does fair-trade, ships on time,
etc.
\begin{itemize}
\item $\rightarrow$ You need to do your own research for the rest
(read people's reviews, ask people, make sure the information is
up to date, etc).
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\center{What can you do with these?}
\begin{itemize}
\item Refurbished computer from circa 2008
\begin{itemize}
\item Enough RAM: Upgradable, up to 8GiB, Buy through RYF vendor
or ask to test to make sure it's compatible.
\item CPU still fast enough for most tasks
\begin{itemize}
\item Limits: Videos \textless 1080p, heavy compilations (full
distributions from scratch).
\end{itemize}
\end{itemize}
\begin{itemize}
\item Mate display and good quality keyboards $\rightarrow$ can do
work (writing, programming, etc) on them.
\item Gigabit Ethernet
\item Cheap and/or big storage (2 SATA HDDs/SSDs possible on some
laptops).
\item WiFi: 2.4 cheap, 5GHz works in crowded environments (like
big conferences).
\item Highly customizable (Some of them can have multiple WiFi
cards for instance).
\item Some of only have trackpads, some have both
\item Removable batteries, semi-rugged, last long time. Limits:
\begin{itemize}
\item Ethernet on X200.
\item Requires some light maintenance (removing dust).
\end{itemize}
\end{itemize}
\item Compatible with all the FSF certified distributions but Replicant
\end{itemize}
\end{frame}
\begin{frame}
\center{More details:}
\url{https://libreplanet.org/wiki/Group:Hardware/Computers/Laptops/Freeable_laptops/Libreboot_Laptops_comparison}
\end{frame}
\begin{frame}
\center{Other type of computers (AKA formfactors)}
\end{frame}
\begin{frame}
\center{Certified WiFi access points: https://ryf.fsf.org/index.php/categories/routers}
\begin{itemize}
\item TPE-R1300 Wireless-N Mini Router
\item TPE-R1200 Wireless-N Mini Router v2
\item TPE-R1100 Wireless-N Mini Router
\end{itemize}
\end{frame}
\begin{frame}
\center{What can you do with these?}
\begin{itemize}
\item Mainly building (home) networks.
\item Requires isolation from rain, dust, etc to build community
networks. \url{https://media.libreplanet.org/u/libreplanet/m/freeing-networks-where-we-need-freedom-most/}
\item Runs LibreCMC:
\begin{itemize}
\item Fully graphical web interface that it easy to use and very robust.
\item Also works with command line or configuration files.
\item Still requires some networking knowledge (what is an IP
address? What is "DHCP" ?).
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\center{Certified server / workstation:
https://ryf.fsf.org/index.php/categories/routers}
\begin{itemize}
\item Vikings ASUS KCMA D8 Workstation
\end{itemize}
\end{frame}
\begin{frame}
\center{What can you do with these?}
\begin{itemize}
\item Also compatible with all the FSF certified distributions but Replicant
\begin{itemize}
\item Way faster than the laptops
\item Best for servers (Display controller limited)
\end{itemize}
\end{itemize}
\end{frame}
\section{Under the hood and DIY approach}
\begin{frame}
\center{DIY and current status}
\end{frame}
\begin{frame}
\center{A look into software projects}
\begin{itemize}
\item Coreboot
\item Libreboot
\item U-Boot (and u-boot-libre)
\item And FSDG distributions
\end{itemize}
\end{frame}
\begin{frame}
\center{X86 and reminder}
\begin{itemize}
\item Experiement: Remove the HDD / SSD, power on your laptop:
something shows up on the display (a vendor logo, some text, etc).
\item $\rightarrow$ Software is running, that software is the boot software.
\item BIOS, UEFI, Coreboot, Libreboot, etc
\end{itemize}
\end{frame}
\pictureframe{output/HP_small.jpeg}
\pictureframe{output/Thinkpad_small.jpeg}
\begin{frame}
\center{Where is that software?}
\begin{itemize}
\item In a memory chip, inside the mainboard
\end{itemize}
\end{frame}
\pictureframe{output/X200_small.jpeg}
\pictureframe{output/SOIC-16_small.jpeg}
\pictureframe{output/WD_Caviar_Green_WD10EADS_-_Controller_-_Winbond_25X20ALNIG-91999_small.jpg}
\begin{frame}
\center{Projects}
\begin{itemize}
\item Coreboot: Almost completely free or completely nonfree
software depending on the computer. $\rightarrow$ Not usable
as-is.
\item $\rightarrow$ Libreboot: Coreboot distribution created in 2009
that solved this issue.
\item $\rightarrow$ We'll look into the recent changes in Libreboot
later on.
\end{itemize}
\end{frame}
\begin{frame}
\center{How to use "Libreboot" ?}
\begin{itemize}
\item Get a supported computer
\item Download Libreboot
\item For some supported computers: run a script to install it
\item For other: disassemble the computer, and reprogram the memory
chip inside the mainboard with some dedicated hardware.
\item Reassemble the computer, change the battery if needed, Add a
WiFi card that works with free software, etc.
\end{itemize}
\end{frame}
\pictureframe{pictures/thinkpads-x/tehnoetic_x200-docking_500x500-500x500.png}
\begin{frame}
\center{ARM and u-boot: what is u-boot}
\begin{itemize}
\item Boot software
\item Replaces the BIOS / UEFI and GRUB
\item Can boot many ARM computers without nonfree software.
\item U-boot is typically packaged by distributions like Guix,
Parabola, PureOS or Trisquel.
\item "Libreboot" was interested in adding support for u-boot too.
\end{itemize}
\end{frame}
\begin{frame}
\center{My story with u-boot ("About me" slide)}
\begin{itemize}
\item I ended up maintaining Parabola u-boot packages and organizing
how to support ARM devices in Parabola with several goals:
\begin{itemize}
\item Lowering maintenance
\item Being able to support a huge quantity of devices
\item $\rightarrow$ Use computers well supported by upstream.
\item $\rightarrow$ Organize the code and documentation to have as
little as possible to do for each new device.
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\center{Issue: I found nonfree software in u-boot}
\begin{itemize}
\item Nonfree software found:
\begin{itemize}
\item Licenses/r8a779x\_usb3.txt
\item drivers/usb/host/xhci-rcar-r8a779x\_usb3\_v3.h
\item Debian also found nonfree software in u-boot (drivers/dma/MCD\_tasks.c):
\url{https://metadata.ftp-master.debian.org/changelogs/main/u/u-boot/u-boot_2021.01+dfsg-5_copyright}
\end{itemize}
\item Can't redistribute it in Parabola
\item Parabola has a mechanism (mksource()) to produce deblobbed
tarballs, but Parabola packages for u-boot were too complex
$\rightarrow$ didn't work.
\item Other FSF certified distributions (like Guix) also use u-boot.
\item $\rightarrow$ Used Libreboot to make a libre u-boot
(u-boot-libre) and reused it in Parabola.
\end{itemize}
\end{frame}
\begin{frame}[allowframebreaks]
\frametitle{PKGBUILD}
\lstinputlisting{PKGBUILD}
\end{frame}
\begin{frame}
\center{But Libreboot too started adding nonfree software...}
\begin{itemize}
\item $\rightarrow$ I regrouped together with other people (Like
Adrien neox Bourmault) and organization already using computers
with Libreboot (Like Libre en communs, Technoetical, others) who
needed a free software Boot software.
\end{itemize}
\end{frame}
\begin{frame}
\center{We are continuing the Libreboot project but witout nonfree
software}
\begin{itemize}
\item Status:
\begin{itemize}
\item Rationale explained at https://libreboot.at
\item Infrastructure: Mailing lists, bug reports, website, git
repositories.
\item Status: we accept patches but don't have a release yet.
\item Short term: remake the latest free release.
\item (And also make u-boot-libre releases as well).
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\center{Longer term goals: make new releases}
\begin{itemize}
\item More details at: \url{https://libreplanet.org/wiki/Group:Hardware/Upstream_projects/Coreboot}
\end{itemize}
\end{frame}
\begin{frame}
\center{Thinkpads with GM45 chipsets}
\begin{itemize}
\item Laptops:
\begin{itemize}
\item Thinkpad R400
\item Thinkpad R500
\item Thinkpad T400
\item Thinkpad T400s
\item Thinkpad T500
\item Thinkpad W500
\item Thinkpad X200
\item Thinkpad X200s
\item Thinkpad X200 Tablet
\item ThinkPad X301
\end{itemize}
\item Status:
\begin{itemize}
\item Most patches should be easy to upstream or carry around.
\item 2 patches for not using nonfree microcode updates. 1/2 rebased.
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\center{Computers with Intel I945 chipsets}
\begin{itemize}
\item Laptops:
\begin{itemize}
\item Apple iMac 5,2
\item Apple Macbook 1,1
\item Apple Macbook 2,1
\item Gigabyte GA-G41M-ES2L
\item Intel D945GCLF
\item Thinkpad R60 (with Intel GPU only)
\item Thinkpad T60 (with Intel GPU only)
\item Thinkpad X60
\item Thinkpad X60s
\item Thinkpad X60 Tablet
\end{itemize}
\item Status:
\begin{itemize}
\item Apart from the Gigabyte GA-G41M-ES2L and Intel D945GCLF, no
more free software GPU init upstream but the Linux i915 driver
seem to be able to initialize the GPU at least for the X60.
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\center{Computers with AMD chipsets}
\begin{itemize}
\item Laptops:
\begin{itemize}
\item KCMA-D8
\item KFSN4-DRE
\item KGPE-D16
\end{itemize}
\item Status:
\begin{itemize}
\item Not supported anymore by upstream coreboot but there is some
community support in a coreboot 4.11 branch.
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\center{Libreboot compatible ARM computers}
\begin{itemize}
\item Status at: \url{https://libreplanet.org/wiki/Group:Hardware/Upstream_projects/Coreboot}
\item Laptops:
\begin{itemize}
\item ASUS C201 Chromebook
\end{itemize}
\item Status:
\begin{itemize}
\item Still in Coreboot 4.19 but no maintainers
\item Unknown status in Parabola. (wael in \#parabola in liberachat
proposed to test).
\end{itemize}
\item Computers with u-boot: we didn't take decisions about them,
but probably not the priority as can handled by FSF certified
distros as well (with u-boot-libre or some deblob procedure).
\end{itemize}
\end{frame}
\begin{frame}
\center{Short digression: PowerPC 64bit little endian}
\begin{itemize}
\item Interesting computers:
\begin{itemize}
\item Raptor Engineering (Talos II, Blackbird, etc), some are RYF:
2 computers in one:
\begin{itemize}
\item BMC (Baseband management controller): small ARM computer
to boot the big one: Doesn't depend on nonfree software but no
free distro for it.
\item The big powerPC computer might work on Guix and/or on
Trisquel 11 (not out yet).
\end{itemize}
\item Some Single board computers (like the NXP T2080 RDB) or the
PowerPC notebook prototypes can run u-boot but display isn't
working with free software.
\end{itemize}
\end{itemize}
\end{frame}
\section{ARM computers with u-boot}
\begin{frame}
\center{ARM computers with u-boot}
\begin{itemize}
\item Lot of computers that can boot with free software
\item Also lot of them that can't
\item No direct competition with Intel, limitations (RAM).
\item Lot of hardware variation (microSD, SATA, displays, no
displays, etc).
\item $\rightarrow$ Need consideration when buying (use cases,
microSD less reliable, etc).
\end{itemize}
\end{frame}
\begin{frame}
\center{Hardware constraints}
\begin{itemize}
\item Boot medias:
\begin{itemize}
\item SD / MicroSD
\item Internal memory (eMMC)
\item "Boot flash"
\item SATA (quite rare)
\item "Boot order"
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\center{Hardware and software constraints}
\begin{itemize}
\item Bootrom / Boot ROM $\rightarrow$ First stage bootloader
$\rightarrow$ Second stage bootloader $\rightarrow$ Linux + small
filesystem in RAM (initramfs / initrd) $\rightarrow$ init
(GNU/Linux).
\item Issue: First stage bootloader at different offsets
\item Issue: A single U-boot image cannot work yet on many
computers.
\item $\rightarrow$ Most of the time the distribution has bootloader
packages but only a generic installer that doesn't boot on microSD
at best.
\end{itemize}
\end{frame}
\begin{frame}
\center{Distributions}
\begin{itemize}
\item Guix (32bit currently broken, 64bit seems to work)
\item Parabola (32bit works, 64bit computers support outdated, need
help)
\item PureOS: 64bit only
\item Trisquel 10: 32bit
\item Trisquel 11: 32bit, 64bit
\end{itemize}
\end{frame}
\begin{frame}
\center{Parabola: How to add an ARM computer}
\begin{itemize}
\item Add a package for a bootloader: (requires to know the computer
name, and the u-boot configuration, if it's similar to one already
supported).
\item Document the computer in the wiki:
\begin{itemize}
\item Add information about how to install Parabola on it
\item Describe it a bit (amount of RAM, name, etc)
\item Describe what works what doesn't and the required hardware
(HDMI display, keyboard or serial console cable).
\item Add that computer to the list of officially supported ARM computers
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\center{Parabola: Officially supported}
\begin{itemize}
\item \url{https://wiki.parabola.nu/Computers}
\item Olimex: Lime 1 A20: Full support
\item Olimex: Lime 2 A20: Full support, 1 bug to fix
\item Beaglebone black: Partial support (no 3D acceleration, video
decoding, PRUs, capes, etc).
\item $\rightarrow$ Many more just need documentation / installation instructions
\end{itemize}
\end{frame}
\begin{frame}
\center{Parabola: Software status}
\begin{itemize}
\item No support for accessories (capes, shields etc) yet
\item Only support extlinux.conf and old style booting (u-boot boot
protocol)
\item No UEFI + GRUB support yet
\end{itemize}
\end{frame}
\begin{frame}
\center{Guix: Software status}
\begin{itemize}
\item ARM 32bit currently broken
\item Diffucult to customize (kernel modules) but good abstraction
(image types for specific computers).
\item Also produces images for the Pinebook PRO but only in "latest"
(no signatures), though easy to build them yourself.
\end{itemize}
\end{frame}
\begin{frame}
\center{PureOS and Trisquel}
\begin{itemize}
\item Very similar: Both are directly or indirectly derived from Debian.
\item Similar situation: No documentation $\rightarrow$ Where to add it? The Libreplanet wiki?
\item Need user testing and fixing
\item Different policies: can contribute to Trisquel directly,
PureOS prefers people to contribute directly to debian whenever
possible (lowers maintenance).
\item Some features make it harder to support: Multiple kernel but
no way to update /boot/extlinux/extlinux.conf $\rightarrow$ Use UEFI?
\end{itemize}
\end{frame}
\begin{frame}
\center{Tests with Trisquel}
\begin{itemize}
\item Ideally have a bootloader image in PureOS or Trisquel (in one
of u-boot-sunxi, u-boot-img, u-boot-omap, etc)
\item "Device tree" shipped by the kernel
\item Using 1 kernel to support updates
\item Writting some configuration to make it boot and update well
\item $\rightarrow$ Tried rapidely with a Lime 1 A20: cound't find the devicetree.
\item $\rightarrow$ Tried rapidely with a Beagleboard: cound't find u-boot.img.
\item $\rightarrow$ Tried rapidely with a Pandaboard: hang during
boot (no rootfs found?) lot of stacktraces.
\item $\rightarrow$ I also have a TBS2910: no bootloader
\item $\rightarrow$ We should probably retry with Trisquel 11
\end{itemize}
\end{frame}
\begin{frame}
\center{Call for action and advertizements}
\begin{itemize}
\item Try to have more collaboration between FSDG distributions:
\begin{itemize}
\item https://libreplanet.org/wiki/Group:Hardware
\item https://libreplanet.org/wiki/Group:Software
\end{itemize}
\item Help for testing ARM, improving documentation, etc.
\item Help Parabola or FSDG distributions that are understaffed
\end{itemize}
\end{frame}
\begin{frame}
\center{Licenses of this presentation }
\begin{itemize}
\item CC-BY-SA 3.0 or
\item CC-BY-SA 4.0 or
\item GFDL 1.3+ With no Invariant Sections, no Front Cover Texts and
no Back Cover Texts.
\item Pictures: Can't change WiFi card, BIOS pictures, Thinkpad X200
internals: Me, with the same license than this presentation.
\end{itemize}
\end{frame}
\begin{frame}
\center{Other Pictures}
\begin{itemize}
\item Thinkpads: Tehnoetic: CC-BY-SA 4.0,
\item ZAD: CC-BY-SA 3.0 Unported, \url{https://commons.wikimedia.org/wiki/File:W0128-NDdL_ZaD_Preparation_56926.JPG}
\item Libreoffice flyer: CC-BY-SA 3.0 Unported,
\url{https://commons.wikimedia.org/wiki/File:Libreoffice-flyer.svg}
\item Winbond 25X20AlNiG 1009
\url{https://commons.wikimedia.org/wiki/File:WD_Caviar_Green_WD10EADS_-_Controller_-_Winbond_25X20ALNIG-91999.jpg} \\
Author: Raimond Spekking
Licenses: CC BY-SA 4.0"
\end{itemize}
\end{frame}
\end{document}