Difference between revisions of "PinePhone UBports OS Design Discussion"

Jump to navigation Jump to search
(initial edit)
 
(added the rest of the relevant portions of the log)
Line 2: Line 2:
As I saw a lot of bad things said about the UBPorts OS shipped with their Community Edition, and a lot of people were ready to give up on it, I asked UniversalSuperBox and the rest of the UBPorts people to help the general PinePhone community out, providing answers to some misunderstandings people have about the reasoning behind the Operating System and the choices they made to make sure it is a robust system to provide to casual users that do not yet see the option to contribute as viable.
As I saw a lot of bad things said about the UBPorts OS shipped with their Community Edition, and a lot of people were ready to give up on it, I asked UniversalSuperBox and the rest of the UBPorts people to help the general PinePhone community out, providing answers to some misunderstandings people have about the reasoning behind the Operating System and the choices they made to make sure it is a robust system to provide to casual users that do not yet see the option to contribute as viable.


I personally think the UBPorts team has made some very smart decisions to make linux more secure in a device that is always vulnerable to physical attacks, as it is moving around in the world, as opposed to the traditional Linux machine in a protected serverroom. Linux is very robust, it just does not try to protect against all Threat Models. UBPorts already provides a lot of devices with their OS, so they have a lot of experience and thought put into the system already, and it would be good to leverage that for other projects as well, once they are ready to look into those. Maybe they will use a different reasoning, but it still is good to learn how the UBPorts community solved their issues.
I personally think the UBPorts team has made some very smart decisions to make Linux more secure in a device that is always vulnerable to physical attacks, as it is moving around in the world, as opposed to the traditional Linux machine in a protected serverroom. Linux is very robust, it just does not try to protect against all Threat Models. UBPorts already provides a lot of devices with their OS, so they have a lot of experience and thought put into the system already, and it would be good to leverage that for other projects as well, once they are ready to look into those. Maybe they will use a different reasoning, but it still is good to learn how the UBPorts community solved their issues.


Specifically I asked for an answer to the reasoning behind the formatting scheme and creation of the UBPorts image, which is one of the things a lot of the people seem to struggle with. There are more issues that seemingly stop users from using their OS as a open system to experiment on, but these are for great reasons as weel, in my opinion. If we could understand those reasons better, all of our communities could improve.
Specifically I asked for an answer to the reasoning behind the formatting scheme and creation of the UBPorts image, which is one of the things a lot of the people seem to struggle with. There are more issues that seemingly stop users from using their OS as a open system to experiment on, but these are for great reasons as weel, in my opinion. If we could understand those reasons better, all of our communities could improve.
Line 11: Line 11:


==Chat log==
==Chat log==
So first, UniversalSuperBox chat log: (there is more, I will just include the part that is adressed yet)
So first, UniversalSuperBox chat log:


  UniversalSuperBox: abcde, there are 10 partitions on the device. Loader, scr, persist, boot_a, boot_b, recovery_a, recovery_b, cache, system, data.
  UniversalSuperBox: abcde, there are 10 partitions on the device. Loader, scr, persist, boot_a, boot_b, recovery_a, recovery_b, cache, system, data.
Line 25: Line 25:
  UniversalSuperBox: Cache and system are the same size so that cache can be system_a and system can be system_b someday
  UniversalSuperBox: Cache and system are the same size so that cache can be system_a and system can be system_b someday
  UniversalSuperBox: Data stores all of the writable data on the system.
  UniversalSuperBox: Data stores all of the writable data on the system.
Unaddressed part:
UniversalSuperBox: The system is set up on boot by the initramfs at https://github.com/ubports/initramfs-tools-ubuntu-touch/tree/xenial_-_edge_-_pine.
UniversalSuperBox: Specifically, look at the halium script in the scripts folder
UniversalSuperBox: I know it's called halium. It is not exclusively for halium.
UniversalSuperBox: The kernel, initramfs, and such are all pulled together by the scripts inside https://gitlab.com/ubports/community-ports/pinephone
UniversalSuperBox: As well as u-boot and the rest
UniversalSuperBox: They are all placed into a device image (.tar.xz) which is applied by the system-image upgrader after the ubports image is applied.
UniversalSuperBox: All of that logic is inside a script in the jumpdrive repo
UniversalSuperBox: But you can find the other constituent parts of a single image (or a delta) at https://system-image.ubports.com/16.04/arm64/mainline/devel/pinephone/index.json
UniversalSuperBox: The system-image client is also https://github.com/ubports/system-image
UniversalSuperBox: And the server files are built by https://github.com/ubports/system-image-server
UniversalSuperBox: There are several problems that make me cautious to release a stable image right now. The most important one is https://bugreports.qt.io/browse/QTBUG-85802
UniversalSuperBox: Which causes the browser to crash for seemingly no reason and it's really annoying. There are also issues with keeping time which are unacceptable and must be fixed.
UniversalSuperBox: There is ongoing work to enable the camera and GPS is working at least somewhat some of the time now. All in devel.


==Analysis==
==Analysis==
Line 59: Line 74:
Also there is a lot of talk about A and B partitions. They ensure that even if things go horribly wrong, there are ways to get back in a usable state. I will expand on that later...
Also there is a lot of talk about A and B partitions. They ensure that even if things go horribly wrong, there are ways to get back in a usable state. I will expand on that later...


More will follow :) If you want to show off your reasonings in the OS you like, talk to me on IRC (irc.pine64.org) or any of the connected chat channels. I am abcde :)
More will follow :) If you want to show off your reasoning in the OS you like, talk to me on IRC (irc.pine64.org) or any of the connected chat channels. I am abcde :)