SFOS refactoring project (news thread)

UPDATE #25

The average current consumption has been reduced to 22 mAh on average and the Sailors menu has been added to deal with major SailFish OS tasks like backup and restore:

Do the root filesystem back-up immediately after installation takes near 122 seconds and to restore it, takes 68 seconds. The back-up can be seriously speed up using 8 processors for pigz instead of the 4 enabled at this time. Just matter of writing two functions:

  • cpus_full_power() for 8 cores with schedutil as scheduler
  • cpus_half_power() for 4 cores with conservative as scheduler

Obviously, also taskset -pc 0-4 $$ for the first and taskset -pc 0-7 $$. The cose is just ready to support the different hardware configurations 4:4 for mark2 and 2:6 for mark3.

With all the CPU working and set with schedutil as scheduler, timings are:

  • backup 122s → 75s
  • restore 68s → 45s

The Factory reset option is not still operative but listed as TODO.

UPDATE #26

Punkt. puts a like on my MP01 clone post on LinkedIn.

link: Roberto A. Foglietta on LinkedIn: WELCOME BACK NOKIA 3310 Inspired by Punkt. MP01, I have decided to adapt…

I presume that my educated guess about cross-branding and cross-marketing as a benefit for both parties has been positively understood.

Are they going to sue me because I used their phone layout as background image? I do not think so. The two products do not completely overlap on the market and therefore, it is a cross-product (or cross-branding) marketing. Both enjoy the co-competition and my virtual terminal is a spot for their product: we copy the best.

link: Where to go after Sailfish? - #272 by robang74

After all, who tries the virtual clone is much more keen to buy the real device and who has bought the real device is happy to know that the smartphone is going to buy is offering a virtual clone because it confirms that s/he bought a valuable product.

How much the virtual clone will imitate the real device, is a matter of a commercial deal among the parties { vendors, distributors, professional modders } vs Punkt. Those prefer to go with the cheaper but iconic 3310 will find a deal with Nokia. All the others can have an unbranded virtual phone or their own customized terminal.

What RedFish OS should provide is just a reasonable easy way to customize that terminal in such a way the { vendors, distributors, professional modders } can adapt it to their own business model as long as they are not going to have a deal for delivering a ready-to-go iconic or branded template.

In the books this is called the DIY dilemma: buy it ready to go or do it by yourself. Nothing new.

UPDATE #27

Look to my coming on the first light of the fifth day, at dawn look to the east.

The smartphone was left sleeping but not completely untouched for 5 near 6 days

redfishos:~ # uptime
 09:07:23 up 5 days, 21:03,  0 users,  load average: 1.40, 1.22, 1.14

It started the challenge with a fully charged battery (3600 mAh by official specification)

=> Status battery: 100%, not charging n/a good

and I got it a bit before it was completely gone:

=> Status battery: 1%, charging fast good,

The average current confirm that the smartphone which never had been connected to an USB port, nevertheless had some interaction in these days:

=> Current 10s average absorption:
  \_ samples: 5964
  \_ min: 22 mAh
  \_ avg: 26 mAh in [26, 72] mAh
  \_ max: 72 mAh

Even if the average presented is over-rated compared the reality, in fact:

  • 26 x ((24 x 5) + 21) = 3.666 mAh

  • (3600 x 0.99) / 141 = 25.28 mAh

  • 25.51 x 141 / 0.99 = 3633 mAh

However, a 1% of tolerance into the battery capacity or a small rounding error could explain pretty well the deviation observed. On the other hand, this also means that the numbers we are looking at, are real at 99%, at least, which is a great news.

UPDATE #28

Today, I have added a feature about a permanent storage for some configuration parameters.

First of all, it is important to clarify that a recovery image for its nature SHOULD NOT rely on any kind of persistent data otherwise its mission to be ALWAYS available and ALWAYS identical in its features among services different boots would be gone and moreover a persistent data can break it.

However, because the RedFish OS can be also used for assisting developers, modders and debuggers. It make sense that they can save some persistent data somewhere which is strictly associated with the bootable recovery image like the WLAN name and password, for example.

This can be acceptable as far as and as long as that data can be used just after the boot and by a manual procedure like a specific menu. The functions are:

redfishos:~ # rflist boot_perm
boot_perm_umount
boot_perm_is_mounted
boot_perm_device
boot_perm_loopdev
boot_perm_setup
boot_perm_mkfs
boot_perm_mount
boot_perm_free

redfishos:~ # boot_perm_mount; df -h $PERMCFS
Filesystem  Size  Used Available Use% Mounted on
/dev/loop0  3.9M   512      3.9M   0% /perm

To activate the permanent area the function boot_perm_setup() and boot_perm_mkfs() will provide the necessary features. I choose the VFAT in order to maximize the free space because it is just 4MB and the EXT4 or even the EXT2 filesystem would have took too much space. The size is purposely small to prevent and to disincentive its misuse.

How does it work?

The main idea is that apart the RedFish OS recovery image everything else is compromised or potentially unreliable. Possibly, also the RedFish OS recovery image could be broken but with a single fastboot upload the recovery image can be easily restored.

The script that generates the recovery image prevent the image to be bigger than 60MB and thus 4MB are always left free at the end of the boot_a partition. The last 4MB are left free and unwritten by the fastboot command and this grants the persistence among uploads.

The same happens for the boot_b partition, obviously.

The system knows on which partition is booted from and it will uses the related last 4MB. A menu voice that allows to copy the persistence area from boot_a and boot_b will be added but not the viceversa because it is dangerous supporting the idea that the user can arbitrary choose to boot from boot_b rather than boot_a. Because the boot_b can also contains something completely different like an emergency phone or an hidden system/data.

Everything else is just a set of functions in shell scripting.

Persistence menu

The persistence menu is a contextual one:

Depending the state of the persistence, it shows some options rather than others.

UPDATE #29

Minimum current absorption reached the 18mAh, the average is unchanged but it depends on the interactions: every power button press brings awake the smartphone for 15 minutes. It is reasonable to reduce the average reducing it to 5 minutes. With this trick, I managed to reach 21.36 mAh on average which is a milestone because 21.4 mAh means 7 full days (a week) of stand-by.

UPDATE #30

BEYOND GOOGLE & APPLE DUOPOLY
FOSS alternatives for digital mobility

StatsCounter tells us that in May '23, the market share for smartphone OSes is split in this way:

  • Android/Google 67.6%
  • iOS/Apple 31.6%

Which means the remaining is less than 1%. Today we are speaking about that 1%: available alternatives, future outlook, and, most importantly, why we have to care about that 1%.

Spoiler: because a study by the University of Edinburgh and Trinity College Dublin published in Q4/2021 proves what all we know – our smartphones leak our personal data and meta-data constantly.

2 Likes

Its a really small world!

1 Like

UPDATE #31

SFSCON 2023, material

1 Like

robang74 has a point here. The recovery images are more than limited and in fact are buggy. i.e. the root password on sshd is wrong.

It would be nice to boot a somewhat powerful recovery with “fastboot boot” without the need to flash over boot_a/b. Or flash it to recovery_a/b and boot into it on demand. The having to find a matching recovery/boot and flash there and back for 10 II and 10 III is a real problem when people have to actually recover!

But the whole communication style is questionable for sure, i happen to know robang74 from another project where his technical excellence was massively overshadowed by the way he presents his work and tries to make his points.

4 Likes

That was very interesting - would’ve loved to have seen the end.
They even had a “we’re back after the break” where they could’ve let you continue into.

the user you are trying to communicate with has been permanently banned

5 Likes

Ah well, at least he posted at one time.
The forum seems very quiet from anyone in a position to provide info about SFOS from Jolla’s end.

1 Like

Jolla have had a kind of buyout by an original founder.
We didn’t get much pre-release info from them before because elements of the community just aren’t mature enough to handle it. Also, their AI device now has to compete with a phone that can find your keys.

robang was mentally unstable and threatened people. He’s the only person to ever be banned from the forums.

7 Likes

You seem top know the reasons for the ban. Not knowing him well i feel sorry for him. But i don’t have the whole picture, maybe that would change my opinion

2 Likes

I assume it’s because he threatened people (for the second time).

He seriously rubbed people up the wrong way eg he implied the unpaid developers here were lazy and was arrogant with them around Linux coding.
And so he was attacked a lot. Being attacked triggered his less-than-sane tendencies.

Ideally, someone would have coached him how to deal with this situation and maybe get him the mental health support he needed. I did try & help him but it was a major project and I’ve got my own time-consuming health issues.

7 Likes