forked from OERV-BSP/image-builder
Compare commits
53 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 87636725a1 | |||
| e144710408 | |||
| a1d0cb1b56 | |||
| 22d07f1ed1 | |||
| 7ce1d8aa07 | |||
| bbf67874a0 | |||
| c1db7d4062 | |||
| 3407ad63b3 | |||
| d2c7fe774f | |||
| 822b6fa271 | |||
| 8c0c411d68 | |||
| aa0b8cb4e6 | |||
| fd8682eacf | |||
| c884fdf7fd | |||
| adb392ba50 | |||
| e826cb9278 | |||
| 361f36a4af | |||
| 9376dc0e9b | |||
| 36c3f050f0 | |||
| 0075d48033 | |||
| 47044189de | |||
| 019331a6b9 | |||
| cdc67a76c5 | |||
| 16448e37a0 | |||
| 17a6843eb6 | |||
| dd445250bc | |||
| b9a1f51f64 | |||
| 8df9401aaf | |||
| e40435ed72 | |||
| ae40e9caa6 | |||
| a2a593adf0 | |||
| 94312a7025 | |||
| a89edf9f1a | |||
| b58334b71c | |||
| a70f4f7334 | |||
| 4f367a28eb | |||
| 9b26148287 | |||
| 0b893abba4 | |||
| c83a9f77db | |||
| 5cade470ba | |||
| e2d58be78a | |||
| 370c41b690 | |||
| 4d523a54a9 | |||
| f06421c421 | |||
| 99cd55fc3e | |||
| 8d85dbf59b | |||
| 02e6a12063 | |||
| f60ea1c5e5 | |||
| fbc553dc0e | |||
| 63dda91ecc | |||
| 816dde18bb | |||
| c154d4ae9b | |||
| dd4d2adbe7 |
+37
-6
@@ -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
|
||||
|
||||
@@ -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
@@ -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=
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
dracut
|
||||
linux-firmware
|
||||
+6
@@ -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
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
gdisk
|
||||
parted
|
||||
+8
@@ -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"
|
||||
+13
@@ -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
|
||||
+11
@@ -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."
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
kernel
|
||||
kernel-headers
|
||||
+24
@@ -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
|
||||
+8
@@ -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"
|
||||
+5
@@ -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=
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
dracut
|
||||
u-boot-menu
|
||||
+12
@@ -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
|
||||
+6
@@ -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
|
||||
+13
@@ -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
|
||||
+1
@@ -0,0 +1 @@
|
||||
oerv-firstboot
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
kernel
|
||||
kernel-headers
|
||||
Executable
+5
@@ -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
|
||||
+1
@@ -0,0 +1 @@
|
||||
dracut
|
||||
+6
@@ -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
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
kernel
|
||||
kernel-headers
|
||||
+24
@@ -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
|
||||
+8
@@ -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"
|
||||
Executable
+5
@@ -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=
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
dracut
|
||||
u-boot-menu
|
||||
oerv-firstboot
|
||||
+6
@@ -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
|
||||
+12
@@ -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
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
kernel-spacemit-k3
|
||||
kernel-spacemit-k3-headers
|
||||
receipes/openeuler/24.03-lts-sp3-rva23/bsp/spacemit-k3/generic/post.d/50-disable-irqbalance/entry.sh
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
rm "${ROOTFS_DIR}/etc/systemd/system/multi-user.target.wants/irqbalance.service"
|
||||
Executable
+5
@@ -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))))
|
||||
+1
@@ -0,0 +1 @@
|
||||
openEuler-repos
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
rm "${ROOTFS_DIR}/etc/yum.repos.d/bootstrap.repo"
|
||||
+4
@@ -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
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
cat << EOF | chroot "${ROOTFS_DIR}" passwd root
|
||||
openEuler12#$
|
||||
openEuler12#$
|
||||
EOF
|
||||
+4
@@ -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"
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
cat "${ROOTFS_DIR}/usr/share/zoneinfo/Asia/Shanghai" > "${ROOTFS_DIR}/etc/localtime"
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
touch "${ROOTFS_DIR}/etc/fstab"
|
||||
+3
@@ -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
|
||||
@@ -0,0 +1 @@
|
||||
../../24.03-lts-sp3-rva23/bsp/OLK/
|
||||
@@ -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=
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
firmware-spacemit-k1
|
||||
dracut
|
||||
u-boot-menu
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
# Provide esos.elf for early kernel direct filesystem lookup
|
||||
|
||||
install_items+=" /lib/firmware/esos.elf "
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
cp 50-spacemit_k1_fw.conf "${ROOTFS_DIR}/etc/dracut.conf.d/"
|
||||
+6
@@ -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
|
||||
+12
@@ -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
|
||||
+1
@@ -0,0 +1 @@
|
||||
oerv-firstboot
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
kernel
|
||||
kernel-headers
|
||||
Executable
+5
@@ -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
|
||||
+1
@@ -0,0 +1 @@
|
||||
dracut
|
||||
+6
@@ -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
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
gdisk
|
||||
parted
|
||||
+8
@@ -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"
|
||||
+13
@@ -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
|
||||
+11
@@ -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."
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
kernel
|
||||
kernel-headers
|
||||
+24
@@ -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
|
||||
+8
@@ -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"
|
||||
Executable
+5
@@ -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
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
firmware-spacemit-k1
|
||||
dracut
|
||||
u-boot-menu
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
# Provide esos.elf for early kernel direct filesystem lookup
|
||||
|
||||
install_items+=" /lib/firmware/esos.elf "
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
cp 50-spacemit_k1_fw.conf "${ROOTFS_DIR}/etc/dracut.conf.d/"
|
||||
+6
@@ -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
|
||||
+12
@@ -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
|
||||
+1
@@ -0,0 +1 @@
|
||||
oerv-firstboot
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
kernel
|
||||
kernel-headers
|
||||
+5
@@ -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
Reference in New Issue
Block a user