add orangepi5/5b and generic device

This commit is contained in:
alexander stefanov 2025-02-02 15:11:20 +03:00
parent 05956b4af2
commit ef0be1aeae
19 changed files with 638 additions and 0 deletions

33
device/generic/mkosi.conf Normal file
View file

@ -0,0 +1,33 @@
[Config]
MinimumVersion=24
[Distribution]
Distribution=rosa
Release=rosa13
Architecture=x86-64
[Output]
Format=disk
CompressOutput=
[Content]
Packages=
kernel-6.12-generic
coreutils
systemd
systemd-boot
Bootable=yes
Bootloader=systemd-boot
#Bootloader=uki
Autologin=yes
RootPassword=root
RootShell=/usr/bin/bash
Locale=en_US.UTF-8
Timezone=Europe/Moscow
Hostname=generic
WithDocs=no
WithRecommends=no
# keep rpm db
CleanPackageMetadata=false

View file

@ -0,0 +1,47 @@
[Config]
MinimumVersion=24
Dependencies=
u-boot
[Distribution]
Distribution=rosa
Release=rosa13
Architecture=arm64
[Build]
WithNetwork=yes
BuildSources=./:mkosi
./mkosi.images/u-boot/configuration:configuration
[Output]
Format=directory
CompressOutput=
# nand u-boot does not support
# 4k sectors
SectorSize=512
[Content]
Packages=
coreutils
kernel-6.1-orangepi
dnf
neovim
dracut
iproute2
locales-en
openssh-server
rosa-repos
rosa-repos-contrib
systemd
uboot-tools
Bootable=no
Autologin=yes
RootPassword=root
RootShell=/usr/bin/bash
Locale=en_US.UTF-8
Timezone=Europe/Moscow
Hostname=orangepi5
WithDocs=no
CleanPackageMetadata=false
WithRecommends=no

View file

@ -0,0 +1,75 @@
# DO NOT EDIT THIS FILE
#
# Please edit /boot/bootenv.txt to set supported parameters
#
setenv load_addr "0x9000000"
setenv overlay_error "false"
# default values
setenv rootdev "/dev/mmcblk0p1"
setenv verbosity "1"
setenv console "both"
setenv rootfstype "ext4"
setenv earlycon "off"
test -n "${distro_bootpart}" || distro_bootpart=1
echo "Boot script loaded from ${devtype} ${devnum}:${distro_bootpart}"
if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}bootenv.txt; then
load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${prefix}bootenv.txt
env import -t ${load_addr} ${filesize}
fi
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=tty1"; fi
if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "console=ttyS2,1500000 ${consoleargs}"; fi
if test "${earlycon}" = "on"; then setenv consoleargs "earlycon ${consoleargs}"; fi
# get PARTUUID of first partition on SD/eMMC the boot script was loaded from
if test "${devtype}" = "mmc"; then part uuid mmc ${devnum}:${distro_bootpart} partuuid; fi
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
load ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r} ${prefix}${initrd_image}
load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} ${prefix}${kernel_image}
load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}${fdtfile}
fdt addr ${fdt_addr_r}
fdt resize 65536
for overlay_file in ${overlays}; do
if load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${prefix}dtbs/rockchip/overlay/${overlay_prefix}-${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
elif load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${prefix}dtbs/rockchip/overlay/${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
for overlay_file in ${user_overlays}; do
if load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then
echo "Applying user provided DT overlay ${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
if test "${overlay_error}" = "true"; then
echo "Error applying DT overlays, restoring original DT"
load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}dtbs/${fdtfile}
else
if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}dtbs/rockchip/overlay/${overlay_prefix}-fixup.scr; then
load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${prefix}dtbs/rockchip/overlay/${overlay_prefix}-fixup.scr
echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)"
source ${load_addr}
fi
if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}fixup.scr; then
load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${prefix}fixup.scr
echo "Applying user provided fixup script (fixup.scr)"
source ${load_addr}
fi
fi
echo "Trying 'kaslrseed' command... Info: 'Unknown command' can be safely ignored since 'kaslrseed' does not apply to all boards."
kaslrseed # @TODO: This gives an error (Unknown command ' kaslrseed ' - try 'help') on many devices since CONFIG_CMD_KASLRSEED is not enabled
booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

View file

@ -0,0 +1,9 @@
verbosity=1
console=both
extraargs=cma=256M
overlay_prefix=rk3588
overlays=ov13850-c2
fdtfile=dtbs/rockchip/rk3588s-orangepi-5.dtb
rootdev=LABEL=rootfs
rootfstype=ext4
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u

View file

@ -0,0 +1 @@
LABEL=rootfs / ext4 defaults,noatime,commit=120,errors=remount-ro 0 1

View file

@ -0,0 +1,4 @@
# grow up rootfs on first boot
[Partition]
Type=root
GrowFileSystem=yes

View file

@ -0,0 +1,5 @@
[Unit]
ConditionFirstBoot=true
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,6 @@
[Match]
Name=en*
[Network]
DHCP=yes
IPv6PrivacyExtensions=yes

View file

@ -0,0 +1,7 @@
enable sshd.service
enable systemd-networkd.service
enable systemd-growfs-root.service
# We install dnf in some images but it's only going to be used rarely,
# so let's not have dnf create its cache.
disable dnf-makecache.*

View file

@ -0,0 +1,24 @@
FILES = \
rk3588s-orangepi-5-sata.dts \
rk3588s-orangepi-5.dts \
rk3588s-orangepi-5b.dts \
orangepi-5-rk3588s_defconfig
URL_BASE = https://github.com/armbian/build/raw/refs/heads/main/patch/u-boot/legacy/u-boot-radxa-rk35xx
all: $(FILES)
rk3588s-orangepi-5-sata.dts:
wget $(URL_BASE)/dt/$@
rk3588s-orangepi-5.dts:
wget $(URL_BASE)/dt/$@
rk3588s-orangepi-5b.dts:
wget $(URL_BASE)/dt/$@
orangepi-5-rk3588s_defconfig:
wget $(URL_BASE)/defconfig/$@
clean:
rm -f $(FILES)

View file

@ -0,0 +1 @@
see https://github.com/armbian/build/tree/main/patch/u-boot/legacy/u-boot-radxa-rk35xx/dt

View file

@ -0,0 +1,254 @@
CONFIG_ARM=y
CONFIG_ARM_CPU_SUSPEND=y
CONFIG_ARCH_ROCKCHIP=y
CONFIG_SPL_GPIO_SUPPORT=y
CONFIG_SPL_LIBCOMMON_SUPPORT=y
CONFIG_SPL_LIBGENERIC_SUPPORT=y
CONFIG_SYS_MALLOC_F_LEN=0x80000
CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-rockchip/make_fit_atf.sh"
CONFIG_ROCKCHIP_RK3588=y
CONFIG_ROCKCHIP_USB_BOOT=y
CONFIG_ROCKCHIP_FIT_IMAGE=y
CONFIG_ROCKCHIP_HWID_DTB=y
CONFIG_USING_KERNEL_DTB_V2=y
CONFIG_ROCKCHIP_VENDOR_PARTITION=y
CONFIG_ROCKCHIP_FIT_IMAGE_PACK=y
CONFIG_ROCKCHIP_NEW_IDB=y
CONFIG_LOADER_INI="RK3588MINIALL.ini"
CONFIG_TRUST_INI="RK3588TRUST.ini"
CONFIG_PSTORE=y
CONFIG_SPL_SERIAL_SUPPORT=y
CONFIG_SPL_DRIVERS_MISC_SUPPORT=y
CONFIG_TARGET_EVB_RK3588=y
CONFIG_SPL_LIBDISK_SUPPORT=y
CONFIG_SPL_SPI_FLASH_SUPPORT=y
CONFIG_SPL_SPI_SUPPORT=y
CONFIG_DEFAULT_DEVICE_TREE="rk3588s-orangepi-5"
CONFIG_DEBUG_UART=y
CONFIG_FIT=y
CONFIG_FIT_IMAGE_POST_PROCESS=y
CONFIG_FIT_HW_CRYPTO=y
CONFIG_SPL_LOAD_FIT=y
CONFIG_SPL_FIT_IMAGE_POST_PROCESS=y
CONFIG_SPL_FIT_HW_CRYPTO=y
# CONFIG_SPL_SYS_DCACHE_OFF is not set
CONFIG_BOOTDELAY=0
CONFIG_SYS_CONSOLE_INFO_QUIET=y
# CONFIG_DISPLAY_CPUINFO is not set
CONFIG_ANDROID_BOOTLOADER=y
CONFIG_ANDROID_AVB=y
CONFIG_ANDROID_BOOT_IMAGE_HASH=y
CONFIG_SPL_BOARD_INIT=y
# CONFIG_SPL_RAW_IMAGE_SUPPORT is not set
# CONFIG_SPL_LEGACY_IMAGE_SUPPORT is not set
CONFIG_SPL_SEPARATE_BSS=y
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION=y
CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_PARTITION=0x1
CONFIG_SPL_MMC_WRITE=y
CONFIG_SPL_MTD_SUPPORT=y
CONFIG_SPL_ATF=y
CONFIG_FASTBOOT_BUF_ADDR=0xc00800
CONFIG_FASTBOOT_BUF_SIZE=0x07000000
CONFIG_FASTBOOT_FLASH=y
CONFIG_FASTBOOT_FLASH_MMC_DEV=0
CONFIG_CMD_BOOTZ=y
CONFIG_CMD_DTIMG=y
# CONFIG_CMD_ELF is not set
# CONFIG_CMD_IMI is not set
# CONFIG_CMD_IMLS is not set
# CONFIG_CMD_XIMG is not set
# CONFIG_CMD_LZMADEC is not set
# CONFIG_CMD_UNZIP is not set
# CONFIG_CMD_FLASH is not set
# CONFIG_CMD_FPGA is not set
CONFIG_CMD_GPT=y
# CONFIG_CMD_LOADB is not set
# CONFIG_CMD_LOADS is not set
CONFIG_CMD_BOOT_ANDROID=y
CONFIG_CMD_MMC=y
CONFIG_CMD_PCI=y
CONFIG_CMD_SF=y
CONFIG_CMD_SPI=y
CONFIG_CMD_USB=y
CONFIG_CMD_USB_MASS_STORAGE=y
# CONFIG_CMD_ITEST is not set
# CONFIG_CMD_SETEXPR is not set
CONFIG_CMD_TFTPPUT=y
CONFIG_CMD_TFTP_BOOTM=y
CONFIG_CMD_TFTP_FLASH=y
# CONFIG_CMD_MISC is not set
CONFIG_CMD_MTD_BLK=y
# CONFIG_SPL_DOS_PARTITION is not set
# CONFIG_ISO_PARTITION is not set
CONFIG_EFI_PARTITION_ENTRIES_NUMBERS=64
CONFIG_SPL_OF_CONTROL=y
CONFIG_SPL_DTB_MINIMUM=y
CONFIG_OF_LIVE=y
CONFIG_OF_SPL_REMOVE_PROPS="clock-names interrupt-parent assigned-clocks assigned-clock-rates assigned-clock-parents"
# CONFIG_NET_TFTP_VARS is not set
CONFIG_REGMAP=y
CONFIG_SPL_REGMAP=y
CONFIG_SYSCON=y
CONFIG_SPL_SYSCON=y
# CONFIG_SARADC_ROCKCHIP is not set
CONFIG_SARADC_ROCKCHIP_V2=y
CONFIG_CLK=y
CONFIG_SPL_CLK=y
CONFIG_CLK_SCMI=y
CONFIG_SPL_CLK_SCMI=y
CONFIG_DM_CRYPTO=y
CONFIG_SPL_DM_CRYPTO=y
CONFIG_ROCKCHIP_CRYPTO_V2=y
CONFIG_SPL_ROCKCHIP_CRYPTO_V2=y
CONFIG_DM_RNG=y
CONFIG_RNG_ROCKCHIP=y
CONFIG_SCMI_FIRMWARE=y
CONFIG_SPL_SCMI_FIRMWARE=y
CONFIG_GPIO_HOG=y
CONFIG_ROCKCHIP_GPIO=y
CONFIG_ROCKCHIP_GPIO_V2=y
CONFIG_SYS_I2C_ROCKCHIP=y
CONFIG_I2C_MUX=y
CONFIG_DM_KEY=y
CONFIG_RK8XX_PWRKEY=y
CONFIG_ADC_KEY=y
CONFIG_MISC=y
CONFIG_SPL_MISC=y
CONFIG_MISC_DECOMPRESS=y
CONFIG_SPL_MISC_DECOMPRESS=y
CONFIG_ROCKCHIP_OTP=y
CONFIG_ROCKCHIP_HW_DECOMPRESS=y
CONFIG_SPL_ROCKCHIP_HW_DECOMPRESS=y
CONFIG_SPL_ROCKCHIP_SECURE_OTP=y
CONFIG_MMC_DW=y
CONFIG_MMC_DW_ROCKCHIP=y
CONFIG_MMC_SDHCI=y
CONFIG_MMC_SDHCI_SDMA=y
CONFIG_MMC_SDHCI_ROCKCHIP=y
CONFIG_MTD=y
CONFIG_MTD_BLK=y
CONFIG_MTD_DEVICE=y
CONFIG_NAND=y
CONFIG_MTD_SPI_NAND=y
CONFIG_SPI_FLASH=y
CONFIG_SF_DEFAULT_SPEED=80000000
CONFIG_SPI_FLASH_EON=y
CONFIG_SPI_FLASH_GIGADEVICE=y
CONFIG_SPI_FLASH_MACRONIX=y
CONFIG_SPI_FLASH_SST=y
CONFIG_SPI_FLASH_WINBOND=y
CONFIG_SPI_FLASH_XMC=y
CONFIG_SPI_FLASH_XTX=y
CONFIG_SPI_FLASH_MTD=y
CONFIG_DM_ETH=y
CONFIG_DM_ETH_PHY=y
CONFIG_DWC_ETH_QOS=y
CONFIG_GMAC_ROCKCHIP=y
CONFIG_NVME=y
CONFIG_PCI=y
CONFIG_DM_PCI=y
CONFIG_DM_PCI_COMPAT=y
CONFIG_PCIE_DW_ROCKCHIP=y
CONFIG_PHY_ROCKCHIP_INNO_USB2=y
CONFIG_PHY_ROCKCHIP_NANENG_COMBOPHY=y
CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX=y
CONFIG_PHY_ROCKCHIP_USBDP=y
CONFIG_PINCTRL=y
CONFIG_SPL_PINCTRL=y
CONFIG_DM_FUEL_GAUGE=y
CONFIG_POWER_FG_CW201X=y
CONFIG_POWER_FG_CW221X=y
CONFIG_DM_PMIC=y
CONFIG_PMIC_SPI_RK8XX=y
CONFIG_DM_POWER_DELIVERY=y
CONFIG_TYPEC_TCPM=y
CONFIG_TYPEC_TCPCI=y
CONFIG_TYPEC_HUSB311=y
CONFIG_TYPEC_FUSB302=y
CONFIG_REGULATOR_PWM=y
CONFIG_DM_REGULATOR_FIXED=y
CONFIG_DM_REGULATOR_GPIO=y
CONFIG_REGULATOR_RK860X=y
CONFIG_REGULATOR_RK806=y
CONFIG_CHARGER_BQ25700=y
CONFIG_CHARGER_BQ25890=y
CONFIG_CHARGER_SC8551=y
CONFIG_CHARGER_SGM41542=y
CONFIG_DM_CHARGE_DISPLAY=y
CONFIG_CHARGE_ANIMATION=y
CONFIG_PWM_ROCKCHIP=y
CONFIG_RAM=y
CONFIG_SPL_RAM=y
CONFIG_TPL_RAM=y
CONFIG_ROCKCHIP_SDRAM_COMMON=y
CONFIG_ROCKCHIP_TPL_INIT_DRAM_TYPE=0
CONFIG_DM_RESET=y
CONFIG_SPL_DM_RESET=y
CONFIG_SPL_RESET_ROCKCHIP=y
CONFIG_BAUDRATE=1500000
CONFIG_DEBUG_UART_BASE=0xFEB50000
CONFIG_DEBUG_UART_CLOCK=24000000
CONFIG_DEBUG_UART_SHIFT=2
CONFIG_ROCKCHIP_SPI=y
CONFIG_ROCKCHIP_SFC=y
CONFIG_SYSRESET=y
CONFIG_USB=y
CONFIG_USB_XHCI_HCD=y
CONFIG_USB_XHCI_DWC3=y
CONFIG_USB_XHCI_PCI=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_GENERIC=y
CONFIG_USB_OHCI_HCD=y
CONFIG_USB_OHCI_GENERIC=y
CONFIG_USB_DWC3=y
CONFIG_USB_DWC3_GADGET=y
CONFIG_USB_DWC3_GENERIC=y
CONFIG_USB_STORAGE=y
CONFIG_USB_GADGET=y
CONFIG_USB_GADGET_MANUFACTURER="Rockchip"
CONFIG_USB_GADGET_VENDOR_NUM=0x2207
CONFIG_USB_GADGET_PRODUCT_NUM=0x350a
CONFIG_USB_GADGET_DOWNLOAD=y
CONFIG_DM_VIDEO=y
CONFIG_DISPLAY=y
CONFIG_DRM_ROCKCHIP=y
CONFIG_DRM_MAXIM_MAX96745=y
CONFIG_DRM_MAXIM_MAX96752F=y
CONFIG_DRM_MAXIM_MAX96755F=y
CONFIG_DRM_PANEL_MAXIM_DESERIALIZER=y
CONFIG_DRM_ROHM_BU18XL82=y
CONFIG_DRM_ROCKCHIP_DW_HDMI_QP=y
CONFIG_DRM_ROCKCHIP_DW_MIPI_DSI2=y
CONFIG_DRM_ROCKCHIP_ANALOGIX_DP=y
CONFIG_DRM_ROCKCHIP_DW_DP=y
CONFIG_DRM_ROCKCHIP_SAMSUNG_MIPI_DCPHY=y
CONFIG_PHY_ROCKCHIP_SAMSUNG_HDPTX_HDMI=y
CONFIG_USE_TINY_PRINTF=y
CONFIG_LIB_RAND=y
CONFIG_SPL_TINY_MEMSET=y
CONFIG_RSA=y
CONFIG_SPL_RSA=y
CONFIG_RSA_N_SIZE=0x200
CONFIG_RSA_E_SIZE=0x10
CONFIG_RSA_C_SIZE=0x20
CONFIG_XBC=y
CONFIG_LZ4=y
CONFIG_LZMA=y
CONFIG_ERRNO_STR=y
# CONFIG_EFI_LOADER is not set
CONFIG_AVB_LIBAVB=y
CONFIG_AVB_LIBAVB_AB=y
CONFIG_AVB_LIBAVB_ATX=y
CONFIG_AVB_LIBAVB_USER=y
CONFIG_RK_AVB_LIBAVB_USER=y
CONFIG_CMD_SETEXPR=y
CONFIG_AHCI=y
CONFIG_CMD_SCSI=y
CONFIG_DM_SCSI=y
CONFIG_DWC_AHCI=y
CONFIG_LIBATA=y
CONFIG_SCSI_AHCI=y
CONFIG_SCSI=y
CONFIG_MTD_BLK_U_BOOT_OFFS=0x400
CONFIG_OPTEE_CLIENT=y
CONFIG_OPTEE_V2=y

View file

@ -0,0 +1,45 @@
#!/bin/sh
if [ "$container" != "mkosi" ]; then
exec mkosi-chroot "$CHROOT_SCRIPT" "$@"
fi
echo "--- mkosi.build: pwd=$PWD"
echo "--- mkosi.build: srcdir=$SRCDIR"
echo "--- mkosi.build: builddir=$BUILDDIR"
cd $SRCDIR
echo "--- mkosi.build: clone u-boot"
if [ -f "${SRCDIR}/mkosi/idbloader.img" ]; then
echo "--- mkosi.build: idbloader.img already exist, skipping u-boot build..."
exit 0
fi
dnf in -y --release 13 python2
dnf in -y --release 13 basesystem-build curl \
dnf git gcc-aarch64-linux-gnu \
binutils-aarch64-linux-gnu \
wget dtc bc
git clone https://github.com/radxa/u-boot.git --depth 1 -b next-dev-v2024.03
cd u-boot
make -C ${SRCDIR}/configuration
cp -fv ${SRCDIR}/configuration/*.dts arch/arm/dts/
cp -fv ${SRCDIR}/configuration/orangepi-5-rk3588s_defconfig configs/orangepi-5-rk3588s_defconfig
BL31="rk3588_bl31_v1.44.elf"
RKDDR="rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.15.bin"
BOOT_SOC="rk3588"
ARCH="aarch64"
wget https://github.com/armbian/rkbin/raw/refs/heads/master/rk35/${BL31}
wget https://github.com/armbian/rkbin/raw/refs/heads/master/rk35/${RKDDR}
make orangepi-5-rk3588s_defconfig
make -s -j$(nproc) KCFLAGS="-Wno-error" \
BL31=${BL31} \
spl/u-boot-spl.bin \
u-boot.dtb u-boot.itb CROSS_COMPILE="${ARCH}-linux-gnu-"
tools/mkimage -n ${BOOT_SOC} -T rksd -d ${RKDDR}:spl/u-boot-spl.bin idbloader.img
cp -fv idbloader.img u-boot.itb ${SRCDIR}/mkosi/

View file

@ -0,0 +1,10 @@
[Output]
Format=directory
ImageId=uboot
[Content]
Bootable=no
Packages=dnf
rosa-repos-contrib
rosa-repos

View file

@ -0,0 +1,27 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
set -Eeuo pipefail
version=$(rpm -q --queryformat '%{version}\n' kernel-6.1-orangepi)
printf "Generate /boot/uInitrd-${version}...\n"
# mkimage -A arm64 -O linux -T ramdisk -C gzip -n uInitrd -d /boot/initrd-%{version}.img /boot/uInitrd
mkimage -A arm64 -O linux -T ramdisk -C gzip -d /boot/initrd-${version}.img /boot/uInitrd-${version}
printf "Remove dracut-generated initrd...\n"
rm -fv /boot/initrd-${version}.img
rm -fv /boot/uInitrd
# generate boot.scr
# see mkosi.extra/boot/boot.cmd
printf "Adjust /boot/bootenv.txt for kernel/initrd ${version}...\n"
printf "initrd_image=uInitrd-${version}\n" >> /boot/bootenv.txt
printf "kernel_image=vmlinuz-${version}\n" >> /boot/bootenv.txt
printf "Current /boot/bootenv.txt...\n"
printf "#########################\n"
cat /boot/bootenv.txt
printf "#########################\n"
printf "Generate /boot/boot.scr...\n"
/usr/bin/mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

View file

@ -0,0 +1,28 @@
#!/bin/sh
#set -x
#env
## SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
#UBOOT_DIR="${SRCDIR}/mkosi"
#
#IMAGE="${OUTPUTDIR}/orangepi5.img"
#IMAGE_SIZE=$(du -sb "${OUTPUTDIR}/image" | cut -f1)
#IMAGE_SIZE=$((IMAGE_SIZE + 15 * 1024 * 1024))
#
#dd if=/dev/zero of="${IMAGE}" bs=1M count=0 seek=$((IMAGE_SIZE / 1024 / 1024))
#
#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

View file

@ -0,0 +1,5 @@
[Partition]
Type=21686148-6449-6e6f-744e-656564454649
Format=
SizeMinBytes=15M
SizeMaxBytes=15M

View file

@ -0,0 +1,6 @@
[Partition]
Type=root
Label=rootfs
Format=ext4
CopyFiles=/
Minimize=guess

View file

@ -0,0 +1,51 @@
#!/bin/bash
set -x
# Run mkosi with --force option
#mkosi --force
# Check if mkosi ran successfully
if [ $? -ne 0 ]; then
printf "mkosi failed to execute.\n"
exit 1
fi
# Calculate the size of the image directory
IMAGE_SIZE=$(du -sb ./image | cut -f1)
IMAGE_SIZE=$((IMAGE_SIZE + 256 * 1024 * 1024)) # Add 16 MB to the calculated size
# Create the orangepi5.img disk image with the calculated size
rm -fv orangepi5.img
dd if=/dev/zero of=orangepi5.img bs=1M count=0 seek=$((IMAGE_SIZE / 1024 / 1024))
# Attach the image to a loop device
LOOP_DEV=$(losetup --find --show orangepi5.img)
# Perform partitioning operations on the loop device
sgdisk --zap-all "${LOOP_DEV}"
sgdisk --new=1:16M:+0 --typecode=1:8305 "${LOOP_DEV}"
# Update the partition table
partprobe "${LOOP_DEV}"
# Create ext4 filesystem on the first partition
mkfs.ext4 -L rootfs "${LOOP_DEV}p1"
# Mount the first partition to a temporary directory
MOUNT_DIR=$(mktemp -d)
mount "${LOOP_DEV}p1" "$MOUNT_DIR"
# Copy the contents of the image directory to the first partition using rsync
rsync -a ./image/ "$MOUNT_DIR/"
# Unmount the partition
umount "$MOUNT_DIR"
# Remove the temporary mount directory
rmdir "$MOUNT_DIR"
# Print a success message
printf "Disk and partitions successfully created!\n"
printf "Write bootloader!\n"
dd if=idbloader.img of=${LOOP_DEV} seek=64 conv=notrunc
dd if=u-boot.itb of=${LOOP_DEV} seek=16384 conv=notrunc