Turris OS 4.0 beta10 is released!

Dear Turris,

We released a new beta10 version of Turris OS 4.0 for Turris Omnia and Turris MOX. This release contains package updates, security fixes and translations fixups for Foris.

We have good news for Turris Omnia users as our kernel developers did first steps to solve known issue about the multi CPU DSA, which is now used for LAN4 port and dynamic configuration is not available.

Release notes for this beta10 release

  • kernel: bump to version 4.14.142
  • Foris: small improvements for translations
  • haveged: updated to version 1.9.6
  • keepalived: update to version 1.4.5, fix CVE-2018-19115
  • lighttpd: updated to version 1.4.54, fix CVE-2019-11072
  • libarchive: updated to version 3.4.0, multiple CVE fixes
  • bind: updated to version 9.11.10, multiple CVE fixes
  • dovecot: updated to version, fix CVE-2019-7524
  • dovecot-pigeonhole: Update to
  • nano: updated to version 4.4
  • unbound: updated to version 1.9.3
  • nextcloud: updated to version 16.0.4
  • bzip2: fix CVE-2019-12900
  • wget: fix CVE-2018-20483
  • wolfssl: fix CVE-2018-16870, CVE-2019-13628
  • iptables: fix CVE-2019-11360
  • dovecot-pigeonhole: Update to
  • tar: fix CVE-2018-20482, CVE-2019-9923
  • musl: fix CVE-2019-14697
  • patch: fix CVE-2019-1363{6,8}
  • apinger: updated to the latest git revision
  • speedtest-netperf: new package

When you are using a previous beta9 version of Turris OS 4.0 and you are not using approvals, you should be updated to this version automatically. When you are using approvals, you should receive a notification and in Updater tab you can approve the update.

If you would like to give it try and you are using Turris OS 3.x release on Turris Omnia router and want to start from scratch, you can download medkit to USB flash drive, which should be formatted to EXT/2/3/4. Don’t extract it and plug it to the router. By using re-flash method, it will erase all the data and write there Turris OS 4.0. release.

We are looking forward to receiving your feedback for this release.

1 Like

Known bugs:

Turris 1.x specific

  • Currently not working because of kernel issues. Please do not test this release on Turris 1.x.

It seems that the recent update broke the nextcloud, particularly the mysql. The init script is not starting the mysql (mariadb). There is a missing configuration. The my.cnf was moved to /etc/mysql (before in /etc) and also does not contain customization, which was there before.

/etc/init.d/mysqld reload
/etc/rc.common: line 1: /usr/bin/logger: not found

Hi @ivanek,

Thank you for your bug report. We are able to reproduce it as well on our end.

Our developers were looking into it as there were no changes related to mariadb.
They found that somehow happened that even our feeds turrispackages are the highest one in priority, where is a newer version of mariadb than in OpenWrt packages, it was not able to find ours.
In other words, mariadb in OpenWrt packages has an older version and we need the newer one.
We managed to have a workaround and it is going to be fixed in beta11, which will be released soon. We are still looking at it.

We are sorry for any inconvenience caused.

This release was automatically installed on my Turris MOX - the MOX then sent me an email telling me it needed a reboot. When I clicked reboot in the http://x.x.x.x/foris/config/main/notifications/ page however the router just shut down and never came up again. I had to pull the power plug and plug it in again. How can I debug this and find the reason for this behaviour? It would have been really annoying had I made the reboot from a remote location…

1 Like

This is a known issue: Reboot doesn't work


I can confirm this, same issue on my MOX with nextcloud.

1 Like

I added these two packages to my localrepo, which fixed the issue:

    mariadb-client: 10.4.7-1.0
    mariadb-server: 10.4.7-1.0

After updating on the omnia from beta 9, I am only getting IPv6 attributed by the DHCP and cannot access to IPv4 host (on the LAN or on the Internet) anymore (IPv6 works fine). I had to disable the IPv6 Router Advertisement-Service and DHCPv6-Service on the LAN interface (in luci) to get an IPv4 and put the things back to work.

My ISP does not provide my IPv6 connectivity. I have a 6to4 configured on the WAN interface.

Hello Turris Team,
great jobs but foris version 100.4 again not working notifications page ( Remote Exception: Internal error ‘cs’(’<class ‘KeyError’>’), but wifi,dns,… all other are OK
Second thing, reboot not working wia foris, luci, cml. In previously version luci reboot was working.


Can you send us the error page to the email address, which is described there, so we can look at it?

1 Like

@ales.zeleny, @ivanek It should be fixed in beta11, which was released into HBT (Testing) branch. If you would like to give it try, you can by using command switch-branch hbt in CLI.


I did the upgrade. NextCloud seems to almost work again.

Here are some warnings I’ve got during upgrade:

[13-Sep-2019 22:52:58] ERROR: An another FPM instance seems to already listen on /var/run/php7-fpm.sock
[13-Sep-2019 22:52:58] ERROR: FPM initialization failed
INFO:Running postinst of nextcloud
An unhandled exception has been thrown:
Doctrine\DBAL\DBALException: Failed to connect to the database: An exception occurred in driver:                 SQLSTATE[HY000] [2002] Connection refused in /srv/www/nextcloud/lib/private/DB/Connection.php:64
Stack trace:
#0 /srv/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(448): OC\DB\Connection->connect()
#1 /srv/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(410): Doctrine\DBAL\Connection->getDatabasePlatformVersion()
#2 /srv/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(354): Doctrine\DBAL\Connection->detectDatabasePlatform()
#3 /srv/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/Connection.php(710): Doctrine\DBAL\Connection->getDatabasePlatform()
#4 /srv/www/nextcloud/lib/private/DB/Connection.php(151): Doctrine\DBAL\Connection->setTransactionIsolation(2)
#5 /srv/www/nextcloud/3rdparty/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php(181): OC\DB\Connection->__construct(Array, Object(Doctrine\DBAL\Driver\PDOMySql\Driver), Object(Doctrine\DBAL\Configuration), Object(Doctrine\Common\EventManager))
#6 /srv/www/nextcloud/lib/private/DB/ConnectionFactory.php(158): Doctrine\DBAL\DriverManager::getConnection(Array, Object(Doctrine\DBAL\Configuration), Object(Doctrine\Common\EventManager))
#7 /srv/www/nextcloud/lib/private/Server.php(641): OC\DB\ConnectionFactory->getConnection('mysql', Array)
#8 /srv/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\Server->OC\{closure}(Object(OC\Server))
#9 /srv/www/nextcloud/lib/private/ServerContainer.php(125): Pimple\Container->offsetGet('OCP\\IDBConnecti...')
#10 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(165): OC\ServerContainer->query('OCP\\IDBConnecti...')
#11 /srv/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(114): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(OC\Server))
#12 /srv/www/nextcloud/lib/private/ServerContainer.php(125): Pimple\Container->offsetGet('DatabaseConnect...')
#13 /srv/www/nextcloud/lib/private/Server.php(1560): OC\ServerContainer->query('DatabaseConnect...')
#14 /srv/www/nextcloud/lib/private/Server.php(362): OC\Server->getDatabaseConnection()
#15 /srv/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\Server->OC\{closure}(Object(OC\Server))
#16 /srv/www/nextcloud/lib/private/ServerContainer.php(125): Pimple\Container->offsetGet('OC\\Authenticati...')
#17 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(68): OC\ServerContainer->query('OC\\Authenticati...')
#18 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(98): OC\AppFramework\Utility\SimpleContainer->buildClass(Object(ReflectionClass))
#19 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(119): OC\AppFramework\Utility\SimpleContainer->resolve('OC\\Authenticati...')
#20 /srv/www/nextcloud/lib/private/ServerContainer.php(150): OC\AppFramework\Utility\SimpleContainer->query('OC\\Authenticati...')
#21 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(68): OC\ServerContainer->query('OC\\Authenticati...')
#22 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(98): OC\AppFramework\Utility\SimpleContainer->buildClass(Object(ReflectionClass))
#23 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(119): OC\AppFramework\Utility\SimpleContainer->resolve('OC\\Authenticati...')    
#24 /srv/www/nextcloud/lib/private/ServerContainer.php(150): OC\AppFramework\Utility\SimpleContainer->query('OC\\Authenticati...')  
#25 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(165): OC\ServerContainer->query('OC\\Authenticati...')
#26 /srv/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(114): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(OC\Server))
#27 /srv/www/nextcloud/lib/private/ServerContainer.php(125): Pimple\Container->offsetGet('OC\\Authenticati...')
#28 /srv/www/nextcloud/lib/private/Server.php(374): OC\ServerContainer->query('OC\\Authenticati...')
#29 /srv/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\Server->OC\{closure}(Object(OC\Server))
#30 /srv/www/nextcloud/lib/private/ServerContainer.php(125): Pimple\Container->offsetGet('OC\\User\\Session')
#31 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(165): OC\ServerContainer->query('OC\\User\\Session')
#32 /srv/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(114): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(OC\Server))
 #33 /srv/www/nextcloud/lib/private/ServerContainer.php(125): Pimple\Container->offsetGet('UserSession') 
#34 /srv/www/nextcloud/lib/private/Server.php(1436): OC\ServerContainer->query('UserSession')
#35 /srv/www/nextcloud/lib/private/Server.php(694): OC\Server->getUserSession()
#36 /srv/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(118): OC\Server->OC\{closure}(Object(OC\Server))
#37 /srv/www/nextcloud/lib/private/ServerContainer.php(125): Pimple\Container->offsetGet('OC\\App\\AppManag...')
#38 /srv/www/nextcloud/lib/private/AppFramework/Utility/SimpleContainer.php(165): OC\ServerContainer->query('OC\\App\\AppManag...')
#39 /srv/www/nextcloud/3rdparty/pimple/pimple/src/Pimple/Container.php(114): OC\AppFramework\Utility\SimpleContainer->OC\AppFramework\Utility\{closure}(Object(OC\Server))
#40 /srv/www/nextcloud/lib/private/ServerContainer.php(125): Pimple\Container->offsetGet('AppManager')
#41 /srv/www/nextcloud/lib/private/Server.php(1731): OC\ServerContainer->query('AppManager')
#42 /srv/www/nextcloud/lib/private/legacy/app.php(343): OC\Server->getAppManager()
#43 /srv/www/nextcloud/lib/private/legacy/app.php(114): OC_App::getEnabledApps()
#44 /srv/www/nextcloud/lib/base.php(640): OC_App::loadApps(Array)
#45 /srv/www/nextcloud/lib/base.php(1056): OC::init()
#46 /srv/www/nextcloud/console.php(46): require_once('/srv/www/nextcl...')
#47 /srv/www/nextcloud/occ(11): require_once('/srv/www/nextcl...')
#48 {main}INFO:Running postinst of libatomic
INFO:Running postinst of mariadb-client
INFO:Running postinst of php7-mod-mysqlnd
INFO:Running postinst of php7-mod-pdo
INFO:Running postinst of php7-mod-pdo-mysql   
INFO:Running postinst of liblz4
INFO:Running postinst of libaio
INFO:Running postinst of mariadb-server
2019-09-13 22:53:08 0 [Warning] Could not open mysql.plugin table. Some options may be missing from the help text
2019-09-13 22:53:08 0 [Warning] Could not open mysql.plugin table. Some options may be missing from the help text
2019-09-13 22:53:08 0 [Warning] Could not open mysql.plugin table. Some options may be missing from the help text
2019-09-13 22:53:09 0 [Warning] Could not open mysql.plugin table. Some options may be missing from the help text
2019-09-13 22:53:09 0 [Note] mysqld (mysqld 10.4.8-MariaDB) starting as process 32611 ...
2019-09-13 22:53:09 0 [Warning] Could not increase number of max_open_files to more than 1024 (request: 4184)
2019-09-13 22:53:09 0 [Warning] Changed limits: max_open_files: 1024  max_connections: 151 (was 151)  table_cache: 421 (was 2000)`Preformatted text`

The only sad thing is that I’m not able to download (nor synchrpnize to pc) auto uploaded video files (600MB+) from nextclout. Can’t confirmed whether it worked before latest upgrade.

Thnaks for prpvidieng testing beta version so fast!


Again, no email notification about update approval has been sent.
Notification email is working for sure, after update I got an email that the router has to be restarted.

And annoying bug I have reported since 4.0 beta1 is still present.

Forum is not suggested to be meant as a bug tracker. Actually, this fits into the category “It is not a bug, but feature” even for someone could be annoying. Package lists need to be updated before you can install packages. It can be done by running command “opkg update” or in LuCI by just pressing a button. Those lists are stored in /tmp (RAM), so it means that they are gone when you reboot your router. They need to be up to date because in each list there is a hash of each package and also listed dependencies for those packages in some cases it can be kernel and it requires to have the same version which you have installed if you do, there is a mismatch and it won’t allow you to install it.

You can find various workarounds if you are interested in.

Thank you for answer @Pepe

Although forum is not meant to be a bug tracker, I supposed that thread with beta release is place where developer wants to get feedback :wink:

I know exactly what is Package list and why are they present in the system and that they need to be updated first because they are in /tmp/opkg-lists/. Before I got TO I have had run many other vanilla OpenWrt, and I still do playing with new releases of vanilla OpenWrt. Point is, that these package list are updated first time after boot, they are having timestamp of download time, and they are renewed again after 24 hours, so the package list server is not under big load, and user is not annoyed with downloading them each time.

Example of update package lists in vanilla OpenWrt:

Please don’t take me bad, I am happy for project Turris, and all I want to achieve here is to help.