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.
| Version | Date | Size | SHA-256 | |
|---|---|---|---|---|
| 0.6.25 BETA newest | 3 November 2026 | 341 MB | 707612657482825fbd0519997341801c2c3885b82a9b930c9f659efec0d27b13 | Download |
| 0.6.19 BETA | 1 November 2026 | 341 MB | 4d0be4ce45844337138a83591dec3db42c62fa8a030cc0c7f9922f76204637eb | Download |
Installation steps · What each version brings
Warning: beta image
You are downloading the HD Satelit image 0.6.25 for the Amiko Viper 4K V20, at the beta stage. Before you do, read this:
- The image is at the beta stage: it runs on the receiver and testing goes on, so there may be mistakes.
- It is only for the receiver on this page. Do not install it on another model, even if it looks similar.
- The new image erases everything you have on the receiver now: the channel list, the settings, the plugins and programs you added, the skin, the picons and everything you set by hand.
- So first make a copy of your settings on a USB stick. At the first start, the HD Satelit image brings back from it the channels, the channel lists, the antenna settings and the scheduled recordings. The network and Wi-Fi, the plugins, the skin and the picons are not brought back: you set them up again.
- While the receiver is writing the image, do not unplug the power and do not remove the USB stick.
- Also make a copy of your current image: if something does not work or you want to go back, the receiver is restored from a USB stick with it; how to make both copies and how to restore the receiver is on the installation page.
- The image comes without any warranty, like any program under the GPLv2 licence: you use it at your own risk.
- You help us a lot if you tell us what does not work on the image forum or at [email protected], with the receiver model and the image version.
Warning: beta image
You are downloading the HD Satelit image 0.6.19 for the Amiko Viper 4K V20, at the beta stage. Before you do, read this:
- The image is at the beta stage: it runs on the receiver and testing goes on, so there may be mistakes.
- It is only for the receiver on this page. Do not install it on another model, even if it looks similar.
- The new image erases everything you have on the receiver now: the channel list, the settings, the plugins and programs you added, the skin, the picons and everything you set by hand.
- So first make a copy of your settings on a USB stick. At the first start, the HD Satelit image brings back from it the channels, the channel lists, the antenna settings and the scheduled recordings. The network and Wi-Fi, the plugins, the skin and the picons are not brought back: you set them up again.
- While the receiver is writing the image, do not unplug the power and do not remove the USB stick.
- Also make a copy of your current image: if something does not work or you want to go back, the receiver is restored from a USB stick with it; how to make both copies and how to restore the receiver is on the installation page.
- The image comes without any warranty, like any program under the GPLv2 licence: you use it at your own risk.
- You help us a lot if you tell us what does not work on the image forum or at [email protected], with the receiver model and the image version.
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
- The image is at the beta stage: it runs on the receiver and testing goes on, so there may be mistakes.
- The archive is only for the Amiko Viper 4K V20. Do not install it on the Viper 4K V30 or V40, on the first Viper 4K or on any other receiver, even if it looks similar: each one needs its own image.
- Writing erases the current image, with its channel list, settings, plugins and everything you set by hand. Without a copy made beforehand, nothing can be brought back: in step 2 you make the settings copy (your channels come from it) and a copy of your current image.
- While the receiver is writing the image, do not unplug the power and do not remove the USB stick.
- Only the kernel and the system of the image are written. The receiver's start-up, its own data and its update mode stay untouched, so the receiver can always be restored from a USB stick, with any image made for the V20. The recordings on the receiver's disk are not deleted.
What you need
- A USB stick of 32 GB at most, with a single partition, formatted as FAT32, with at least 1 GB free.
- A computer (Windows, macOS or Linux), on which you download and unpack the archive.
- The receiver's remote.
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.
- Put the USB stick into the computer.
- On Windows: open File Explorer, under This PC right-click the stick and choose Format.
- 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.
- 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:
- 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.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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.
- 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
- Download the newest archive from the table above, with the Download button. It is a .zip file, named after the version and its date.
- 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.
- 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.
- 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.
- 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).
- 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.
- 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
- Put the USB stick into the receiver's blue USB port (USB 3.0).
- 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.
- 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.
- 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.
- At the end the receiver restarts by itself, with the new image.
Step 6. The first start
- 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.
- 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.
- 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.
- On page 2 read about the receiver's features and press GREEN: the main menu opens.
- 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.
- 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
- New versions come as updates over the internet: Main menu > Settings > Software & Firmware > Software update (keys MENU 6 8 1). You no longer need the USB stick.
- A new full image is installed the same way as now, from a USB stick; you find it in the table above, above the current one.
- The administrator (root) password is generated at random at the first start and is shown in Main menu > Settings > Network & Internet > SSH access. You only need it if you log in to the receiver from a computer; logging in works only from your home network.
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.
| Manufacturer | Amiko |
| Processor | HiSilicon Hi3798MV200 |
| Memory | 1024 MB |
| Flash memory | 3748 MB |
| Tuners | DVB-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.
| Board | Dinobot, marking VV98M E2 SI_VER05; internal name (machine) u57 |
| Processor | HiSilicon Hi3798MV200, 4 ARM Cortex-A53 cores, up to 1.6 GHz |
| Graphics card | Mali-450 MP2, 600 MHz |
| Working memory (RAM) | 1 GB DDR3 |
| Internal memory | 3.66 GiB eMMC (4 GB nominal) |
| Tuners | DVB-S2X for satellite; DVB-C and DVB-T/T2 for cable and terrestrial |
| Video output | HDMI, up to 2160p at 50 and 60 Hz, with HDR10 and HLG |
| Sound | stereo; AC3 and DTS converted to stereo or passed through unchanged |
| Network | 100 Mb/s Ethernet; internal 802.11n Wi-Fi on 2.4 GHz |
| USB | USB 3.0 (5 Gb/s) and USB 2.0 |
| Front display | 4 digits with 7 segments |
| System | Linux, 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 steps | 400, 600, 800, 1200 and 1600 MHz, the same for all 4 cores |
| Driver and governor | hi-cpufreq; the interactive governor picks the step by itself according to load |
| Manufacturer's cap | 1200 MHz, set at startup by the board manufacturer's script |
| Normal profile of the HD Satelit image | 1.2 GHz, as set by the manufacturer |
| Processor voltage | 980 mV at 400-800 MHz, 990 mV at 1200 MHz; up to 1185 mV at 1600 MHz, under load |
| Graphics card | Mali-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 minutes | 69 °C, processor at 400 MHz |
| Idle on a 4K channel (2160p50), 10 minutes | 70-73 °C, processor at 400 MHz |
| Watching TV for 20 minutes, with the 1600 MHz step allowed | 71-76 °C, 72.7 °C on average |
| Load on all 4 cores at 1200 MHz, 10 minutes | 90 °C at most |
| Cooling in 15 minutes after this load | from 82 °C to 75 °C |
| Load on all 4 cores at 1600 MHz | 95 °C in about 80 seconds; the test was stopped at that point |
| Driver protection | lowers 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 memory | 1 GB DDR3 (in the boot line: mem=1G) |
| Seen by Linux | 842,204 kB, about 822 MB |
| MMZ area, for video and graphics | 96 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 space | 500 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 A | 950-2150 MHz, the frequency after the converter (LNB) on the dish |
| Symbol rate at tuner A | 1-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 B | 47-862 MHz |
| Symbol rate at tuner B | 1-7.2 Msym/s |
| Systems reported by the driver | tuner A: DVB-S, DVB-S2; tuner B: DVB-T, DVB-T2, DVB-C (annex A) |
| Hardware units | 2 tuners (frontends), 3 demultiplexers, 2 recording devices (DVR), 2 video decoders, 2 audio decoders |
| Linux DVB interface | version 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.
| Output | HDMI 2.0a, according to the chip's data sheet |
| 4K | 2160p at 50 and 60 Hz |
| Full HD | 1080p at 24, 25, 30, 50 and 60 Hz |
| Other modes | 720p, 576 and 480 lines, plus 3D modes at 720p and 1080p |
| HDR | HDR10 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 demultiplexer | pick 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.
| AC3 | downmix (stereo) or passthrough (sent unchanged) |
| DTS | downmix (stereo) or passthrough (sent unchanged) |
| Formats decoded by the platform | AAC, MPEG audio (MP2), MP3, PCM, LPCM, Vorbis, Opus |
| Hardware audio decoders | 2 |
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.
| Ethernet | 100 Mb/s |
| Wi-Fi | internal module with the Realtek RTL8188FTV chip, 802.11b/g/n, 2.4 GHz only |
| Wi-Fi module connection | via USB 2.0, inside the receiver; rtl8188fu driver, open source (GPLv2) |
| USB controllers | xHCI with a 5000 Mb/s hub (USB 3.0), plus EHCI and OHCI (USB 2.0) |
| Port for the update USB stick | the blue USB 3.0 one |
| Front display | 4 digits with 7 segments, with the FD650 controller, which also reads the front buttons |
| Remote | infrared, 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.35 | open source (GPLv2), archive published by the board manufacturer, dated 28.08.2018 |
| Kernel modules | 75 closed-source modules (tuners, demultiplexer, decoders, HDMI, remote, display); set dated 9.12.2021 |
| Platform libraries | closed-source libraries for video and sound, 2D acceleration (libhiaccel) and OpenGL ES for Mali; set dated 4.06.2021 |
| Platform programs | showiframe (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:
- The BootROM, the fixed program in the chip, reads the start of the eMMC memory, writes “Bootrom start” on the serial console and prepares the DDR3 memory with the table from the bootloader.
- The fastboot 3.3.0 bootloader in p1 reads the boot variables from p2 (64 KiB from 1 MiB, checked with CRC32), draws the logo from p5 on HDMI and starts the front display and the button reading.
- The display shows MENU. If you press the GREEN key on the remote at this moment, the bootloader starts the updater in p7 and the display shows UPDT. Otherwise, startup continues normally.
- The bootloader reads 32 MiB starting from sector 0x1d000 (58 MiB, the start of p9) to address 0x1FFFFC0 and starts the kernel: bootcmd=mmc read 0 0x1FFFFC0 0x1d000 0x10000;bootm 0x1FFFFC0. With bootdelay=0, it does not wait for any key on the serial console.
- The Linux 4.4.35 kernel starts. The small boot system inside it (initramfs) finds the root on /dev/mmcblk0p10 and mounts it as ext4.
- The manufacturer's script loads the HiSilicon modules and sets the processor cap to 1200 MHz; the platform program (showiframe) takes over the video and sound devices.
- Enigma2 starts. The logo drawn by the bootloader stays on screen until the interface replaces it.
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:
- Never write a bootloader, a partition or a recovery package made for another model, not even for the Viper 4K V30 or V40: the internal memory, the DDR memory table and the device data are different, and the receiver can end up permanently bricked.
- If the receiver still shows the logo and MENU, the bootloader (p1), the boot variables (p2) and the updater (p7) work; do not rewrite them, and do the repair through update mode.
- Partition p6 (deviceinfo) is unique to each device. Anyone working at this level first keeps a copy of partitions p1-p9 of their own receiver, made while it still works; it is better than any package made from another device.
- The bootloader also contains commands that blow internal fuses in the chip (OTP). They are irreversible and can make the chip accept only signed software, for ever. Never run a command that starts with “otp”.
- Do not use a full erase of the internal memory (EraseAll in HiTool).
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.