This project is a Python script that automates the process of creating images for various Arm SBCs (Single Board Computers) using a board configuration file. The script currently supports the following SBCs:
- VIM 4
 - Rock 5
 - Rock 4C+
 - Orange Pi 5 (using Rock 5 board cfg)
 - R58S (using Rock 5 board cfg)
 - R58X (using Rock 5 board cfg)
 - R58X-4G (using Rock 5 board cfg)
 
To use this project, you will need:
- Python 3.6 or later installed on your system
 - Git installed on your system
 - Arch install scripts
 - These python libraries 
argparse,prettytable,signal 
To use this project, clone the repository to your local machine:
git clone https://github.com/BredOS/mkimageTo create an image for your chosen SBC, run the mkimage.py script with the appropriate arguments. The basic usage is:
./mkimage.py -w /tmp/work -o ./output -c <board-cfg>Where:
-w: the working directory to use-o: the output directory for the resulting image-c: the board configuration file to use
WARNING: If your system has less than 16 GB of RAM, it is recommended to use a different directory for the working directory, as using /tmp/work can cause performance issues due to the limited space in the /tmp directory.
For example, to create an image for the Rock 5 board, using the lxqt-rock5b-image configuration, with a working directory of /tmp/work and an output directory of ./output, you would run:
./mkimage.py -w /tmp/work -o ./output -c ./lxqt-rock5b-imageBoard configuration files contain the settings necessary to build an image for a specific SBC. These files are located in the configs directory of the project.
If you want to create an image for a different SBC, you will need to create a new configuration file for that board. You can use an existing configuration file as a starting point.
- alarmimg/: the directory containing the basic system files for the image
 - fixperms.sh: a shell script for fixing file permissions on the system files
 - idbloader.img and u-boot.itb: files needed for U-Boot on Rock 5 boards
 - packages.aarch64: a list of packages to be installed on the image
 - pacman.conf.aarch64: the configuration file used to create the image itself
 - profiledef: a file containing basic information about the image, such as the version number, device, architecture, file system type, image name, image type, backend, and cmdline
 
Some boards like the Rock 4C+ have more files, containing patches, or extra firmware.
If you find a bug or have a suggestion for improving this project, feel free to open an issue or submit a pull request. All contributions are welcome!
This project is licensed under the GPL 3.0 License. See the LICENSE file for details.