Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7c9350ef99 | ||
|
|
566854ed69 | ||
|
|
15ca363c87 | ||
|
|
d7ffd515d4 | ||
|
|
6a482b1a6b | ||
|
|
b977a71b53 | ||
|
|
3692932ee0 | ||
|
|
72813a044b | ||
|
|
18fdd4da73 | ||
|
|
ca0ae5541e | ||
|
|
d59d6f9fcb | ||
|
|
18b69f0f5d | ||
|
|
50afe98a2f |
@@ -45,21 +45,16 @@ RUN sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list.d/debi
|
||||
RUN apt-get update && apt-get install -y \
|
||||
attr \
|
||||
bsdextrautils \
|
||||
bzip2 \
|
||||
coreutils \
|
||||
dosfstools \
|
||||
e2fsprogs \
|
||||
fdisk \
|
||||
findutils \
|
||||
gdisk \
|
||||
gzip \
|
||||
libsqlite3-0 \
|
||||
mtools \
|
||||
rsync \
|
||||
tar \
|
||||
util-linux \
|
||||
uuid-runtime \
|
||||
xz-utils \
|
||||
zstd \
|
||||
zlib1g \
|
||||
policycoreutils \
|
||||
|
||||
@@ -34,11 +34,79 @@ It can be interrupted at any time, without harming your host OS.
|
||||
|
||||
## Prerequirements
|
||||
|
||||
- Root-mode docker with `--priviledged` option available
|
||||
- May not be necessary in the future
|
||||
- rsync
|
||||
- GNU Makefile
|
||||
- ~~And other basic shell utils~~
|
||||
- GNU Make 4 or newer
|
||||
- `rsync`, `curl`, and `unzip` for staging recipes and downloading blobs
|
||||
- RISC-V user-mode emulation and binfmt registration: `qemu-riscv64-static`
|
||||
and `binfmt`; registration is a one-time system setup step
|
||||
- Docker or Podman; rootless operation is supported
|
||||
|
||||
### Dependencies
|
||||
|
||||
The Makefile uses these host commands before a build script runs:
|
||||
|
||||
| Command | Debian package | Fedora package | Used for |
|
||||
| --- | --- | --- | --- |
|
||||
| `make` | `make` | `make` | Makefile target management |
|
||||
| `rsync` | `rsync` | `rsync` | Recipe staging |
|
||||
| `curl` | `curl` | `curl` | Remote blob downloads |
|
||||
| `unzip` | `unzip` | `unzip` | Extracting blob archives |
|
||||
| `qemu-riscv64-static` | `qemu-user-static` | `qemu-user-static` | Running RISC-V binaries on the build host |
|
||||
| `binfmt` registration | `binfmt-support` | `systemd` (`systemd-binfmt`) | Dispatching RISC-V binaries to QEMU |
|
||||
|
||||
The build scripts and the recipe post-processing scripts use the following
|
||||
commands. The package names are the packages to install on the build host;
|
||||
some commands are also supplied by the default base image in Docker.
|
||||
|
||||
| Command or tool | Debian package | Fedora package | Used for |
|
||||
| --- | --- | --- | --- |
|
||||
| `setfattr` | `attr` | `attr` | Removing the SELinux attribute from `/boot` |
|
||||
| `bash` | `bash` | `bash` | Running recipe scripts |
|
||||
| `column` | `bsdextrautils` | `util-linux` | Formatting generated `fstab` |
|
||||
| `coreutils` (`basename`, `cat`, `chmod`, `cp`, `cut`, `dd`, `du`, `head`, `ln`, `mkdir`, `mktemp`, `mv`, `readlink`, `rm`, `sha256sum`, `sort`, `stat`, `tee`, `tr`, `truncate`) | `coreutils` | `coreutils` | File, stream, and image operations |
|
||||
| `dosfstools` (`mkfs.vfat`) | `dosfstools` | `dosfstools` | Creating VFAT filesystems |
|
||||
| `e2fsprogs` (`mkfs.ext4`, `tune2fs`, `e2fsck`, `resize2fs`) | `e2fsprogs` | `e2fsprogs` | Creating and shrinking ext4 filesystems |
|
||||
| `find` | `findutils` | `findutils` | Finding and copying filesystem contents |
|
||||
| `grep` | `grep` | `grep` | Validation and command detection |
|
||||
| `hexdump` | `bsdextrautils` | `util-linux` | Generating VFAT UUIDs |
|
||||
| `mcopy`, `mlabel` | `mtools` | `mtools` | Writing and labeling VFAT images |
|
||||
| `blockdev`, `mount`, `umount`, `rev`, `seq`, `uuidgen` | `fdisk`, `util-linux`, `uuid-runtime` | `util-linux` | Mounting, partitioning, iteration, and UUIDs |
|
||||
| `policycoreutils` (`setfiles`) | `policycoreutils` | `policycoreutils` | Applying SELinux labels |
|
||||
| `rpm`/`dnf` (`yum`) | `rpm`, `dnf` | `rpm`, `dnf` | Installing packages into the rootfs |
|
||||
| `sed` | `sed` | `sed` | Parsing configuration and command output |
|
||||
| `tar` | `tar` | `tar` | Rootfs archive creation and extraction |
|
||||
| `zstd` | `zstd` | `zstd` | Rootfs compression |
|
||||
| `pseudo`, `pseudodb`, `pseudolog` | Build from source | Build from source | Rootfs ownership and metadata emulation |
|
||||
| `img2simg` | Build from source | Build from source | Optional sparse-image post-processing |
|
||||
|
||||
For CI environments that invoke the scripts directly, install the dependencies
|
||||
with Debian:
|
||||
|
||||
```shell
|
||||
sudo apt-get update
|
||||
sudo apt-get install --no-install-recommends \
|
||||
attr bash bsdextrautils coreutils curl dosfstools e2fsprogs fdisk findutils \
|
||||
grep make mtools policycoreutils qemu-user-static binfmt-support rsync rpm \
|
||||
sed tar unzip util-linux uuid-runtime zstd
|
||||
sudo update-binfmts --enable qemu-riscv64
|
||||
```
|
||||
|
||||
The corresponding Fedora setup is:
|
||||
|
||||
```shell
|
||||
sudo dnf install \
|
||||
attr bash coreutils curl dosfstools e2fsprogs findutils grep make mtools \
|
||||
policycoreutils qemu-user-static rsync rpm sed tar unzip util-linux zstd
|
||||
sudo systemctl enable --now systemd-binfmt
|
||||
```
|
||||
|
||||
`pseudo` and `img2simg` are built in the Dockerfile and are not standard
|
||||
runtime packages on Debian or Fedora. They must also be available in `PATH`
|
||||
when scripts are invoked directly.
|
||||
|
||||
The current Dockerfile does not need `bzip2`, `gzip`, `xz-utils`, `gdisk`, or
|
||||
`rsync`: the scripts use Zstandard only, partitioning is done by `sfdisk`, and
|
||||
recipe staging, downloading, and extraction happen on the host. `zlib1g`
|
||||
remains required by the custom `img2simg` binary.
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -52,7 +120,7 @@ Firstly, let it build a container image for later use:
|
||||
make container
|
||||
```
|
||||
|
||||
It will be tagged and managed by docker.
|
||||
It will be tagged and managed by the configured container runtime.
|
||||
|
||||
Listing all available targets:
|
||||
|
||||
@@ -78,16 +146,20 @@ Build all available BSP targets, parallelly:
|
||||
make -j$(nproc) all_bsp
|
||||
```
|
||||
|
||||
To invoke `build_rootfs.sh` and `build_bsp.sh` directly on the host instead of
|
||||
through a container, clear `CONTAINER_CMD`:
|
||||
For CI jobs that invoke `build_rootfs.sh` and `build_bsp.sh` directly instead
|
||||
of through a container, clear `CONTAINER_CMD`:
|
||||
|
||||
```shell
|
||||
make CONTAINER_CMD= openEuler-24.03-LTS-SP4-RVA23-base-OLK-generic
|
||||
```
|
||||
|
||||
Direct execution requires the tools used by the scripts, including `pseudo`,
|
||||
`yum` or `dnf`, filesystem utilities, and sufficient privileges for mounting
|
||||
filesystems. `make container` still builds the Docker image.
|
||||
Normal builds use the configured container runtime. Set `CONTAINER_CMD=podman`
|
||||
to use Podman instead of Docker:
|
||||
|
||||
```shell
|
||||
make CONTAINER_CMD=podman container
|
||||
make CONTAINER_CMD=podman openEuler-24.03-LTS-SP4-RVA23-base-OLK-generic
|
||||
```
|
||||
|
||||
> BSP target will be rebuilt each time even if no configuration is changed
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
DEVICE_NAME := OLK
|
||||
|
||||
$(foreach profile_dir,$(filter-out %.mk,$(wildcard $(CURRENT_DIR)*)),$(eval $(call add_device_profile,$(profile_dir))))
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
rm "${ROOTFS_DIR}/etc/yum.repos.d/bootstrap.repo"
|
||||
mv "${ROOTFS_DIR}/etc/yum.repos.d/openEuler.repo.disabled" "${ROOTFS_DIR}/etc/yum.repos.d/openEuler.repo"
|
||||
@@ -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
|
||||
pseudo setfiles -r "${ROOTFS_DIR}" -e "${ROOTFS_DIR}/boot" "${ROOTFS_DIR}/etc/selinux/targeted/contexts/files/file_contexts" "${ROOTFS_DIR}"
|
||||
pseudo setfattr -h -x security.selinux "${ROOTFS_DIR}/boot"
|
||||
@@ -0,0 +1 @@
|
||||
PROFILE_NAME := generic
|
||||
@@ -0,0 +1,4 @@
|
||||
RELEASE_NAME := 24.03-LTS-SP4-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
|
||||
|
||||
pseudo 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-SP4/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-SP4/everything/riscv64/rva23/$basearch/RPM-GPG-KEY-openEuler
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
true
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
true
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
mv "${ROOTFS_DIR}/etc/yum.repos.d/openEuler.repo" "${ROOTFS_DIR}/etc/yum.repos.d/openEuler.repo.disabled"
|
||||
@@ -0,0 +1,3 @@
|
||||
RECEIPE_NAME := ebs
|
||||
COMPRESSION := zstd
|
||||
EXTENDS := base
|
||||
@@ -0,0 +1,5 @@
|
||||
[everything]
|
||||
name=everything
|
||||
baseurl=https://repo.tarsier-infra.isrc.ac.cn/openEuler-RISC-V/ebs/24.03SP4-RVA23/ebs-upstream-everything/riscv64/
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
@@ -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 @@
|
||||
PROFILE_NAME := 4kn
|
||||
@@ -0,0 +1,3 @@
|
||||
DEVICE_NAME := ORK
|
||||
|
||||
$(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,3 @@
|
||||
dracut
|
||||
u-boot-menu-ng
|
||||
kernel-install-u-boot-menu-ng
|
||||
Executable
+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
|
||||
Executable
+6
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
mkdir -p ${ROOTFS_DIR}/etc/kernel
|
||||
cat << EOF > ${ROOTFS_DIR}/etc/kernel/install.conf
|
||||
layout=u-boot
|
||||
EOF
|
||||
Executable
+11
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
cat << EOF | tee "${ROOTFS_DIR}/etc/default/u-boot"
|
||||
U_BOOT_CONFIG_PATH='/boot/extlinux/extlinux.conf'
|
||||
U_BOOT_SEARCH_METHOD='bootdir'
|
||||
U_BOOT_TARGETS='default rescue'
|
||||
U_BOOT_ENTRY_KERNEL='/vmlinuz-\${KERNEL_VERSION}'
|
||||
U_BOOT_ENTRY_BOOT_ARGS='root=UUID=$($get_fs_uuid_by_mountpoint /) rootwait rw earlycon'
|
||||
U_BOOT_ENTRY_INITRD='/initramfs-\${KERNEL_VERSION}.img'
|
||||
U_BOOT_ENTRY_FDT_DIR='/dtb-\${KERNEL_VERSION}'
|
||||
EOF
|
||||
@@ -0,0 +1 @@
|
||||
linux
|
||||
@@ -0,0 +1 @@
|
||||
systemd-repart
|
||||
Executable
+15
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
mkdir -p "${ROOTFS_DIR}/usr/lib/repart.d"
|
||||
cat << EOF > "${ROOTFS_DIR}/usr/lib/repart.d/10-grow-root.conf"
|
||||
[Partition]
|
||||
Type=root
|
||||
GrowFileSystem=yes
|
||||
EOF
|
||||
|
||||
# Ensure only touch the disk on the firstboot
|
||||
mkdir -p "${ROOTFS_DIR}/etc/systemd/system/systemd-repart.service.d"
|
||||
cat > "${ROOTFS_DIR}/etc/systemd/system/systemd-repart.service.d/override.conf" << 'EOF'
|
||||
[Unit]
|
||||
ConditionFirstBoot=yes
|
||||
EOF
|
||||
@@ -0,0 +1 @@
|
||||
PROFILE_NAME := generic
|
||||
@@ -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 @@
|
||||
PROFILE_NAME := 4kn
|
||||
@@ -0,0 +1 @@
|
||||
../generic/repos.d
|
||||
@@ -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,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-ng
|
||||
kernel-install-u-boot-menu-ng
|
||||
Executable
+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
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
mkdir -p ${ROOTFS_DIR}/etc/kernel
|
||||
cat << EOF > ${ROOTFS_DIR}/etc/kernel/install.conf
|
||||
layout=u-boot
|
||||
EOF
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
cat << EOF | tee "${ROOTFS_DIR}/etc/default/u-boot"
|
||||
U_BOOT_CONFIG_PATH='/boot/extlinux/extlinux.conf'
|
||||
U_BOOT_SEARCH_METHOD='bootdir'
|
||||
U_BOOT_TARGETS='default rescue'
|
||||
U_BOOT_ENTRY_KERNEL='/vmlinuz-\${KERNEL_VERSION}'
|
||||
U_BOOT_ENTRY_BOOT_ARGS='root=UUID=$($get_fs_uuid_by_mountpoint /) rootwait rw earlycon=sbi console=tty0 console=ttyS0,115200'
|
||||
U_BOOT_ENTRY_INITRD='/initramfs-\${KERNEL_VERSION}.img'
|
||||
U_BOOT_ENTRY_FDT_DIR='/dtb-\${KERNEL_VERSION}'
|
||||
EOF
|
||||
@@ -0,0 +1 @@
|
||||
linux-spacemit-k3-vendor-6.18
|
||||
@@ -0,0 +1 @@
|
||||
../../../ork/generic/packages.d/90-growdisk
|
||||
@@ -0,0 +1 @@
|
||||
PROFILE_NAME := generic
|
||||
@@ -0,0 +1,6 @@
|
||||
[bsp_spacemit_k3]
|
||||
name=K3 BSP
|
||||
type=rpm-md
|
||||
baseurl=https://repo.build.openruyi.cn/openruyi:/bsp:/spacemit:/k3/rva23/
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
@@ -0,0 +1,4 @@
|
||||
RELEASE_NAME := Creek
|
||||
|
||||
$(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 @@
|
||||
openruyi-repos
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
rm "${ROOTFS_DIR}/etc/yum.repos.d/bootstrap.repo"
|
||||
@@ -0,0 +1,11 @@
|
||||
openruyi-minimal
|
||||
systemd-udev
|
||||
systemd
|
||||
NetworkManager
|
||||
systemd-timesyncd
|
||||
systemd-resolved
|
||||
openssh-server
|
||||
bash
|
||||
bash-completion
|
||||
|
||||
openruyi-systemd-default-preset
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
systemctl --root="${ROOTFS_DIR}" preset-all
|
||||
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
cat << EOF | chroot "${ROOTFS_DIR}" passwd root
|
||||
openruyi
|
||||
openruyi
|
||||
EOF
|
||||
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
echo openruyi >> "${ROOTFS_DIR}/etc/hostname"
|
||||
echo "127.0.0.1 openruyi" >> "${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,7 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# https://systemd.io/BUILDING_IMAGES/
|
||||
rm -f "${ROOTFS_DIR}/etc/machine-id"
|
||||
rm -f "${ROOTFS_DIR}/var/lib/systemd/random-seed"
|
||||
rm -f "${ROOTFS_DIR}/var/lib/systemd/credential.secret"
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
RECEIPE_NAME := base
|
||||
COMPRESSION := zstd
|
||||
@@ -0,0 +1,6 @@
|
||||
[openruyi]
|
||||
name=openruyi bootstrap
|
||||
type=rpm-md
|
||||
baseurl=https://boat.openruyi.cn/stable/rva23/
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
@@ -0,0 +1,4 @@
|
||||
DISTRO_NAME := openRuyi
|
||||
PACKAGE_MANAGER := yum
|
||||
|
||||
$(foreach rel_dir,$(filter-out %.mk,$(wildcard $(CURRENT_DIR)*)),$(eval $(call add_distro_release,$(rel_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=ext4
|
||||
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 @@
|
||||
dracut
|
||||
Executable
+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 ext4 defaults 0 2
|
||||
EOF
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
mkdir -p ${ROOTFS_DIR}/etc/kernel
|
||||
cat << EOF > ${ROOTFS_DIR}/etc/kernel/install.conf
|
||||
layout=bls
|
||||
EOF
|
||||
@@ -0,0 +1 @@
|
||||
linux
|
||||
@@ -0,0 +1 @@
|
||||
../../../../../creek/bsp/ork/generic/packages.d/90-growdisk
|
||||
@@ -0,0 +1 @@
|
||||
PROFILE_NAME := bls
|
||||
@@ -0,0 +1,6 @@
|
||||
[ubootmenu]
|
||||
name=temp
|
||||
type=rpm-md
|
||||
baseurl=https://repo.build.openruyi.cn/openruyi:/ports:/mycto:/hack/mycto/
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
@@ -0,0 +1,3 @@
|
||||
DEVICE_NAME := MYCTO
|
||||
|
||||
$(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=ext4
|
||||
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-ng
|
||||
kernel-install-u-boot-menu-ng
|
||||
+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 ext4 defaults 0 2
|
||||
EOF
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
mkdir -p ${ROOTFS_DIR}/etc/kernel
|
||||
cat << EOF > ${ROOTFS_DIR}/etc/kernel/install.conf
|
||||
layout=u-boot
|
||||
EOF
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
cat << EOF | tee "${ROOTFS_DIR}/etc/default/u-boot"
|
||||
U_BOOT_CONFIG_PATH='/boot/extlinux/extlinux.conf'
|
||||
U_BOOT_SEARCH_METHOD='bootdir'
|
||||
U_BOOT_TARGETS='default rescue'
|
||||
U_BOOT_ENTRY_KERNEL='/vmlinuz-\${KERNEL_VERSION}'
|
||||
U_BOOT_ENTRY_BOOT_ARGS='root=UUID=$($get_fs_uuid_by_mountpoint /) rootwait rw earlycon=sbi'
|
||||
U_BOOT_ENTRY_INITRD=''
|
||||
EOF
|
||||
@@ -0,0 +1 @@
|
||||
linux
|
||||
@@ -0,0 +1 @@
|
||||
../../../../../creek/bsp/ork/generic/packages.d/90-growdisk
|
||||
@@ -0,0 +1 @@
|
||||
PROFILE_NAME := extlinux
|
||||
@@ -0,0 +1,6 @@
|
||||
[ubootmenu]
|
||||
name=temp
|
||||
type=rpm-md
|
||||
baseurl=https://repo.build.openruyi.cn/openruyi:/ports:/mycto:/hack/mycto/
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
@@ -0,0 +1,4 @@
|
||||
RELEASE_NAME := Unstable-MYCTO
|
||||
|
||||
$(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 @@
|
||||
openruyi-repos
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
rm "${ROOTFS_DIR}/etc/yum.repos.d/bootstrap.repo"
|
||||
receipes/openruyi/unstable-mycto/userspace/base/packages.d/00-setup-repo/post.d/50-use-port/entry.sh
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
sed -i 's#https://repo.build.openruyi.cn/openruyi/rva20/#baseurl=https://repo.build.openruyi.cn/openruyi:/ports:/mycto/mycto/#' "${ROOTFS_DIR}/etc/yum.repos.d/openruyi.repo"
|
||||
@@ -0,0 +1 @@
|
||||
../../../../creek/userspace/base/packages.d/50-base
|
||||
@@ -0,0 +1 @@
|
||||
../../../creek/userspace/base/post.d
|
||||
@@ -0,0 +1,2 @@
|
||||
RECEIPE_NAME := base
|
||||
COMPRESSION := zstd
|
||||
@@ -0,0 +1,6 @@
|
||||
[openruyi]
|
||||
name=openruyi bootstrap
|
||||
type=rpm-md
|
||||
baseurl=https://repo.build.openruyi.cn/openruyi:/ports:/mycto/mycto/
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
@@ -0,0 +1 @@
|
||||
../../creek/bsp/ork
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user