Jump to content

Pro1x with SailfishOS


Recommended Posts

Following @esialb's thread on Ubuntu Touch, here's one showing that SailfishOS works too:

photo_2022-08-06_19-05-09.thumb.jpg.0bdbf71b688bfab5c36e88529980b024.jpg

photo_2022-08-06_19-49-17.thumb.jpg.813d098c8e842528a45520cfb78f8492.jpg

photo_2022-08-06_19-05-13.thumb.jpg.8acb5436c39bb63ebe678c7c7692c483.jpg

photo_2022-08-06_19-05-17.thumb.jpg.003cbd571fa2a736ca09c9a7c2970740.jpg

———

Instructions:

- First and foremost, backup your "persist" partition. Better safe than sorry. Instructions are in other guides, Please, do not skip that step, there is no other way back to the vanilla persist partition.

- Download and extract the latest artifacts.zip from the SailfishOS port repository: https://gitlab.com/sailfishos-porters-ci/halium-qx1050-ci/-/jobs

- Pick your clacky Pro1x, power it down, hold down [Volume -] and [Power] until it boots. It will show a dead droid logo. From there, hold [Power] and without releasing it, hit [Volume +] briefly with another finger. From the menu that just appeared, select Bootloader. The phone will reboot into bootloader mode. Plug it to your computer, then from the PC:

cd /path/to/extracted/sfos/archive/
./flash.sh

- You're done.

———

Convenience tweaks:

### Allow homescreen rotation
devel-su sed -e "s/return allowed/return Orientation.All/" -i  /usr/lib64/qt5/qml/Sailfish/Silica/Page.qml

### Install keyboard daemon to lock apps in landscape when it's open
pkcon install wget
cd ~/Downloads && wget https://repo.sailfishos.org/obs/sailfishos:/chum/4.4.0.68_aarch64/aarch64/harbour-taskswitcher-0.6.2-1.1.1.jolla.aarch64.rpm
pkcon install-local harbour-taskswitcher-0.6.2-1.1.1.jolla.aarch64.rpm
# Then go to Settings/Taskswitcher, enable "Fxtec Pro1" as Primary keyboard, "gpio-keys" as Secondary Keyboard, check "Lock Orientation" and "Lock Orientation on Slide", set "Orientation landscape", and check "Start Taskswitcher on bootup" and start the daemon at the top.

———

It is still work in progress, but Adam (@piggz) and whoever else from the #sailfishos-porters porting squad who might have contributed have already made wonders. A quick overview of what I have tested below, but remember it's very preliminary (I haven't installed anything yet and some apps are known to improve keyboard and systemwide orientation support on Pro1 for instance).

# Yays
- Fingerprint works (and better than on Android)
- It's butter smooth
- Camera works (but…)
- LED works
- Keyboard with the Pro1x layout works out of the box (and thankfully the SFOS kernel allows using shift on keys where a special yellow modifier shouldn't be useful, like 2nd layer chars on the digit row); only issue is : requires Yellow+? whereas Shift+? should work too
- Keyboard opening wakes the device from sleep
- Escape wakes the screen when it's dimming down (but not when it's sleeping already)
- Bluetooth works
- Brightness slider works (maybe even a tad better than on Android, though still not very linear, and goes greenish when dimmed)
- Encryption works
- Applications that rotate to landscape when the keyboard is out are indeed locked as long as the keyboard is out
- Waydroid works (with some manual work; may not be required anymore with latest images)
- Telephony works
- 3G/4G work
- SMS/MMS work
- All sensors work (magnetometer, light and proximity, gyroscope, etc.)
- GPS works
- Dual-sim detected (although I just have one sim card so I have not tested the other slot)
- Keyboard backlight works (PR pending merged)
- LXC containers work with Xsession (with some work)
- Vibration works
- SD card works

# Neighs
- Very low FPS in the camera applications when recording videos, and they crash when recording is stopped
- Applications take a relatively long time to open
- No system-wide landscape autorotate out of the box yet (but see convenience tweaks above to enable that manually)
- Somewhat higher probability of app crashes than on Pro1, I would say
- Many SFOS applications are not yet compiled for aarch64 (including most of my packages)
- Shift or Ctrl + arrows on text field don't select or move words in browser text fields (but that works in other applications as far as I can see)
- There is an issue with dnsmasq (dependency for Waydroid) breaking the resolving in the browsers, but it's not a port issue, it's a SFOS one that should get fixed in future updates; until then, "devel-su systemctl disable dnsmaq && devel-su systemctl mask dnsmasq" fixes it
- Shutter button does nothing for now, but I can detect it in the terminal so it shouldn't be too hard to do something with it
- Your router and Pro1x SFOS may not be good friends
- WiFi works but may drop connection when the phone goes into sleep mode
 

# Dunnos
- VoLTE does not work yet but it doesn't on most official devices either at the moment, SFOS is beta testing it on a selection of devices, however it's essentially modem-specific proprietary blob, so getting it to work is not trivial. The porter really wants to, so we'll see.

 

# Tips

———

Moar vids and pics

photo_2022-08-07_05-33-09.thumb.jpg.6fabb852d2edd70b79cbcf58c92fa8dd.jpg

photo_2022-08-06_19-05-21.thumb.jpg.3c2355353ad71c62a8b98dc52afde39b.jpg

photo_2022-08-06_19-05-24.thumb.jpg.7a27a1aa212620eb02457b4ed295489b.jpg

20220815_221338_1920.thumb.jpg.b4876abfecf8abf78cf38042893913ea.jpg

20220815_221345_1920.thumb.jpg.ef6360cec37d40ceb900db0355aefbb9.jpg

 

photo_2022-08-06_01-29-11.thumb.jpg.1cd701750d89913e49844986a92e683c.jpg

photo_2022-08-06_01-40-48.thumb.jpg.f32dea2cf0c22a22d10d953d6c00c48f.jpg

photo_2022-08-06_03-17-41.thumb.jpg.6fd36b0e6e14063ba8fc83c666e2eec1.jpg

--

Kabouik

 

 

 

Edited by matf-kabouik
  • Like 4
  • Thanks 5
Link to post
Share on other sites
  • Replies 135
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Following @esialb's thread on Ubuntu Touch, here's one showing that SailfishOS works too: ——— Instructions: - First and foremost, backup your "persist" partition

Hi all, I am late to the party. I didn’t expect to receive this device and it showed up at my door late last week. I am really struggling to install Sailfish on the qx1050. I followed the instruc

LXC containers work (with Xsession, but the setup is not as user friendly as it was on Pro1 in 2020😞 Still no luck with Waydroid despite my attempts, but theoretically this shou

Posted Images

Thanks @matf. This is a fantastic heads up. My Pro1X is in transit, and I will be keen to try out SFOS. Any updates as you discover more would be fantastic.

In settings>SIM cards, you can probably turn off the sim 2 slot if you are not using it.

Also, the screenshot of the storage looks odd indeed. So much (wasted) space in to system data partition. And missing space elsewhere? It doesn’t seem to add up to 256? Perhaps some work is needed on the partitions?

Thanks again for posting a status. It looks great!

  • Like 1
Link to post
Share on other sites

Yup I didn't mean to add the dual-sim item in the Neighs, but wanted it in the Yays! I just meant that I haven't tested the second slot yet.

About storage, there's something even stranger since this unit is a 128/6 GB variant, so I shouldn't see this much storage. I forgot to check how the partition sizes were showing in Android. 

I posted this list on Discord and Telegram too, but I'm trying to keep the one in this thread up to date so far; I updated it a bit already. Not sure I'll dot it in Discord/Telegram.

--

Kabouik

Edited by matf
  • Like 2
Link to post
Share on other sites

To disambiguate, I'm not the porter! @piggzis.

I'll try to progress with Waydroid as I know it's going to be a game changer for many users, but unfortunately right now I have to choose between web-browsing or waydroiding (see issue here: https://forum.sailfishos.org/t/browser-not-working-alongside-dnsmask/10829/29?u=kabouik).

Edited by matf
  • Like 1
Link to post
Share on other sites

LXC containers work (with Xsession, but the setup is not as user friendly as it was on Pro1 in 2020😞

photo_2022-08-07_03-46-17.thumb.jpg.cf9cd5c390f7c72801edc2aaca1c89ba.jpg

photo_2022-08-07_03-46-13.thumb.jpg.9c8f06e6530a17446e575d27d226d1f1.jpg

photo_2022-08-07_05-33-09.thumb.jpg.93c5cdc0141d0033569f72acab9e7144.jpg

Still no luck with Waydroid despite my attempts, but theoretically this should be possible because there are unofficial images for Halium 11 that have already been shown to work on SailfishOS (other devices), Ubuntu Touch, and Droidian. These are the images I tried.

 

Edited by matf
  • Like 5
Link to post
Share on other sites

Sure, I posted a link above in the message showing LXC pics, here it is: https://talk.maemo.org/showpost.php?p=1574496&postcount=237

The setup is not exactly user-friendly at the moment because the dev of harbour-containers does not use Sailfish anymore, and some things have changed, but it can still be made to work.

Then in my opinion you also need some configuration inside the container to make it really convenient for the small screen size and to use keybindings as much as possible instead of touch (see what I did with my Pro1 for instance: search on Youtube for "Pro1 SaiilfishOS LXC", or just head to https://movio.sauru.sh/mobilelinux), since out of the box it's just a vanilla distro and WM on a tiny touch screen.

Edited by matf
  • Like 2
Link to post
Share on other sites
7 hours ago, matf said:

Then in my opinion you also need some configuration inside the container to make it really convenient for the small screen size and to use keybindings as much as possible instead of touch (see what I did with my Pro1 for instance: search on Youtube for "Pro1 SaiilfishOS LXC" ...

This, 100%.

Imho, configuring your 'containered' (desktop) GNU/Linux distro in a way to make best use of the small (touch-)screen is a large part of the work. That is, if you want to actually use the system productively rather than just show-off your neofetch output online to your friends once ...  😉 .

Trying to operate applications designed for desktop workstations via a touch interface can be frustrating even on a full-size display. On a small handheld touch-screen, the experience can quickly become infuriating, unless given some significant GUI customization.

In my setup (based on LineageOS, but that does not matter here) I solved this pragmatically by running the X11 server of my desktop Linux distro inside XRDP. That way, the container'ed GNU/Linux desktop can be accessed via remote-desktop apps running on the host OS (Lineage, Sailfish, etc.). Such apps typically allow for emulation of a virtual mouse pointer, with the Pro1(X)'s screen acting as touch pad. This saves you from having to hit minuscule buttons with your fingertips. Also things like pinch-to-zoom are natively implemented in most smartphone RDP clients. Similar results can in principle be obtained via VNC. I prefer XRDP, as it also does automatic session management in your GNU/Linux OS for you.

The downside is that, because of the additional remote-desktop layer (requiring encoding and decoding of the framebuffer) graphics performance is significantly worse compared to using an X11-server that runs natively on the host OS (as proposed by @matf).

Edited by claude0001
  • Like 1
  • Thanks 1
Link to post
Share on other sites

I cannot agree more with the neofetch show off part, nicely put @claude0001. And actually I am afraid that many users of LXC on SFOS or other systems have felt overwhelmed by the extra work needed to configure their DE, or just don't see how much of a game changer it can be, and they end up not using it much.

I have a VERY configured LXC container from my Pro1 that I can use and attach on my Pro1x, but so far I haven't been able to start X on it. It is a bit oudated and there's probably something that is conflicting, I have yet to identify what the issue is because I can start X in newly created containers just fine. I was very dependent on it on the Pro1, really looking forward to making it work on Pro1x. I did everything in that container, every day since early 2020, except calls and sms.

Edited by matf
  • Like 2
Link to post
Share on other sites

I did start from stock Android but I'm not sure if that would be a requirement. After flashing, do you get back to you existing UT install, or was it reset? I bet you did that already, but if it was reset, maybe triple check that you didn't mix the images at the beginning since we need to mix both archives? Can you maybe add a:

fastboot set_active a

at the end of the procedure? This should not make a difference, but it's worth trying.

Edited by matf
  • Thanks 1
Link to post
Share on other sites
14 hours ago, matf said:

I have a VERY configured LXC container from my Pro1 that I can use and attach on my Pro1x, but so far I haven't been able to start X on it.

In my LineageOS chroot, I encountered the problem that X.Org insisted on having access to System-V-style shared memory, but that the Android kernel implements only "Google-style" shared memory (/dev/ashmem).

In my case, I could solve that by wrapping the android-shmem library around X.Org, as explained in this post.

Out of interest: Does SailfishOS natively support SysV shared memory calls? After all it also uses the Android kernel underneath.

Edited by claude0001
  • Like 1
Link to post
Share on other sites
12 hours ago, matf said:

I did start from stock Android but I'm not sure if that would be a requirement. After flashing, do you get back to you existing UT install, or was it reset? I bet you did that already, but if it was reset, maybe triple check that you didn't mix the images at the beginning since we need to mix both archives? Can you maybe add a:


fastboot set_active a

at the end of the procedure? This should not make a difference, but it's worth trying.

After flashing, the UT is reset & runs the first boot setup wizard.

Weirdly, a final `fastboot set_active a` hangs.

  • Like 1
Link to post
Share on other sites
1 hour ago, matf said:

If this was my issue, I would assume that newly created containers would equally fail to show in an X window, but they don't.

Ah, I had missed your point above where you wrote that your problem is limited to the container you ported from the Pro1. Never mind then.

If it is only about transferring your software configuration to the Pro1X, would it then not be easier to just install a fresh container and scp any relevant things (like $HOME/.config/) over from your Pro1?

  • Like 2
Link to post
Share on other sites
3 hours ago, therainingmonkey said:

After flashing, the UT is reset & runs the first boot setup wizard.

Weirdly, a final `fastboot set_active a` hangs.

This really looks like you're flashing the UT userdata as well then, instead of just the UT boot.img and SFOS userdata. Can you double check that the userdata image you flashed had the .simg extension (SFOS) and not just .img (UT)? Sorry if you already did, but that is what a reset UT after flashing would suggest.

 

2 hours ago, claude0001 said:

Ah, I had missed your point above where you wrote that your problem is limited to the container you ported from the Pro1. Never mind then.

If it is only about transferring your software configuration to the Pro1X, would it then not be easier to just install a fresh container and scp any relevant things (like $HOME/.config/) over from your Pro1?

Yes I could do that but I would still lose a lot of binaries I compiled on the device (I use many terminal tools), which are not easily reinstalled on a new container since, well, since they were not installed as packages. But that is definitely something I can do, it may just require more work to filter my dotfiles and installed/compiled programs, while with the extra storage of the Pro1x, I would have been happy to just be lazy and move everything. I have not investigated the errors preventing this container to start an Xsession yet, hopefully this will be a straightforward situation.

Edited by matf
  • Thanks 1
Link to post
Share on other sites

I just confirmed that SD card works, and there is hope for Waydroid. I can start a container and a session, but didn't get the UI to start (the loading splash screen spins indefinitely). Adam Pigg managed yesterday to start the UI once:

sailtrix-file.thumb.jpg.e08268e5dd121262d411127ff6038211.jpg

However it's still not really working: closing Waydroid or stopping the container crashes the whole system and a hard reboot is necessary, and Adam could only start the Android UI once, it didn't work at the next boot. It is encouraging though because it appears to be technically feasible, it should work eventually.

Edited by matf
  • Like 3
  • Thanks 1
Link to post
Share on other sites

I spent some time today playing with this, and for the longest time was unable to get either Ubuntu Touch or Sailfish OS to boot.  Eventually I decided to try out older builds of Ubuntu Touch and discovered that no boot.img newer than the one found in #2807435728 seems to work.  After reverting to the boot.img found in that build, both Ubuntu Touch and Sailfish OS boot fine.

  • Like 1
  • Thanks 1
Link to post
Share on other sites

Great finding, thanks for posting about it. I edited the first post accordingly.

Meanwhile, my old container works, it was just a permissions mixup due to my backup/restore procedure:

Screenshot_20220811_002.thumb.png.9ed3ae053efc1adca41d1b6381d728da.png

 

[Edit] Damn, I wrote "Home seet home". What a fail. :<

Edited by matf
  • Like 2
Link to post
Share on other sites

So far this is working pretty well, but I may have run into my first example of "not quite ready for primetime".  I'm trying to set up my personal VPN (OpenVPN) and while I can get it to connect just fine if I execute the openvpn client myself from a root shell, it will not connect via the (not especially helpful) UI.

journalctl reveals two errors possibly related:

Aug 11 11:37:09 Pro1-X connman-vpnd[548]: error setting gid -1 Invalid argument
Aug 11 11:37:09 Pro1-X connman-vpnd[548]: error setting gid list Invalid argument

This is perhaps beyond the scope of this thread, but just in case anyone else here is playing with OpenVPN on Sailfish, it would be good to hear of your success or failure.

  • Like 1
  • Thanks 1
Link to post
Share on other sites

Re: First post:

I successfully flashed, omitting the set active command.
All i did after receiving the Pro¹ X with Android built 2.1.2 was:

1) Download Ubuntu Touch image and extract the boot.img
From this build (2830649718 artifact.zip)

2) Download the SailfishOS 4.4.0.64 devel build and extract the userdata.simg
From here (2807435728 artifact.zip)

3) Execute fastboot flash commands

fastboot flash boot_a boot.img
fastboot flash userdata userdata.simg


Happy sailing! Hope this wrap up helps someone.

20220811_105509.jpg

  • Like 1
  • Thanks 2
Link to post
Share on other sites
24 minutes ago, mosen said:

1) Download Ubuntu Touch image and extract the boot.img
From this build (2830649718 artifact.zip

Interesting that that worked for you.  I have just tested that exact boot.img on my own device and it does not boot.  Flashing back the image from last week and I'm back to booting just fine.

What is your hardware configuration?  I am 8/256 (and the device is black FWIW).

  • Like 2
Link to post
Share on other sites
36 minutes ago, ducksoup said:

Interesting that that worked for you.  I have just tested that exact boot.img on my own device and it does not boot.  Flashing back the image from last week and I'm back to booting just fine.

What is your hardware configuration?  I am 8/256 (and the device is black FWIW).

Same hw config but i got the blue IGG model.
They should be 100% the same, just different casings.

I flashed sfos as first action after unboxing. Maybe you changed something to the stock settings the Pro¹ X got delivered with?
If you are not keen to debug the issue, i'd just reflash to the 2.1.2 build factory image using EDL/QFIL to have the device in unboxing state again.
Like described in this thread:

 

  • Like 1
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Terms