diff options
author | Oxore <oxore@protonmail.com> | 2024-01-05 22:59:05 +0300 |
---|---|---|
committer | Oxore <oxore@protonmail.com> | 2024-01-05 22:59:05 +0300 |
commit | 6bc56335677514a1f508f1d83bdafbcc2f66c9f0 (patch) | |
tree | 2c3dbfd32a8db416fa7231274781c20bfc260285 /source/amberelec-internals.rst |
Initial commit
Diffstat (limited to 'source/amberelec-internals.rst')
-rw-r--r-- | source/amberelec-internals.rst | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/source/amberelec-internals.rst b/source/amberelec-internals.rst new file mode 100644 index 0000000..5b742a0 --- /dev/null +++ b/source/amberelec-internals.rst @@ -0,0 +1,45 @@ +################### +AmberELEC internals +################### + +`AmberELEC`_ (former 351ELEC) is a fork of `EmuELEC`_, which is a fork of `CoreELEC`_, which is a fork of `LibreELEC`_, which is a fork of `OpenELEC`_). Knowing this inheritance scheme may help you find some lost knowledge and understand reasoning behind some decisions. + +.. _AmberELEC: https://github.com/AmberELEC/AmberELEC +.. _EmuELEC: https://github.com/EmuELEC/EmuELEC +.. _CoreELEC: https://github.com/CoreELEC/CoreELEC +.. _LibreELEC: https://github.com/LibreELEC/LibreELEC.tv +.. _OpenELEC: https://github.com/OpenELEC/OpenELEC.tv + +How the disk image file is constructed +====================================== + +The image is built by ``/scripts/mkimage`` script. + +The final image has size of 2097 MiB and consists of the following parts: + +* 16 MiB - A padding, purpose is unclear. It is defined by ``SYSTEM_PART_START`` variable, measured in sectors, 1 sector = 512 bytes. The ``SYSTEM_PART_START`` variable is defined in the ``/projects/Rockchip/options`` file. +* 2 GiB - System storage partition, a FAT file system, containing the bootloader, the kernel, device tree blobs and the system - a squasfs file of rootfs. +* 32 MiB - Games storage partition, an ext4 file system, to be expanded at first boot to fill out all available memory on the microSD card. +* 1 MiB - Some GPT padding, purpose is unclear. + +Tools used in the script: + +* ``dd`` is used to create the disk image file. +* ``parted`` is used to crate partitions on the file like if it was a disk. +* ``sync`` is used to fully commit changes made to the file. +* ``mformat`` is used to create boot sector, format the first partition in FAT system and create the root directory on the partition. +* ``mcopy`` is used to copy files into the first partition's file system. +* ``mmd`` is used to create directories inside the first partition's file system. +* ``pigz`` is used to compress the image file + +Where the tools are coming from: + +* ``dd`` and ``sync`` are from ``/packages/tools/sysutils/coreutils`` package. +* ``pigz`` is from ``/packages/compress/pigz`` package. +* ``mformat``, ``mcopy`` and ``mmd`` are from ``/packages/tools/mtools`` package. +* ``parted`` is from ``/packages/tools/sysutils/parted`` package. + +How the system is loaded +======================== + +The ``init`` script, that ends up in the ``initramfs`` CPIO image, is copied from ``/packages/sysutils/busybox/scripts/init`` file. |