53 Commits

Author SHA1 Message Date
SalimTerryLi 87636725a1 receipe/oR/Creek: add ORK BSP 2026-06-11 17:17:21 +08:00
SalimTerryLi e144710408 distro: add openRuyi Unstable-RVA20
BSP including ORK and RVCK
2026-06-11 17:17:21 +08:00
SalimTerryLi a1d0cb1b56 distro: add openRuyi Unstable
Shares BSP profiles with Creek
2026-06-11 17:17:21 +08:00
SalimTerryLi 22d07f1ed1 oR/K3/vendor: add 4kn variant 2026-06-11 17:17:21 +08:00
SalimTerryLi 7ce1d8aa07 distro: add openRuyi & K3 BSP 2026-06-11 17:17:21 +08:00
SalimTerryLi bbf67874a0 fix: script: ignore package lists not ending with .list and .group 2026-06-11 17:16:07 +08:00
SalimTerryLi c1db7d4062 oE2403SP3: use ISCAS mirror by default 2026-05-20 16:02:00 +08:00
SalimTerryLi 3407ad63b3 oE2403SP3: add SG2044 for both 2026-05-20 16:02:00 +08:00
SalimTerryLi d2c7fe774f container: switch to debian for newer rpm 2026-05-15 03:29:37 +08:00
SalimTerryLi 822b6fa271 scripts: avoid using bash style ${!xxx} 2026-05-15 02:07:36 +08:00
SalimTerryLi 8c0c411d68 script: do not use "+=" for compatibility 2026-05-15 02:07:36 +08:00
SalimTerryLi aa0b8cb4e6 Dockerfile: update oE mirror site 2026-05-13 16:24:22 +08:00
SalimTerryLi fd8682eacf receipe/oe2403sp3: add zhihe a210 2026-04-20 15:34:23 +08:00
SalimTerryLi c884fdf7fd receipe/oe2403sp3rva23: k3 kernel package list update 2026-04-20 15:33:31 +08:00
SalimTerryLi adb392ba50 receipe/oe2403sp3: cleanup bootargs for spacemit-k1-olk-sdmmc 2026-03-13 17:08:11 +08:00
SalimTerryLi e826cb9278 receipe/oe2403sp3rva23: cleanup bootargs for OLK 2026-03-13 17:08:11 +08:00
SalimTerryLi 361f36a4af distro: oE2403SP3/RVA23: fix bsp image xattr copy error
Caused by rsync trying to copy xattrs onto vfat
2026-03-13 17:08:11 +08:00
SalimTerryLi 9376dc0e9b distro: oE2403SP3-RVA23: setup selinux context for OLK target 2026-03-13 17:08:11 +08:00
SalimTerryLi 36c3f050f0 distro: oE2403SP3-RVA23: setup selinux context for rootfs 2026-03-13 17:08:11 +08:00
SalimTerryLi 0075d48033 distro: oE2403SP3: setup selinux context for olk-sdmmc target of k1 2026-03-13 17:08:11 +08:00
SalimTerryLi 47044189de distro: oE2403SP3: setup selinux context for rootfs 2026-03-13 17:08:11 +08:00
SalimTerryLi 019331a6b9 build: preinstall selinux tools 2026-03-13 17:08:11 +08:00
SalimTerryLi cdc67a76c5 build: preserve xattrs for rootfs and image 2026-03-13 17:08:11 +08:00
SalimTerryLi 16448e37a0 distro: oE2403SP3: Add support for SpacemiT K3 2026-03-13 16:18:05 +08:00
SalimTerryLi 17a6843eb6 distro: oE2403SP3-RVA23: Add support for SpacemiT K1, with RVA23 emulation
Note that RVA23 emulation causes severe performance degradation.
2026-03-13 16:17:58 +08:00
SalimTerryLi dd445250bc distro: oE2403SP3: Add support for SpacemiT K1 2026-03-13 14:47:01 +08:00
SalimTerryLi b9a1f51f64 distro: oE2403SP3: Add OLK receipe 2026-03-13 14:47:01 +08:00
SalimTerryLi 8df9401aaf distro: Add oE2403SP3-RVA20 rootfs target 2026-03-13 14:46:57 +08:00
SalimTerryLi e40435ed72 distro: oE2403SP3-RVA23: Add SpacemiT K3 image with vendor kernel
4kn variant is specifically made for UFS storage
2026-03-13 14:46:57 +08:00
SalimTerryLi ae40e9caa6 distro: oE2403SP3-RVA23: Add OLK receipe
- linux-firmware is a pre-req of initramfs
- selinux is disabled by default
- sv39 is the only supported configuration
2026-03-13 14:46:57 +08:00
SalimTerryLi a2a593adf0 distro: Add oE2403SP3-RVA23 rootfs target 2026-03-13 14:46:53 +08:00
SalimTerryLi 94312a7025 script: make filesystem tools aware of underlying device sector size 2026-01-30 16:02:32 +08:00
SalimTerryLi a89edf9f1a script: move disk sector decision logic from GUID table
Prepare to allow filesystem to get hints about sector size
2026-01-30 16:02:32 +08:00
SalimTerryLi b58334b71c script: support custom sector-size for disk image
This adds support for 4kn storage such as UFS.

By now, the only possible method to populate 4kn
image is losetup. No partition tools supports
that yet.
2026-01-30 16:02:32 +08:00
SalimTerryLi a70f4f7334 fix: allow skipping empty bsp repo 2026-01-14 14:40:29 +08:00
SalimTerryLi 4f367a28eb logging: details about overflowed mountpoint 2026-01-04 14:37:51 +08:00
SalimTerryLi 9b26148287 boards: sg20944: fix partition layout unit 2026-01-04 14:28:36 +08:00
SalimTerryLi 0b893abba4 script: image post process: support converting to sparsed 2025-12-30 15:47:59 +08:00
SalimTerryLi c83a9f77db script: final image size should be multiple of alignment 2025-12-30 15:38:16 +08:00
SalimTerryLi 5cade470ba container: Added img2simg 2025-12-30 15:33:36 +08:00
SalimTerryLi e2d58be78a boards: SpacemiT K1 now supports sdmmc boot image 2025-12-29 18:53:21 +08:00
SalimTerryLi 370c41b690 script: support blob filling for MBR code area of GPT table 2025-12-29 18:52:10 +08:00
SalimTerryLi 4d523a54a9 scripts: filling blobs into image 2025-12-29 18:17:10 +08:00
SalimTerryLi f06421c421 Makefile: blobs now becomes deps of images 2025-12-29 17:57:31 +08:00
SalimTerryLi 99cd55fc3e Makefile: support blobs downloading and extracting 2025-12-29 17:41:28 +08:00
SalimTerryLi 8d85dbf59b fix: Check dir before attempting to install pkgs 2025-12-16 12:39:50 +08:00
SalimTerryLi 02e6a12063 logging: add verbose mode
Dumping commandline in debug mode
2025-12-16 12:39:50 +08:00
SalimTerryLi f60ea1c5e5 BREAKING: Using auto for numfmt converting 2025-12-16 12:39:50 +08:00
SalimTerryLi fbc553dc0e support custom disk alignment 2025-12-16 12:39:42 +08:00
SalimTerryLi 63dda91ecc fix: deal with part type only if provided 2025-12-15 17:38:52 +08:00
SalimTerryLi 816dde18bb WIP: Add BLOB usage entry 2025-12-15 17:29:42 +08:00
SalimTerryLi c154d4ae9b jh7110: Install firmware by default 2025-12-02 10:41:18 +08:00
SalimTerryLi dd4d2adbe7 Makefile: fix: profile extension not properly reset 2025-12-02 10:39:45 +08:00
223 changed files with 1995 additions and 91 deletions
+37 -6
View File
@@ -1,11 +1,32 @@
FROM docker.io/openeuler/openeuler:24.03-lts
# Build img2simg
FROM docker.io/debian:stable
RUN sed -i 's/metalink=/# metalink=/g' /etc/yum.repos.d/openEuler.repo && \
sed -i 's/repo.openeuler.org/mirror.isrc.ac.cn\/openeuler/g' /etc/yum.repos.d/openEuler.repo
RUN sed -i 's/deb.debian.org/mirror.iscas.ac.cn/g' /etc/apt/sources.list.d/debian.sources && \
sed -i 's/https/http/' /etc/apt/sources.list.d/debian.sources
RUN yum install -y \
RUN apt-get update && apt-get install -y \
gcc g++ \
git \
zlib1g-dev
RUN git clone -b platform-tools-34.0.5 https://mirrors.ustc.edu.cn/aosp/platform/system/core.git /root/core
RUN git clone -b platform-tools-34.0.5 https://mirrors.ustc.edu.cn/aosp/platform/system/libbase.git /root/libbase
RUN cd /root && gcc -I libbase/include -I core/libsparse/include libbase/stringprintf.cpp libbase/mapped_file.cpp core/libsparse/backed_block.cpp core/libsparse/output_file.cpp core/libsparse/sparse.cpp core/libsparse/sparse_crc32.cpp core/libsparse/sparse_err.cpp core/libsparse/sparse_read.cpp core/libsparse/img2simg.cpp -lstdc++ -lz -o img2simg
# Build final image
FROM docker.io/debian:stable
RUN sed -i 's/deb.debian.org/mirror.iscas.ac.cn/g' /etc/apt/sources.list.d/debian.sources && \
sed -i 's/https/http/' /etc/apt/sources.list.d/debian.sources
RUN apt-get update && apt-get install -y \
attr \
bsdextrautils \
bzip2 \
coreutils \
dosfstools \
e2fsprogs \
findutils \
gdisk \
gzip \
@@ -13,6 +34,16 @@ RUN yum install -y \
rsync \
tar \
util-linux \
xz \
uuid-runtime \
xz-utils \
zstd \
&& yum clean all
zlib1g \
policycoreutils \
rpm dnf \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
RUN ln -s /usr/bin/dnf /usr/bin/yum
COPY --from=0 /root/img2simg /usr/bin/img2simg
# TODO: make it configurable
RUN mkdir -p /etc/rpm/ && echo "%_db_backend ndb" > /etc/rpm/macros.db
+5
View File
@@ -38,6 +38,7 @@ WORK_DIR := $(realpath $(O))
else
WORK_DIR := $(ROOT_DIR)/build
endif
POOL_DIR := $(WORK_DIR)/pool
STAGING_DIR := $(WORK_DIR)/staging
DIST_DIR := $(WORK_DIR)/dist
@@ -81,6 +82,10 @@ clean:
clean_staging:
rm -rf "$(STAGING_DIR)"
.PHONY: clean_pool
clean_pool:
rm -rf "$(POOL_DIR)"
.PHONY: container
container:
$(CONTAINER_CMD) build -t $(CONTAINER_IMAGE_TAG) $(ROOT_DIR)
+48 -7
View File
@@ -67,7 +67,7 @@ endif
# Check compression method
ifeq ($$(COMPRESSION),zstd)
COMPRESSION_SUFFIX := tar.zst
COMPRESSION_CMD := tar --use-compress-program=zstd -cf "$$$$$$$${OUTPUT_ARCHIVE}" -C "$$$$$$$${ROOTFS_DIR}" .
COMPRESSION_CMD := tar --use-compress-program=zstd --xattrs --xattrs-include='*' -cf "$$$$$$$${OUTPUT_ARCHIVE}" -C "$$$$$$$${ROOTFS_DIR}" .
else
$$(error Unsupported compression mode)
endif
@@ -108,13 +108,13 @@ $$(DISTRO_NAME)-$$(RELEASE_NAME)-$$(RECEIPE_NAME)-rootfs: $$($$(DISTRO_NAME)_$$(
define GENERATE_TAR_TARGET
$$($$(DISTRO_NAME)_$$(RELEASE_NAME)_$$(RECEIPE_NAME)_ARTIFACT): $(STAGING_DIR)/$$(DISTRO_NAME)/$$(RELEASE_NAME)/receipes/$$(RECEIPE_NAME)
$$$$(dir_guard)
$(ECHOCTL)$(CONTAINER_CMD) run --rm \
$(ECHOCTL)$(CONTAINER_CMD) run --privileged --rm \
-v $(ROOT_DIR)/tools:/image-builder/tools:ro \
-v $$$$<:/image-builder/receipe:ro \
-v $$$$(dir $$$$@):/image-builder/output \
$(CONTAINER_IMAGE_TAG) \
/bin/sh -c ' \
mkdir /tmp/rootfs && \
mount -t tmpfs tmpfs /tmp && mkdir /tmp/rootfs && \
cd /image-builder/tools && \
LOG_LEVEL=$(LOG_LEVEL) ./build_rootfs.sh -i /image-builder/receipe -o /tmp/rootfs -p $$(PACKAGE_MANAGER) && \
export OUTPUT_ARCHIVE=/image-builder/output/$$$$(notdir $$$$@) && \
@@ -154,7 +154,6 @@ endif
undefine DEVICE_NAME
endef
########
define add_device_profile
ifndef DEVICE_NAME
@@ -179,16 +178,17 @@ BSP_TARGETS += $$(DISTRO_NAME)-$$(RELEASE_NAME)-$$(1)-$$(DEVICE_NAME)-$$(PROFILE
$$(DISTRO_NAME)-$$(RELEASE_NAME)-$$(1)-$$(DEVICE_NAME)_PROFILES += $$(PROFILE_NAME)
.PHONY: $$(DISTRO_NAME)-$$(RELEASE_NAME)-$$(1)-$$(DEVICE_NAME)-$$(PROFILE_NAME)
$$(DISTRO_NAME)-$$(RELEASE_NAME)-$$(1)-$$(DEVICE_NAME)-$$(PROFILE_NAME): $(STAGING_DIR)/$$(DISTRO_NAME)/$$(RELEASE_NAME)/bsp/$$(DEVICE_NAME)/$$(PROFILE_NAME)/$$(1) $$($$(DISTRO_NAME)_$$(RELEASE_NAME)_$$(1)_ARTIFACT)
$$(DISTRO_NAME)-$$(RELEASE_NAME)-$$(1)-$$(DEVICE_NAME)-$$(PROFILE_NAME): $(STAGING_DIR)/$$(DISTRO_NAME)/$$(RELEASE_NAME)/bsp/$$(DEVICE_NAME)/$$(PROFILE_NAME)/$$(1) $$($$(DISTRO_NAME)_$$(RELEASE_NAME)_$$(1)_ARTIFACT) $$($$(DISTRO_NAME)-$$(RELEASE_NAME)-$$(DEVICE_NAME)-$$(PROFILE_NAME)-BLOBS)
@mkdir -p $(DIST_DIR)/$$(DISTRO_NAME)/$$(RELEASE_NAME)/$$(DEVICE_NAME)
$(ECHOCTL)$(CONTAINER_CMD) run --privileged --rm \
-v $(ROOT_DIR)/tools:/image-builder/tools:ro \
-v $$$$<:/image-builder/receipe:ro \
-v $(STAGING_DIR)/$$(DISTRO_NAME)/$$(RELEASE_NAME)/bsp/$$(DEVICE_NAME)/$$(PROFILE_NAME)/blobs:/image-builder/blobs \
-v $$($$(DISTRO_NAME)_$$(RELEASE_NAME)_$$(1)_ARTIFACT):/image-builder/$$(notdir $$($$(DISTRO_NAME)_$$(RELEASE_NAME)_$$(1)_ARTIFACT)):ro \
-v $(DIST_DIR)/$$(DISTRO_NAME)/$$(RELEASE_NAME)/$$(DEVICE_NAME):/image-builder/output \
$(CONTAINER_IMAGE_TAG) \
/bin/sh -c 'cd /image-builder/tools && \
LOG_LEVEL=$(LOG_LEVEL) ./build_bsp.sh -i /image-builder/receipe -s /image-builder/$$(notdir $$($$(DISTRO_NAME)_$$(RELEASE_NAME)_$$(1)_ARTIFACT)) -o /image-builder/output/$$(DISTRO_NAME)-$$(RELEASE_NAME)-$$(1)-$$(DEVICE_NAME)-$$(PROFILE_NAME) -p $$(PACKAGE_MANAGER)'
/bin/sh -c 'mount -t tmpfs tmpfs /tmp && cd /image-builder/tools && \
LOG_LEVEL=$(LOG_LEVEL) ./build_bsp.sh -i /image-builder/receipe -b /image-builder/blobs -s /image-builder/$$(notdir $$($$(DISTRO_NAME)_$$(RELEASE_NAME)_$$(1)_ARTIFACT)) -o /image-builder/output/$$(DISTRO_NAME)-$$(RELEASE_NAME)-$$(1)-$$(DEVICE_NAME)-$$(PROFILE_NAME) -p $$(PACKAGE_MANAGER)'
ifneq ($$$$(wildcard $$(BSP_PROFILE_DIR)/extensions/$$(1)/.),)
# corresponding extension exists
@@ -202,6 +202,7 @@ $(STAGING_DIR)/$$(DISTRO_NAME)/$$(RELEASE_NAME)/bsp/$$(DEVICE_NAME)/$$(PROFILE_N
@# Not preserving modification time, aka -t
$(ECHOCTL)rsync -rLpgoD --exclude profile.mk --exclude extensions $$$$(foreach dep,$$$$+,$$$$(dep)/) $$$$@
undefine BSP_PROFILE_EXTENSION_DIR
endef
$$(foreach receipe,$$($$(DISTRO_NAME)_$$(RELEASE_NAME)_RECEIPES),$$(eval $$(call GENERATE_RECEIPE_PROFILE_MATRIX,$$(receipe))))
@@ -209,3 +210,43 @@ undefine PROFILE_NAME
undefine BSP_PROFILE_DIR
undefine GENERATE_RECEIPE_PROFILE_MATRIX
endef
########
define fetch_remote_blob
ifndef PROFILE_NAME
$$(error PROFILE_NAME not provided)
endif
$(DISTRO_NAME)-$(RELEASE_NAME)-$(DEVICE_NAME)-$(PROFILE_NAME)-BLOBS += $(STAGING_DIR)/$(DISTRO_NAME)/$(RELEASE_NAME)/bsp/$(DEVICE_NAME)/$(PROFILE_NAME)/blobs/$(1)
$(STAGING_DIR)/$(DISTRO_NAME)/$(RELEASE_NAME)/bsp/$(DEVICE_NAME)/$(PROFILE_NAME)/blobs/$(1): $(POOL_DIR)/$(shell echo "$2" | sha256sum | cut -d " " -f 1)
$$(dir_guard)
$(ECHOCTL)cp $$< $$@
ifndef POOL_$(shell echo "$2" | sha256sum | cut -d " " -f 1)
# Avoid duplicated downloading
# .PHONY: $(POOL_DIR)/$(shell echo "$2" | sha256sum | cut -d " " -f 1)
$(POOL_DIR)/$(shell echo "$2" | sha256sum | cut -d " " -f 1):
$$(dir_guard)
$(ECHOCTL)curl -sL -o "$$@" -z "$$@" "$2"
POOL_$(shell echo "$2" | sha256sum | cut -d " " -f 1) := $1
endif
endef
########
define extract_blob_from_zip
ifndef PROFILE_NAME
$$(error PROFILE_NAME not provided)
endif
$(STAGING_DIR)/$(DISTRO_NAME)/$(RELEASE_NAME)/bsp/$(DEVICE_NAME)/$(PROFILE_NAME)/blobs/$(1): $(STAGING_DIR)/$(DISTRO_NAME)/$(RELEASE_NAME)/bsp/$(DEVICE_NAME)/$(PROFILE_NAME)/blobs/$(2)
$$(dir_guard)
$(ECHOCTL)unzip -q -DD -o -j "$$<" "$(1)" -d $(STAGING_DIR)/$(DISTRO_NAME)/$(RELEASE_NAME)/bsp/$(DEVICE_NAME)/$(PROFILE_NAME)/blobs/
$(DISTRO_NAME)-$(RELEASE_NAME)-$(DEVICE_NAME)-$(PROFILE_NAME)-BLOBS += $(STAGING_DIR)/$(DISTRO_NAME)/$(RELEASE_NAME)/bsp/$(DEVICE_NAME)/$(PROFILE_NAME)/blobs/$(1)
endef
aaaa:
echo $(openEuler-25.09-SpacemiT-K1-sdmmc-BLOBS)
@@ -1,8 +1,8 @@
OUTPUT_FORMAT=partitioned_disk
PARTITION_TABLE_TYPE=GUID
PARTITION_1_OFFSET=1MB
PARTITION_1_SIZE=499M
PARTITION_1_OFFSET=1MiB
PARTITION_1_SIZE=499MiB
PARTITION_1_NAME="oerv-boot"
PARTITION_1_UUID=
PARTITION_1_TYPE=bls_boot
@@ -0,0 +1,3 @@
DEVICE_NAME := OLK
$(foreach profile_dir,$(filter-out %.mk,$(wildcard $(CURRENT_DIR)*)),$(eval $(call add_device_profile,$(profile_dir))))
@@ -0,0 +1,24 @@
OUTPUT_FORMAT=partitioned_disk
PARTITION_TABLE_TYPE=GUID
PARTITION_1_OFFSET=1MB
PARTITION_1_SIZE=499M
PARTITION_1_NAME="boot"
PARTITION_1_UUID=
PARTITION_1_TYPE=bls_boot
PARTITION_1_ATTRS=legacy_boot
PARTITION_1_USAGE=MOUNTPOINT
PARTITION_1_MOUNTPOINT="/boot"
PARTITION_1_FS=vfat
PARTITION_1_FS_UUID=
PARTITION_2_OFFSET=
PARTITION_2_SIZE=
PARTITION_2_NAME="root"
PARTITION_2_UUID=
PARTITION_2_TYPE=linux_root_riscv64
PARTITION_2_ATTRS=
PARTITION_2_USAGE=MOUNTPOINT
PARTITION_2_MOUNTPOINT="/"
PARTITION_2_FS=ext4
PARTITION_2_FS_UUID=
@@ -0,0 +1,2 @@
dracut
linux-firmware
@@ -0,0 +1,6 @@
#!/usr/bin/env sh
cat << EOF | column -t | tee "${ROOTFS_DIR}/etc/fstab"
UUID=$($get_fs_uuid_by_mountpoint /) / ext4 errors=remount-ro 0 1
UUID=$($get_fs_uuid_by_mountpoint /boot) /boot vfat defaults 0 2
EOF
@@ -0,0 +1,8 @@
#!/usr/bin/env sh
mkdir -p "${ROOTFS_DIR}/etc/systemd/system"
cp "oerv-firstboot.service" "${ROOTFS_DIR}/etc/systemd/system/oerv-firstboot.service"
cp "oerv-firstboot.sh" "${ROOTFS_DIR}/usr/sbin/oerv-firstboot.sh"
chmod +x "${ROOTFS_DIR}/usr/sbin/oerv-firstboot.sh"
mkdir -p "${ROOTFS_DIR}/etc/systemd/system/multi-user.target.wants"
ln -s "/etc/systemd/system/oerv-firstboot.service" "${ROOTFS_DIR}/etc/systemd/system/multi-user.target.wants/oerv-firstboot.service"
@@ -0,0 +1,13 @@
[Unit]
Before=systemd-user-sessions.service
ConditionPathExists=/etc/systemd/system/multi-user.target.wants/oerv-firstboot.service
Requires=-.mount
[Service]
Type=oneshot
ExecStart=/usr/sbin/oerv-firstboot.sh
ExecStartPost=/usr/bin/rm /etc/systemd/system/multi-user.target.wants/oerv-firstboot.service
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
@@ -0,0 +1,11 @@
#!/usr/bin/env sh
echo "$0: Expanding root partition..."
ROOT_PART="$(findmnt -no SOURCE /)"
ROOT_PARTNUM="$(lsblk -pr -no partn "${ROOT_PART}")"
ROOT_DISK="$(lsblk -p -no pkname "${ROOT_PART}")"
sgdisk -e "${ROOT_DISK}"
echo "Yes" | parted ---pretend-input-tty "${ROOT_DISK}" resizepart "${ROOT_PARTNUM}" 100%
partprobe
resize2fs "${ROOT_PART}"
echo "$0: Done."
@@ -0,0 +1,2 @@
kernel
kernel-headers
@@ -0,0 +1,24 @@
#!/usr/bin/env sh
. "${ROOTFS_DIR}/etc/os-release"
KERNEL_FILE="$(find ${ROOTFS_DIR}/boot -name "vmlinuz*" -exec basename {} \; | head -n 1)"
INITRD_FILE="$(find ${ROOTFS_DIR}/boot -name "initramfs*" -exec basename {} \; | head -n 1)"
DTB_DIR="$(find ${ROOTFS_DIR}/boot -name "dtb-*" -exec basename {} \; | head -n 1)"
mkdir "${ROOTFS_DIR}/boot/extlinux"
cat << EOF | tee "${ROOTFS_DIR}/boot/extlinux/extlinux.conf"
default l0
menu title U-Boot menu
prompt 2
timeout 50
label l0
menu label ${PRETTY_NAME} - ${KERNEL_FILE#vmlinuz-}
linux /${KERNEL_FILE}
initrd /${INITRD_FILE}
fdtdir /${DTB_DIR}/
append root=UUID=$($get_fs_uuid_by_mountpoint /) rootwait rw earlycon=sbi console=ttyS0,115200n8
EOF
@@ -0,0 +1,8 @@
#!/usr/bin/env sh
DTB_DIR="$(find ${ROOTFS_DIR}/boot -name "dtb-*" -exec basename {} \; | head -n 1)"
DTB_DIR="${ROOTFS_DIR}/boot/${DTB_DIR}"
mv "${DTB_DIR}/spacemit/k1-bananapi-f3.dtb" "${DTB_DIR}/spacemit/k1-x_deb1.dtb"
mv "${DTB_DIR}/spacemit/k3-com260.dtb" "${DTB_DIR}/spacemit/k3_com260.dtb"
mv "${DTB_DIR}/spacemit/k3-pico.dtb" "${DTB_DIR}/spacemit/k3_pico.dtb"
@@ -0,0 +1,5 @@
#!/usr/bin/env sh
# Re-labelling all files except /boot which is stored in vfat
setfiles -r "${ROOTFS_DIR}" -e "${ROOTFS_DIR}/boot" "${ROOTFS_DIR}/etc/selinux/targeted/contexts/files/file_contexts" "${ROOTFS_DIR}"
setfattr -h -x security.selinux "${ROOTFS_DIR}/boot"
@@ -0,0 +1 @@
PROFILE_NAME := generic
@@ -0,0 +1,3 @@
DEVICE_NAME := SOPHGO-SG2044
$(foreach profile_dir,$(filter-out %.mk,$(wildcard $(CURRENT_DIR)*)),$(eval $(call add_device_profile,$(profile_dir))))
@@ -0,0 +1,24 @@
OUTPUT_FORMAT=partitioned_disk
PARTITION_TABLE_TYPE=GUID
PARTITION_1_OFFSET=1MiB
PARTITION_1_SIZE=499MiB
PARTITION_1_NAME="oerv-boot"
PARTITION_1_UUID=
PARTITION_1_TYPE=bls_boot
PARTITION_1_ATTRS=legacy_boot
PARTITION_1_USAGE=MOUNTPOINT
PARTITION_1_MOUNTPOINT="/boot"
PARTITION_1_FS=vfat
PARTITION_1_FS_UUID=
PARTITION_2_OFFSET=
PARTITION_2_SIZE=
PARTITION_2_NAME="oerv-root"
PARTITION_2_UUID=
PARTITION_2_TYPE=linux_root_riscv64
PARTITION_2_ATTRS=
PARTITION_2_USAGE=MOUNTPOINT
PARTITION_2_MOUNTPOINT="/"
PARTITION_2_FS=ext4
PARTITION_2_FS_UUID=
@@ -0,0 +1,12 @@
#!/usr/bin/env sh
# Override /usr/lib/dracut/dracut.conf.d/99-initramfs.conf
touch "${ROOTFS_DIR}/etc/dracut.conf.d/99-initramfs.conf"
cat << EOF | tee "${ROOTFS_DIR}/etc/dracut.conf.d/10-base.conf"
show_modules="yes"
dracutmodules+=" base shutdown "
add_dracutmodules+=" dracut-systemd rootfs-block "
add_dracutmodules+=" kernel-modules udev-rules "
filesystems+=" ext4 fat exfat "
EOF
@@ -0,0 +1,6 @@
#!/usr/bin/env sh
cat << EOF | column -t | tee "${ROOTFS_DIR}/etc/fstab"
UUID=$($get_fs_uuid_by_mountpoint /) / ext4 errors=remount-ro 0 1
UUID=$($get_fs_uuid_by_mountpoint /boot) /boot vfat defaults 0 2
EOF
@@ -0,0 +1,13 @@
#!/usr/bin/env sh
. "${ROOTFS_DIR}/etc/os-release"
cat << EOF | tee "${ROOTFS_DIR}/etc/default/u-boot"
U_BOOT_PROMPT="2"
U_BOOT_MENU_LABEL="${PRETTY_NAME}"
U_BOOT_PARAMETERS="rootwait rw rd.multipath=0"
U_BOOT_ROOT=root=UUID="$($get_fs_uuid_by_mountpoint /)"
U_BOOT_SEPARATE_BOOT="true"
U_BOOT_FDT_DIR="/dtb-"
U_BOOT_FDT=sophgo/sg2044-sophgo-srd3-10.dtb
EOF
@@ -0,0 +1,5 @@
#!/usr/bin/env sh
# Re-labelling all files except /boot which is stored in vfat
setfiles -r "${ROOTFS_DIR}" -e "${ROOTFS_DIR}/boot" "${ROOTFS_DIR}/etc/selinux/targeted/contexts/files/file_contexts" "${ROOTFS_DIR}"
setfattr -h -x security.selinux "${ROOTFS_DIR}/boot"
@@ -0,0 +1 @@
PROFILE_NAME := generic
@@ -0,0 +1,13 @@
[bsp-common]
name=BSP-Common
type=rpm-md
baseurl=https://diamond.oerv.ac.cn//OERV:/BSP/oe-multi/
enabled=1
gpgcheck=0
[bsp-sophgo-sg2044]
name=BSP-SG2044
type=rpm-md
baseurl=https://diamond.oerv.ac.cn//OERV:/BSP:/SOPHGO:/SG2044/oe-multi/
enabled=1
gpgcheck=0
@@ -0,0 +1,3 @@
DEVICE_NAME := SpacemiT-K1
$(foreach profile_dir,$(filter-out %.mk,$(wildcard $(CURRENT_DIR)*)),$(eval $(call add_device_profile,$(profile_dir))))
@@ -0,0 +1,48 @@
OUTPUT_FORMAT=partitioned_disk
# Targetting SD/eMMC, with 512B read block, 512K erase block
# But ext4 suggests a minimum of 4K block
DISK_PARTITION_ALIGNMENT=4096
PARTITION_TABLE_TYPE=GUID
MBR_CODE_AREA_USAGE=BLOB
MBR_CODE_AREA_BLOB="bootinfo_sd.bin"
PARTITION_1_OFFSET=128KiB
PARTITION_1_SIZE=256KiB
PARTITION_1_NAME="fsbl"
PARTITION_1_USAGE=BLOB
PARTITION_1_BLOB="FSBL.bin"
PARTITION_2_OFFSET=384KiB
PARTITION_2_SIZE=64KiB
PARTITION_2_NAME="env"
PARTITION_2_USAGE=BLOB
PARTITION_2_BLOB="u-boot-env-default.bin"
PARTITION_3_OFFSET=1MiB
PARTITION_3_SIZE=1MiB
PARTITION_3_NAME="opensbi"
PARTITION_3_USAGE=BLOB
PARTITION_3_BLOB="fw_dynamic.itb"
PARTITION_4_OFFSET=2MiB
PARTITION_4_SIZE=2MiB
PARTITION_4_NAME="uboot"
PARTITION_4_USAGE=BLOB
PARTITION_4_BLOB="u-boot.itb"
PARTITION_5_OFFSET=8MB
PARTITION_5_SIZE=492MB
PARTITION_5_NAME="oerv-boot"
PARTITION_5_TYPE=bls_boot
PARTITION_5_ATTRS=legacy_boot
PARTITION_5_USAGE=MOUNTPOINT
PARTITION_5_MOUNTPOINT="/boot"
PARTITION_5_FS=vfat
PARTITION_6_NAME="oerv-root"
PARTITION_6_TYPE=linux_root_riscv64
PARTITION_6_USAGE=MOUNTPOINT
PARTITION_6_MOUNTPOINT="/"
PARTITION_6_FS=ext4
@@ -0,0 +1,6 @@
#!/usr/bin/env sh
cat << EOF | column -t | tee "${ROOTFS_DIR}/etc/fstab"
UUID=$($get_fs_uuid_by_mountpoint /) / ext4 errors=remount-ro 0 1
UUID=$($get_fs_uuid_by_mountpoint /boot) /boot vfat defaults 0 2
EOF
@@ -0,0 +1,24 @@
#!/usr/bin/env sh
. "${ROOTFS_DIR}/etc/os-release"
KERNEL_FILE="$(find ${ROOTFS_DIR}/boot -name "vmlinuz*" -exec basename {} \; | head -n 1)"
INITRD_FILE="$(find ${ROOTFS_DIR}/boot -name "initramfs*" -exec basename {} \; | head -n 1)"
DTB_DIR="$(find ${ROOTFS_DIR}/boot -name "dtb-*" -exec basename {} \; | head -n 1)"
mkdir "${ROOTFS_DIR}/boot/extlinux"
cat << EOF | tee "${ROOTFS_DIR}/boot/extlinux/extlinux.conf"
default l0
menu title U-Boot menu
prompt 2
timeout 50
label l0
menu label ${PRETTY_NAME} - ${KERNEL_FILE#vmlinuz-}
linux /${KERNEL_FILE}
initrd /${INITRD_FILE}
fdtdir /${DTB_DIR}/
append root=UUID=$($get_fs_uuid_by_mountpoint /) rootwait rw earlycon=sbi console=ttyS0,115200n8 selinux=0 no4lvl
EOF
@@ -0,0 +1,8 @@
#!/usr/bin/env sh
DTB_DIR="$(find ${ROOTFS_DIR}/boot -name "dtb-*" -exec basename {} \; | head -n 1)"
DTB_DIR="${ROOTFS_DIR}/boot/${DTB_DIR}"
mv "${DTB_DIR}/spacemit/k1-bananapi-f3.dtb" "${DTB_DIR}/spacemit/k1-x_deb1.dtb"
mv "${DTB_DIR}/spacemit/k3-com260.dtb" "${DTB_DIR}/spacemit/k3_com260.dtb"
mv "${DTB_DIR}/spacemit/k3-pico.dtb" "${DTB_DIR}/spacemit/k3_pico.dtb"
@@ -0,0 +1,5 @@
#!/usr/bin/env sh
# Re-labelling all files except /boot which is stored in vfat
setfiles -r "${ROOTFS_DIR}" -e "${ROOTFS_DIR}/boot" "${ROOTFS_DIR}/etc/selinux/targeted/contexts/files/file_contexts" "${ROOTFS_DIR}"
setfattr -h -x security.selinux "${ROOTFS_DIR}/boot"
@@ -0,0 +1,9 @@
PROFILE_NAME := olk-sdmmc
$(eval $(call fetch_remote_blob,bl-spacemit-k1.zip,https://github.com/openeuler-riscv/u-boot-build/releases/download/release-spacemit-k1/bl-spacemit-k1-rva23.zip))
$(eval $(call extract_blob_from_zip,bootinfo_sd.bin,bl-spacemit-k1.zip))
$(eval $(call extract_blob_from_zip,FSBL.bin,bl-spacemit-k1.zip))
$(eval $(call extract_blob_from_zip,u-boot-env-default.bin,bl-spacemit-k1.zip))
$(eval $(call extract_blob_from_zip,fw_dynamic.itb,bl-spacemit-k1.zip))
$(eval $(call extract_blob_from_zip,u-boot.itb,bl-spacemit-k1.zip))
@@ -0,0 +1,3 @@
DEVICE_NAME := SpacemiT-K3
$(foreach profile_dir,$(filter-out %.mk,$(wildcard $(CURRENT_DIR)*)),$(eval $(call add_device_profile,$(profile_dir))))
@@ -0,0 +1,25 @@
OUTPUT_FORMAT=partitioned_disk
PARTITION_TABLE_TYPE=GUID
DISK_SECTOR_SIZE=4096
PARTITION_1_OFFSET=1MB
PARTITION_1_SIZE=499M
PARTITION_1_NAME="boot"
PARTITION_1_UUID=
PARTITION_1_TYPE=bls_boot
PARTITION_1_ATTRS=legacy_boot
PARTITION_1_USAGE=MOUNTPOINT
PARTITION_1_MOUNTPOINT="/boot"
PARTITION_1_FS=vfat
PARTITION_1_FS_UUID=
PARTITION_2_OFFSET=
PARTITION_2_SIZE=
PARTITION_2_NAME="root"
PARTITION_2_UUID=
PARTITION_2_TYPE=linux_root_riscv64
PARTITION_2_ATTRS=
PARTITION_2_USAGE=MOUNTPOINT
PARTITION_2_MOUNTPOINT="/"
PARTITION_2_FS=ext4
PARTITION_2_FS_UUID=
@@ -0,0 +1 @@
../generic/packages.d
@@ -0,0 +1 @@
../generic/post.d
@@ -0,0 +1 @@
PROFILE_NAME := generic-4kn
@@ -0,0 +1 @@
../generic/repos.d
@@ -0,0 +1,24 @@
OUTPUT_FORMAT=partitioned_disk
PARTITION_TABLE_TYPE=GUID
PARTITION_1_OFFSET=1MB
PARTITION_1_SIZE=499M
PARTITION_1_NAME="boot"
PARTITION_1_UUID=
PARTITION_1_TYPE=bls_boot
PARTITION_1_ATTRS=legacy_boot
PARTITION_1_USAGE=MOUNTPOINT
PARTITION_1_MOUNTPOINT="/boot"
PARTITION_1_FS=vfat
PARTITION_1_FS_UUID=
PARTITION_2_OFFSET=
PARTITION_2_SIZE=
PARTITION_2_NAME="root"
PARTITION_2_UUID=
PARTITION_2_TYPE=linux_root_riscv64
PARTITION_2_ATTRS=
PARTITION_2_USAGE=MOUNTPOINT
PARTITION_2_MOUNTPOINT="/"
PARTITION_2_FS=ext4
PARTITION_2_FS_UUID=
@@ -0,0 +1,3 @@
dracut
u-boot-menu
oerv-firstboot
@@ -0,0 +1,6 @@
#!/usr/bin/env sh
cat << EOF | column -t | tee "${ROOTFS_DIR}/etc/fstab"
UUID=$($get_fs_uuid_by_mountpoint /) / ext4 errors=remount-ro 0 1
UUID=$($get_fs_uuid_by_mountpoint /boot) /boot vfat defaults 0 2
EOF
@@ -0,0 +1,12 @@
#!/usr/bin/env sh
. "${ROOTFS_DIR}/etc/os-release"
cat << EOF | tee "${ROOTFS_DIR}/etc/default/u-boot"
U_BOOT_PROMPT="2"
U_BOOT_MENU_LABEL="${PRETTY_NAME}"
U_BOOT_PARAMETERS="rootwait rw earlycon=sbi console=tty0 console=ttyS0,115200 rd.multipath=0"
U_BOOT_ROOT=root=UUID="$($get_fs_uuid_by_mountpoint /)"
U_BOOT_SEPARATE_BOOT="true"
U_BOOT_FDT_DIR="/dtb-"
EOF
@@ -0,0 +1,2 @@
kernel-spacemit-k3
kernel-spacemit-k3-headers
@@ -0,0 +1,3 @@
#!/usr/bin/env sh
rm "${ROOTFS_DIR}/etc/systemd/system/multi-user.target.wants/irqbalance.service"
@@ -0,0 +1,5 @@
#!/usr/bin/env sh
# Re-labelling all files except /boot which is stored in vfat
setfiles -r "${ROOTFS_DIR}" -e "${ROOTFS_DIR}/boot" "${ROOTFS_DIR}/etc/selinux/targeted/contexts/files/file_contexts" "${ROOTFS_DIR}"
setfattr -h -x security.selinux "${ROOTFS_DIR}/boot"
@@ -0,0 +1 @@
PROFILE_NAME := generic
@@ -0,0 +1,13 @@
[bsp-common]
name=BSP-Common
type=rpm-md
baseurl=https://diamond.oerv.ac.cn//OERV:/BSP/oe-multi/
enabled=1
gpgcheck=0
[bsp-spacemit-k3]
name=BSP-K1
type=rpm-md
baseurl=https://diamond.oerv.ac.cn//OERV:/BSP:/SpacemiT:/K3/oe-multi/
enabled=1
gpgcheck=0
@@ -0,0 +1,4 @@
RELEASE_NAME := 24.03-LTS-SP3-RVA23
$(foreach receipe_dir,$(filter-out %.mk,$(wildcard $(CURRENT_DIR)userspace/*)),$(eval $(call add_receipe,$(receipe_dir))))
$(foreach device_dir,$(filter-out %.mk,$(wildcard $(CURRENT_DIR)bsp/*)),$(eval $(call add_device,$(device_dir))))
@@ -0,0 +1,3 @@
#!/usr/bin/env sh
rm "${ROOTFS_DIR}/etc/yum.repos.d/bootstrap.repo"
@@ -0,0 +1,4 @@
#!/usr/bin/env sh
sed -i 's/metalink=/# metalink=/g' "${ROOTFS_DIR}/etc/yum.repos.d/openEuler.repo"
sed -i 's/repo.openeuler.org/mirror.iscas.ac.cn\/openeuler/g' "${ROOTFS_DIR}/etc/yum.repos.d/openEuler.repo"
@@ -0,0 +1,119 @@
NetworkManager
NetworkManager-wifi
acl
at
attr
audit
authselect
basesystem
bash
bash-completion
bc
bpftool
bzip2
chrony
cifs-utils
coreutils
cpio
cronie
crontabs
cryptsetup
curl
dbus
dnf
dnf-plugins-core
dos2unix
dosfstools
e2fsprogs
ed
ethtool
file
filesystem
firewalld
glibc
gnupg2
grubby
hostname
ima-evm-utils
initscripts
iproute
iprutils
iptstate
iputils
irqbalance
kbd
less
libstoragemgmt
libteam
logrotate
lshw
lsof
lsscsi
lvm2
mailcap
man-db
man-pages
mdadm
mlocate
mtr
nano
ncurses
net-tools
nfs-utils
nmap
openEuler-latest-release
openEuler-release
openssh
openssh-clients
openssh-server
parted
passwd
pciutils
pinfo
plymouth
policycoreutils
procps-ng
psacct
quota
rdma-core
realmd
rng-tools
rootfiles
rpm
rsync
rsyslog
rsyslog-relp
security-tool
selinux-policy-mls
selinux-policy-targeted
setup
sg3_utils
shadow
smartmontools
strace
sudo
symlinks
sysfsutils
systemd
systemd-udev
tar
tcpdump
time
traceroute
tree
tuned
unzip
usbutils
util-linux
util-linux-user
vim-enhanced
vim-minimal
virt-what
wget
which
words
xfsdump
xfsprogs
yum
zip
zsh
@@ -0,0 +1,6 @@
#!/usr/bin/env sh
cat << EOF | chroot "${ROOTFS_DIR}" passwd root
openEuler12#$
openEuler12#$
EOF
@@ -0,0 +1,4 @@
#!/usr/bin/env sh
echo openeuler-riscv64 >> "${ROOTFS_DIR}/etc/hostname"
echo "127.0.0.1 openeuler-riscv64" >> "${ROOTFS_DIR}/etc/hosts"
@@ -0,0 +1,3 @@
#!/usr/bin/env sh
cat "${ROOTFS_DIR}/usr/share/zoneinfo/Asia/Shanghai" > "${ROOTFS_DIR}/etc/localtime"
@@ -0,0 +1,3 @@
#!/usr/bin/env sh
touch "${ROOTFS_DIR}/etc/fstab"
@@ -0,0 +1,3 @@
#!/usr/bin/env sh
setfiles -r "${ROOTFS_DIR}" "${ROOTFS_DIR}/etc/selinux/targeted/contexts/files/file_contexts" "${ROOTFS_DIR}"
@@ -0,0 +1,2 @@
RECEIPE_NAME := base
COMPRESSION := zstd
@@ -0,0 +1,8 @@
[everything]
name=everything
baseurl=https://repo.openeuler.org/openEuler-24.03-LTS-SP3/everything/riscv64/rva23/$basearch/
metalink=https://mirrors.openeuler.org/metalink?repo=$releasever/everything/riscv64/rva23&arch=$basearch
metadata_expire=1h
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-24.03-LTS-SP3/everything/riscv64/rva23/$basearch/RPM-GPG-KEY-openEuler
+1
View File
@@ -0,0 +1 @@
../../24.03-lts-sp3-rva23/bsp/OLK/
+1
View File
@@ -0,0 +1 @@
../../24.03-lts-sp3-rva23/bsp/sophgo-sg2044
@@ -0,0 +1,3 @@
DEVICE_NAME := SpacemiT-K1
$(foreach profile_dir,$(filter-out %.mk,$(wildcard $(CURRENT_DIR)*)),$(eval $(call add_device_profile,$(profile_dir))))
@@ -0,0 +1,24 @@
OUTPUT_FORMAT=partitioned_disk
PARTITION_TABLE_TYPE=GUID
PARTITION_1_OFFSET=1MB
PARTITION_1_SIZE=499M
PARTITION_1_NAME="oerv-boot"
PARTITION_1_UUID=
PARTITION_1_TYPE=bls_boot
PARTITION_1_ATTRS=legacy_boot
PARTITION_1_USAGE=MOUNTPOINT
PARTITION_1_MOUNTPOINT="/boot"
PARTITION_1_FS=vfat
PARTITION_1_FS_UUID=
PARTITION_2_OFFSET=
PARTITION_2_SIZE=
PARTITION_2_NAME="oerv-root"
PARTITION_2_UUID=
PARTITION_2_TYPE=linux_root_riscv64
PARTITION_2_ATTRS=
PARTITION_2_USAGE=MOUNTPOINT
PARTITION_2_MOUNTPOINT="/"
PARTITION_2_FS=ext4
PARTITION_2_FS_UUID=
@@ -0,0 +1,3 @@
firmware-spacemit-k1
dracut
u-boot-menu
@@ -0,0 +1,3 @@
# Provide esos.elf for early kernel direct filesystem lookup
install_items+=" /lib/firmware/esos.elf "
@@ -0,0 +1,3 @@
#!/usr/bin/env sh
cp 50-spacemit_k1_fw.conf "${ROOTFS_DIR}/etc/dracut.conf.d/"
@@ -0,0 +1,6 @@
#!/usr/bin/env sh
cat << EOF | column -t | tee "${ROOTFS_DIR}/etc/fstab"
UUID=$($get_fs_uuid_by_mountpoint /) / ext4 errors=remount-ro 0 1
UUID=$($get_fs_uuid_by_mountpoint /boot) /boot vfat defaults 0 2
EOF
@@ -0,0 +1,12 @@
#!/usr/bin/env sh
. "${ROOTFS_DIR}/etc/os-release"
cat << EOF | tee "${ROOTFS_DIR}/etc/default/u-boot"
U_BOOT_PROMPT="2"
U_BOOT_MENU_LABEL="${PRETTY_NAME}"
U_BOOT_PARAMETERS="rootwait rw earlycon=sbi console=tty0 console=ttyS0,115200 rd.multipath=0"
U_BOOT_ROOT=root=UUID="$($get_fs_uuid_by_mountpoint /)"
U_BOOT_SEPARATE_BOOT="true"
U_BOOT_FDT_DIR="/dtb-"
EOF
@@ -0,0 +1,2 @@
kernel
kernel-headers
@@ -0,0 +1,5 @@
#!/usr/bin/env sh
# Re-labelling all files except /boot which is stored in vfat
setfiles -r "${ROOTFS_DIR}" -e "${ROOTFS_DIR}/boot" "${ROOTFS_DIR}/etc/selinux/targeted/contexts/files/file_contexts" "${ROOTFS_DIR}"
setfattr -h -x security.selinux "${ROOTFS_DIR}/boot"
@@ -0,0 +1 @@
PROFILE_NAME := generic
@@ -0,0 +1,13 @@
[bsp-common]
name=BSP-Common
type=rpm-md
baseurl=https://diamond.oerv.ac.cn//OERV:/BSP/oe-multi/
enabled=1
gpgcheck=0
[bsp-spacemit-k1]
name=BSP-K1
type=rpm-md
baseurl=https://diamond.oerv.ac.cn//OERV:/BSP:/SpacemiT:/K1/oe-multi/
enabled=1
gpgcheck=0
@@ -0,0 +1,48 @@
OUTPUT_FORMAT=partitioned_disk
# Targetting SD/eMMC, with 512B read block, 512K erase block
# But ext4 suggests a minimum of 4K block
DISK_PARTITION_ALIGNMENT=4096
PARTITION_TABLE_TYPE=GUID
MBR_CODE_AREA_USAGE=BLOB
MBR_CODE_AREA_BLOB="bootinfo_sd.bin"
PARTITION_1_OFFSET=128KiB
PARTITION_1_SIZE=256KiB
PARTITION_1_NAME="fsbl"
PARTITION_1_USAGE=BLOB
PARTITION_1_BLOB="FSBL.bin"
PARTITION_2_OFFSET=384KiB
PARTITION_2_SIZE=64KiB
PARTITION_2_NAME="env"
PARTITION_2_USAGE=BLOB
PARTITION_2_BLOB="u-boot-env-default.bin"
PARTITION_3_OFFSET=1MiB
PARTITION_3_SIZE=1MiB
PARTITION_3_NAME="opensbi"
PARTITION_3_USAGE=BLOB
PARTITION_3_BLOB="fw_dynamic.itb"
PARTITION_4_OFFSET=2MiB
PARTITION_4_SIZE=2MiB
PARTITION_4_NAME="uboot"
PARTITION_4_USAGE=BLOB
PARTITION_4_BLOB="u-boot.itb"
PARTITION_5_OFFSET=8MB
PARTITION_5_SIZE=492MB
PARTITION_5_NAME="oerv-boot"
PARTITION_5_TYPE=bls_boot
PARTITION_5_ATTRS=legacy_boot
PARTITION_5_USAGE=MOUNTPOINT
PARTITION_5_MOUNTPOINT="/boot"
PARTITION_5_FS=vfat
PARTITION_6_NAME="oerv-root"
PARTITION_6_TYPE=linux_root_riscv64
PARTITION_6_USAGE=MOUNTPOINT
PARTITION_6_MOUNTPOINT="/"
PARTITION_6_FS=ext4
@@ -0,0 +1,6 @@
#!/usr/bin/env sh
cat << EOF | column -t | tee "${ROOTFS_DIR}/etc/fstab"
UUID=$($get_fs_uuid_by_mountpoint /) / ext4 errors=remount-ro 0 1
UUID=$($get_fs_uuid_by_mountpoint /boot) /boot vfat defaults 0 2
EOF
@@ -0,0 +1,8 @@
#!/usr/bin/env sh
mkdir -p "${ROOTFS_DIR}/etc/systemd/system"
cp "oerv-firstboot.service" "${ROOTFS_DIR}/etc/systemd/system/oerv-firstboot.service"
cp "oerv-firstboot.sh" "${ROOTFS_DIR}/usr/sbin/oerv-firstboot.sh"
chmod +x "${ROOTFS_DIR}/usr/sbin/oerv-firstboot.sh"
mkdir -p "${ROOTFS_DIR}/etc/systemd/system/multi-user.target.wants"
ln -s "/etc/systemd/system/oerv-firstboot.service" "${ROOTFS_DIR}/etc/systemd/system/multi-user.target.wants/oerv-firstboot.service"
@@ -0,0 +1,13 @@
[Unit]
Before=systemd-user-sessions.service
ConditionPathExists=/etc/systemd/system/multi-user.target.wants/oerv-firstboot.service
Requires=-.mount
[Service]
Type=oneshot
ExecStart=/usr/sbin/oerv-firstboot.sh
ExecStartPost=/usr/bin/rm /etc/systemd/system/multi-user.target.wants/oerv-firstboot.service
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
@@ -0,0 +1,11 @@
#!/usr/bin/env sh
echo "$0: Expanding root partition..."
ROOT_PART="$(findmnt -no SOURCE /)"
ROOT_PARTNUM="$(lsblk -pr -no partn "${ROOT_PART}")"
ROOT_DISK="$(lsblk -p -no pkname "${ROOT_PART}")"
sgdisk -e "${ROOT_DISK}"
echo "Yes" | parted ---pretend-input-tty "${ROOT_DISK}" resizepart "${ROOT_PARTNUM}" 100%
partprobe
resize2fs "${ROOT_PART}"
echo "$0: Done."
@@ -0,0 +1,2 @@
kernel
kernel-headers
@@ -0,0 +1,24 @@
#!/usr/bin/env sh
. "${ROOTFS_DIR}/etc/os-release"
KERNEL_FILE="$(find ${ROOTFS_DIR}/boot -name "vmlinuz*" -exec basename {} \; | head -n 1)"
INITRD_FILE="$(find ${ROOTFS_DIR}/boot -name "initramfs*" -exec basename {} \; | head -n 1)"
DTB_DIR="$(find ${ROOTFS_DIR}/boot -name "dtb-*" -exec basename {} \; | head -n 1)"
mkdir "${ROOTFS_DIR}/boot/extlinux"
cat << EOF | tee "${ROOTFS_DIR}/boot/extlinux/extlinux.conf"
default l0
menu title U-Boot menu
prompt 2
timeout 50
label l0
menu label ${PRETTY_NAME} - ${KERNEL_FILE#vmlinuz-}
linux /${KERNEL_FILE}
initrd /${INITRD_FILE}
fdtdir /${DTB_DIR}/
append root=UUID=$($get_fs_uuid_by_mountpoint /) rootwait rw earlycon=sbi console=ttyS0,115200n8
EOF
@@ -0,0 +1,8 @@
#!/usr/bin/env sh
DTB_DIR="$(find ${ROOTFS_DIR}/boot -name "dtb-*" -exec basename {} \; | head -n 1)"
DTB_DIR="${ROOTFS_DIR}/boot/${DTB_DIR}"
mv "${DTB_DIR}/spacemit/k1-bananapi-f3.dtb" "${DTB_DIR}/spacemit/k1-x_deb1.dtb"
mv "${DTB_DIR}/spacemit/k3-com260.dtb" "${DTB_DIR}/spacemit/k3_com260.dtb"
mv "${DTB_DIR}/spacemit/k3-pico.dtb" "${DTB_DIR}/spacemit/k3_pico.dtb"
@@ -0,0 +1,5 @@
#!/usr/bin/env sh
# Re-labelling all files except /boot which is stored in vfat
setfiles -r "${ROOTFS_DIR}" -e "${ROOTFS_DIR}/boot" "${ROOTFS_DIR}/etc/selinux/targeted/contexts/files/file_contexts" "${ROOTFS_DIR}"
setfattr -h -x security.selinux "${ROOTFS_DIR}/boot"
@@ -0,0 +1,9 @@
PROFILE_NAME := olk-sdmmc
$(eval $(call fetch_remote_blob,bl-spacemit-k1.zip,https://github.com/openeuler-riscv/u-boot-build/releases/download/release-spacemit-k1/bl-spacemit-k1.zip))
$(eval $(call extract_blob_from_zip,bootinfo_sd.bin,bl-spacemit-k1.zip))
$(eval $(call extract_blob_from_zip,FSBL.bin,bl-spacemit-k1.zip))
$(eval $(call extract_blob_from_zip,u-boot-env-default.bin,bl-spacemit-k1.zip))
$(eval $(call extract_blob_from_zip,fw_dynamic.itb,bl-spacemit-k1.zip))
$(eval $(call extract_blob_from_zip,u-boot.itb,bl-spacemit-k1.zip))
@@ -0,0 +1,49 @@
OUTPUT_FORMAT=partitioned_disk
IMAGE_POST_PROCESS=
# Targetting SD/eMMC, with 512B read block, 512K erase block
# But ext4 suggests a minimum of 4K block
DISK_PARTITION_ALIGNMENT=4096
PARTITION_TABLE_TYPE=GUID
MBR_CODE_AREA_USAGE=BLOB
MBR_CODE_AREA_BLOB="bootinfo_sd.bin"
PARTITION_1_OFFSET=128KiB
PARTITION_1_SIZE=256KiB
PARTITION_1_NAME="fsbl"
PARTITION_1_USAGE=BLOB
PARTITION_1_BLOB="FSBL.bin"
PARTITION_2_OFFSET=384KiB
PARTITION_2_SIZE=64KiB
PARTITION_2_NAME="env"
PARTITION_2_USAGE=BLOB
PARTITION_2_BLOB="u-boot-env-default.bin"
PARTITION_3_OFFSET=1MiB
PARTITION_3_SIZE=1MiB
PARTITION_3_NAME="opensbi"
PARTITION_3_USAGE=BLOB
PARTITION_3_BLOB="fw_dynamic.itb"
PARTITION_4_OFFSET=2MiB
PARTITION_4_SIZE=2MiB
PARTITION_4_NAME="uboot"
PARTITION_4_USAGE=BLOB
PARTITION_4_BLOB="u-boot.itb"
PARTITION_5_OFFSET=8MB
PARTITION_5_SIZE=492MB
PARTITION_5_NAME="oerv-boot"
PARTITION_5_TYPE=bls_boot
PARTITION_5_ATTRS=legacy_boot
PARTITION_5_USAGE=MOUNTPOINT
PARTITION_5_MOUNTPOINT="/boot"
PARTITION_5_FS=vfat
PARTITION_6_NAME="oerv-root"
PARTITION_6_TYPE=linux_root_riscv64
PARTITION_6_USAGE=MOUNTPOINT
PARTITION_6_MOUNTPOINT="/"
PARTITION_6_FS=ext4
@@ -0,0 +1,3 @@
firmware-spacemit-k1
dracut
u-boot-menu
@@ -0,0 +1,3 @@
# Provide esos.elf for early kernel direct filesystem lookup
install_items+=" /lib/firmware/esos.elf "
@@ -0,0 +1,3 @@
#!/usr/bin/env sh
cp 50-spacemit_k1_fw.conf "${ROOTFS_DIR}/etc/dracut.conf.d/"
@@ -0,0 +1,6 @@
#!/usr/bin/env sh
cat << EOF | column -t | tee "${ROOTFS_DIR}/etc/fstab"
UUID=$($get_fs_uuid_by_mountpoint /) / ext4 errors=remount-ro 0 1
UUID=$($get_fs_uuid_by_mountpoint /boot) /boot vfat defaults 0 2
EOF
@@ -0,0 +1,12 @@
#!/usr/bin/env sh
. "${ROOTFS_DIR}/etc/os-release"
cat << EOF | tee "${ROOTFS_DIR}/etc/default/u-boot"
U_BOOT_PROMPT="2"
U_BOOT_MENU_LABEL="${PRETTY_NAME}"
U_BOOT_PARAMETERS="rootwait rw earlycon=sbi console=tty0 console=ttyS0,115200 rd.multipath=0"
U_BOOT_ROOT=root=UUID="$($get_fs_uuid_by_mountpoint /)"
U_BOOT_SEPARATE_BOOT="true"
U_BOOT_FDT_DIR="/dtb-"
EOF
@@ -0,0 +1,2 @@
kernel
kernel-headers
@@ -0,0 +1,5 @@
#!/usr/bin/env sh
# Re-labelling all files except /boot which is stored in vfat
setfiles -r "${ROOTFS_DIR}" -e "${ROOTFS_DIR}/boot" "${ROOTFS_DIR}/etc/selinux/targeted/contexts/files/file_contexts" "${ROOTFS_DIR}"
setfattr -h -x security.selinux "${ROOTFS_DIR}/boot"
@@ -0,0 +1,9 @@
PROFILE_NAME := sdmmc
$(eval $(call fetch_remote_blob,bl-spacemit-k1.zip,https://github.com/openeuler-riscv/u-boot-build/releases/download/release-spacemit-k1/bl-spacemit-k1.zip))
$(eval $(call extract_blob_from_zip,bootinfo_sd.bin,bl-spacemit-k1.zip))
$(eval $(call extract_blob_from_zip,FSBL.bin,bl-spacemit-k1.zip))
$(eval $(call extract_blob_from_zip,u-boot-env-default.bin,bl-spacemit-k1.zip))
$(eval $(call extract_blob_from_zip,fw_dynamic.itb,bl-spacemit-k1.zip))
$(eval $(call extract_blob_from_zip,u-boot.itb,bl-spacemit-k1.zip))

Some files were not shown because too many files have changed in this diff Show More