Paul Kocialkowski
Free Software Developer

Talks

V4L2 Stateless Video Encoding: Hardware Support and uAPI

Abstract

This talk will present the current effort to bring support for stateless video encoders in mainline V4L2. This includes an overview of the current preliminary work on selected hardware platforms and video codecs as well as a brief summary of today's out-of-tree support. It will be followed by an introduction to the difficult process of creating a new userspace API to support them in mainline Linux, the inherent trade-offs that need arbitration and why this is taking time to converge.

Description

Links

A Current Overview of the DRM KMS Driver-Side APIs

Abstract

This talk will highlight the main aspects of the current DRM KMS kernel-side APIs and how to use them for writing such drivers. It will cover various topics such as memory management, internal pipeline configuration, bridge and panel handling as well as complex interfaces handling (such as MIPI DSI and DP). Examples from actual drivers in the tree will be presented, as well as impressions from personal experience when writing the logicvc-drm driver and working on various panel and bridge drivers.

Description

Links

Advanced Camera Support on Allwinner SoCs with Mainline Linux

Abstract

This talk will present how support for an advanced camera use case was integrated into the mainline Linux kernel, using the Media and V4L2 APIs. It involves supporting a sensor using the raw Bayer RGB format, transmission over the MIPI CSI-2 bus as well as support for the Image Signal Processor (ISP) found on Allwinner platforms. A specific focus will be set on this ISP, with details about the features it implements as well as the internal and userspace APIs that are used to support it.

Description

Links

Vue d'ensemble de la pile graphique utilisée avec Linux

Abstract

La pile graphique utilisée avec Linux est notoirement complexe et se divise en de nombreux composants qui interagissent les uns avec les autres. Entre les aspects liés à l'affichage, ceux liés au rendu et le fonctionnement propre du matériel, il est parfois difficile de s'y retrouver. Cette présentation propose donc une vue d'ensemble afin de tirer les choses au clair.

Description

Links

Walking Through the Linux-Based Graphics Stack

Abstract

The graphics stack used with the Linux kernel is a notoriously complex beast. From userspace down to the kernel level, a number of components are involved and interact with eachother. It is also an area that is constantly evolving to meet new use cases, refresh legacy implementations and achieve better performance. This makes it difficult to have a clear idea of the big picture and what is actually happening when using graphics-related components. This presentation will detail a walk through the graphics stack, with actual examples of displaying a buffer and rendering using the GPU. Going from the application level through the system libraries, down to the kernel and ending with actual hardware configuration. State-of-the-art technologies such as Wayland and DRM will be highlighted with relevant excerpts from the source code of related free software projects that are widely used today.

Description

Links

Advanced Camera Support on Allwinner SoCs with Mainline Linux

Abstract

Capturing pixels with a camera involves a number of steps, from the ADC reading the photosites in the image sensor to the final pixel values that are ready for encode/display, with various processing and transmission taking place along the way. While simple cases put most of the heavy lifting on the image sensor's side (through its embedded processor) and use a simple parallel bus for transmission, advanced cases require more work to be done outside of the sensor. In addition, modern high-speed transmission buses also bring-in more complexity. This talk will present how support for such an advanced use case was integrated into the mainline Linux kernel, using the Media and V4L2 APIs. It involves supporting a sensor using the raw Bayer RGB format, transmission over the MIPI CSI-2 bus as well as support for the Image Signal Processor (ISP) found on Allwinner platforms. A specific focus will be set on this ISP, with details about the features it implements as well as the internal and userspace APIs that are used to support it. The integration between all of the involved components will also be highlighted.

Description

Links

Advanced Camera Support on Allwinner SoCs with Mainline Linux

Abstract

Capturing pixels with a camera involves a number of steps, from the ADC reading the photosites in the image sensor to the final pixel values that are ready for encode/display, with various processing and transmission taking place along the way. While simple cases put most of the heavy lifting on the image sensor's side (through its embedded processor) and use a simple parallel bus for transmission, advanced cases require more work to be done outside of the sensor. In addition, modern high-speed transmission buses also bring-in more complexity. This talk will present how support for such an advanced use case was integrated into the mainline Linux kernel, using the Media and V4L2 APIs. It involves supporting a sensor using the raw Bayer RGB format, transmission over the MIPI CSI-2 bus as well as support for the Image Signal Processor (ISP) found on Allwinner platforms. A specific focus will be set on this ISP, with details about the features it implements as well as the internal and userspace APIs that are used to support it. The integration between all of the involved components will also be highlighted.

Description

Links

An Overview of the Linux and Userspace Graphics Stack

Abstract

Graphics with the Linux kernel is often perceived as a haystack, composed of many components that have complex interactions with eachother. While this is not always far from the truth, this talk will try to provide a clear overview of the different pieces in the stack and what their individual role is. Throughout the presentation, various APIs, protocols and software implementations will be demystified, covering both display and render aspects. This includes topics such as DRM, Wayland, Xorg, OpenGL, Mesa and more!

Description

Links

Supporting Hardware-Accelerated Video Encoding with Mainline

Abstract

The media subsystem and the V4L2 API have recently been extended to support hardware-accelerated video decoding for stateless implementations, with drivers such as cedrus and hantro supporting embedded platforms like Allwinner and Rockchip. While the stateless decoding work is being finalized, the next order of business is stateless video encoding. This talk will present the research and first implementation attempts to support H.264 encoding, using the Hantro H1 hardware. It will start with an introduction to H.264 encoding and rate-control approaches, one of the key aspects of encoding. It will follow with details about the hardware and provide an overview of the implementation challenges, choices that were made and their limitations for a common interface that can apply to any kind of stateless H.264 encoder. With that, a general picture of what a generic stateless encoding API for V4L2 would look like will be drawn.

Description

Links

Integrating HW-Accelerated Video Decoding with the Display Stack

Abstract

This talk will introduce some context about hardware video decoding, the work we carried out and the major issue we encountered with display integration as well as lessons learned from the experience.

Description

Links

V4L2 pour l’accélération matérielle de décodage vidéo

Abstract

Dans cette présentation, nous aborderons l'utilisation de l'API V4L2 pour un cas bien spécifique: l'accélération du décodage de vidéos par un composant matériel appelé VPU. Le cas étudié sera celui des plateformes Allwinner, pour lesquelles la prise en charge de l'accélération du décodage vidéo a été récemment intégrée au noyau Linux. Nous présenterons le fonctionnement des APIs en question et les adaptations qui leur ont été apportées pour ce cas d'utilisation ainsi que le rôle joué par le driver lors du décodage.

Description

Links

Origami-EC : vers un micrologiciel libre pour Embedded Controller

Abstract

Si de nombreux logiciels libres sont développés pour prendre en charge le processeur principal de nos appareils numériques (en particulier au niveau du système et dans une moindre mesure du démarrage), de nombreux autres composants sont laissés pour compte. Une multitude de micro-contrôleurs restent en effet sous le joug de logiciels propriétaires, sans alternatives libres. Si ces composants sont moins visibles, ils sont bien souvent cruciaux pour la liberté, la vie privée et la sécurité. Le projet Origami-EC s'intéresse aux Embedded Controllers, qui assurent de nombreux aspects liés à la gestion d'énergie et aux entrées/sorties des ordinateurs portables. Le développement d'un logiciel libre pour ces composants sera présenté, avec tous les challenges et les contraintes techniques qui lui sont associés.

Description

Links

Simplifying the Use of Free and Upstream Boot Software with Origami-Paper

Description

Links

Reverse engineering du jeu d’instruction et des firmwares du coprocesseur de gestion d’énergie (PCM) des puces MT8173 de MediaTek

Description

Links

Démarrage vérifié et logiciels libres : réconcilier liberté et sécurité

Abstract

Un nombre croissant d'ordinateurs modernes, qu'il s'agisse d'ordinateurs x86 de bureau, portables ou encore d'appareils embarqués, contient des dispositifs de vérification du premier logiciel de démarrage. En pratique, cela signifie souvent que seul le logiciel de démarrage autorisé par le fabricant peut être exécuté sur ces appareils, causant de sérieux problèmes de liberté mais également de sécurité.

Description

Links

Origami-EC status update for the G505s

Description

Links

Reverse engineering MT8173 PCM firmwares and ISA for a fully free bootchain

Description

Links

Technologie numérique et liberté aux plus bas niveaux

Abstract

Chaque aspect de la technologique numérique présente des problématiques liées aux libertés, avec de nombreuses implications. La situation actuelle et les efforts de libération concernant chaque aspect seront présentés, en particulier aux plus bas niveaux.

Description

Links

Verified Boot and Free Software: Reconciling Freedom and Security

Description

Links

Replicant : appareils mobiles, logiciels libres et vie privée

Abstract

Les appareils mobiles, tels que les téléphones portables ou tablettes sont de plus en plus présent dans notre usage de l'informatique et sont particulièrement sujets aux questions de liberté et de vie privée/sécurité. Étant de véritables ordinateurs, il est possible d'y exécuter du logiciel libre, même si la situation est loin d'être parfaite.

Description

Links

KB9012 Embedded Controller firmware reverse engineering

Description

Links

Replicant Keynote

Description

Links

Libreboot Keynote

Description

Links

The road to liberating software at the lower levels

Abstract

Liberating the software running at the lower levels of the hardware we use, either on the main processor or on controllers and peripherals can reveal to be quite challenging. There is a series of (more or less) usual limitations to overcome in the process, each of them being a challenge for free software developers, with the potential of fatally blocking a free software implementation.

Description

Links

Libérer son mobile avec Replicant : politique, technique

Abstract

Les appareils mobiles sont privilégiés pour nos communications et gardent grand nombre de données personnelles, en plus de ce qu'ils ont la capacité de collecter via les différents capteurs qu'ils embarquent. Il semble donc nécessaire de pouvoir réellement contrôler ces appareils. Replicant vise à libérer ces appareils. Présentation, enjeux, et limites.

Description

Links

Libérer son mobile avec Replicant : politique, technique

Abstract

Les appareils mobiles sont privilégiés pour nos communications et gardent grand nombre de données personnelles, en plus de ce qu'ils ont la capacité de collecter via les différents capteurs qu'ils embarquent. Il semble donc nécessaire de pouvoir réellement contrôler ces appareils. Replicant vise à libérer ces appareils. Présentation, enjeux, et limites.

Description

Links

Replicant Système d'exploitation libre pour smartphone

Abstract

Dans la lignée du mouvement du logiciel libre, Replicant est une facette de nos infrastructures de communication : à l’heure où l’informatique mobile (ordiphone, tablette,...) prend son envol, il est indispensable que les utilisateurs aient le contrôle de leur machine pour garder le contrôle de leurs informations personnelles (carnet d’adresse, agenda, SMS/appels reçus/émis,...), de leur liberté d’information et de leur liberté d’expression ainsi que du droit au secret de leur correspondance.

Description

Links

Replicant: software freedom and Privacy/security on mobile devices

Description

Links

Liberating mobile devices with Replicant and contributing

Abstract

This lightning talk will (quickly) highlight various aspects of developing on Replicant, the fully free Android-based mobile operating system. It will provide some insight about why more developers should join-in and how to get started with it.

Description

Links

Liberating mobile devices from the ground up

Abstract

Most mainstream mobile devices are fatally flawed when it comes to software freedom since they are unable to function without proprietary software on their main processing unit. In particular, most of those devices ship with proprietary bootloaders: early software that is in charge of bringing up the hardware and loading the operating system. While free software bootloaders exist and provide support for a wide range of different platforms, mainstream mobile devices very often do not allow running free bootloaders because of enforced numeric signature checks. However, once in a while, we come across a few devices or platforms that allow running free bootloaders and thus show true potential for taking freedom to the next step. Some of those will be presented, along with the communities built around them. In particular, the work conducted to liberate the LG Optimus Black (P970) will be presented with detail, as well as the efforts to free Allwinner platforms by the linux-sunxi community and the work on the GTA04 and Neo900 phones, built around the OpenPhoenux community.

Description

Links

Étapes accomplies pour la libération des appareils mobiles par le projet Replicant

Abstract

Cet exposé présentera Replicant dans le cadre de l’initiative visant à libérer les appareils mobiles. En premier lieu, les problèmes majeurs liés à la liberté sur ces appareils seront abordés, ainsi que différentes considérations à propos de la sécurité de ces appareils et des communications qu’ils peuvent effectuer. Par la suite, Replicant sera introduit comme réponse à certaines de ces problématiques. Les différentes étapes du projet au fil des années ainsi que l’ensemble du travail accompli pour la prise en charge de différents appareils seront présentés, en particulier au travers de l’écriture de remplacements libres pour les composants propriétaires. Plusieurs exemples parmi les plus laborieux seront particulièrement mis en lumière. L’état actuel du projet ainsi que les récents développements seront présentés par la suite. Finalement, cette présentation abordera en quoi les appareils actuellement pris en charge sont fondamentalement imparfaits pour le logiciel libre et quelles sont les conséquences qui en découlent vis-à-vis de l’orientation et du développement actuel et futur de Replicant.

Description

Links

Reached milestones and ongoing development on Replicant

Abstract

Replicant was started as a pragmatic way to achieve software freedom on mobile devices, as a fully free version of Android. Over the years, support was added for a dozen of different mainstream devices. However, most of these are severely flawed when it comes to software freedom and privacy/security. Thus, it was decided to focus the development effort on a few specific devices that perform better than others from those perspectives, instead of trying to catch up with the latest mainstream devices.

Description

Links

Replicant: appareils mobiles et logiciel libre

Abstract

Les appareils mobiles, tels que les téléphones portables ou tablettes sont de plus en plus présent dans notre usage del'informatique et sont particulièrement sujets aux questions de liberté et de vie privée/sécurité. Étant de véritables ordinateurs, il est aisé d'y exécuter du logiciel libre, même si la situation est loin d'être parfaite.

Description

Links

ARM devices and your freedom

Abstract

ARM devices have become an overwhelming part of our computing, present in most embedded and mobile devices. While free software seems prominent on ARM platforms, for instance with Android on phones and tablets, and various other GNU/Linux systems on single board computers and plug computers, not all systems and platforms are equal in terms of software freedom.

Description

Links

An overview of Replicant development

Abstract

The Replicant project was founded four years ago as a fully free version of Android. While Google releases most of Android as open source, with the Android Open Source Project, it still cannot run as-is on any actual device, since it needs proprietary programs for handling various parts of the hardware. Replicant however intends to run on actual devices while not compromising on software freedom. Hence, the proprietary parts are not part of Replicant and are instead either avoided or replaced. Over time, a good share free software replacements for the proprietary components was developed by the project, each time a new challenge for the developers involved!

Description

Links

Replicant: software freedom on mobile devices

Abstract

Android is developed by Google mostly as open source, through the Android Open Source Project. However, AOSP cannot actually run on most devices without proprietary software for supporting various hardware features. Back in 2010, the Replicant project was founded by a couple of free software enthusiasts to try and bring a fully free version of Android to the first Android phone, the HTC Dream, by replacing or avoiding the proprietary parts. Four years later, more than 10 different devices are supported by the project, which still focuses primarily on software freedom. Hence, making Replicant the only mobile operating system that truly puts the emphasis on freedom.

Description

Links

Sécurité, vie privée et appareils mobiles

Description

Links

Replicant: software freedom on mobile devices

Description

Links

Libérer son Mobile : Contribuer et Installer Replicant

Description

Links

Libérer son Mobile : CyanogenMod & F-Droid

Description

Links

Libérer son Android : un aperçu du développement de Replicant

Description

Links