64bit Dolby Vision module for s922x

I’ve been fortunate to be able to piggyback off all the progress that was made getting Dolby Vision working on the Ugoos am6 & Minix u22xj by the CoreELEC team.

Dolby Vision (including DV FEL) is working on the FireTV 2nd gen Cube (s922x) in CoreELEC (cube development thread). The notable difference between the Cube and am6/u22xj is that it uses a 64bit kernel and DV module, allowing use of the main CE-NG 20/21 build line.

There isn’t any advantage to using the main CE build line unless you are using an add-on that requires a 64bit kernel. And a DV certified SOC is still required.

It’s possible that the Cube’s 64bit DV module could work on the am5/u22xj so I wanted to make a post for anyone interested in investing further. There has already been some preliminary testing of the Cube’s module on the u22xj, and while it loads, the screen is black during DV playback (DV status flag appears). Even on the Cube, the OSD (player controls and subtitles) are all black during DV playback.

To avoid violating any site rules, I’m sharing a direct firmware link to Amazon’s server. The DV module is located within at /vendor/lib/modules/dovi_vs10.ko.

Procedure for extracting the module in Linux

  1. download the firmware bin, and rename .bin to .zip

  2. unzip the following files from the firmware file:

  3. Decompress brotli file (.br file) to sparse image (.dat file)
    Install brotli [sudo apt-get install -y brotli].

brotli -d vendor.new.dat.br
  1. Convert sparse image to ext4 image (*.img file)
    Download sdat2img
python sdat2img.py vendor.transfer.list vendor.new.dat vendor.img
  1. Mount ext4 image, and copy DV module /mnt/vendor/lib/modules/dovi_vs10.ko
sudo mount -t ext4 -o loop vendor.img /mnt
  1. Unmount image when done
sudo umount /mnt

Loading the DV module in CoreELEC

  1. Download the latest nightly for CE-NG 20.4 or 21.

  2. Rename the extracted dovi_vs10.ko file, to dovi.ko and place it at /storage/dovi.ko on the CE USB stick. This will supersede dovi.ko on the am6/u22xj vendor partition. Reboot.

dovi will be listed under lsmod, and DV options will appear under Settings/System/CoreELEC/ if the module has successfully loaded. All the DV code from CE-NG-DV is present in CE-NG and will be active when the DV module is loaded.

Kernel source code for the 2nd gen Cube can be found here.


What DV Vesion does the Cube use (CM2.9 or CM4.0)?

Are there any feature differences between the cube and the ugoos/minix in support of passthrough hd audio codecs or menu speed?

And does the osd during playback work now or is that still the case. that it is black?

I’m not sure about CM 2.9 vs CM 4.0, I can check if you point out where that can be found. The DV module was created in 2019 and hasn’t changed since then if that’s any indicator.

The Cube has all the same HD audio passthrough capabilities of any of the other CE-NG devices like the am6/u22xj.

Yes, I’m still looking for the cause of the black OSD issue. In terms of CoreELEC use, the am6/u22xj are easily better devices. They have official CE support, USB3 ports, gigabit Ethernet. The Cube has one micro USB2 port that you can connect a USB hub with Ethernet and get ~350Mbps. 2GB RAM, 16GB storage. It also has to be unlocked which either requires a new sealed unit or one that is on very old firmware.

The only advantage to the Cube is that it has full DRM for FireOS streaming. If you can find a new unit locally for $40-70 it’s still a good deal even taking into account its weaknesses.

There are some cm4 test files here but I don’t know what I’m supposed to be seeing (or not),

CMV 4.0 TEST files - Google Drive

1 Like

I’ll move the Cube discussion over to it’s development thread here.

This thread is really more for the AM6 & U22XJ and whether the 64bit module can be jimmied into use on these two boxes to bring them back in to the main CE-NG build line.