935 lines
30 KiB
TeX
935 lines
30 KiB
TeX
\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}
|