Turris OS 5.2.0 is in HBT (Testing) branch

Dear Turris users,

Turris OS 5.2 has been for a few weeks in the HBK branch. It is time to move it further to you!
We invited a few :mage: to help us while catching some angry :cat:, which makes us some wounds. By using spells, we transformed them into :turtle:. What it means to you? Turris OS 5.2.0 is in HBT (Testing) branch for devices, which are using this branch. :tada:

Whatā€™s new in Turris OS 5.2?

  • New reForis features
    • Overview tab
    • Storage plugin with option for persistent system logs and Btrfs RAID
    • Factory reset from web interface
    • Support for Honeypot as a Service (haas.nic.cz)
    • Hostname settings from maintenance tab :new:
    • Fix DHCP range configuration check
    • A few design improvements
  • WebApps: New graphical design with optional dark mode
  • Turris MOX: Update firmware for SDIO card
  • Add RIPE Atlas SW probe, common passwords as package lists
  • Automatic installation of drivers for limited amount of LTE and DVB devices

If you are using stable release and would like to help us to improve this release before it pushed to stable branch, you can do it by using CLI and proceed with following command:

switch-branch hbt

More details about testing branches can be found in our documentation.

If you find any bugs while testing this release, please let us know in comments or by following Getting help article.

7 Likes

Being on HBT I got the update notification telling me I would get the update overnight, but I got a big network dropout which means that the router actually rebooted in the middle of the day.
Made me rather laugh as when the connection dropped I was following a TEAMS talk from the big boss (from work), supposedly inspirational but I felt was terrible :smile: Thank you Turris for bringing this pain to an end.

ReForis is definitely improvingā€¦ nice.

1 Like

What improvement is the updated firmware for SDIO card bringing? I have it currently disabled as i found the performance to be quite bad and my MOX has the PCIe one (Atheros) anyway.

I have updates installed with approvals. I approved the update a few minutes ago and the router rebooted without asking after the update. Again, for like the 4th update in a row. I think this starts to be serious and you should have a look at it soon or people are gonna be really pissed by the unwanted reboots in the middle of the day.

I also got this error notification after the unwanted reboot:

Updater failed: 

[string "transaction"]:327: [string "transaction"]:238: attempt to index local 'upgraded_packages' (a nil value)

And now I see the update stayed somehow half-approved. You can see new Reforis design after the unwanted reboot, but itā€™s still asking for some approvalā€¦

From logs:

01:07:04 err foris-forwarder[11209]: Traceback (most recent call last):
01:07:04 err foris-forwarder[11209]:   File "/usr/bin/foris-forwarder", line 11, in <module>
01:07:04 err foris-forwarder[11209]:     load_entry_point('foris-forwarder==0.2.0', 'console_scripts', 'foris-forwarder')()
01:07:04 err foris-forwarder[11209]:   File "/usr/lib/python3.7/site-packages/foris_forwarder/__main__.py", line 111, in main
01:07:04 err foris-forwarder[11209]:   File "/usr/lib/python3.7/site-packages/foris_forwarder/app.py", line 45, in __call__
01:07:04 err foris-forwarder[11209]:   File "/usr/lib/python3.7/site-packages/foris_forwarder/app.py", line 76, in __init__
01:07:04 err foris-forwarder[11209]:   File "/usr/lib/python3.7/site-packages/foris_forwarder/configuration.py", line 157, in __init__
01:07:04 err foris-forwarder[11209]:   File "/usr/lib/python3.7/site-packages/foris_forwarder/configuration.py", line 170, in load_from_uci
01:07:04 err foris-forwarder[11209]:   File "/usr/lib/python3.7/site-packages/euci/__init__.py", line 90, in get
01:07:04 err foris-forwarder[11209]: uci.UciExceptionNotFoun

Update went fine (from HBS), Atlas probe appreciated, reforis looks good, dark mode great.
Two points:

  • The landing page looks bit weird on mobile screen - the logo images aspect ratio is incorrect (squeezed)
  • On both mobile and PC, when click reforis logo, for a second it shows An error occurred while fetching data and Forbiddenā€¦. After a second it disappears, so not a big dealā€¦

The NETMETR section would be nice to have better visual formatting.
Just a sketch:


Also there is something wrong with the ping value.

Just my 50centā€¦

If netmetr has not been updated yet to 2.0.0, this is caused by ping on IPv6 not done correctly: IPv6: how to get public adress on wan

Reposting from the wrong thread:

Updated to HBT branch from HBS to see what happened with these timezone backports.

The syslog time is all over the place.

hostapd has the wrong timezone, dnsmasq has the right one, /dhcp_host_domain_ng.py has the wrong one, syslog-ng has the right one, crond has the wrong oneā€¦ maybe thereā€™s some kind of timing issue between when they start.

edit: yeah something strange is going on. ls -l /etc/TZ gets autocompleted when I type /etc/T + TAB even though thereā€™s no such file. /tmp/TZ does not get autocompleted (also missing).

Maybe it has to do with the jail thing in dnsmasq.init.

I do have the same ā€œforbiddenā€ message temporarily

Hello @xsys,

We are so sorry that this bug in the Netmetr card in the overview slipped through our testing! This is fixed in the upcoming RC version. Thank you for letting us know about this.

Hello,
Just applied the upgrade (was already on HBT).

I cannot login to reforis nor foris.

Reforis error:

ControllerMissing	Python 3.7.10: /usr/bin/python3
Tue May 4 09:55:32 2021

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.
 /usr/lib/python3.7/site-packages/flup/server/fcgi_base.py in run(self=<flup.server.fcgi_base.Request object>)
 /usr/lib/python3.7/site-packages/flup/server/fcgi_base.py in handler(self=<flup.server.fcgi.WSGIServer object>, req=<flup.server.fcgi_base.Request object>)
 /usr/lib/python3.7/site-packages/reforis/__main__.py in __call__(self=<reforis.__main__.AppWrapper object>, environ={'CONTENT_LENGTH': '0', 'DOCUMENT_ROOT': '/www/turris-webapps/', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br', 'HTTP_ACCEPT_LANGUAGE': 'fr-FR,fr;q=0.8,en-US;q=0.5,en;q=0.3', 'HTTP_CACHE_CONTROL': 'no-cache', 'HTTP_DNT': '1', 'HTTP_HOST': '192.168.1.1', ...}, start_response=<function BaseFCGIServer.handler.<locals>.start_response>)
 /usr/lib/python3.7/site-packages/flask/app.py in __call__(self=<Flask 'reforis'>, environ={'CONTENT_LENGTH': '0', 'DOCUMENT_ROOT': '/www/turris-webapps/', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br', 'HTTP_ACCEPT_LANGUAGE': 'fr-FR,fr;q=0.8,en-US;q=0.5,en;q=0.3', 'HTTP_CACHE_CONTROL': 'no-cache', 'HTTP_DNT': '1', 'HTTP_HOST': '192.168.1.1', ...}, start_response=<function BaseFCGIServer.handler.<locals>.start_response>)
 /usr/lib/python3.7/site-packages/flask/app.py in wsgi_app(self=<Flask 'reforis'>, environ={'CONTENT_LENGTH': '0', 'DOCUMENT_ROOT': '/www/turris-webapps/', 'GATEWAY_INTERFACE': 'CGI/1.1', 'HTTPS': 'on', 'HTTP_ACCEPT': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8', 'HTTP_ACCEPT_ENCODING': 'gzip, deflate, br', 'HTTP_ACCEPT_LANGUAGE': 'fr-FR,fr;q=0.8,en-US;q=0.5,en;q=0.3', 'HTTP_CACHE_CONTROL': 'no-cache', 'HTTP_DNT': '1', 'HTTP_HOST': '192.168.1.1', ...}, start_response=<function BaseFCGIServer.handler.<locals>.start_response>)
 /usr/lib/python3.7/site-packages/flask/app.py in handle_exception(self=<Flask 'reforis'>, e=ControllerMissing('Connection to controller 0000000B0000E881 is lost.'))
 /usr/lib/python3.7/site-packages/reforis/__init__.py in internal_error(error=<InternalServerError '500: Internal Server Error'>)
 /usr/lib/python3.7/site-packages/flask/templating.py in render_template(template_name_or_list='errors/500.html', **context={'error': <InternalServerError '500: Internal Server Error'>, 'g': <flask.ctx._AppCtxGlobals object>, 'request': <Request 'https://192.168.1.1/reforis/' [GET]>, 'session': <FileSystemSession {'_permanent': True}>})
 /usr/lib/python3.7/site-packages/flask/app.py in update_template_context(self=<Flask 'reforis'>, context={'error': <InternalServerError '500: Internal Server Error'>, 'g': <flask.ctx._AppCtxGlobals object>, 'request': <Request 'https://192.168.1.1/reforis/' [GET]>, 'session': <FileSystemSession {'_permanent': True}>})
 /usr/lib/python3.7/site-packages/reforis/__init__.py in add_translations_catalog_to_ctx()
 /usr/lib/python3.7/site-packages/flask_babel/__init__.py in get_locale()
 /usr/lib/python3.7/site-packages/reforis/__init__.py in get_locale()
 /usr/lib/python3.7/site-packages/reforis/__init__.py in _get_locale_from_backend(app=<Flask 'reforis'>)
 /usr/lib/python3.7/site-packages/reforis/backend.py in perform(self=MqttSender, module='web', action='get_data', data=None, raise_exception_on_failure=True, controller_id=None)
 /usr/lib/python3.7/site-packages/reforis/backend.py in perform(self=MqttSender, module='web', action='get_data', data=None, raise_exception_on_failure=True, controller_id=None)
 /usr/lib/python3.7/site-packages/reforis/backend.py in _send(self=MqttSender, module='web', action='get_data', data=None, controller_id=None)
 /usr/lib/python3.7/site-packages/foris_client/buses/mqtt.py in send(self=<foris_client.buses.mqtt.MqttSender object>, module='web', action='get_data', data=None, timeout=30.0, controller_id='0000000B0000E881')
 /usr/lib/python3.7/site-packages/foris_client/buses/mqtt.py in check_controllers()

ControllerMissing: Connection to controller 0000000B0000E881 is lost.
      args = ('Connection to controller 0000000B0000E881 is lost.',)
      device_id = '0000000B0000E881'
      with_traceback = <built-in method with_traceback of ControllerMissing object> 

Foris stack trace:

  File "/usr/lib/python3.7/site-packages/foris_client/buses/mqtt.py", line 358, in send
  File "/usr/lib/python3.7/queue.py", line 178, in get
_queue.Empty

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/foris/middleware/backend_data.py", line 54, in __call__
  File "/usr/lib/python3.7/site-packages/foris/backend.py", line 102, in perform
  File "/usr/lib/python3.7/site-packages/foris/backend.py", line 85, in perform
  File "/usr/lib/python3.7/site-packages/foris_client/buses/mqtt.py", line 360, in send
  File "/usr/lib/python3.7/site-packages/foris_client/buses/mqtt.py", line 334, in check_controllers
foris_client.buses.base.ControllerMissing: Connection to controller 0000000B0000E881 is lost.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.7/site-packages/foris/middleware/reporting.py", line 93, in __call__
  File "/usr/lib/python3.7/site-packages/foris/middleware/backend_data.py", line 60, in __call__
  File "/usr/lib/python3.7/site-packages/bottle_i18n.py", line 68, in __call__
  File "/usr/bin/bottle.py", line 979, in __call__
  File "/usr/bin/bottle.py", line 954, in wsgi
  File "/usr/bin/bottle.py", line 862, in _handle
  File "/usr/bin/bottle.py", line 1742, in wrapper
  File "/usr/bin/bottle.py", line 3644, in wrapper
  File "/usr/lib/python3.7/site-packages/foris/config/__init__.py", line 367, in top_index
AttributeError: 'ForisState' object has no attribute 'password_set'

edit: I do have a password set in /etc/config/foris:

config config 'auth'
        option password '$p5XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

Dear Turris users,

Today we released a new RC 2 version of Turris OS 5.2.0
The release fixes multiple bugs discovered after RC 1 release. The most visible ones are related to reForis.

  • reForis - improved password form
  • reForis-storage-plugin - multiple UI improvements
  • reForis-netmetr-plugin - fix for displaying ping and other UI improvements

Other minor changes are related to updater-ng and initial-conf packages.

We would like to hear feedback on how you like this update.

2 Likes

Hey,

Here is a weird thing in my logs :

May 4 17:49:43 turris kernel: [ 78.689452] mwifiex_sdio mmc0:0001:1: Firmware wakeup failed

My SDIO card is not working and I expected a good news reading the changelog. I did a fresh install.

Full log :

May  4 17:49:43 turris kernel: [   78.689452] mwifiex_sdio mmc0:0001:1: Firmware wakeup failed
May  4 17:49:43 turris kernel: [   78.695948] mwifiex_sdio mmc0:0001:1: info: shutdown mwifiex...
May  4 17:49:43 turris kernel: [   78.703565] mwifiex_sdio mmc0:0001:1: PREP_CMD: card is removed
May  4 17:49:44 turris kernel: [   78.764787] mwifiex_sdio mmc0:0001:1: PREP_CMD: card is removed
May  4 17:49:44 turris kernel: [   78.774101] mwifiex_sdio mmc0:0001:1: PREP_CMD: card is removed
May  4 17:49:44 turris kernel: [   78.795020] mwifiex_sdio mmc0:0001:1: PREP_CMD: card is removed
May  4 17:49:44 turris kernel: [   78.952837] sdio_read_cccr card report SDIO_UHS_DDR50
May  4 17:49:44 turris kernel: [   78.958356] sdio_read_cccr card report SDIO_UHS_SDR50
May  4 17:49:44 turris kernel: [   78.963613] sdio_read_cccr card report SDIO_UHS_SDR104
May  4 17:49:45 turris kernel: [   80.005914] mwifiex_sdio mmc0:0001:1: info: FW download over, size 626760 bytes
May  4 17:49:46 turris kernel: [   80.869448] mwifiex_sdio mmc0:0001:1: WLAN FW is active
May  4 17:49:56 turris kernel: [   91.397964] mwifiex_sdio mmc0:0001:1: mwifiex_cmd_timeout_func: Timeout cmd id = 0xa9, act = 0x0
May  4 17:49:56 turris kernel: [   91.406817] mwifiex_sdio mmc0:0001:1: num_data_h2c_failure = 0
May  4 17:49:56 turris kernel: [   91.412874] mwifiex_sdio mmc0:0001:1: num_cmd_h2c_failure = 0
May  4 17:49:56 turris kernel: [   91.419096] mwifiex_sdio mmc0:0001:1: is_cmd_timedout = 1
May  4 17:49:56 turris kernel: [   91.424693] mwifiex_sdio mmc0:0001:1: num_tx_timeout = 0
May  4 17:49:56 turris kernel: [   91.429944] mwifiex_sdio mmc0:0001:1: last_cmd_index = 3
May  4 17:49:56 turris kernel: [   91.435606] mwifiex_sdio mmc0:0001:1: last_cmd_id: 20 00 20 00 20 00 a9 00 1e 00
May  4 17:49:56 turris kernel: [   91.443097] mwifiex_sdio mmc0:0001:1: last_cmd_act: 08 00 08 00 08 00 00 00 00 00
May  4 17:49:56 turris kernel: [   91.450753] mwifiex_sdio mmc0:0001:1: last_cmd_resp_index = 2
May  4 17:49:56 turris kernel: [   91.456961] mwifiex_sdio mmc0:0001:1: last_cmd_resp_id: 20 80 20 80 20 80 cd 80 1e 80
May  4 17:49:56 turris kernel: [   91.464982] mwifiex_sdio mmc0:0001:1: last_event_index = 3
May  4 17:49:56 turris kernel: [   91.470480] mwifiex_sdio mmc0:0001:1: last_event: 00 00 0b 00 0a 00 0b 00 00 00
May  4 17:49:56 turris kernel: [   91.478220] mwifiex_sdio mmc0:0001:1: data_sent=1 cmd_sent=1
May  4 17:49:56 turris kernel: [   91.484249] mwifiex_sdio mmc0:0001:1: ps_mode=0 ps_state=0
May  4 17:49:56 turris kernel: [   91.490071] mwifiex_sdio mmc0:0001:1: info: _mwifiex_fw_dpc: unregister device
May  4 15:49:58 turris netifd: radio1 (7161): Could not find PHY for device 'radio1'

No feedback as I still cannot login to reforis (cf my message above), even with RC2.

Just for reference to others and most notably to my colleagues: I am looking in to this with @X-dark in private conversation.

1 Like

Update on my side was okay. After a long time without an unintended reboot.

Dear Turris users,

Today we released an RC 3 version of Turris OS 5.2.0. This release fixes security issues found in Linux Kernel, OpenVPN and also addresses bugs that were found after RC 2 release.

Security updates:

Other updates:

  • Nextcloud - fixes for Foris backend integration
  • turris-cagen - fixes link for pre-generated dhparam

And as with other releases, we would like to hear your feedback.

4 Likes

MOX classic, WiFi, .5 GB, simple config, update to RC3 OK (didnā€™t wake up after reboot), all seems to work.