[TESTING] Linux 4.9 kernel and improved video stack for Vero 4K / 4K +

Summary

Since we launched the Vero 4K in February 2017, we’ve been shipping Linux 3.14 to support this hardware. In 2018, we modernised the media stack by backporting Linux 4.9 drivers to this 3.14 kernel, which enabled us to support a wider variety of DVB tuners.

Linux 3.14 has been end of life for some time. As part of our commitment to long term support, we’d like to move to a more modern kernel and take advantage of a number of upstream improvements from the system-on-chip (SoC) vendor. We have brought up a 4.9 kernel for Vero 4K and Vero 4K +. This kernel is supported upstream until January 2023 and by the SoC vendor until the end of 2020. The SoC vendor have also finished working on a 4.19 kernel for an upcoming Android BSP release. One of the reasons why this update has taken so long is because we have backported these 4.19 changes to our 4.9 kernel. This allows us to keep in sync with upstream changes from the SoC vendor and build an off-ramp for the future of video acceleration in Kodi, which will use V4L2 M2M decoding with a GBM rendering backend. We will then move to a 5.x kernel.

Improvements

There are a number of significant improvements, but the main ones you can expect from this update are:

  • Added support for Hybrid Log-Gamma (HLG) video output
  • Added support for full HDR10 metadata output (MaxFALL/MaxCLL metadata is now passed through)
  • Added support for HDR10+ dynamic metadata, with fallbacks to HDR10 or SDR where appropriate
  • Improved 3D MVC support to resolve stuttering issues when playing clips with an NTSC flag
  • Improved video playback:
    • Decoder microcode updates
    • Solved some issues playing back some problematic clips
  • Improved WiFi driver performance for Vero 4K / Vero 4K +
  • Updated GPU driver, which should yield improved GUI performance
  • HDR to SDR tonemapping for those watching HDR content on SDR only displays
  • Initial Hi10 decode support (work in progress)
  • Reduced system temperatures under load
  • Added support for Wireguard
  • Ensure wired network MAC address is consistent on boot and ConnMan restart

Known issues (will be added as discovered / reported)

  • This kernel does not utilise backported media drivers. Our 3.14 kernel had drivers backported from 4.9 and users were relatively happy with this; so in the interim we are using the drivers that are available in tree. If there is demand and regressions can be mitigated, then we will look at backporting media drivers from Linux 5.x to this kernel.

Solved issues

  • Fixed an issue preventing NFS kernel support from working
  • Improved thermal stability on Vero 4K/4K+
  • Fixed interlace output
  • Improved playback of M2TS files
  • Fixed some stability issues with crashes during playback (sad faces)
  • Fixed some crashes with problematic clips with corrupt bitstreams (Blue Planet sample)
  • Fixed 3D MVC resolution switching
  • Improved EDID parsing logic
  • Improved handling of mid-playback refresh rate adjustment
  • Fixed HDR10+ playback again
  • OSMC DVB-T2 dongles working again
  • Added support for USB Ethernet adapters
  • Fixed issues with Bluetooth connectivity
  • Improved buffering scheme
  • Added support for Wireguard

Instructions

Please note that the only way to downgrade after installing this is to reinstall OSMC; unless you really know what you are doing. Please take a backup of any important data before testing.

We expect there will be some issues and corner cases with this release. For us to improve this kernel further and ready it for general release, we need feedback. As always, full debug logs when a situation arises will be helpful.

This kernel (and supporting packages) have been made available via a separate APT repository until it is deemed stable enough to be included in the staging repository, followed by being included in a stable release.

To test this update:

  1. Ensure your system is up to date via My OSMC.
  2. Login via the command line
  3. Edit the file /etc/apt/sources.list
  4. Ensure that your sources.list looks as follows:
deb http://ftp.debian.org/debian buster main contrib non-free

deb http://ftp.debian.org/debian/ buster-updates main contrib non-free

deb http://security.debian.org/ buster/updates main contrib non-free

deb http://apt.osmc.tv buster main

deb http://apt.osmc.tv videoimprovevero49 main
  1. Run the following commands to update: sudo apt-get update && sudo apt-get dist-upgrade && reboot or update via My OSMC → Updates → Manual Controls → Check for Updates now (recommended).
  2. Your system should have have received the update.

Please note: the name of the videoimprovevero repository has changed to prevent Stretch users from accidentally partially upgrading their system and having a non-working system. Testing this improved video stack now requires Debian Buster, which is currently in testing.

It is possible to test Debian Buster on the 3.14 kernel, which is what you will get if you embark on testing here, without adding the final repository listed above.

Changelog

  • March 25th 2020 - initial release
  • 5th April 2020 - Kodi and kernel updated
  • 11th April 2020 - Kodi and kernel updated
  • 13th April 2020 - kernel updated
  • 15th April 2020 - kernel updated
  • 16th April 2020 - kernel updated
  • 26th April 2020 - kernel, Kodi and microcode updated.
  • 1st May 2020 - kernel, Kodi and microcode updated.
  • 2nd May 2020 - kernel and Kodi updated.
  • 4th May 2020 - Kodi updated.
  • 15th May 2020 - kernel updated.
  • 19th September 2020 - a large number of updates, including support for Debian Buster. New repository added for Buster enablement.
  • 11th October 2020 - fixed some playback issues with a kernel update
  • 19th November 2020 - update kernel with upstream vendor changes; updated video firmware; fixed 3D subtitle depth issue for non PGS subtitles; added 3D support for new MakeMKV versions, updated to Kodi v18.9.
  • 23rd November 2020 - update Kodi to fix 3D subtitling issue; relax constraint on existence of /dev/tee0
  • 29th December 2020 - updated kernel
  • 31st December 2020 - updated kernel

Many thanks to @tanio99 and @grahamh for helping ready this kernel and for those that tested in advance.

Thanks to early testers that verified our new boot process and allowed us to deliver OTA bootloader updates (something we were always a bit worried about doing) to facilitate the transition to the new kernel.

We’re looking forward to your feedback

Sam

16 Likes

Just installed this on my kitchen Vero, runs through a Panasonic soundbar to a Panny TV. The Vero is no longer picking up any of the 1080x resolutions that the TV supports, the previous kernel did. Max resolution is 720, and the OSMC splash screen is 480.

Is any kind of log helpful here? I have already power-cycled the Vero in case that would help.

Yes, logs are necessary.

Your issue sounds like you have started the device before your AVR and TV were on.

1 Like

The TV and sound bar were already on when I started the Vero. Hope the log offers something useful.

https://paste.osmc.tv/erereceyan

I think i have run into the same issue. I originally had only hash for sound but when i enabled debug and rebooted twice the audio problem seems to have resolved itself. However i can’t select any resolutions (it’s greyed out) and stuck on 720p.

Logs https://paste.osmc.tv/duciruwepa

Cheers

Mine experienced the same issue, a reboot resolved it. Have you rebooted yet?

4 or 5 times now. Including completely powering down and cold booting.
Connected direct to Samsung 4k tv with passthrough to optical to an external amp

I’ve rebooted mine several times.

Also, it is not recognisiing my USB reinstaller stick to drop down to a previous version when I do a cold boot with the stick plugged in. Slightly concerned, ability to reinstall OSMC may be broken?

[Edit] Looks like the OSMC installer is a bit flaky on my new Win10 Intel NUC, after a couple of extra attempts I was able to get the reinstaller to format the stick properly.

I have installed and so far is ok , just couple of things, in audio the soundbar was on HDMI , after installation it was changed to spdif , so I was not getting Atmos. I changed again to HDMI , also I got a sad face after installation , had to reboot device .

Finally and this happened already 2 or 3 times , when stopping a movie , I do get again the sad face and vero just restarts.

Ah and I got few more modes to whitelist which before were not available.

Not sure how relevant but i looked in whitelist and noticed only 1280x720p 59.94hz in there. Ive never used whitelist before.

Sounds like you simply need to disable whitelisting then.

The only entry isn’t highlighted. Doesn’t that mean it’s disabled?
From what i understand it should list all resolutions available and you select the ones you want

Similar for me. I do not use the whitelist feature, but when I clicked on it, all the x1080 resolutions were missing from the list with the test build. The Vero is back on the January build for now and all’s well.

Did any of you guys test the 4.9 pre-release and find this?

Sam

This is my first time on 4.9

@afonso1.6 do you have any missing modes?

Sam

No, I got even 2 extra modes which were not there before.

The rest of modes were there and whitelisted as before.

Can you post a log so we can compare this to other people’s systems?

Thanks

https://paste.osmc.tv/marukemewe

I have also tried to reproduce issue mentioned before, where when i stop a movie , vero restarts by itself, but seems fine now. At least i couldn’t reproduce it again.