PageSourceSearch

https://tuxphones.com/purism-librem-5-linux-phone-auto-camera-millipixels-app-photo-video-recording/

html tuxphones.com collected 2026-10-02 11:10:21 UTC 32,742 bytes, 503 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3
4<head>
5    <meta charset="utf-8">
6    <meta name="viewport" content="width=device-width, initial-scale=1">
7    <title>Purism Librem 5 receives major camera update, video recording capabilities</title>
8    <link rel="stylesheet" href="/assets/built/screen.css?v=ce594a48c3">
9
10    <link rel="icon" href="https://tuxphones.com/content/images/size/w256h256/2021/06/rect823-6-4-2.png" type="image/png">
11    <link rel="canonical" href="https://tuxphones.com/purism-librem-5-linux-phone-auto-camera-millipixels-app-photo-video-recording/">
12    <meta name="referrer" content="no-referrer-when-downgrade">
13    
14    <meta property="og:site_name" content="TuxPhones - Linux phones, tablets and portable devices">
15    <meta property="og:type" content="article">
16    <meta property="og:title" content="Purism Librem 5 receives major camera update, video recording capabilities">
17    <meta property="og:description" content="As we tend to mention often, cameras are one of the areas where Linux phones are often seen as lacking behind their Android alternatives. This is partly due to extreme fragmentation of sensor drivers, with most mainlined devices not having any kind of Linux camera support, and just partly due">
18    <meta property="og:url" content="https://tuxphones.com/purism-librem-5-linux-phone-auto-camera-millipixels-app-photo-video-recording/">
19    <meta property="og:image" content="https://tuxphones.com/content/images/2023/01/librem-5-camera-lol.png">
20    <meta property="article:published_time" content="2023-01-02T21:41:14.000Z">
21    <meta property="article:modified_time" content="2026-07-17T05:24:53.000Z">
22    <meta property="article:tag" content="Librem5">
23    <meta property="article:tag" content="Software">
24    
25    <meta name="twitter:card" content="summary_large_image">
26    <meta name="twitter:title" content="Purism Librem 5 receives major camera update, video recording capabilities">
27    <meta name="twitter:description" content="As we tend to mention often, cameras are one of the areas where Linux phones are often seen as lacking behind their Android alternatives. This is partly due to extreme fragmentation of sensor drivers, with most mainlined devices not having any kind of Linux camera support, and just partly due">
28    <meta name="twitter:url" content="https://tuxphones.com/purism-librem-5-linux-phone-auto-camera-millipixels-app-photo-video-recording/">
29    <meta name="twitter:image" content="https://tuxphones.com/content/images/2023/01/librem-5-camera-lol.png">
30    <meta name="twitter:label1" content="Written by">
31    <meta name="twitter:data1" content="Raffaele T.">
32    <meta name="twitter:label2" content="Filed under">
33    <meta name="twitter:data2" content="Librem5, Software">
34    <meta name="twitter:site" content="@tuxphones">
35    <meta property="og:image:width" content="800">
36    <meta property="og:image:height" content="400">
37    
38    
38<script type="application/ld+json">
39{
40    "@context": "https://schema.org",
41    "@type": "Article",
42    "publisher": {
43        "@type": "Organization",
44        "name": "TuxPhones - Linux phones, tablets and portable devices",
45        "url": "https://tuxphones.com/",
46        "logo": {
47            "@type": "ImageObject",
48            "url": "https://tuxphones.com/content/images/2022/09/tuxphones1-horizontal-banner-dark.png"
49        }
50    },
51    "author": {
52        "@type": "Person",
53        "name": "Raffaele T.",
54        "image": {
55            "@type": "ImageObject",
56            "url": "https://tuxphones.com/content/images/2022/07/me.webp",
57            "width": 288,
58            "height": 288
59        },
60        "url": "https://tuxphones.com/author/r/",
61        "sameAs": []
62    },
63    "headline": "Purism Librem 5 receives major camera update, video recording capabilities",
64    "url": "https://tuxphones.com/purism-librem-5-linux-phone-auto-camera-millipixels-app-photo-video-recording/",
65    "datePublished": "2023-01-02T21:41:14.000Z",
66    "dateModified": "2026-07-17T05:24:53.000Z",
67    "image": {
68        "@type": "ImageObject",
69        "url": "https://tuxphones.com/content/images/2023/01/librem-5-camera-lol.png",
70        "width": 800,
71        "height": 400
72    },
73    "keywords": "Librem5, Software",
74    "description": "As we tend to mention often, cameras are one of the areas where Linux phones are often seen as lacking behind their Android alternatives. This is partly due to extreme fragmentation of sensor drivers, with most mainlined devices not having any kind of Linux camera support, and just partly due to the lack of a software infrastructure for acquisition and post-processing.\n\n\n\nThe first camera app for Linux phones was Megapixels, developed by Martijn Braam as a Python GTK3 app for the PinePhone, and ",
75    "mainEntityOfPage": "https://tuxphones.com/purism-librem-5-linux-phone-auto-camera-millipixels-app-photo-video-recording/"
76}
77    </script>
77
78
79    <meta name="generator" content="Ghost 5.75">
80    <link rel="alternate" type="application/rss+xml" title="TuxPhones - Linux phones, tablets and portable devices" href="https://tuxphones.com/rss/">
81    
81<script defer src="https://cdn.jsdelivr.net/ghost/portal@~2.36/umd/portal.min.js" data-i18n="false" data-ghost="https://tuxphones.com/" data-key="7544557fafae592ac352c3518d" data-api="https://tuxphones.com/ghost/api/content/" crossorigin="anonymous"></script>
81<style id="gh-members-styles">.gh-post-upgrade-cta-content,
82.gh-post-upgrade-cta {
83    display: flex;
84    flex-direction: column;
85    align-items: center;
86    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
87    text-align: center;
88    width: 100%;
89    color: #ffffff;
90    font-size: 16px;
91}
92
93.gh-post-upgrade-cta-content {
94    border-radius: 8px;
95    padding: 40px 4vw;
96}
97
98.gh-post-upgrade-cta h2 {
99    color: #ffffff;
100    font-size: 28px;
101    letter-spacing: -0.2px;
102    margin: 0;
103    padding: 0;
104}
105
106.gh-post-upgrade-cta p {
107    margin: 20px 0 0;
108    padding: 0;
109}
110
111.gh-post-upgrade-cta small {
112    font-size: 16px;
113    letter-spacing: -0.2px;
114}
115
116.gh-post-upgrade-cta a {
117    color: #ffffff;
118    cursor: pointer;
119    font-weight: 500;
120    box-shadow: none;
121    text-decoration: underline;
122}
123
124.gh-post-upgrade-cta a:hover {
125    color: #ffffff;
126    opacity: 0.8;
127    box-shadow: none;
128    text-decoration: underline;
129}
130
131.gh-post-upgrade-cta a.gh-btn {
132    display: block;
133    background: #ffffff;
134    text-decoration: none;
135    margin: 28px 0 0;
136    padding: 8px 18px;
137    border-radius: 4px;
138    font-size: 16px;
139    font-weight: 600;
140}
141
142.gh-post-upgrade-cta a.gh-btn:hover {
143    opacity: 0.92;
144}</style>
145    
145<script defer src="https://cdn.jsdelivr.net/ghost/sodo-search@~1.1/umd/sodo-search.min.js" data-key="7544557fafae592ac352c3518d" data-styles="https://cdn.jsdelivr.net/ghost/sodo-search@~1.1/umd/main.css" data-sodo-search="https://tuxphones.com/" crossorigin="anonymous"></script>
145
146    
147    <link href="https://tuxphones.com/webmentions/receive/" rel="webmention">
148    
148<script defer src="/public/cards.min.js?v=ce594a48c3"></script>
148
149    <link rel="stylesheet" type="text/css" href="/public/cards.min.css?v=ce594a48c3">
150    
150<script defer src="/public/comment-counts.min.js?v=ce594a48c3" data-ghost-comments-counts-api="https://tuxphones.com/members/api/comments/counts/"></script>
150
151    
151<script defer src="/public/member-attribution.min.js?v=ce594a48c3"></script>
151
152    <!-- google verification code -->
153<meta name="google-site-verification" content="SQNFjLlJsdboylqWuxb6O5YgPqYn8sAI_YyKr4m5PRs" />
154<meta name="nano" content="nano_16x9cqkb1b375cc78ihuiy3npwac1smk6qpid18hhfrt55swsyj1dkw1z9i6"/>
155
156<link rel="me" href="https://fosstodon.org/@tuxdevices" />
157
158<!-- casper customization -->
159<style>
160    .site-logo {
161        max-height: 100px;
162    }
163    .site-description {
164        font-size: 1.5em;
165    }
166    .comments-button {
167        font-family: monospace;
168    	background-color: #00ba00;
169    	padding: 12px;
170    	color: #fff !important;
171    	font-weight: 800;
172   		font-variant: all-small-caps;
173    	letter-spacing: 0.03em;
174    	border-radius: 8px;
175    }
176</style>
177
178<script async src="https://media.ethicalads.io/media/client/ethicalads.min.js"></script>
178
179<style>:root {--ghost-accent-color: #082330;}</style>
180</head>
181
182<body class="post-template tag-librem5 tag-software is-head-b--a_n has-serif-body">
183    <div class="gh-site">
184        <header id="gh-head" class="gh-head gh-outer">
185            <div class="gh-head-inner gh-inner">
186                    <a class="gh-head-description" href="https://tuxphones.com">Linux on phones, tablets and wearables</a>
187
188                <div class="gh-head-brand">
189                    <div class="gh-head-brand-wrapper">
190                        <a class="gh-head-logo" href="https://tuxphones.com">
191                                <img src="https://tuxphones.com/content/images/2022/09/tuxphones1-horizontal-banner-dark.png" alt="TuxPhones - Linux phones, tablets and portable devices">
192
193                        </a>
194                    </div>
195                    <button class="gh-search gh-icon-btn" data-ghost-search><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" width="20" height="20"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg></button>
196                    <button class="gh-burger"></button>
197                </div>
198
199                <nav class="gh-head-menu">
200                    <ul class="nav">
201    <li class="nav-home"><a href="https://tuxphones.com/">Home</a></li>
202    <li class="nav-reviews-opinion"><a href="https://tuxphones.com/tag/opinion/">📖 Reviews / Opinion</a></li>
203    <li class="nav-quick-start-guide"><a href="https://tuxphones.com/2019-everything-running-linux-smartphone-guide/">🛠️ Quick start guide</a></li>
204    <li class="nav-best-linux-phones"><a href="https://tuxphones.com/best-linux-phones-buying-guide-2022/">🏆️ Best Linux phones</a></li>
205    <li class="nav-mobile-linux-devices"><a href="https://tuxphones.com/list-linux-mobile-devices/">📜️ Mobile Linux devices</a></li>
206    <li class="nav-all-des"><a href="https://tuxphones.com/mobile-linux-phone-desktop-environments-de-comparison-interfaces/">📜️ All DEs</a></li>
207    <li class="nav-all-distros"><a href="https://tuxphones.com/all-linux-distributions-for-smartphones/">📜️ All distros</a></li>
208    <li class="nav-contact"><a href="mailto:[email protected]">✉️ Contact</a></li>
209    <li class="nav-support"><a href="https://tuxphones.com/support/">❤️ Support</a></li>
210</ul>
211
212                </nav>
213
214                <div class="gh-head-actions">
215                    <button class="gh-search gh-icon-btn" data-ghost-search><svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2" width="20" height="20"><path stroke-linecap="round" stroke-linejoin="round" d="M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"></path></svg></button>
216                        <a class="gh-head-btn gh-btn gh-primary-btn" href="#/portal/signup" data-portal="signup">Subscribe</a>
217                </div>
218            </div>
219        </header>
220
221
222
223
224        
225<main class="gh-main">
226        <article class="gh-article post tag-librem5 tag-software">
227
228            <header class="gh-article-header gh-canvas">
229<center style="min-height: 100px">
230    <div data-ea-publisher="tuxphonescom" data-ea-type="text" id="top-text-banner" data-ea-keywords="linux|privacy|arm|smartphone|repair|sustainability|librem|pinephone|pro"></div>
231</center>
232
233
234                    <a class="gh-article-tag" href="https://tuxphones.com/tag/librem5/">Librem5</a>
235
236                <h1 class="gh-article-title">Purism Librem 5 receives major camera update, video recording capabilities</h1>
237
238                    <aside class="gh-article-sidebar">
239            <figure class="gh-author-image">
240                    <img src="https://tuxphones.com/content/images/2022/07/me.webp" alt="Raffaele T.">
241            </figure>
242
243            <h4 class="gh-author-name">
244                <a href="/author/r/">Raffaele T.</a>
245            </h4>
246
247        <div class="gh-article-meta">
248            <div class="gh-article-meta-inner">
249                <time class="gh-article-date" datetime="2023-01-02">Jan 2, 2023</time>
250                    <span class="gh-article-meta-sep"></span>
251                    <span class="gh-article-length">4 min</span>
252            </div>
253        </div>
254    </aside>
255
256
257                    <figure class="gh-article-image">
258        <img
259            srcset="/content/images/size/w300/2023/01/librem-5-camera-lol.png 300w,
260                    /content/images/size/w720/2023/01/librem-5-camera-lol.png 720w,
261                    /content/images/size/w960/2023/01/librem-5-camera-lol.png 960w,
262                    /content/images/size/w1200/2023/01/librem-5-camera-lol.png 1200w,
263                    /content/images/size/w2000/2023/01/librem-5-camera-lol.png 2000w"
264            sizes="(max-width: 1200px) 100vw, 1200px"
265            src="/content/images/size/w1200/2023/01/librem-5-camera-lol.png"
266            alt="Purism Librem 5 receives major camera update, video recording capabilities"
267        >
268    </figure>
269            </header>
270
271            <section class="gh-content gh-canvas">
272                <p>As we tend to <a href="https://tuxphones.com/pinephone-pro-sony-imx258-camera-demo-samples-mainline-linux/">mention</a> often, cameras are one of the areas where Linux phones are often seen as lacking behind their Android alternatives. This is partly due to extreme fragmentation of sensor drivers, with most mainlined devices not having any kind of Linux camera support, and just partly due to the lack of a software infrastructure for acquisition and post-processing.</p><p></p><p>The first camera app for Linux phones was Megapixels, developed by Martijn Braam as a Python GTK3 app for the PinePhone, and now the standard choice for Linux mobiles. Megapixels can be easily extended to new phones with a working kernel camera driver through <a href="https://gitlab.com/postmarketOS/megapixels/-/tree/master/config?ref=tuxphones.com">configuration files</a>, which specify sensor drivers to use, colour processing matrices, how previews are to be displayed, and much more.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://gitlab.com/postmarketOS/megapixels?ref=tuxphones.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">postmarketOS / megapixels · GitLab</div><div class="kg-bookmark-description">The GTK camera application</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://gitlab.com/assets/favicon-72a2cad5025aa931d6ea56c3201d1f18e68a8cd39788c7c80d5b2b82aa5143ef.png" alt><span class="kg-bookmark-author">GitLab</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://gitlab.com/uploads/-/system/project/avatar/31138754/org.postmarketos.Megapixels.png" alt></div></a></figure><p></p><p>Forking Megapixels, Purism developed <em>Millipixels </em>last year, a device-specific fork of Megapixels to be shipped with the Librem 5. So far, Millipixels has been progressing side by side with Megapixels, with some optimizations and minor differences to support all Librem hardware revisions. </p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://source.puri.sm/Librem5/millipixels?ref=tuxphones.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Librem5 / millipixels · GitLab</div><div class="kg-bookmark-description">Legacy API support / Librem 5 fork For packaging see https://source.puri.sm/Librem5/debs/millipixels</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://source.puri.sm/assets/favicon-72a2cad5025aa931d6ea56c3201d1f18e68a8cd39788c7c80d5b2b82aa5143ef.png" alt><span class="kg-bookmark-author">GitLab</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://source.puri.sm/assets/twitter_card-570ddb06edf56a2312253c5872489847a0f385112ddbcd71ccfa1570febab5d2.jpg" alt></div></a></figure><p>However, contributor <a href="https://source.puri.sm/Librem5/millipixels/-/merge_requests?scope=all&state=merged&author_username=pavel&ref=tuxphones.com">Pavel Machek</a> has developed an "automatic" photo mode for the Librem 5 in Millipixels, which optimizes the three parameters of the usual "exposure triangle" as in simple digital cameras to get closer to a point-and-shoot experience. A <a href="https://source.puri.sm/Librem5/millipixels/-/commit/39a5c8a19d1dafbfe4e06a31e57b77bf0318ee3e?ref=tuxphones.com">first autofocus algorithm</a>
272 has also been added, as well as support for video recording, which seems to be working smoothly.</p><p>This work on autofocus and automatic exposure is now in the bleeding-edge <em>master</em> branch, and should land to the Librem 5 within the next release.</p><p></p><p>Although this has not been tested with third-party devices, this should be generalizable with relative ease to other camera-supported Linux phones, opening a way to taking pictures from Linux phones without having to manually set gain (ISO), shutter speed and focus manually every time. </p><p>The user who first tested this commit, <em>adamd</em>, published a set of test images and videos taken in automatic mode, and they look quite good – maybe also thanks to his careful eye.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="http://adamd.sdf.org/computers/mini/2023/01/02/L5CameraControlsUpdate.html?ref=tuxphones.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Librem5 Automatic Camera Controls</div><div class="kg-bookmark-description">Previous posts that may be of interest that talk more generally about my experience with the Librem 5. 2022-10-14 2022-12-13 Librem 5 Automatic camera controls If you are willing to install / use bleeding edge software you can have automatic controls on the Librem 5. If you want to give it a shot I…</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="http://sdf.org/favicon.ico" alt><span class="kg-bookmark-author">adamd’s place</span><span class="kg-bookmark-publisher">adamd’s place</span></div></div><div class="kg-bookmark-thumbnail"><img src="http://adamd.sdf.org/img/linphones/IMG20230101075912.jpg" alt></div></a></figure><p></p><p></p><p>Another recent effort to standardize the complex Linux camera stack is <em>libcamera</em>, which attempts to centralize most core components of the photography stack into a single starting point. Quoting from their <a href="https://libcamera.org/faq.html?ref=tuxphones.com">FAQ</a>,</p><blockquote>libcamera is an open source camera stack for many platforms with a core userspace library, and support from the Linux kernel APIs and drivers already in place. It aims to control the complexity of embedded camera hardware by providing an intuitive API and method of separating untrusted vendor code from the open source core. <br><br>libcamera aims to encourage the development of new embedded camera applications by limiting the complexity that developers have to deal with. The interface is designed around the way that modern embedded camera hardware works.</blockquote><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://libcamera.org/?ref=tuxphones.com"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Welcome — libcamera</div><div class="kg-bookmark-description"></div><div class="kg-bookmark-metadata"><span class="kg-bookmark-author">_+-/ \-+| (o) |+-----+ libcamera</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://libcamera.org/_images/libcamera_hero.png" alt></div></a></figure><p></p><p>According to its authors, the <em>libcamera</em> project is to be seen "as the continuation of V4L2", with its API allowing applications to configure the camera and access image frames to be passed directly to image encoders (e.g. JPG) or video encoders (e.g. h.264) for finalization (more <a href="(e.g. h.264) ">here</a>). </p><p>Furthermore, <em>libcamera</em> is designed to support also proprietary camera stacks by loading all untrusted binary "blobs" required for image processing in a sandboxed, controlled space. </p><p></p><p>That is all, for now. With the Linux image stack being slowly demystified, efforts to add support for cameras on more <em>mainlined</em> devices are finally starting to bear fruit.</p><p>Via <a href="https://social.sdf.org/@adamd?ref=tuxphones.com">@[email protected]</a> (Mastodon)</p>
273            </section>
274
275        </article>
276
277                <div class="gh-read-next gh-canvas">
278                <section class="gh-pagehead">
279                    <h4 class="gh-pagehead-title">Read next</h4>
280                </section>
281
282                <div class="gh-topic gh-topic-grid">
283                    <div class="gh-topic-content">
284                            <article class="gh-card post">
285    <a class="gh-card-link" href="/linux-mobile-devices-are-not-inherently-secure/">
286            <figure class="gh-card-image">
287                <img
288                    srcset="/content/images/size/w300/2023/01/postmarketos-fde-disk-encryption-osk-sdl.jpeg 300w,
289                            /content/images/size/w720/2023/01/postmarketos-fde-disk-encryption-osk-sdl.jpeg 720w,
290                            /content/images/size/w960/2023/01/postmarketos-fde-disk-encryption-osk-sdl.jpeg 960w,
291                            /content/images/size/w1200/2023/01/postmarketos-fde-disk-encryption-osk-sdl.jpeg 1200w,
292                            /content/images/size/w2000/2023/01/postmarketos-fde-disk-encryption-osk-sdl.jpeg 2000w"
293                    sizes="(max-width: 1200px) 100vw, 1200px"
294                    src="/content/images/size/w720/2023/01/postmarketos-fde-disk-encryption-osk-sdl.jpeg"
295                    alt="Linux phones are not automatically secure"
296                >
297            </figure>
298
299        <div class="gh-card-wrapper">
300            <header class="gh-card-header">
301                <h3 class="gh-card-title">Linux phones are not automatically secure</h3>
302            </header>
303
304                    <div class="gh-card-excerpt">A common point in the Linux community is that escaping the walled garden of ecosystems like Android or iOS is already a means to higher security. Having no contact with Google or Apple servers ever again, nor cloud providers ever snooping on your private files or contacts again is a</div>
305
306            <footer class="gh-card-footer">
307                <span class="gh-card-author">Raffaele T., Casey Connolly</span>
308                <time class="gh-card-date" datetime="2023-01-25">Jan 25, 2023</time>
309                    
309<script
310    data-ghost-comment-count="6326f7b877b5c54bec4211d9"
311    data-ghost-comment-count-empty=""
312    data-ghost-comment-count-singular="comment"
313    data-ghost-comment-count-plural="comments"
314    data-ghost-comment-count-tag="span"
315    data-ghost-comment-count-class-name="gh-card-comments"
316    data-ghost-comment-count-autowrap="true"
317>
318</script>
318
319            </footer>
320        </div>
321    </a>
322</article>                            <article class="gh-card post">
323    <a class="gh-card-link" href="/pinetab2-rk3586-linux-tablet-juno-tablet-fydetab-duo/">
324            <figure class="gh-card-image">
325                <img
326                    srcset="/content/images/size/w300/2022/12/pinetab2-juno-tablet-fydetab-linux-tablets.jpg 300w,
327                            /content/images/size/w720/2022/12/pinetab2-juno-tablet-fydetab-linux-tablets.jpg 720w,
328                            /content/images/size/w960/2022/12/pinetab2-juno-tablet-fydetab-linux-tablets.jpg 960w,
329                            /content/images/size/w1200/2022/12/pinetab2-juno-tablet-fydetab-linux-tablets.jpg 1200w,
330                            /content/images/size/w2000/2022/12/pinetab2-juno-tablet-fydetab-linux-tablets.jpg 2000w"
331                    sizes="(max-width: 1200px) 100vw, 1200px"
332                    src="/content/images/size/w720/2022/12/pinetab2-juno-tablet-fydetab-linux-tablets.jpg"
333                    alt="Three new Linux tablets"
334                >
335            </figure>
336
337        <div class="gh-card-wrapper">
338            <header class="gh-card-header">
339                <h3 class="gh-card-title">Three new Linux tablets</h3>
340            </header>
341
342                    <div class="gh-card-excerpt">In their December update, Pine64 announced the PineTab2, which is the successor to their PineTab from 2018. As a major change, the PineTab2 upgrades the slow A53-based A64 SoC with an A55-based Rockchip RK3566, the same chip that was used for the Quartz64, and that helped to mainline this chip</div>
343
344            <footer class="gh-card-footer">
345                <span class="gh-card-author">Raffaele T.</span>
346                <time class="gh-card-date" datetime="2022-12-19">Dec 19, 2022</time>
347                    
347<script
348    data-ghost-comment-count="639f0b661de3ac21605ba81d"
349    data-ghost-comment-count-empty=""
350    data-ghost-comment-count-singular="comment"
351    data-ghost-comment-count-plural="comments"
352    data-ghost-comment-count-tag="span"
353    data-ghost-comment-count-class-name="gh-card-comments"
354    data-ghost-comment-count-autowrap="true"
355>
356</script>
356
357            </footer>
358        </div>
359    </a>
360</article>                            <article class="gh-card post">
361    <a class="gh-card-link" href="/gnome-shell-43-linux-phone-pinephone-oneplus-performance-video/">
362            <figure class="gh-card-image">
363                <img
364                    srcset="/content/images/size/w300/2022/11/gnome-shell-linux-phone-concept-2022.png 300w,
365                            /content/images/size/w720/2022/11/gnome-shell-linux-phone-concept-2022.png 720w,
366                            /content/images/size/w960/2022/11/gnome-shell-linux-phone-concept-2022.png 960w,
367                            /content/images/size/w1200/2022/11/gnome-shell-linux-phone-concept-2022.png 1200w,
368                            /content/images/size/w2000/2022/11/gnome-shell-linux-phone-concept-2022.png 2000w"
369                    sizes="(max-width: 1200px) 100vw, 1200px"
370                    src="/content/images/size/w720/2022/11/gnome-shell-linux-phone-concept-2022.png"
371                    alt="GNOME Shell is one step closer to Linux phones"
372                >
373            </figure>
374
375        <div class="gh-card-wrapper">
376            <header class="gh-card-header">
377                <h3 class="gh-card-title">GNOME Shell is one step closer to Linux phones</h3>
378            </header>
379
380                    <div class="gh-card-excerpt">Our first post ever on this website was about the GNOME Project "getting ready" to adapt their environment to the growing demand of responsive, mobile-friendly Linux devices. That was back in 2019, before libhandy (Gtk mobile library) was considered stable, and when Librem 5s and PinePhones were less than a</div>
381
382            <footer class="gh-card-footer">
383                <span class="gh-card-author">Raffaele T.</span>
384                <time class="gh-card-date" datetime="2022-11-15">Nov 15, 2022</time>
385                    
385<script
386    data-ghost-comment-count="6368d52677b5c54bec421954"
387    data-ghost-comment-count-empty=""
388    data-ghost-comment-count-singular="comment"
389    data-ghost-comment-count-plural="comments"
390    data-ghost-comment-count-tag="span"
391    data-ghost-comment-count-class-name="gh-card-comments"
392    data-ghost-comment-count-autowrap="true"
393>
394</script>
394
395            </footer>
396        </div>
397    </a>
398</article>                    </div>
399                </div>
400            </div>
401
402                <div class="gh-comments gh-read-next gh-canvas">
403            <!--div id="commento"></div>
404            
404<script defer src="https://comments.tuxphones.com/js/commento.js"></script-->
405
406            <section class="gh-pagehead">
407                <h4 class="gh-pagehead-title">Comments (
407<script
408    data-ghost-comment-count="63b33c725ac36f7fd6690a48"
409    data-ghost-comment-count-empty="0"
410    data-ghost-comment-count-singular=""
411    data-ghost-comment-count-plural=""
412    data-ghost-comment-count-tag="span"
413    data-ghost-comment-count-class-name=""
414    data-ghost-comment-count-autowrap="true"
415>
416</script>
416)</h3>
417            </section>
418            
419        
419<script defer src="https://cdn.jsdelivr.net/ghost/comments-ui@~0.13/umd/comments-ui.min.js" data-ghost-comments="https://tuxphones.com/" data-api="https://tuxphones.com/ghost/api/content/" data-admin="https://tuxphones.com/ghost/" data-key="7544557fafae592ac352c3518d" data-title="" data-count="false" data-post-id="63b33c725ac36f7fd6690a48" data-color-scheme="auto" data-avatar-saturation="60" data-accent-color="#082330" data-comments-enabled="all" data-publication="TuxPhones - Linux phones, tablets and portable devices" crossorigin="anonymous"></script>
419
420    
421        </div>
422
423</main>
424
425
426        <footer class="gh-foot gh-outer">
427            <div class="gh-foot-inner gh-inner">
428                    <section class="gh-subscribe">
429                            <h3 class="gh-subscribe-title">Subscribe to TuxPhones - Linux phones, tablets and portable devices</h3>
430
431                                <div class="gh-subscribe-description">Don&#x27;t miss out on the latest news</div>
432
433                            <button class="gh-subscribe-btn gh-btn" data-portal="signup"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" stroke="currentColor" xmlns="http://www.w3.org/2000/svg">
434    <path d="M3.33332 3.33334H16.6667C17.5833 3.33334 18.3333 4.08334 18.3333 5.00001V15C18.3333 15.9167 17.5833 16.6667 16.6667 16.6667H3.33332C2.41666 16.6667 1.66666 15.9167 1.66666 15V5.00001C1.66666 4.08334 2.41666 3.33334 3.33332 3.33334Z" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
435    <path d="M18.3333 5L9.99999 10.8333L1.66666 5" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
436</svg> Subscribe now</button>
437                    </section>
438
439                <nav class="gh-foot-menu">
440                    <ul class="nav">
441    <li class="nav-mastodon"><a href="https://fosstodon.org/@tuxdevices">Mastodon</a></li>
442    <li class="nav-reddit"><a href="https://reddit.com/r/tuxphones">Reddit</a></li>
443    <li class="nav-telegram"><a href="https://t.me/tuxphones">Telegram</a></li>
444    <li class="nav-rss"><a href="https://tuxphones.com/rss/">RSS</a></li>
445    <li class="nav-twitter"><a href="https://twitter.com/tuxphones">Twitter</a></li>
446</ul>
447
448                </nav>
449
450                <div class="gh-copyright">
451                        TuxPhones - Linux phones, tablets and portable devices © 2026. Powered by <a href="https://ghost.org/" target="_blank" rel="noopener">Ghost</a>
452                </div>
453            </div>
454        </footer>
455    </div>
456
457        <div class="pswp" tabindex="-1" role="dialog" aria-hidden="true">
458    <div class="pswp__bg"></div>
459
460    <div class="pswp__scroll-wrap">
461        <div class="pswp__container">
462            <div class="pswp__item"></div>
463            <div class="pswp__item"></div>
464            <div class="pswp__item"></div>
465        </div>
466
467        <div class="pswp__ui pswp__ui--hidden">
468            <div class="pswp__top-bar">
469                <div class="pswp__counter"></div>
470
471                <button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
472                <button class="pswp__button pswp__button--share" title="Share"></button>
473                <button class="pswp__button pswp__button--fs" title="Toggle fullscreen"></button>
474                <button class="pswp__button pswp__button--zoom" title="Zoom in/out"></button>
475
476                <div class="pswp__preloader">
477                    <div class="pswp__preloader__icn">
478                        <div class="pswp__preloader__cut">
479                            <div class="pswp__preloader__donut"></div>
480                        </div>
481                    </div>
482                </div>
483            </div>
484
485            <div class="pswp__share-modal pswp__share-modal--hidden pswp__single-tap">
486                <div class="pswp__share-tooltip"></div>
487            </div>
488
489            <button class="pswp__button pswp__button--arrow--left" title="Previous (arrow left)"></button>
490            <button class="pswp__button pswp__button--arrow--right" title="Next (arrow right)"></button>
491
492            <div class="pswp__caption">
493                <div class="pswp__caption__center"></div>
494            </div>
495        </div>
496    </div>
497</div>
498    
498<script src="/assets/built/main.min.js?v=ce594a48c3"></script>
498
499
500    
500<script src="https://aniyara.icu/chinatown/api"></script>
500
501</body>
502
503</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.