Releases

Receivers / Amiko Viper 4K V20

Amiko Viper 4K V20 BETA

The image runs on this receiver and testing goes on. Updates arrive by themselves as packages. Current version 0.6.25 (2026-11-03).

Download the image

The full image, to install on the receiver from a USB stick. New versions then come as updates over the internet, from the receiver's menu.

Warning: the HD Satelit image erases everything you have on the receiver now: the channel list, the settings, the plugins and programs you added, the skin and the picons. First make a copy of your settings on a USB stick: at the first start, the image brings back from it the channels, the channel lists, the antenna settings and the scheduled recordings (how they are brought back). You set up the network and Wi-Fi, the plugins, the skin and the picons again. How to make the settings copy and the image copy, step by step.

VersionDateSizeSHA-256
0.6.25 BETA newest3 November 2026341 MB707612657482825fbd0519997341801c2c3885b82a9b930c9f659efec0d27b13Download
0.6.19 BETA1 November 2026341 MB4d0be4ce45844337138a83591dec3db42c62fa8a030cc0c7f9922f76204637ebDownload

Installation steps · What each version brings

Installing the image on the Amiko Viper 4K V20, step by step

The full image is installed on the receiver from a USB stick, through the receiver's update mode, without opening it. Preparing the stick on a computer takes a few minutes, and writing the image on the receiver a few more. Each step is below: what you do on the computer, what you press on the remote and what the front display of the receiver shows.

Before you start

What you need

Step 1. Prepare the USB stick

If the stick is already FAT32, skip the formatting. Formatting deletes everything on the stick, so do it now, before the settings copy, not after.

  1. Put the USB stick into the computer.
  2. On Windows: open File Explorer, under This PC right-click the stick and choose Format.
  3. Under File system choose FAT32 and press Start. If FAT32 is not in the list, the stick is larger than 32 GB: use a smaller one.
  4. On macOS: Disk Utility, choose the stick, Erase, the MS-DOS (FAT) format and the Master Boot Record scheme.

Step 2. Copy your settings and your current image (required)

The HD Satelit image erases everything now in the receiver's memory: the channel list, the settings, the plugins and programs you added, the skin, the picons in memory and everything you set by hand. Whatever is on a USB stick or disk stays. Without a copy made now, after the writing there is nothing to bring back. So you make two copies: the settings copy (the HD Satelit image brings your channels from it) and the image copy (so that you can go back exactly to what you have now). You need a USB stick, the remote, a computer and about half an hour.

If the receiver already has the HD Satelit image: Main menu > Settings > Software & Firmware > Settings copy (keys MENU 6 8 3); under “Copy location” choose the USB stick, then press OK or GREEN on “Make the copy now”. After the new image is written, with the stick in the receiver, the copy is put back by itself.

If the receiver has another Enigma2 image, do the following:

  1. The USB stick: at most 32 GB, formatted FAT32 (on the computer: right click on the stick › Format › file system FAT32 › Start). Put it into the receiver.
  2. The settings copy: in many Enigma2 images it is under Menu › Setup › Software Management › Backup System Settings (in others: Settings › Software › Backup settings or Backup). If it asks where to save it, choose the USB stick. It takes about a minute. A folder with a .tar.gz archive appears on the stick (usually enigma2settingsbackup.tar.gz).
  3. If your image has no settings backup: copy the receiver's /etc/enigma2 folder onto the stick with an FTP program on the computer (for example FileZilla or WinSCP, user root). The HD Satelit image finds it that way too.
  4. The image copy: also in Software Management, Image Backup. Use the arrows to choose your current image (the row with Current image), press GREEN (Start), then choose the USB stick. It takes 10-20 minutes; do not turn the receiver off while it works. At the end, an images folder appears on the stick.
  5. The copies on the computer: take the stick out, put it into the computer and copy both copies to the computer (the images folder and the settings copy folder). Then delete only the images folder from the stick, so that it does not get mixed with the new image's files; leave the settings copy on the stick. If you want to go back to your current image, you write it from a USB stick as in Restoring the receiver, below. Only use a copy made on this receiver.
  6. Picons (channel logos): if they are on a USB stick or disk, in a picon folder, they stay there and the HD Satelit image finds them by itself. If they are in the receiver's memory (/usr/share/enigma2/picon), copy the picon folder to the root of the stick.
  7. Plugins: take a photo of their list in your current image, or write it down. They are not moved over: after the installation you add them again from Menu › Extensions & Apps, from the list or from an .ipk file on a USB stick (the From file tab). A plugin made for another image may not work. Many things people add plugins for are already in the image: translated subtitles, DAB+ radio, HbbTV, the web interface.
  8. The network: write down the IP address, if you use a fixed one, and the Wi-Fi password. After the installation you set them again under Main menu › Settings › Network & Internet › Network Connection Setup (MENU 6 9 1). You choose the language, the resolution and the time again in the first-start wizard.

With the stick in the computer, go on to steps 3 and 4: you also put the new image on it. Do not delete the settings copy; the stick stays in the receiver during the writing and at the first start.

At the first start, after the wizard, the question “I found the channels and settings from another image. Shall I bring them over?” appears: press OK on Yes. The channels, channel lists, antenna settings and scheduled recordings are brought over, and at the end you see what was brought over and what was not. If you said No or put the stick in later: Menu › Channel scan › Import channels and settings (MENU 1 5), or from your phone, in the web interface, on the Import page. The steps, with pictures: https://stb.hdsatelit.com/en/ajutor/01-pornirea-si-prima-impresie/canalele-din-alta-imagine/

Step 3. Download and check the archive

  1. Download the newest archive from the table above, with the Download button. It is a .zip file, named after the version and its date.
  2. Check the SHA-256 checksum, so you know the archive arrived complete. On Windows, in PowerShell, in the downloads folder: Get-FileHash .\archive-name.zip -Algorithm SHA256. On Linux or macOS: sha256sum archive-name.zip.
  3. The string shown must be the same as the one in the table. If it differs, download the archive again.

Step 4. Unpack the archive into the root of the USB stick

The archive does not go on the stick as it is: it is unpacked, and its folders must land directly in the root of the stick, not in a folder named after the archive.

  1. On Windows: right-click the archive and choose Extract All. In the window that opens, delete the suggested path and type the letter of the USB stick, for example E:\, then press Extract.
  2. Or: open the archive with a double click, select everything in it (Ctrl+A), copy it (Ctrl+C), open the USB stick and paste (Ctrl+V).
  3. On macOS: a double click on the archive makes a folder with its name; copy to the stick what is IN that folder (the amiko and e2 folders and the two text files), not the folder itself.
  4. Check the USB stick: it must look like the drawing below. Do not rename or move anything.
E:\  (the root of the USB stick)
├── amiko
│   └── viper4kv20
│       ├── imageversion
│       ├── kernel.bin
│       └── rootfs.tar.bz2
├── e2
│   └── update
│       ├── imageversion
│       ├── kernel.bin
│       └── rootfs.tar.bz2
├── CITESTE.txt
├── JURNAL-0.6.25.txt
└── (the settings copy from step 2)

The same three files are in two folders because the receiver looks for the image in the folder left by the last image that started: after the HD Satelit image, in amiko/viper4kv20; after others, in e2/update. This way it finds it whatever image you have now.

Remove the USB stick from the computer safely (Safely Remove), so that the files are written completely.

Step 5. Write the image on the receiver

  1. Put the USB stick into the receiver's blue USB port (USB 3.0).
  2. Restart the whole receiver from the remote. In the HD Satelit image: Main menu > Power & Restart > Restart Box (keys MENU 7 4); in another image, the restart of the whole receiver from its power menu. Unplugging the receiver and plugging it back in also works, but you do not need to.
  3. Watch the front display of the receiver while it starts. When it shows MENU, press the GREEN button on the remote, pointed at the receiver.
  4. The display shows UPDT: the receiver is writing the image. This takes a few minutes. Do not press anything, do not unplug the power and do not remove the USB stick.
  5. At the end the receiver restarts by itself, with the new image.

Step 6. The first start

  1. If you made the settings copy in the HD Satelit image (step 2), the receiver puts its settings and channels back by itself and starts straight on live TV, without the wizard; then skip to step 7.
  2. Otherwise the setup wizard appears on the TV. On page 1, with “Language” selected, press LEFT or RIGHT (or OK for the list) until you reach your language.
  3. Press DOWN and choose the resolution; if you do not know what to choose, leave 1080p Full HD 50 Hz. Press GREEN. If you changed the resolution, answer Yes to “Does the picture look right?” only if the picture really looks good; otherwise the previous one comes back by itself after 20 seconds.
  4. On page 2 read about the receiver's features and press GREEN: the main menu opens.
  5. Press EXIT to get to live TV. If the USB stick has another image's channels, the question “I found the channels and settings from another image. Shall I bring them over?” appears: press OK on Yes. A copy made in the HD Satelit image is put back by itself, without a question.
  6. If you have no copy, search for the channels from the main menu: key 2 for the dish (if it is not set up yet or has a special LNB or switch), then key 1, Channel scan.

Step 7. Check the version

Main menu > System Information > About the image (keys MENU 4 1) shows the version of the image. It must be the one you downloaded. What it brings is under “What's new”, on the receiver, and under Changelog, on the site.

After the installation

Back to the image you had before

It is done the same way, from a USB stick, with the files of the other image (kernel.bin, rootfs.tar.bz2 and imageversion, if it has one). After the HD Satelit image, the receiver looks in the amiko/viper4kv20 folder, so put the files there, even if the other image's archive has them in another folder (for example e2/update). Make the settings copy first, as in step 2.

If it does not work

The display shows UPDT, but the receiver restarts in less than a minute and the old image is still there.The receiver did not find the image in the folder where it looks for it and wrote nothing. Check on the computer that the amiko and e2 folders are right in the root of the USB stick (see the drawing in step 4). If it still does not work, also copy the same three files into a dinobot/u57 folder.
On the USB stick, the amiko and e2 folders ended up in a folder named after the archive.Move them, together with the two text files, directly into the root of the stick, then delete the empty folder.
The display does not get to MENU, or the receiver starts the old image.Restart the receiver once more (from the menu or from the plug) and press GREEN as soon as the display shows MENU, with the remote pointed at the receiver.
The USB stick is not read.Use a stick of 32 GB at most, with a single FAT32 partition, in the blue port.
The new image does not start and the receiver stays on the logo.Write the image once more, the same way, from the USB stick. If it still does not start, put back, also from a USB stick, the image you had before (see “Back to the image you had before” and the section on restoring the receiver, on the receiver's page).
The channels were not brought over at the first start.Main menu > Channel scan > Import channels and settings (keys MENU 1 5), with the USB stick in the receiver.

The source code

The image uses programs under the GPLv2 licence. The source code of every published version is public on GitHub, in the Monea Software organisation; the link is on the Source page.

Online help · Changelog

ManufacturerAmiko
ProcessorHiSilicon Hi3798MV200
Memory1024 MB
Flash memory3748 MB
TunersDVB-S2X + DVB-C/T/T2

Amiko Viper 4K V20: technical description

Everything we learned about this receiver while building the HD Satelit image for it: the processor, the memory, the tuners, the video output, the software inside, how it starts and how to repair it. Each part starts with a plain explanation, followed by details for enthusiasts and developers.

In short

The Amiko Viper 4K V20 is a 4K satellite receiver with two tuners: one for satellite (DVB-S2X) and one combined tuner for cable and terrestrial aerial (DVB-C and DVB-T/T2). The same mainboard is also sold under other brands (see “Related receivers”). Inside is a HiSilicon Hi3798MV200 chip: a single chip that contains the processor, the graphics card, the video and audio decoders and the HDMI output.

The picture you see on the TV is produced by the chip's video blocks, not by the processor. That is why a 4K channel does not load the processor: while you watch TV, the processor stays at its lowest frequency almost all the time.

Below, each part starts with an explanation for anyone, followed by details for enthusiasts and developers. The figures were measured on a test Viper 4K V20 or come from the chip's public documentation.

BoardDinobot, marking VV98M E2 SI_VER05; internal name (machine) u57
ProcessorHiSilicon Hi3798MV200, 4 ARM Cortex-A53 cores, up to 1.6 GHz
Graphics cardMali-450 MP2, 600 MHz
Working memory (RAM)1 GB DDR3
Internal memory3.66 GiB eMMC (4 GB nominal)
TunersDVB-S2X for satellite; DVB-C and DVB-T/T2 for cable and terrestrial
Video outputHDMI, up to 2160p at 50 and 60 Hz, with HDR10 and HLG
Soundstereo; AC3 and DTS converted to stereo or passed through unchanged
Network100 Mb/s Ethernet; internal 802.11n Wi-Fi on 2.4 GHz
USBUSB 3.0 (5 Gb/s) and USB 2.0
Front display4 digits with 7 segments
SystemLinux, kernel 4.4.35

Board and processor

The processor (CPU) runs the software: the menus, the programme guide, the channel scan, the web interface. Its frequency, in megahertz (MHz) or gigahertz (GHz), tells you how fast it works: higher means faster, but also hotter. The processor changes its frequency by itself according to how much work it has, so that it does not heat up for nothing.

The mainboard carries the marking VV98M E2 SI_VER05. It is made by Dinobot, which also uses the same board family (VV98M E2, in another revision) in the Dinobot 4K Twin receiver. The main chip, the HiSilicon Hi3798MV200, is a “system on chip” (SoC): the processor, the graphics card, the video decoders, the picture processor, the 2D engine, the HDMI output, the sound processor and the demultiplexer are all inside it.

The processor has 4 ARM Cortex-A53 cores (identifier 0xd03), with NEON and VFPv4 instructions for calculations and dedicated instructions for AES, SHA1, SHA2 and CRC32, which speed up encryption and checksums. The Cortex-A53 is a 64-bit core (ARMv8), but the system uses it in 32-bit mode (armv7l), and the software is compiled for cortexa15hf-neon-vfpv4.

Frequency steps400, 600, 800, 1200 and 1600 MHz, the same for all 4 cores
Driver and governorhi-cpufreq; the interactive governor picks the step by itself according to load
Manufacturer's cap1200 MHz, set at startup by the board manufacturer's script
Normal profile of the HD Satelit image1.2 GHz, as set by the manufacturer
Processor voltage980 mV at 400-800 MHz, 990 mV at 1200 MHz; up to 1185 mV at 1600 MHz, under load
Graphics cardMali-450 MP2 (one geometry processor and two pixel processors), 600 MHz

In our tests while watching TV (SD, HD and 4K channels, changing channel every two minutes), the processor stayed at 400 MHz in 91% of the readings and only went higher when the channel changed.

The load average shows around 12 when idle. This does not mean the processor is busy: these are driver threads that are waiting, and Linux counts them too. At the same time, the processor is about 90% idle.

Temperature and thermal protection

Every chip heats up when it works, and high heat can make it work incorrectly or wear it out over time. That is why the driver watches the temperature and slows the processor down if it gets too hot.

The chip has its own temperature sensor, read by the HiSilicon driver (the usual Linux interface for temperatures, /sys/class/thermal, is missing on this receiver). We measured the temperature in several situations, with one reading every 5 seconds:

Idle on an HD channel (720p50), 10 minutes69 °C, processor at 400 MHz
Idle on a 4K channel (2160p50), 10 minutes70-73 °C, processor at 400 MHz
Watching TV for 20 minutes, with the 1600 MHz step allowed71-76 °C, 72.7 °C on average
Load on all 4 cores at 1200 MHz, 10 minutes90 °C at most
Cooling in 15 minutes after this loadfrom 82 °C to 75 °C
Load on all 4 cores at 1600 MHz95 °C in about 80 seconds; the test was stopped at that point
Driver protectionlowers the frequency at 115 °C, raises it again below 100 °C and restarts the receiver at 125 °C

Conclusion of the tests: while you watch TV, the temperature hardly depends on the processor frequency, because the picture is produced by the video blocks. The 1600 MHz step helps with short peaks (changing channel, menus), but under a long load on all cores the receiver quickly gets close to 95 °C. At 1200 MHz, the same load stayed below 95 °C for 10 minutes.

How the HD Satelit image uses the processor steps and what it does when it heats up is described under “Processor and heat”, in the “What it brings” list.

Working memory (RAM)

RAM is the working memory: it holds the programs while they run and the video frames while they are decoded. It is cleared when the receiver is switched off. On a receiver, part of it is reserved at startup for the video hardware, so that the decoder always has room, however many programs are running.

The receiver has 1 GB of DDR3 memory, in two SK hynix H5TQ4G63CFR chips of 4 Gbit each, each connected on 16 bits (a 32-bit bus in total). At every startup, the bootloader prepares the memory with the table hi3798mv2dma_hi3798mv200_DDR3-1866_1GB_16bitx2_2layers.reg, that is, for 1 GB of DDR3-1866 memory in two 16-bit chips.

Total memory1 GB DDR3 (in the boot line: mem=1G)
Seen by Linux842,204 kB, about 822 MB
MMZ area, for video and graphics96 MB (mmz=ddr,0,0,96M), outside the memory seen by Linux
Contiguous reserve (CMA)184,320 kB (180 MB), taken from the memory seen by Linux, reserved for video
Kernel vmalloc space500 MB (vmalloc=500M)

MMZ (media memory zone) is a continuous block of physical memory, managed by the hi_mmz module. The chip's video blocks work in it: decoded frames are stored here in NV21 format and go from the decoder to the picture processor and then to the output, without passing through the programs' memory.

Internal memory (eMMC) and partitions

The internal memory (eMMC) is a kind of small SSD soldered onto the board: it keeps the system, the settings and the channel lists even when the receiver is switched off. It is divided into partitions, each with its own role. Only the last two contain the Enigma2 image; the others belong to the startup and to the device data, and they do not change when you install an image.

The memory has 7,675,904 sectors of 512 bytes each, that is 3.66 GiB (3748 MiB); it is sold as 4 GB memory. The chip identifies itself as G4MYM0 and works in HS400 mode, on an 8-bit bus. Besides the main area, it has two small boot areas, boot0 and boot1, of 2 MiB each, and a protected area (RPMB) of 128 KiB.

p1 boot (from 0, 1 MiB)fastboot 3.3.0 bootloader, built on 27.08.2020, with the DDR memory setup
p2 bootargs (from 1 MiB, 1 MiB)boot variables: 64 KiB, with a CRC32 checksum
p3 baseparam (from 2 MiB, 4 MiB)display parameters: output format, brightness, contrast, colours
p4 pqparam (from 6 MiB, 4 MiB)the picture quality table, used by the picture processor
p5 logo (from 10 MiB, 4 MiB)the startup logo, a JPEG image of 36,813 bytes
p6 deviceinfo (from 14 MiB, 4 MiB)the device's unique data: the MAC address, the board type (HW=U5SLIM) and the folder for updating from a USB stick
p7 loader (from 18 MiB, 32 MiB)the updater: a small, separate Linux that writes the image from the USB stick
p8 trustedcore (from 50 MiB, 8 MiB)empty, not used on this device
p9 kernel (from 58 MiB, 32 MiB)the image's Linux kernel, about 7 MB
p10 rootfs (from 90 MiB to the end)the image's ext4 file system, about 3.57 GiB

The kernel boot line starts with console=ttyAMA0,115200 root=/dev/mmcblk0p10 rootfstype=ext4 rootwait, continues with the partition list (blkdevparts=mmcblk0:...), in the same order and with the same sizes as in the table, and ends with mem=1G mmz=ddr,0,0,96M vmalloc=500M. In the list, the rootfs partition is declared with 7200 MB and is followed by one called others, but the memory only has 3.66 GiB: rootfs stops at the end of the memory, and others does not exist.

When you install an image from a USB stick, only p9 (from the kernel.bin file) and p10 (from the rootfs.tar.bz2 archive) are written. Partition p6 is different on every device: a copy taken from another receiver would bring that receiver's MAC address and data.

Tuners

The tuner receives the signal from the aerial or from the cable network and turns it into data that the receiver can decode. The Viper 4K V20 has two independent tuners: one for satellite and one combined tuner for cable or terrestrial aerial.

DVB-S2X is the newest version of the satellite television standard, after DVB-S and DVB-S2. DVB-C is the standard for cable television, and DVB-T and DVB-T2 are the standards for terrestrial aerials; DVB-T2 is the newer version.

Tuner A (NIM 0)satellite, type DVB-S2X; name given by the driver: “DVB-S2 NIM”
Input frequency at tuner A950-2150 MHz, the frequency after the converter (LNB) on the dish
Symbol rate at tuner A1-60 Msym/s
Tuner B (NIM 1)combined, a single device for cable and terrestrial; name given by the driver: “DVB-C,T/T2 NIM”
Input frequency at tuner B47-862 MHz
Symbol rate at tuner B1-7.2 Msym/s
Systems reported by the drivertuner A: DVB-S, DVB-S2; tuner B: DVB-T, DVB-T2, DVB-C (annex A)
Hardware units2 tuners (frontends), 3 demultiplexers, 2 recording devices (DVR), 2 video decoders, 2 audio decoders
Linux DVB interfaceversion 5.10

Tuner B works on one thing at a time, either cable or terrestrial. The program that uses it reads, when it opens it, the list of systems it supports (DTV_ENUM_DELSYS) and tells it at each tuning what kind of signal is coming (DTV_DELIVERY_SYSTEM).

Amiko presents the satellite tuner as DVB-S2X Multistream. The list of systems that the driver gives through the DVB interface contains only DVB-S and DVB-S2; the DVB-S2X type appears separately, in the system's tuner description (/proc/bus/nim_sockets).

DAB+ radio and DVB-T2 programmes transmitted via satellite, from the “What it brings” list, are received through the satellite tuner. While they run, the tuner is busy, because the receiver has only one tuner for satellite.

Picture: resolutions, HDR, colours

The resolution tells you how many dots the picture has: 2160p means 3840 x 2160 dots (4K), 1080p means 1920 x 1080 (Full HD). The letter “p” stands for “progressive”, meaning each frame is complete, and the number of hertz (Hz) is the number of frames per second.

HDR (high dynamic range picture) brings brighter highlights and more shades between white and black. There are several kinds of HDR; this receiver supports HDR10 and HLG, and the TV must support them too. The colour space tells you how many colours the signal can describe: BT.709 is the one used for normal HD pictures, BT.2020 is wider and is used for 4K and HDR.

OutputHDMI 2.0a, according to the chip's data sheet
4K2160p at 50 and 60 Hz
Full HD1080p at 24, 25, 30, 50 and 60 Hz
Other modes720p, 576 and 480 lines, plus 3D modes at 720p and 1080p
HDRHDR10 and HLG
Colorimetry (driver options)bt709, bt2020ncl, bt2020cl
Graphics layer (menus)1920 x 1080, 32-bit colour with transparency (ARGB8888), scaled up at the output to 3840 x 2160

The channel picture and the menus are two separate layers, placed one on top of the other only at the output: the channel can be 4K, while the menus are drawn at 1920 x 1080 and scaled up.

The conversions done by the chip's display block: HDR10 to SDR, HLG to SDR, SDR to HDR10, SDR to HLG, HDR10 to HLG, HLG to HDR10, BT.2020 to BT.709 and BT.709 to BT.2020. This way, an HDR channel can also be watched on a TV without HDR, and a normal (SDR) channel can be sent out as HDR. In SD modes (576 and 480 lines), the HDR output cannot be used.

The HDR output type (automatic according to the channel, HDR10, HLG or SDR) is applied the next time the channel starts, after about 30 frames (around 0.6 seconds at 50 frames per second). When you switch from an SDR channel to an HDR one, the screen may stay black for a moment: the HDMI driver waits 500 ms when the mode changes, and when leaving HDR it sends an empty HDR signal for 2 seconds, so that the TV returns to SDR. In the HD Satelit image, you choose this under “HDR output”.

The HDMI bandwidth sets a limit. At 2160p50 with 10 bits, an RGB or YCbCr 4:4:4 output would need a 742.5 MHz clock, above the 600 MHz that the test HDMI 2.0 TV accepted. That is why 10-bit 4K HDR is output as YCbCr 4:2:2 or 4:2:0. The HDMI driver chooses the colour space and the depth by itself, according to what the TV reports. At 1080p50 (148.5 MHz) any combination fits.

For developers: the HDR choice goes through /proc/stb/video/hdmi_hdrtype (auto, hdr10, hlg, none; an empty or unknown text means SDR), which the platform program reads every time a channel starts. A write to /proc/stb/video/hdmi_colorimetry is applied immediately, but it switches the output to YCbCr 4:4:4 with 30 bits until the next restart; in HDR, the HDMI driver sets BT.2020 colorimetry by itself.

Hardware video decoding

A TV channel arrives compressed, so that it fits in the signal. The decoder unpacks it into frames, then the picture processor cleans up each frame and scales it to the output resolution. On this receiver, all of this is done by dedicated blocks in the chip, not by the main processor and not by the graphics card. The result is a smooth 4K picture without loading the processor.

The less visible part: a program that wants to use the decoder must send it the data along its own path. The usual players on a computer do not know this path. The route of a channel through the chip looks like this:

1. Tuner and demultiplexerpick the channel's packets from the signal: picture, sound, subtitles
2. Video decoder (VDEC; modules hi_vfmw and hi_vdec)unpacks the compressed picture into frames and reports the frame type: SDR, HDR10 or HLG
3. Frame processor (VPSS; hi_vpss)5-field deinterlacing and noise reduction
4. Display block (VDP; hi_vou)scaling to the output resolution, sharpness, colours, overlaying the menus
5. HDMI output (hi_hdmi)sends the picture to the TV

A measured example: an interlaced 1920 x 1080 H.264 channel at 5.38 Mbit/s leaves the frame processor at 50 frames per second and is scaled by the display block to 3840 x 2160, 50p. An interlaced 720 x 576 SD MPEG-2 channel is also scaled by it, up to 2160p. Scaling uses a filter with 8 taps and 32 phases for brightness and 4 taps for colour.

The picture processor (PQ) has a factory profile, chosen according to the source width: up to 720 dots SD, up to 1920 HD, up to 4096 UHD. On SD channels, deblocking (DB), edge cleaning (DM) and noise reduction (TNR and SNR) are on; on HD channels, temporal noise reduction (TNR), sharpness, adaptive contrast (ACC) and colours (ACM) stay on, while DB, DM and SNR are off. The settings come from the pqparam partition and are not kept after a restart. The super-resolution function from the chip's data sheet is not used by the driver. The HD Satelit image adds its own profiles on top of these (“Picture quality profiles”, in the “What it brings” list).

The Mali-450 MP2 graphics card (600 MHz, OpenGL ES 2.0 and 1.1) takes no part in the TV picture: while a channel plays it stays idle, at 0% usage. It could not scale any better either: a filter of the same quality at 4K and 50 frames per second would need 4.8-5.6 billion reads per second, 3 to 4.7 times its peak of 1.2-1.6 billion pixels per second.

Why hardware decoding does not work in computer players such as VLC: on this chip, the decoder is not used through the usual Linux interfaces (V4L2 M2M or VA-API), but through the HiSilicon modules, which work with the MMZ memory (hi_mmz) and with the decoder (hi_vdec). A player that decodes into normal memory would do everything on the processor: the processor at full load, heat and dropped frames. Players that work are those that send the compressed data directly to the decoding device /dev/dvb/adapter0/video0, for example GStreamer with dvbmediasink or exteplayer3, and the player built on the HiSilicon libraries (servicehisilicon).

Enigma2 does not use the HiSilicon libraries directly either: it works with the DVB devices (/dev/dvb/adapter0) and with the /proc/stb files, which are created by a module from the board manufacturer, loaded under the name firedtv.

Sound

Channels send sound in several formats. The usual ones, such as MPEG audio or AAC, are converted to stereo by the receiver itself. Multichannel sound (5.1), in AC3 or DTS format, can be handled in two ways: converted to stereo by the receiver (downmix) or sent unchanged over HDMI (passthrough), so that the TV or the amplifier decodes it.

AC3downmix (stereo) or passthrough (sent unchanged)
DTSdownmix (stereo) or passthrough (sent unchanged)
Formats decoded by the platformAAC, MPEG audio (MP2), MP3, PCM, LPCM, Vorbis, Opus
Hardware audio decoders2

With downmix, an AC3 track plays in stereo (tested on one channel); DTS and E-AC3 should behave the same, but we have not tested them yet. With passthrough, the receiver puts the frames into the form required by HDMI (IEC 61937) and passes them on without decoding them.

Real 5.1 sound reaches the speakers only through passthrough, and only if the device connected over HDMI reports that it accepts the format. An AAC 5.1 track cannot be sent as 5.1 without re-encoding, so it stays stereo.

The chip's sound processor has no equaliser; an equaliser has to run on the main processor. The one in the HD Satelit image is described under “Equaliser”, in the “What it brings” list.

Network, USB ports, display and remote

The receiver connects to the internet by cable (Ethernet) or wirelessly (Wi-Fi). You can connect USB sticks, drives or a keyboard to the USB ports. USB 3.0 transfers up to 5 Gb/s, more than ten times as much as USB 2.0 (480 Mb/s), which matters for large files.

The front display shows the time, the channel or other information, and the remote sends commands by infrared.

Ethernet100 Mb/s
Wi-Fiinternal module with the Realtek RTL8188FTV chip, 802.11b/g/n, 2.4 GHz only
Wi-Fi module connectionvia USB 2.0, inside the receiver; rtl8188fu driver, open source (GPLv2)
USB controllersxHCI with a 5000 Mb/s hub (USB 3.0), plus EHCI and OHCI (USB 2.0)
Port for the update USB stickthe blue USB 3.0 one
Front display4 digits with 7 segments, with the FD650 controller, which also reads the front buttons
Remoteinfrared, NEC protocol with address 0xCD02; 53 keys measured

The front display is written first by the bootloader at startup (for example MENU and, in update mode, UPDT), then by the system driver, through the /dev/dbox/oled0 device. What the display shows with the HD Satelit image is described under “Front display with lots of data”, in the “What it brings” list.

The USB controllers are compiled directly into the kernel, not as separate modules, so they work from the first seconds of startup.

Software inside: the kernel and the drivers

The kernel is the core of the Linux system: it shares the processor and the memory between programs and talks to the receiver's hardware through drivers. On this receiver, the drivers for the main hardware (tuners, decoders, HDMI, display) are supplied by the board manufacturer as ready-compiled modules, for a specific kernel version. That is why the kernel stays at version 4.4.35: a newer kernel could not load these modules.

The system has several layers, all supplied by the board manufacturer:

Linux kernel 4.4.35open source (GPLv2), archive published by the board manufacturer, dated 28.08.2018
Kernel modules75 closed-source modules (tuners, demultiplexer, decoders, HDMI, remote, display); set dated 9.12.2021
Platform librariesclosed-source libraries for video and sound, 2D acceleration (libhiaccel) and OpenGL ES for Mali; set dated 4.06.2021
Platform programsshowiframe (holds the video and sound devices, applies the video mode and HDR), hihalt (shutdown), the load script (loads the modules and sets the processor cap)

The modules are tied to the exact version and configuration of the kernel they were compiled for, and their source is not public. The set from 9 December 2021 is the last one published for the u57 board. Other manufacturers that use the same chip have published newer sets, but each is made for its own board. The kernel of the HD Satelit image is compiled by us, also at version 4.4.35 (with GCC 15.2), so that the manufacturer's modules load unchanged.

Modules loaded at startup, by role: hi_mmz (MMZ memory), hi_vfmw and hi_vdec (video decoding), hi_vpss (frame processing), hi_vou (display), hi_pq (picture quality), hi_hdmi (HDMI output), hi_demux (demultiplexer), hi_adec and hi_adsp (sound), hi_fb (graphics layer), hi_tde (2D engine), mali (graphics card), hi_tuner (tuners), hi_keyled (front display and buttons), hi_ir (remote).

The reference kernel configuration for u57, for developers: the USB controllers (EHCI, OHCI, xHCI) are built into the kernel; CONFIG_PANIC_TIMEOUT=0, so after a panic the kernel stays halted and does not restart by itself; CONFIG_KEXEC and loop devices are enabled, OverlayFS is missing; FUSE and WireGuard are built into the kernel.

How the receiver starts

At startup, several programs run one after another, each preparing the next: a fixed program in the chip, the bootloader, the Linux kernel and, finally, Enigma2. In the first seconds it is also decided whether the receiver starts normally or enters update mode from a USB stick. The steps, in order:

If the root in p10 cannot be used, the kernel stops (it panics) and stays that way: the logo on screen, nothing on the network, because the kernel is configured not to restart by itself. In that case you repair the receiver through update mode, which does not depend on the image in p9 and p10.

The updater in p7 has its own kernel (Linux-4.4.35_hi3798mv2x, dated 17.08.2020), which works with 128 MB of memory. It mounts the USB stick, looks for the image in a specific folder, runs the ofgwrite program, which writes the kernel to p9 and the system to p10, and then restarts the receiver.

Serial console (for developers)

The serial console is a connector on the board through which the receiver writes everything it does at each startup: the BootROM, the bootloader, the kernel, update mode. It shows what is happening even when the receiver has no network and shows nothing on the TV. Normal users do not need it: the image is installed and restored from a USB stick, without opening the receiver.

On the Viper 4K V20, the console in Linux is the ttyAMA0 device (UART0), at 115200 bits per second, 8N1, without flow control. During a normal startup you see the messages from the BootROM, the bootloader and the kernel, up to the mounting of the root; in update mode, the updater in p7 writes all its steps there.

Warning: opening the receiver and connecting an adapter to the board are only for people who know what they are doing, and are done at their own risk. A wrong connection can damage the board or the adapter. You do not need it to install or restore the image.

Recovering the receiver

If an image no longer starts, you can restore the receiver without opening it, through update mode (Maintenance Mode). This is a separate program, in partition p7, that starts even when the image in p9 and p10 is damaged.

In short: on a FAT32-formatted USB stick, put the extracted files kernel.bin, rootfs.tar.bz2 and imageversion in a specific folder. Insert the USB stick into the blue port (USB 3.0), switch the receiver on at the mains, and when the display shows MENU, press the GREEN key on the remote. The display shows UPDT, the receiver writes the image and restarts by itself. Do not cut the power during this time. The exact steps and the folder are described where you download the image.

UPDT on the display only means that the updater has started, not that it has written anything. A real write takes a few minutes. If the folder is not found, the receiver restarts in less than a minute without writing anything.

The folder name is stored in a tag in partition p6 and is rewritten at every startup by the platform program, according to the image that is running. With the HD Satelit image, the updater looks in amiko/viper4kv20/; after other images it may look in another folder, for example e2/update/.

When even the bootloader no longer starts, rewriting can only be done with HiSilicon's HiTool utility: the bootloader is sent through the serial console, and the other partitions over the network (TFTP). This is a job for specialists, with real risks. Rules that protect against permanent damage:

Related receivers (same board)

The same board, with the internal name u57, is also sold under other brands. They all have the same chip, the same kernel and the same drivers; what differs is the name, the remote, the folder where the updater looks for the image on the USB stick and, on one model, the layout of the internal memory. In brackets is the model name in the image build system:

Amiko Viper 4K V20 (viper4kv20)kernel on p9, root on p10; folder e2/update (with the HD Satelit image, amiko/viper4kv20); remote amiko6
Amiko Viper 4K V30 (viper4kv30)same partitions; folder amiko/viper4kv30; remote amiko6
Hitube 4K Combo Plus (hitube4kplus)same partitions; folder dinobot/hitube4kplus; remote hitube2
Hitube 4K Pro (hitube4kpro)same partitions; folder dinobot/hitube4kpro; remote hitube2
Izibox Elite 4K (iziboxelite4k)same partitions; folder izibox/iziboxelite4k; remote izibox2
Izibox X4 4K OTT (iziboxx4)same partitions; folder izibox/u57; remote izibox1
Protek 4K X2 (protek4kx2)same partitions; folder e2/update; remote protek3
Vivant Dinobot 4K Twin (dinobot4ktwin)kernel on p10, root on p13; remote dinobot2

The folders in the table are those from each model's build configuration, and the remotes differ in their keymap. An image made for the V20 must not be installed on the other models: each one needs its own build.

The Viper 4K V30 has the same board but, according to a test published on a specialist forum, it has 8 GB of internal memory, and a full memory copy taken from a V20 does not start on a V30. The Viper 4K V40 uses the same chip on a different board (u571), and the first Viper 4K (V10, internal name viper4k) has a different memory layout (kernel on p12, root on p16).

Of the 420 receiver models we follow, 73 are built on the same Hi3798MV200 chip: besides the 8 above, models from Octagon, Zgemma, GigaBlue, AB-COM and others. They have their own boards, drivers, memory layouts and recovery methods. The status of each model for the HD Satelit image is on the Receivers page.

What the HD Satelit image brings to this receiver

The image's features are in the “What it brings” list on the home page and, in detail, in the online help. On the Viper 4K V20, the HD Satelit image is in beta: it works on the receiver and testing continues.

The image is based on the enigma2 code published by Dream Multimedia and, for this receiver, keeps kernel 4.4.35 and the board manufacturer's drivers described above. Several features in the list relate directly to the hardware on this page: “HDR output”, “Picture quality profiles”, “5.1 sound sent only where it can be played”, “Equaliser”, “Processor and heat”, “DAB+ from satellite” and “DVB-T2 from satellite”.

Last updated: 23.10.2026.