mirror of
https://github.com/rosalinux/image-builder.git
synced 2025-02-23 02:12:52 +00:00
massive cleanup
This commit is contained in:
parent
32567efd1f
commit
058da5e9ce
5 changed files with 80 additions and 38 deletions
61
README.md
Normal file
61
README.md
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
# Image Builder
|
||||||
|
|
||||||
|
**Image Builder** — это инструмент для создания индивидуальных системных образов, готовых к развертыванию, таких как установочные диски, виртуальные машины и образы для облачных платформ. Этот репозиторий содержит скрипты и конфигурации, необходимые для создания таких образов на основе RosaLinux.
|
||||||
|
|
||||||
|
## Возможности
|
||||||
|
|
||||||
|
- **Создание установочных образов**: Подготовка RAW-образов для установки системы на физические или виртуальные машины.
|
||||||
|
- **Создание облачных образов**: Генерация образов, оптимизированных для развёртывания в различных облачных средах.
|
||||||
|
- **Кастомизация пакетов**: Выбор и настройка пакетов, включаемых в создаваемый образ.
|
||||||
|
|
||||||
|
## Требования
|
||||||
|
|
||||||
|
- **Операционная система**: rosa13 fresh или совместимая с ней дистрибуция.
|
||||||
|
- **Зависимости**: Убедитесь, что следующие пакеты установлены в системе:
|
||||||
|
- `binutils-aarch64-linux-gnu`
|
||||||
|
- `gcc-aarch64-linux-gnu`
|
||||||
|
- `mkosi`
|
||||||
|
- `qemu-aarch64-static`
|
||||||
|
- `qemu-loongarch64-static`
|
||||||
|
- `qemu-riscv64-static`
|
||||||
|
- `uboot-tools`
|
||||||
|
|
||||||
|
## Установка
|
||||||
|
|
||||||
|
1. **Клонирование репозитория**:
|
||||||
|
```bash
|
||||||
|
git clone https://github.com/rosalinux/image-builder.git
|
||||||
|
cd image-builder
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Установка зависимостей**:
|
||||||
|
```bash
|
||||||
|
sudo dnf update
|
||||||
|
sudo dnf install mkosi qemu-aarch64-static uboot-tools gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu
|
||||||
|
```
|
||||||
|
|
||||||
|
## Использование
|
||||||
|
|
||||||
|
2. **Создание образа**:
|
||||||
|
Запустите процесс сборки с указанием вашего конфигурационного файла:
|
||||||
|
```bash
|
||||||
|
cd image-builder/device/generic/
|
||||||
|
mkosi --force
|
||||||
|
```
|
||||||
|
По завершении сборки, готовый образ будет доступен в текущей директории.
|
||||||
|
|
||||||
|
3. **Создание образа и запуск**:
|
||||||
|
Запустите процесс сборки с указанием вашего конфигурационного файла:
|
||||||
|
```bash
|
||||||
|
cd image-builder/device/generic/
|
||||||
|
mkosi --force vm
|
||||||
|
```
|
||||||
|
По завершении сборки, будет запущена виртуальная машина.
|
||||||
|
|
||||||
|
## Поддержка
|
||||||
|
|
||||||
|
Если у вас возникли вопросы или проблемы, пожалуйста, создайте [issue](https://github.com/rosalinux/image-builder/issues) в этом репозитории.
|
||||||
|
|
||||||
|
## Лицензия
|
||||||
|
|
||||||
|
Этот проект распространяется под лицензией MIT.
|
|
@ -43,6 +43,7 @@ Packages=
|
||||||
camera_engine_rkaiq
|
camera_engine_rkaiq
|
||||||
|
|
||||||
Bootable=no
|
Bootable=no
|
||||||
|
Bootloader=none
|
||||||
Autologin=yes
|
Autologin=yes
|
||||||
RootPassword=root
|
RootPassword=root
|
||||||
RootShell=/usr/bin/bash
|
RootShell=/usr/bin/bash
|
||||||
|
|
|
@ -5,12 +5,11 @@ set -Eeuo pipefail
|
||||||
|
|
||||||
version=$(rpm -q --queryformat '%{version}\n' kernel-6.1-orangepi)
|
version=$(rpm -q --queryformat '%{version}\n' kernel-6.1-orangepi)
|
||||||
printf "Generate /boot/uInitrd-${version}...\n"
|
printf "Generate /boot/uInitrd-${version}...\n"
|
||||||
# mkimage -A arm64 -O linux -T ramdisk -C gzip -n uInitrd -d /boot/initrd-%{version}.img /boot/uInitrd
|
dracut --force --regenerate-all
|
||||||
mkimage -A arm64 -O linux -T ramdisk -C gzip -d /boot/initrd-${version}.img /boot/uInitrd-${version}
|
mkimage -A arm64 -O linux -T ramdisk -C none -n uInitrd -d /boot/initramfs-${version}.img /boot/uInitrd-${version}
|
||||||
|
|
||||||
printf "Remove dracut-generated initrd...\n"
|
printf "Remove dracut-generated initrd...\n"
|
||||||
rm -fv /boot/initrd-${version}.img
|
rm -fv /boot/initramfs-${version}.img
|
||||||
rm -fv /boot/uInitrd
|
|
||||||
|
|
||||||
# generate boot.scr
|
# generate boot.scr
|
||||||
# see mkosi.extra/boot/boot.cmd
|
# see mkosi.extra/boot/boot.cmd
|
||||||
|
|
|
@ -1,31 +1,12 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#set -x
|
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
||||||
#env
|
set -Eeuo pipefail
|
||||||
## SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
|
|
||||||
#UBOOT_DIR="${SRCDIR}/mkosi"
|
UBOOT_DIR="${SRCDIR}/mkosi"
|
||||||
#
|
IMAGE="${OUTPUTDIR}/image.raw"
|
||||||
#IMAGE="${OUTPUTDIR}/orangepi5.img"
|
|
||||||
#IMAGE_SIZE=$(du -sb "${OUTPUTDIR}/image" | cut -f1)
|
pushd ${OUTPUTDIR}
|
||||||
#IMAGE_SIZE=$((IMAGE_SIZE + 15 * 1024 * 1024))
|
printf "write bootloader to the image...\n"
|
||||||
#
|
dd if=${UBOOT_DIR}/idbloader.img of=${IMAGE} seek=64 conv=notrunc
|
||||||
#dd if=/dev/zero of="${IMAGE}" bs=1M count=0 seek=$((IMAGE_SIZE / 1024 / 1024))
|
dd if=${UBOOT_DIR}/u-boot.itb of=${IMAGE} seek=16384 conv=notrunc
|
||||||
#
|
popd
|
||||||
#LOOP_DEV=$(losetup --find --show "${IMAGE}")
|
|
||||||
#
|
|
||||||
#sgdisk --zap-all "${LOOP_DEV}"
|
|
||||||
#sgdisk --new=1:15M:+256M --typecode=1:8300 "${LOOP_DEV}"
|
|
||||||
#sgdisk --new=2:0:0 --typecode=2:8300 "${LOOP_DEV}"
|
|
||||||
#
|
|
||||||
#partprobe "${LOOP_DEV}"
|
|
||||||
#
|
|
||||||
#printf "Disk created!\n"
|
|
||||||
#
|
|
||||||
#pushd ${OUTPUTDIR}
|
|
||||||
#ls -la
|
|
||||||
#printf "write bootloader to the image...\n"
|
|
||||||
#dd if=${UBOOT_DIR}/idbloader.img of=${IMAGE} seek=64 conv=notrunc
|
|
||||||
#dd if=${UBOOT_DIR}/u-boot.itb of=${IMAGE} seek=16384 conv=notrunc
|
|
||||||
#popd
|
|
||||||
#echo "nameserver 8.8.8.8" > /etc/resolv.conf
|
|
||||||
#dnf in -y camera_engine_rkaiq
|
|
||||||
#systemctl enable rkaiq_3A.service
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
[Partition]
|
[Partition]
|
||||||
Type=esp
|
Type=21686148-6449-6e6f-744e-656564454649
|
||||||
Format=vfat
|
#Format=vfat
|
||||||
SizeMinBytes=15M
|
SizeMinBytes=16M
|
||||||
SizeMaxBytes=15M
|
SizeMaxBytes=16M
|
||||||
|
|
Loading…
Add table
Reference in a new issue