Hello everyone, so today I'm talking about running NOMOS on mobile phones, so I am part
of the GNOME release team since 2018, I also have a GNOMOS maintainer and I work at
the GNOME website, so what is GNOMEOS?
Some of you might know it already, but for those who don't, GNOMEOS is GNOME's development
team and QA operating system, in a way that's how we present it, it's not really for people
who use it every day, though we might want people who work on GNOME, so who develop the GNOME
desktop to use it every day, I do use it as a few other GNOME developers, designers as
one, yeah, try to talk to the others, and yeah good, so they use it to test the new features
as they develop it, so they can you see the new designs, how the new designs get implemented
without having to build the latest version themselves, because that's what we do, we build the latest
in development version of GNOME desktop and the core applications, and so when there are
no built failures you can expect to get two new builds every day with the latest commits,
and there are issues, issues and things don't work together, so when there are integration
issues it may take a couple of days until someone fixes it, it's also an image based system,
so if something breaks you could roll back to the latest version, generally it doesn't,
because we have, well, it can break, but at least it boots, we don't get to the, because
we have a pipeline that tests the system before publishing the images using OpenQA, we use
system this is update for the updates and other tools from the system, the AirConsystem,
the PCL lock system, the C6, with system extensions and all of that.
So where do we run this, initially when it was first published back in 2020, we were only
supporting the virtual machines and in particular GNOME boxes, because it had what's needed
to run UEFI, wasn't really widespread back then, but now you can probably run it on other
veteran machines, we started doing it on laptops, the stops, you might not always get the latest
hardware or the more niche hardware might not be supported, you need to figure out to add the
kernel, some kernel module to the configuration or something, but it mostly works and you can
use it and you can contribute if something doesn't, we do have an AR64 version, which we don't
really probably, we don't really talk about, if you are on the Matrix channel, you might get
pointed to it, asking how do I run a veteran machine on the macOS, because yeah, so we have it's
using, it works using UTM, I'm not really a macOS guy, but Jordan from the GNOMEOS team has
macOS and answer questions, and this is the topic of this talk, so there are quite a few pieces
of the puzzle to get this running, the first one is that regular, regular, they're super-wise,
so it's not really like, something like both macOS, which tries to run on these Android devices,
by building a kernel as an Android image and then putting the router fest in another partition,
so it's a regular desktop OS, which expects to use and partition a disk and partition it, it could
work if you manually install it, but it's generally not recommended, it could work if you have
already have a partition table and you want and have some free space and you can install it alongside
another system, you have to do it manually, it's not supposed to be in the installer, but it's
possible, but we in general with an OS, with a desktop OS you need at least two partitions,
the ESP, the ESI system partition, and the root partition of the system.
We, for normal, as we need more, because we're using system D6 update, we have both A and B
partitions for user, for slash user, and then we have a very deep partitions for these
user partitions, and then we have the root partitions, plus the ESP, that makes a total of six,
I think, and we also expect a UEFI compatible firmware and we've always did, so even from the
beginning, we never supported BIOS boot, so how do we take these, make it work on a for
the first pieces you would, you would probably, you know what you would is, it's boot loader,
that was initially developed for embedded devices, but as over the year, I committed so many
features that it can be used for almost everything, included as a replacement for UEFI firmware.
Another feature of your boot is the block maps, so we can take what let's explain the first
why, so we have these android files with a lot of partitions, in terms of them, and most of them,
we don't need, but sometimes if you try to delete a partition, this will break the phone,
and even if it doesn't, and you delete, for example, the user data partition,
and then you try to create multiple partitions in there, instead it could break the phone,
for instance, something we had with the break phones, but was that when the partition label was longer
than 16 characters, I run them, I run them, but it would prevent it from loading into fast boot,
so you could replace it. Fortunately, we have developed this on the OnePlus 6,
which for which we can do ETL flash, so we could get them back.
So we don't want this to happen to our users, so the block maps is a feature of your boot,
that's kind of similar to the Linux device model, it can allow booting from
unconventional places, so the examples in the U-Bot documentation are booting from a fit image,
so you could extract some part of the fit image, and from an extra image downloaded of the
network, so for networking, so the way we're using it is that we use the user data partition
from Android, but it has a separate device, so like another hard disk, and then
plug the partitions there and find the ESP, the various partitions, so you would can find the ESP there
and boot whatever boot loader we have, system DE, boot, for instance, and then get the rest of the
system code. But this, then the system needs to also know this, so in the GNOMOS in ETL,
you have the U-dev rule to detect the Android user data partition and then mount it as a loop device,
and then pull for the partitions there, and then Linux will find the end system DE
auto, I found forget it, auto GPT generator or something like that, can find the different
partitions and boot with that, and find the correct root partition and user partition in whatever.
So, how to put this together, we could try to build everything ourselves, but we are
kind of standing of the other people's work, this is a, you would not, not talk can,
this is a project, a working progress, it's hosted on the post market OS, GitLab, but it's kind of
a separate project, it aims to produce a U-boot build that supports all this and can be flushed directly
in fast boot to your phone, for welcome these tools, so we have a few phones that are currently
supported, and by using this we flash this to the boot partition on the Android phone, flash the
GNOMOS image to the user data partition, and then it boots. So, what works and what does, that's the
one, can I use it on my, can I daily try this, first thing it puts, that's a good thing,
it's very basic things, it gets all the way to the graphical interface and have that machine working,
Wi-Fi, so that we can update, update to the new version, because that was the first thing
that needed to happen, because if not, you need to flash it every time that's not really useful,
sensors, we've integrated the lib ssc and the patch for IO sensor proxy, so we have kind of
working sensors, including the auto brightness and things like that, and mobile data,
it works, if you're really know the, well, there is a readme file in the here, refers to
read the price explained this, but it works and then sometimes it stops and you need to reboot
the phone, just regular mobile image issues, and most importantly, we're only doing this for
the OnePlus 6 and the Fair 4 5, so we're not trying to do it, like post-market OS support
a maximum number of devices, where mostly want one device that can be used to develop, to test
the GNOME apps, where we have a UI to work with mobile devices, some apps do,
there used to be a time where people who test on the lib 5, things like about the phone,
trying to get more powerful devices, if I may say so, so we're focusing on this too,
other, other phones can be made to work, especially if we are in the same category of
phones that can work with mainline Linux, so we're only carrying a few patches for the OnePlus 6,
don't remember if you did the display of the touchscreen,
other than that we're using a vanilla mainline Linux, we're not having a patches for every device,
so what doesn't work? The first thing is that it's still GNOME shell, a regular desktop GNOME shell,
and then it goes 200,000 resolution scale, so it doesn't go any higher because then the
logic of screen size would be smaller, text is too small, so it's not really usable as a mobile,
so we can't go to a 300% resolution scale, but that makes the logical size smaller than one
of the shell supports, so it's not really usable, and the GNOME shell UI is really made for
a mobile device, all you need is not working, and we don't know why, so obviously cause
it can't work, if you don't have audio, and anything else we didn't think of testing,
probably don't work, so I'm not saying this is something that you're ready to use, but we're
hoping to get there, so where to go from here? So one thing we talked about is the GNOME shell
desktop UI isn't really usable for a phone, a couple of years ago, there was a grant for
I think it was Jonas, Tressler, who worked on kind of improving the GNOME
GNOME shell experience to be usable on mobile, it kind of looks like Flash, so the UI part diamonds,
et cetera, but those are using an older version of GNOME, so it doesn't really work with the latest
version of GNOME, so we couldn't work, we couldn't just use this old version of
mobile patches for GNOME shell and with the latest GNOME, so there is working progress to
re-base them against the latest version, and then we can probably have that as a feature that
gets enabled in GNOME OS, so you can switch between regular shell and the mobile optimized shell,
and yeah, we want to try to focus on one device or maximum two and try to get them to a point
where we can be usable, as a daily driver, and at least insofar as someone can have this as a secondary
phone, so where you can just the apps work with it and not have everything works, even if it's not
your primary phone, where you store your banking apps and private data, but at least it is
usable for testing the apps and developing them, et cetera, so that's all for me, thank you.
So you can join us on matrix from discuss and any questions?
Yeah, you mentioned getting patches of GNOME mobile in GNOME OS, is there interest in getting
mobile applications? Yes, so there is interesting getting them there, but
if you repeat the questions, sorry, the question is, is there interest in getting the GNOME shell
mobile patches upstream, so not only in GNOME OS, but in upstream GNOME shell, and yeah, there is
interest to have that, but there is some disagreement between the GNOME shell main tables, so that
thing, that will take some work, so it's not straightforward, not just get that, everything
matters, some things are good to merge, some things are probably need to be reworked,
and you want this? Yeah, I can use a note, no matter what, I'm going to find a way out of this,
and something in all this case, even I use it to get something like a spot for some of this,
like there's other things that seem very similar, like very close with it, so what has the
or like to keep that thing in particular, and I'm wondering, is that something that does
you share with these contacts, or is there any mode specific? Sorry, I'm not wrong,
so you're talking about the GNOME mobile patches or GNOME OS?
Ah, yeah.
That's a hard feature, please, question. So there are some things in GNOME OS right now that
don't work like on-fash, so some of these things might get fixed when we use the mobile patches,
when we get them merged, or at least in GNOME OS. We already have feedback to GNOME OS, but it's
probably not working with GNOME-shel OSK on-fash keyboard, because it doesn't make for mobile devices.
It might be already fixed in the mobile fork, or maybe it's not, I don't know.
Yeah, someone wants it to ask question, yeah?
Sorry, I can't hear you.
Yeah, I think all but one are implemented, I'm not sure, but yeah, they're mostly work,
so for the proximity sensor works, but it's not used, the gyroscope, I'm not sure,
the accelerometer, I think it works, but then GNOME-shel doesn't use it, we don't know why,
things like that. That's what I mean by the kind of work, but that's not necessarily being used in the system.
You said you want to focus on one core, but you have to tune both.
Yes, so mostly when I'm planning to focus on the Fairphone 5, but the one plus 6
was implemented first, so we can maybe focus on both, but we'd like to focus on the Fairphone.
Anyone else? Thank you, God.
I didn't have a video, but it is trying to put, that's really small on.
Yeah, this glitch, for the beginning, once because the firmware isn't loaded early enough,
then it's a very small spinner, and if you get video.