Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for system update 2.6 #322

Closed
matteodelabre opened this issue Mar 26, 2021 · 7 comments · Fixed by #366
Closed

Support for system update 2.6 #322

matteodelabre opened this issue Mar 26, 2021 · 7 comments · Fixed by #366
Labels
install Installation scripts tooling Set of scripts and configuration files for building the packages

Comments

@matteodelabre
Copy link
Member

matteodelabre commented Mar 26, 2021

A new official system update, 2.6, is being rolled out to users. Most system libraries have been updated in this new version, which makes apps compiled for previous versions incompatible. In particular:

A new release of the Toltec toolchain was made to support building apps that target the new 2.6 update. However, most packages compiled for 2.6 will not work for 2.5, and vice-versa. Our current plan is to take advantage of the new features in #310 to create two separate repos containing packages for each of the two versions.

@matteodelabre matteodelabre added tooling Set of scripts and configuration files for building the packages install Installation scripts labels Mar 26, 2021
@raisjn
Copy link
Contributor

raisjn commented Mar 26, 2021

rm2fb needs to update server to point at xochitl instead of remarkable shutdown, as there are new waveform modes (issue 56 in rm2fb)

as part of this, rm2fb server should check that the preload exists before running, otherwise it will invoke xochitls main and run two at once if someone blows the home partition away

@matteodelabre
Copy link
Member Author

Just released toolchain v2.0.1 to fix some crashes that were seen on Qt apps such as fingerterm and recrossable.

matteodelabre added a commit that referenced this issue Apr 2, 2021
In the last software relase (2.6), new waveform modes were added to
xochitl to make the pinch-to-zoom feature work. Unfortunately, the
remarkable-shutdown binary was not updated to support those new
waveforms. As a consequence, using pinch-to-zoom with rm2fb results in a
less smooth experience than without rm2fb, since the screen gets
refreshed less frequently during the gesture.

See:

* <#322 (comment)>
* <ddvk/remarkable2-framebuffer#56>

To address this issue, this PR changes the rm2fb-server to preload the
`/usr/bin/xochitl` binary instead of `/usr/bin/remarkable-shutdown` in
both the `rm2fb-server` command and `rm2fb.service`.

A start condition is added to `rm2fb.service` to only start if the
librm2fb_server library actually exists on the filesystem. This is to
avoid having two concurrent xochitl processes running, as the loader
ignores non-existent files provided in LD_PRELOAD.

Test plan:

* Manually run `rm2fb-server` and `rm2fb-client xochitl`, make use of
  the pinch-to-zoom gesture, and make sure no message of the form
  `Unable to complete update: invalid waveform ( 6 )` appears in the
  server process.
* Check that the display continuously updates when using the
  pinch-to-zoom gesture, even if the `rm2fb.service` service is running
  and xochitl is started with `rm2fb-client xochitl`.
* Remove the `/opt/lib/librm2fb_server.so.1` symlink and restart
  `rm2fb.service`. The service should not start. Make sure that there’s
  no duplicate `xochitl` process in this case.
matteodelabre added a commit that referenced this issue Apr 2, 2021
In the last software relase (2.6), new waveform modes were added to
xochitl to make the pinch-to-zoom feature work. Unfortunately, the
remarkable-shutdown binary was not updated to support those new
waveforms. As a consequence, using pinch-to-zoom with rm2fb results in a
less smooth experience than without rm2fb, since the screen gets
refreshed less frequently during the gesture.

See:

* <#322 (comment)>
* <ddvk/remarkable2-framebuffer#56>

To address this issue, this PR changes the rm2fb-server to preload the
`/usr/bin/xochitl` binary instead of `/usr/bin/remarkable-shutdown` in
both the `rm2fb-server` command and `rm2fb.service`.

This PR also contains a patch to prevent rm2fb-server from appearing as xochitl in process lists. This is done by overwriting `argv[0]` after the library is initialized. This is necessary to prevent remux from mistakenly killing rm2fb-server.

A start condition is added to `rm2fb.service` to only start if the
librm2fb_server library actually exists on the filesystem. This is to
avoid having two concurrent xochitl processes running, as the loader
ignores non-existent files provided in LD_PRELOAD.

Test plan:

* Manually run `rm2fb-server` and `rm2fb-client xochitl`, make use of
  the pinch-to-zoom gesture, and make sure no message of the form
  `Unable to complete update: invalid waveform ( 6 )` appears in the
  server process.
* Check that the display continuously updates when using the
  pinch-to-zoom gesture, even if the `rm2fb.service` service is running
  and xochitl is started with `rm2fb-client xochitl`.
* Remove the `/opt/lib/librm2fb_server.so.1` symlink and restart
  `rm2fb.service`. The service should not start. Make sure that there’s
  no duplicate `xochitl` process in this case.
@matteodelabre
Copy link
Member Author

matteodelabre commented Apr 7, 2021

Note to users: If you upgraded to 2.6, you can use the switch.sh script (followed by a reboot of your device) in https://github.com/ddvk/remarkable-update to temporarily roll back to 2.5.

danshick pushed a commit to danshick/toltec that referenced this issue May 5, 2021
…v#325)

In the last software relase (2.6), new waveform modes were added to
xochitl to make the pinch-to-zoom feature work. Unfortunately, the
remarkable-shutdown binary was not updated to support those new
waveforms. As a consequence, using pinch-to-zoom with rm2fb results in a
less smooth experience than without rm2fb, since the screen gets
refreshed less frequently during the gesture.

See:

* <toltec-dev#322 (comment)>
* <ddvk/remarkable2-framebuffer#56>

To address this issue, this PR changes the rm2fb-server to preload the
`/usr/bin/xochitl` binary instead of `/usr/bin/remarkable-shutdown` in
both the `rm2fb-server` command and `rm2fb.service`.

This PR also contains a patch to prevent rm2fb-server from appearing as xochitl in process lists. This is done by overwriting `argv[0]` after the library is initialized. This is necessary to prevent remux from mistakenly killing rm2fb-server.

A start condition is added to `rm2fb.service` to only start if the
librm2fb_server library actually exists on the filesystem. This is to
avoid having two concurrent xochitl processes running, as the loader
ignores non-existent files provided in LD_PRELOAD.

Test plan:

* Manually run `rm2fb-server` and `rm2fb-client xochitl`, make use of
  the pinch-to-zoom gesture, and make sure no message of the form
  `Unable to complete update: invalid waveform ( 6 )` appears in the
  server process.
* Check that the display continuously updates when using the
  pinch-to-zoom gesture, even if the `rm2fb.service` service is running
  and xochitl is started with `rm2fb-client xochitl`.
* Remove the `/opt/lib/librm2fb_server.so.1` symlink and restart
  `rm2fb.service`. The service should not start. Make sure that there’s
  no duplicate `xochitl` process in this case.
matteodelabre added a commit that referenced this issue May 7, 2021
With release 2.7 starting to roll out and release 2.6 seeming to have reached most users, I think it makes sense to rebuild our packages to use the 2.x toolchain. This will make Toltec work with updates 2.6 and 2.7 (fixes #322), at the price of **breaking compatibility with system updates 2.5 and earlier.**

Testing plan: Having update 2.6 installed, I went through basic checks for each package both on rM1 and rM2 to make sure that each app at least starts up and seems to be working.
LinusCDE pushed a commit that referenced this issue Jun 3, 2021
In the last software relase (2.6), new waveform modes were added to
xochitl to make the pinch-to-zoom feature work. Unfortunately, the
remarkable-shutdown binary was not updated to support those new
waveforms. As a consequence, using pinch-to-zoom with rm2fb results in a
less smooth experience than without rm2fb, since the screen gets
refreshed less frequently during the gesture.

See:

* <#322 (comment)>
* <ddvk/remarkable2-framebuffer#56>

To address this issue, this PR changes the rm2fb-server to preload the
`/usr/bin/xochitl` binary instead of `/usr/bin/remarkable-shutdown` in
both the `rm2fb-server` command and `rm2fb.service`.

This PR also contains a patch to prevent rm2fb-server from appearing as xochitl in process lists. This is done by overwriting `argv[0]` after the library is initialized. This is necessary to prevent remux from mistakenly killing rm2fb-server.

A start condition is added to `rm2fb.service` to only start if the
librm2fb_server library actually exists on the filesystem. This is to
avoid having two concurrent xochitl processes running, as the loader
ignores non-existent files provided in LD_PRELOAD.

Test plan:

* Manually run `rm2fb-server` and `rm2fb-client xochitl`, make use of
  the pinch-to-zoom gesture, and make sure no message of the form
  `Unable to complete update: invalid waveform ( 6 )` appears in the
  server process.
* Check that the display continuously updates when using the
  pinch-to-zoom gesture, even if the `rm2fb.service` service is running
  and xochitl is started with `rm2fb-client xochitl`.
* Remove the `/opt/lib/librm2fb_server.so.1` symlink and restart
  `rm2fb.service`. The service should not start. Make sure that there’s
  no duplicate `xochitl` process in this case.
@JanLuca
Copy link

JanLuca commented Jun 6, 2021

@matteodelabre May I ask why the branch package/support-2.6 with the updated packages is not merged yet? I compiled some of them manually and they just seem to work well on my rM2 with release 2.7. Are there still some issues and/or is some beta testing wished? :)

@Eeems
Copy link
Member

Eeems commented Jun 6, 2021

@JanLuca Probably because we haven't opened a PR for it yet, and we still have some larger work in the testing branch we need to solve first. That is a good point though, @matteodelabre when do you plan on opening a PR for 2.6 support?

matteodelabre added a commit that referenced this issue Jun 7, 2021
With release 2.7 starting to roll out and release 2.6 seeming to have reached most users, I think it makes sense to rebuild our packages to use the 2.x toolchain. This will make Toltec work with updates 2.6 and 2.7 (fixes #322), at the price of **breaking compatibility with system updates 2.5 and earlier.**

Testing plan: Having update 2.6 installed, I went through basic checks for each package both on rM1 and rM2 to make sure that each app at least starts up and seems to be working.
@matteodelabre
Copy link
Member Author

It’s been a little while since I last worked on that branch, but if I remember correctly, there were some packages that didn’t build because the 2.x toolchain uses a newer version of gcc. I’ll try to open a PR this week.

matteodelabre added a commit that referenced this issue Jun 7, 2021
With release 2.6 having reached most users, I think it makes sense to rebuild our packages to use the 2.x toolchain. This will make Toltec work with updates 2.6 and onwards (fixes #322), at the price of **breaking compatibility with system updates 2.5 and earlier.**

Testing plan: Having update 2.6 installed, I went through basic checks for each package both on rM1 and rM2 to make sure that each app at least starts up and seems to be working.
@matteodelabre matteodelabre linked a pull request Jun 7, 2021 that will close this issue
matteodelabre added a commit that referenced this issue Jul 9, 2021
This PR updates all the recipes to use the 2.x toolchain. This will make Toltec work with updates 2.6 and onwards (fixes #322), at the price of breaking compatibility with system updates 2.5 and earlier.

Co-authored-by: Nathaniel van Diepen <[email protected]>
@matteodelabre
Copy link
Member Author

⩾2.6-compatible packages have now reached the testing branch (ping @JanLuca).

@matteodelabre matteodelabre unpinned this issue Jul 9, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
install Installation scripts tooling Set of scripts and configuration files for building the packages
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants