转换LFS仓库为普通仓库
This commit is contained in:
commit
aa2644e34d
36
README.en.md
Normal file
36
README.en.md
Normal file
@ -0,0 +1,36 @@
|
||||
# kuasar
|
||||
|
||||
#### Description
|
||||
Kuasar is an efficient container runtime that provides cloud-native, all-scenario container solutions by supporting multiple sandbox techniques.
|
||||
|
||||
#### Software Architecture
|
||||
Software architecture description
|
||||
|
||||
#### Installation
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
|
||||
#### Instructions
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
|
||||
#### Contribution
|
||||
|
||||
1. Fork the repository
|
||||
2. Create Feat_xxx branch
|
||||
3. Commit your code
|
||||
4. Create Pull Request
|
||||
|
||||
|
||||
#### Gitee Feature
|
||||
|
||||
1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
|
||||
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
|
||||
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
|
||||
4. The most valuable open source project [GVP](https://gitee.com/gvp)
|
||||
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
|
||||
6. The most popular members [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
||||
37
README.md
Normal file
37
README.md
Normal file
@ -0,0 +1,37 @@
|
||||
# kuasar
|
||||
|
||||
#### 介绍
|
||||
Kuasar is an efficient container runtime that provides cloud-native, all-scenario container solutions by supporting multiple sandbox techniques.
|
||||
|
||||
#### 软件架构
|
||||
软件架构说明
|
||||
|
||||
|
||||
#### 安装教程
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
|
||||
#### 使用说明
|
||||
|
||||
1. xxxx
|
||||
2. xxxx
|
||||
3. xxxx
|
||||
|
||||
#### 参与贡献
|
||||
|
||||
1. Fork 本仓库
|
||||
2. 新建 Feat_xxx 分支
|
||||
3. 提交代码
|
||||
4. 新建 Pull Request
|
||||
|
||||
|
||||
#### 特技
|
||||
|
||||
1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
|
||||
2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
|
||||
3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
|
||||
4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
|
||||
5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
|
||||
6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
|
||||
14
apply-patches
Executable file
14
apply-patches
Executable file
@ -0,0 +1,14 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
tar -xzvf kuasar-v1.0.0-vendor.tar.gz
|
||||
cp -rf ./kuasar-v1.0.0-vensor/* ./
|
||||
cat ./series.conf | while read line
|
||||
do
|
||||
if [[ $line == '' || $line =~ ^\s*# ]]; then
|
||||
continue
|
||||
fi
|
||||
echo "====patch $line======"
|
||||
patch -p1 -F1 -s < ./patch/$line
|
||||
done
|
||||
40
initrd/make-initrd-rpm.list
Executable file
40
initrd/make-initrd-rpm.list
Executable file
@ -0,0 +1,40 @@
|
||||
# nfs-utils
|
||||
nfs-utils
|
||||
# tcp_wrappers-libs
|
||||
tcp_wrappers-libs
|
||||
# rpcbind
|
||||
rpcbind
|
||||
# libverto-tevent
|
||||
libverto-tevent
|
||||
# libtirpc
|
||||
libtirpc
|
||||
# libtevent
|
||||
libtevent
|
||||
# libtalloc
|
||||
libtalloc
|
||||
# libref_array
|
||||
libref_array
|
||||
# libpath_utils
|
||||
libpath_utils
|
||||
# libnfsidmap
|
||||
libnfsidmap
|
||||
# libini_config
|
||||
libini_config
|
||||
# libevent
|
||||
libevent
|
||||
# libcom_err
|
||||
libcom_err
|
||||
# libcollection
|
||||
libcollection
|
||||
# libbasicobjects
|
||||
libbasicobjects
|
||||
# keyutils
|
||||
keyutils
|
||||
# gssproxy
|
||||
gssproxy
|
||||
# e2fsprogs-libs
|
||||
e2fsprogs-libs
|
||||
# runc
|
||||
runc
|
||||
# bash
|
||||
bash
|
||||
99
initrd/make_kuasar_initrd.sh
Executable file
99
initrd/make_kuasar_initrd.sh
Executable file
@ -0,0 +1,99 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright (c) Huawei Technologies Co., Ltd. 2023. All rights reserved.
|
||||
# kata_integration is licensed under the Mulan PSL v2.
|
||||
# You can use this software according to the terms and conditions of the Mulan PSL v2.
|
||||
# You may obtain a copy of Mulan PSL v2 at:
|
||||
# http://license.coscl.org.cn/MulanPSL2
|
||||
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
|
||||
# IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
|
||||
# PURPOSE.
|
||||
# See the Mulan PSL v2 for more details.
|
||||
# Description: make kuasar initrd
|
||||
|
||||
script_dir="$(dirname $(readlink -f $0))"
|
||||
rpmlist=${script_dir}/make-initrd-rpm.list
|
||||
|
||||
IMAGE_NAME=${IMAGE_NAME:-kuasar.initrd}
|
||||
ROOTFS_DIR=${ROOTFS_DIR:-/tmp/kuasar-rootfs}
|
||||
|
||||
# create a temp dir to store rootfs
|
||||
rm -rf ${ROOTFS_DIR}
|
||||
mkdir -p ${ROOTFS_DIR}/lib \
|
||||
${ROOTFS_DIR}/lib64 \
|
||||
${ROOTFS_DIR}/lib/modules
|
||||
|
||||
mkdir -m 0755 -p ${ROOTFS_DIR}/dev \
|
||||
${ROOTFS_DIR}/sys \
|
||||
${ROOTFS_DIR}/sbin \
|
||||
${ROOTFS_DIR}/bin \
|
||||
${ROOTFS_DIR}/tmp \
|
||||
${ROOTFS_DIR}/proc \
|
||||
${ROOTFS_DIR}/etc
|
||||
|
||||
if [ ! -f "${script_dir}/vmm-task" ];then
|
||||
echo "vmm-task doesn't exist!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
touch ${ROOTFS_DIR}/etc/resolv.conf
|
||||
|
||||
# busybox
|
||||
cp /sbin/busybox ${ROOTFS_DIR}/sbin/
|
||||
cp ${script_dir}/vmm-task ${ROOTFS_DIR}/init
|
||||
# glibc-devel glibc
|
||||
cp /lib64/libnss_dns* ${ROOTFS_DIR}/lib64
|
||||
cp /lib64/libnss_files* ${ROOTFS_DIR}/lib64
|
||||
|
||||
# cp run request files in initrd
|
||||
cat $rpmlist | while read rpm
|
||||
do
|
||||
if [ "${rpm:0:1}" != "#" ]; then
|
||||
rpm -ql $rpm > /dev/null 2>&1
|
||||
if [ $? -ne 0 ]; then
|
||||
continue
|
||||
fi
|
||||
array=($(rpm -ql $rpm| grep -v "share" | grep -v ".build-id"))
|
||||
echo array
|
||||
for file in ${array[@]};
|
||||
do
|
||||
source=$file
|
||||
dts_file=${ROOTFS_DIR}$file
|
||||
dts_folder=${dts_file%/*}
|
||||
if [ ! -d "$dts_folder" ];then
|
||||
mkdir -p $dts_folder
|
||||
fi
|
||||
cp -r -f -d $source $dts_folder
|
||||
done
|
||||
fi
|
||||
done
|
||||
|
||||
#create symlinks to busybox
|
||||
BUSYBOX_BINARIES=(/bin/sh /bin/mount /bin/umount /bin/ls /bin/ps /bin/file /bin/ldd /bin/tar /bin/hwclock /sbin/modprobe /sbin/depmod /bin/ip /bin/modinfo /bin/insmod /bin/rmmod)
|
||||
for bin in ${BUSYBOX_BINARIES[@]}
|
||||
do
|
||||
mkdir -p ${ROOTFS_DIR}/`dirname ${bin}`
|
||||
ln -sf /sbin/busybox ${ROOTFS_DIR}/${bin}
|
||||
done
|
||||
|
||||
LDD_BINARIES=(/init /sbin/busybox /usr/bin/bash /usr/bin/runc)
|
||||
for bin in ${LDD_BINARIES[@]}
|
||||
do
|
||||
ldd ${ROOTFS_DIR}${bin} | while read line
|
||||
do
|
||||
arr=(${line// / })
|
||||
|
||||
for lib in ${arr[@]}
|
||||
do
|
||||
echo $lib
|
||||
if [ "${lib:0:1}" = "/" ]; then
|
||||
dir=${ROOTFS_DIR}`dirname $lib`
|
||||
mkdir -p "${dir}"
|
||||
cp -f $lib $dir
|
||||
fi
|
||||
done
|
||||
done
|
||||
done
|
||||
|
||||
cp ${ROOTFS_DIR}/usr/bin/bash ${ROOTFS_DIR}/bin/bash
|
||||
(cd ${ROOTFS_DIR} && find . | cpio -H newc -o | gzip -9 ) > ${script_dir}/${IMAGE_NAME}
|
||||
2790
kernel-config/kuasar-openeuler-kernel-aarch64.config
Normal file
2790
kernel-config/kuasar-openeuler-kernel-aarch64.config
Normal file
File diff suppressed because it is too large
Load Diff
3047
kernel-config/kuasar-openeuler-kernel-x86_64.config
Normal file
3047
kernel-config/kuasar-openeuler-kernel-x86_64.config
Normal file
File diff suppressed because it is too large
Load Diff
BIN
kuasar-v1.0.0-vendor.tar.gz
Normal file
BIN
kuasar-v1.0.0-vendor.tar.gz
Normal file
Binary file not shown.
122
kuasar.spec
Normal file
122
kuasar.spec
Normal file
@ -0,0 +1,122 @@
|
||||
%global debug_package %{nil}
|
||||
|
||||
Name: kuasar
|
||||
Version: 1.0.0
|
||||
Release: 5
|
||||
Summary: Kuasar is an efficient container runtime that supports multiple sandbox techniques.
|
||||
License: Apache License 2.0
|
||||
URL: https://github.com/kuasar-io/kuasar
|
||||
Source0: kuasar-openeuler.tar.gz
|
||||
Source1: kernel.tar.gz
|
||||
BuildRequires: automake golang bc glibc-devel glibc-static busybox glib2-devel glib2 ipvsadm conntrack-tools nfs-utils bash gcc cmake gcc-c++
|
||||
BuildRequires: patch elfutils-libelf-devel openssl-devel bison flex rust cargo rust-packaging libgcc dtc-devel runc
|
||||
|
||||
%define _cargo /usr/bin/env CARGO_HOME=.cargo /usr/bin/cargo
|
||||
%define hypervisor qemu
|
||||
%define localbindir /usr/local/bin
|
||||
%define kuasarconfdir /var/lib/kuasar
|
||||
%define kuasarbuilddir %{_builddir}/kuasar-%{version}/kuasar-openeuler
|
||||
|
||||
%description
|
||||
Kuasar is an efficient container runtime that provides cloud-native, all-scenario container solutions by supporting multiple sandbox techniques.
|
||||
|
||||
%prep
|
||||
%setup -T -c -a 0 -n kuasar-%{version}
|
||||
%setup -T -c -a 1 -n kernel
|
||||
|
||||
cd %{kuasarbuilddir}
|
||||
sh -x apply-patches
|
||||
|
||||
cd %{_builddir}/kernel
|
||||
mv kernel linux
|
||||
cd %{_builddir}/kernel/linux
|
||||
%ifarch %{ix86} x86_64
|
||||
cp %{kuasarbuilddir}/kernel-config/kuasar-openeuler-kernel-x86_64.config ./.config
|
||||
%else
|
||||
cp %{kuasarbuilddir}/kernel-config/kuasar-openeuler-kernel-aarch64.config ./.config
|
||||
%endif
|
||||
|
||||
%build
|
||||
# build vmm-sandboxer and vmm-task
|
||||
cd %{kuasarbuilddir}
|
||||
sed -i '$a\[build\]\nrustflags = \["-Clink-arg=-s", "-Clink-arg=-Wl,-z,relro,-z,now"]' ./vmm/sandbox/.cargo/config.toml
|
||||
sed -i '$a\[build\]\nrustflags = \["-Clink-arg=-s", "-Clink-arg=-Wl,-z,relro,-z,now"]' ./vmm/task/.cargo/config.toml
|
||||
HYPERVISOR=%{hypervisor} make bin/vmm-sandboxer
|
||||
%ifarch %{ix86} x86_64
|
||||
ARCH=x86_64 HYPERVISOR=%{hypervisor} make bin/vmm-task
|
||||
%else
|
||||
ARCH=aarch64 HYPERVISOR=%{hypervisor} make bin/vmm-task
|
||||
%endif
|
||||
|
||||
# build initrd
|
||||
cp %{kuasarbuilddir}/bin/vmm-task ./initrd
|
||||
cd initrd && sh -x make_kuasar_initrd.sh
|
||||
|
||||
# build kernel
|
||||
cd %{_builddir}/kernel/linux/
|
||||
make olddefconfig
|
||||
make %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
mkdir -p -m 750 %{buildroot}/%{kuasarconfdir}
|
||||
%ifarch %{ix86} x86_64
|
||||
install -p -m 750 -D %{_builddir}/kernel/linux/arch/x86/boot/bzImage %{buildroot}/%{kuasarconfdir}/vmlinux.bin
|
||||
install -p -m 640 -D %{kuasarbuilddir}/vmm/sandbox/config_%{hypervisor}_x86_64.toml %{buildroot}/%{kuasarconfdir}/config.toml
|
||||
%else
|
||||
install -p -m 750 -D %{_builddir}/kernel/linux/arch/arm64/boot/Image %{buildroot}/%{kuasarconfdir}/vmlinux.bin
|
||||
install -p -m 640 -D %{kuasarbuilddir}/vmm/sandbox/config_%{hypervisor}_aarch64.toml %{buildroot}/%{kuasarconfdir}/config.toml
|
||||
%endif
|
||||
install -p -m 750 -D %{kuasarbuilddir}/initrd/kuasar.initrd %{buildroot}/%{kuasarconfdir}/kuasar.initrd
|
||||
|
||||
install -p -m 750 -D %{kuasarbuilddir}/bin/vmm-sandboxer %{buildroot}/%{localbindir}/vmm-sandboxer
|
||||
install -p -m 640 -D %{kuasarbuilddir}/vmm/service/kuasar-vmm.service %{buildroot}/%{_unitdir}/kuasar-vmm.service
|
||||
install -p -m 640 -D %{kuasarbuilddir}/vmm/service/kuasar-vmm %{buildroot}/etc/sysconfig/kuasar-vmm
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%config(noreplace) %{_unitdir}/kuasar-vmm.service
|
||||
%config(noreplace) /etc/sysconfig/kuasar-vmm
|
||||
%{localbindir}/vmm-sandboxer
|
||||
%{kuasarconfdir}/vmlinux.bin
|
||||
%{kuasarconfdir}/kuasar.initrd
|
||||
%config(noreplace) %{kuasarconfdir}/config.toml
|
||||
|
||||
%changelog
|
||||
* Mon Jan 6 liuxu <liuxu156@huawei.com> -1.0.0-5
|
||||
- logfix:print warn instead of error when dir not found.
|
||||
|
||||
* Fri Nov 29 liuxu <liuxu156@huawei.com> -1.0.0-4
|
||||
- fix:use ttrpc-rust in vendor
|
||||
|
||||
* Thu Nov 28 liuxu <liuxu156@huawei.com> -1.0.0-3
|
||||
- vmm:add ttrpc-rust to use vendor
|
||||
|
||||
* Mon Nov 4 liuxu <liuxu156@huawei.com> -1.0.0-2
|
||||
- vmm:adapt qemu
|
||||
|
||||
* Wed Oct 23 liuxu <liuxu156@huawei.com> -1.0.0-1
|
||||
- update to 1.0.0
|
||||
|
||||
* Tue Feb 6 jiangpengfei <jiangpengfei9@huawei.com> -0.1.0-6
|
||||
- update build_require from docker-runc to runc
|
||||
|
||||
* Mon Sep 19 Vanient <xidanni1@huawei.com> -0.1.0-5
|
||||
- set CONFIG_INITRAMFS_FILE_METADATA empty
|
||||
|
||||
* Mon Sep 4 flyflyflypeng <jiangpengfei9@huawei.com> -0.1.0-4
|
||||
- remove ExecReload field in the systemd service file
|
||||
|
||||
* Fri Sep 1 Vanient <xidanni1@huawei.com> -0.1.0-3
|
||||
- revert musl build -static-pie
|
||||
|
||||
* Tue Aug 29 Vanient <xiadanni1@huawei.com> - 0.1.0-2
|
||||
- optimize compile options
|
||||
|
||||
* Thu Aug 24 Vanient <xiadanni1@huawei.com> - 0.1.0-1
|
||||
- update to 0.1.0
|
||||
|
||||
* Tue Jul 18 2023 flyflyflypeng <jiangpengfei9@huawei.com> - 0.0.1-1
|
||||
- init package
|
||||
51
patch/0001-add-toml-to-use-vendor.patch
Normal file
51
patch/0001-add-toml-to-use-vendor.patch
Normal file
@ -0,0 +1,51 @@
|
||||
From 8ff987b291cbf284329777ddda89bdb9f118266b Mon Sep 17 00:00:00 2001
|
||||
From: Vanient <xiadanni1@huawei.com>
|
||||
Date: Thu, 24 Aug 2023 15:01:38 +0800
|
||||
Subject: [PATCH] add toml to use vendor
|
||||
|
||||
Signed-off-by: Vanient <xiadanni1@huawei.com>
|
||||
---
|
||||
vmm/sandbox/.cargo/config.toml | 14 ++++++++++++++
|
||||
vmm/task/.cargo/config.toml | 9 +++++++++
|
||||
2 files changed, 23 insertions(+)
|
||||
create mode 100644 vmm/sandbox/.cargo/config.toml
|
||||
create mode 100644 vmm/task/.cargo/config.toml
|
||||
|
||||
diff --git a/vmm/sandbox/.cargo/config.toml b/vmm/sandbox/.cargo/config.toml
|
||||
new file mode 100644
|
||||
index 00000000..148c98af
|
||||
--- /dev/null
|
||||
+++ b/vmm/sandbox/.cargo/config.toml
|
||||
@@ -0,0 +1,14 @@
|
||||
+[source.crates-io]
|
||||
+replace-with = "vendored-sources"
|
||||
+
|
||||
+[source."git+https://github.com/cloud-hypervisor/cloud-hypervisor.git"]
|
||||
+git = "https://github.com/cloud-hypervisor/cloud-hypervisor.git"
|
||||
+replace-with = "vendored-sources"
|
||||
+
|
||||
+[source."git+https://github.com/kuasar-io/rust-extensions.git"]
|
||||
+git = "https://github.com/kuasar-io/rust-extensions.git"
|
||||
+replace-with = "vendored-sources"
|
||||
+
|
||||
+[source.vendored-sources]
|
||||
+directory = "vendor"
|
||||
+
|
||||
diff --git a/vmm/task/.cargo/config.toml b/vmm/task/.cargo/config.toml
|
||||
new file mode 100644
|
||||
index 00000000..c7f73e86
|
||||
--- /dev/null
|
||||
+++ b/vmm/task/.cargo/config.toml
|
||||
@@ -0,0 +1,9 @@
|
||||
+[source.crates-io]
|
||||
+replace-with = "vendored-sources"
|
||||
+
|
||||
+[source."git+https://github.com/kuasar-io/rust-extensions.git"]
|
||||
+git = "https://github.com/kuasar-io/rust-extensions.git"
|
||||
+replace-with = "vendored-sources"
|
||||
+
|
||||
+[source.vendored-sources]
|
||||
+directory = "vendor"
|
||||
--
|
||||
2.27.0
|
||||
|
||||
25
patch/0002-remove-ExecReload-field-in-the-service-file.patch
Normal file
25
patch/0002-remove-ExecReload-field-in-the-service-file.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From c177b346550b8b0899bc4e701b3f3bb4e8d0fb73 Mon Sep 17 00:00:00 2001
|
||||
From: flyflyflypeng <jiangpengfei9@huawei.com>
|
||||
Date: Mon, 4 Sep 2023 10:33:07 +0800
|
||||
Subject: [PATCH] [kuasar]: remove ExecReload field in the service file
|
||||
|
||||
Signed-off-by: flyflyflypeng <jiangpengfei9@huawei.com>
|
||||
---
|
||||
vmm/service/kuasar-vmm.service | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/vmm/service/kuasar-vmm.service b/vmm/service/kuasar-vmm.service
|
||||
index 7be315f..e99b6c9 100644
|
||||
--- a/vmm/service/kuasar-vmm.service
|
||||
+++ b/vmm/service/kuasar-vmm.service
|
||||
@@ -6,7 +6,6 @@ After=network.target
|
||||
Type=simple
|
||||
EnvironmentFile=-/etc/sysconfig/kuasar-vmm
|
||||
ExecStart=/usr/local/bin/vmm-sandboxer $OPTIONS
|
||||
-ExecReload=/bin/kill -s HUP $MAINPID
|
||||
LimitNOFILE=1048576
|
||||
LimitNPROC=infinity
|
||||
LimitCORE=infinity
|
||||
--
|
||||
2.33.0
|
||||
|
||||
26
patch/0003-set-CONFIG_INITRAMFS_FILE_METADATA-empty.patch
Normal file
26
patch/0003-set-CONFIG_INITRAMFS_FILE_METADATA-empty.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 95072e53f6c196651ec1e1a642354ec7e9907a27 Mon Sep 17 00:00:00 2001
|
||||
From: Vanient <xiadanni1@huawei.com>
|
||||
Date: Tue, 19 Sep 2023 21:16:28 +0800
|
||||
Subject: [PATCH] set CONFIG_INITRAMFS_FILE_METADATA empty
|
||||
|
||||
Signed-off-by: Vanient <xiadanni1@huawei.com>
|
||||
---
|
||||
.../kernel/stratovirt/kuasar-openeuler-kernel-aarch64.config | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/vmm/scripts/kernel/stratovirt/kuasar-openeuler-kernel-aarch64.config b/vmm/scripts/kernel/stratovirt/kuasar-openeuler-kernel-aarch64.config
|
||||
index cf2a58e7..28cd508f 100644
|
||||
--- a/vmm/scripts/kernel/stratovirt/kuasar-openeuler-kernel-aarch64.config
|
||||
+++ b/vmm/scripts/kernel/stratovirt/kuasar-openeuler-kernel-aarch64.config
|
||||
@@ -186,7 +186,7 @@ CONFIG_RD_GZIP=y
|
||||
# CONFIG_RD_LZO is not set
|
||||
# CONFIG_RD_LZ4 is not set
|
||||
CONFIG_RD_ZSTD=y
|
||||
-CONFIG_INITRAMFS_FILE_METADATA="n"
|
||||
+CONFIG_INITRAMFS_FILE_METADATA=""
|
||||
# CONFIG_BOOT_CONFIG is not set
|
||||
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
|
||||
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
|
||||
--
|
||||
2.27.0
|
||||
|
||||
75
patch/0004-vmm-qemu-support-aarch64.patch
Normal file
75
patch/0004-vmm-qemu-support-aarch64.patch
Normal file
@ -0,0 +1,75 @@
|
||||
From 7f52dd3960ad30db7ac8f0eff3aa0f691c6dff38 Mon Sep 17 00:00:00 2001
|
||||
From: liuxu <liuxu156@huawei.com>
|
||||
Date: Wed, 23 Oct 2024 16:47:26 +0800
|
||||
Subject: [PATCH] vmm:qemu support aarch64
|
||||
|
||||
Signed-off-by: liuxu <liuxu156@huawei.com>
|
||||
---
|
||||
vmm/sandbox/src/qemu/config.rs | 21 ++++++++-------------
|
||||
1 file changed, 8 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/vmm/sandbox/src/qemu/config.rs b/vmm/sandbox/src/qemu/config.rs
|
||||
index ce2df24..bf3c986 100644
|
||||
--- a/vmm/sandbox/src/qemu/config.rs
|
||||
+++ b/vmm/sandbox/src/qemu/config.rs
|
||||
@@ -21,7 +21,6 @@ use std::{
|
||||
};
|
||||
|
||||
use containerd_sandbox::error::{Error, Result};
|
||||
-#[cfg(target_arch = "x86_64")]
|
||||
use lazy_static::lazy_static;
|
||||
use sandbox_derive::{CmdLineParamSet, CmdLineParams};
|
||||
use serde::{Deserialize, Serialize};
|
||||
@@ -40,22 +39,23 @@ const DEFAULT_QEMU_PATH: &str = "/usr/bin/qemu-system-x86_64";
|
||||
#[cfg(target_arch = "aarch64")]
|
||||
const DEFAULT_QEMU_PATH: &str = "/usr/bin/qemu-system-aarch64";
|
||||
|
||||
-#[cfg(target_arch = "x86_64")]
|
||||
lazy_static! {
|
||||
static ref SUPPORTED_MACHINES: HashMap<String, Machine> = {
|
||||
let mut sms = HashMap::new();
|
||||
+ #[cfg(target_arch = "x86_64")]
|
||||
sms.insert(
|
||||
- "microvm-pci".to_string(),
|
||||
+ "pc".to_string(),
|
||||
Machine {
|
||||
- r#type: "microvm-pci".to_string(),
|
||||
- options: None,
|
||||
+ r#type: "pc".to_string(),
|
||||
+ options: Some("accel=kvm,kernel_irqchip=on".to_string()),
|
||||
},
|
||||
);
|
||||
+ #[cfg(target_arch = "aarch64")]
|
||||
sms.insert(
|
||||
- "pc".to_string(),
|
||||
+ "virt".to_string(),
|
||||
Machine {
|
||||
- r#type: "pc".to_string(),
|
||||
- options: Some("accel=kvm,kernel_irqchip=on".to_string()),
|
||||
+ r#type: "virt".to_string(),
|
||||
+ options: Some("usb=off,accel=kvm,gic-version=3".to_string()),
|
||||
},
|
||||
);
|
||||
sms
|
||||
@@ -155,7 +155,6 @@ impl QemuVMConfig {
|
||||
} else {
|
||||
return Err(Error::InvalidArgument("cpu model".to_string()));
|
||||
}
|
||||
- #[cfg(target_arch = "x86_64")]
|
||||
if let Some(machine) = SUPPORTED_MACHINES.get(&self.machine_type) {
|
||||
result.machine = machine.clone();
|
||||
} else {
|
||||
@@ -163,10 +162,6 @@ impl QemuVMConfig {
|
||||
"machine_type not supported!".to_string(),
|
||||
));
|
||||
}
|
||||
- #[cfg(not(target_arch = "x86_64"))]
|
||||
- return Err(Error::Unimplemented(
|
||||
- "cpu other than x86 not supported".to_string(),
|
||||
- ));
|
||||
if !self.firmware_path.is_empty() {
|
||||
result.bios = Some(self.firmware_path.to_string());
|
||||
}
|
||||
--
|
||||
2.43.0
|
||||
|
||||
217
patch/0005-vmm-qemu-support-config_qemu.toml.patch
Normal file
217
patch/0005-vmm-qemu-support-config_qemu.toml.patch
Normal file
@ -0,0 +1,217 @@
|
||||
From 753b9dc20b825a08ecad8d7e00da451153354f00 Mon Sep 17 00:00:00 2001
|
||||
From: liuxu <liuxu156@huawei.com>
|
||||
Date: Fri, 25 Oct 2024 17:25:19 +0800
|
||||
Subject: [PATCH] vmm:qemu support config_qemu.toml
|
||||
|
||||
Signed-off-by: liuxu <liuxu156@huawei.com>
|
||||
---
|
||||
Makefile | 18 +++++++------
|
||||
vmm/sandbox/config_qemu_aarch64.toml | 38 ++++++++++++++++++++++++++++
|
||||
vmm/sandbox/config_qemu_x86_64.toml | 38 ++++++++++++++++++++++++++++
|
||||
vmm/sandbox/src/args.rs | 6 ++---
|
||||
vmm/sandbox/src/bin/qemu/main.rs | 8 +++---
|
||||
vmm/sandbox/src/qemu/config.rs | 1 +
|
||||
6 files changed, 95 insertions(+), 14 deletions(-)
|
||||
create mode 100644 vmm/sandbox/config_qemu_aarch64.toml
|
||||
create mode 100644 vmm/sandbox/config_qemu_x86_64.toml
|
||||
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 60b3273..a6fff58 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -52,10 +52,11 @@ wasm: bin/wasm-sandboxer
|
||||
quark: bin/quark-sandboxer
|
||||
runc: bin/runc-sandboxer
|
||||
|
||||
-ifeq ($(HYPERVISOR), stratovirt)
|
||||
-vmm: bin/vmm-sandboxer bin/kuasar.initrd bin/vmlinux.bin
|
||||
-else
|
||||
+ifeq ($(HYPERVISOR), cloud_hypervisor)
|
||||
vmm: bin/vmm-sandboxer bin/kuasar.img bin/vmlinux.bin
|
||||
+else
|
||||
+# stratovirt or qemu
|
||||
+vmm: bin/vmm-sandboxer bin/kuasar.initrd bin/vmlinux.bin
|
||||
endif
|
||||
|
||||
clean:
|
||||
@@ -76,12 +77,13 @@ install-vmm:
|
||||
@install -d -m 750 ${DEST_DIR}${SYSTEMD_CONF_DIR}
|
||||
@install -p -m 640 vmm/service/kuasar-vmm ${DEST_DIR}${SYSTEMD_CONF_DIR}/kuasar-vmm
|
||||
|
||||
-ifeq ($(HYPERVISOR), stratovirt)
|
||||
- @install -p -m 640 bin/kuasar.initrd ${DEST_DIR}${INSTALL_DIR}/kuasar.initrd
|
||||
- @install -p -m 640 vmm/sandbox/config_stratovirt_${ARCH}.toml ${DEST_DIR}${INSTALL_DIR}/config_stratovirt.toml
|
||||
-else
|
||||
+ifeq ($(HYPERVISOR), cloud_hypervisor)
|
||||
@install -p -m 640 bin/kuasar.img ${DEST_DIR}${INSTALL_DIR}/kuasar.img
|
||||
- @install -p -m 640 vmm/sandbox/config_clh.toml ${DEST_DIR}${INSTALL_DIR}/config_clh.toml
|
||||
+ @install -p -m 640 vmm/sandbox/config_clh.toml ${DEST_DIR}${INSTALL_DIR}/config.toml
|
||||
+else
|
||||
+# stratovirt or qemu
|
||||
+ @install -p -m 640 bin/kuasar.initrd ${DEST_DIR}${INSTALL_DIR}/kuasar.initrd
|
||||
+ @install -p -m 640 vmm/sandbox/config_${HYPERVISOR}_${ARCH}.toml ${DEST_DIR}${INSTALL_DIR}/config.toml
|
||||
endif
|
||||
|
||||
install-wasm:
|
||||
diff --git a/vmm/sandbox/config_qemu_aarch64.toml b/vmm/sandbox/config_qemu_aarch64.toml
|
||||
new file mode 100644
|
||||
index 0000000..c4608e0
|
||||
--- /dev/null
|
||||
+++ b/vmm/sandbox/config_qemu_aarch64.toml
|
||||
@@ -0,0 +1,38 @@
|
||||
+[sandbox]
|
||||
+log_level = "info"
|
||||
+
|
||||
+[hypervisor]
|
||||
+memory_in_mb = 2048
|
||||
+vcpus = 1
|
||||
+kernel_params = "task.log_level=debug task.sharefs_type=9p tsc=reliable rcupdate.rcu_expedited=1 i8042.direct=1 i8042.dumbkbd=1 i8042.nopnp=1 i8042.noaux=1 noreplace-smp= reboot=k console=hvc0 console=hvc1 iommu=off cryptomgr.notests= net.ifnames=0 pci=lastbus=0"
|
||||
+kernel_path = "/var/lib/kuasar/vmlinux.bin"
|
||||
+initrd_path = "/var/lib/kuasar/kuasar.initrd"
|
||||
+machine_accelerators = ""
|
||||
+firmware_path = ""
|
||||
+cpu_features = "pmu=off"
|
||||
+cpu_model = "host"
|
||||
+qemu_path = "/usr/bin/qemu-system-aarch64"
|
||||
+machine_type = "virt"
|
||||
+default_bridges = 1
|
||||
+default_max_vcpus = 0
|
||||
+entropy_source = "/dev/urandom"
|
||||
+mem_slots = 1
|
||||
+mem_offset = 0
|
||||
+memory_path = ""
|
||||
+file_backend_mem_path = ""
|
||||
+mem_prealloc = false
|
||||
+hugepages = false
|
||||
+enable_vhost_user_store = false
|
||||
+enable_swap = false
|
||||
+virtiofs_daemon_path = "/usr/libexec/virtiofsd"
|
||||
+virtiofs_cache = "auto"
|
||||
+virtiofs_extra_args = ["--thread-pool-size=1", "--announce-submounts"]
|
||||
+virtiofs_cache_size = 0
|
||||
+msize_9p = 8192
|
||||
+virtio_9p_direct_io = false
|
||||
+virtio_9p_multidevs = ""
|
||||
+enable_iothreads = false
|
||||
+block_device_driver = "VirtioScsi"
|
||||
+disable_nvdimm = true
|
||||
+share_fs = "Virtio9P"
|
||||
+use_vsock = true
|
||||
diff --git a/vmm/sandbox/config_qemu_x86_64.toml b/vmm/sandbox/config_qemu_x86_64.toml
|
||||
new file mode 100644
|
||||
index 0000000..340f694
|
||||
--- /dev/null
|
||||
+++ b/vmm/sandbox/config_qemu_x86_64.toml
|
||||
@@ -0,0 +1,38 @@
|
||||
+[sandbox]
|
||||
+log_level = "info"
|
||||
+
|
||||
+[hypervisor]
|
||||
+memory_in_mb = 2048
|
||||
+vcpus = 1
|
||||
+kernel_params = "task.log_level=debug task.sharefs_type=9p tsc=reliable rcupdate.rcu_expedited=1 i8042.direct=1 i8042.dumbkbd=1 i8042.nopnp=1 i8042.noaux=1 noreplace-smp= reboot=k console=hvc0 console=hvc1 iommu=off cryptomgr.notests= net.ifnames=0 pci=lastbus=0"
|
||||
+kernel_path = "/var/lib/kuasar/vmlinux.bin"
|
||||
+initrd_path = "/var/lib/kuasar/kuasar.initrd"
|
||||
+machine_accelerators = ""
|
||||
+firmware_path = ""
|
||||
+cpu_features = ""
|
||||
+cpu_model = "host"
|
||||
+qemu_path = "/usr/bin/qemu-system-x86_64"
|
||||
+machine_type = "pc"
|
||||
+default_bridges = 1
|
||||
+default_max_vcpus = 0
|
||||
+entropy_source = "/dev/urandom"
|
||||
+mem_slots = 1
|
||||
+mem_offset = 0
|
||||
+memory_path = ""
|
||||
+file_backend_mem_path = ""
|
||||
+mem_prealloc = false
|
||||
+hugepages = false
|
||||
+enable_vhost_user_store = false
|
||||
+enable_swap = false
|
||||
+virtiofs_daemon_path = "/usr/bin/virtiofsd"
|
||||
+virtiofs_cache = "always"
|
||||
+virtiofs_extra_args = []
|
||||
+virtiofs_cache_size = 1024
|
||||
+msize_9p = 8192
|
||||
+virtio_9p_direct_io = false
|
||||
+virtio_9p_multidevs = ""
|
||||
+enable_iothreads = false
|
||||
+block_device_driver = "VirtioBlk"
|
||||
+disable_nvdimm = true
|
||||
+share_fs = "Virtio9P"
|
||||
+use_vsock = true
|
||||
diff --git a/vmm/sandbox/src/args.rs b/vmm/sandbox/src/args.rs
|
||||
index 72e74d3..d6262dc 100644
|
||||
--- a/vmm/sandbox/src/args.rs
|
||||
+++ b/vmm/sandbox/src/args.rs
|
||||
@@ -22,12 +22,12 @@ pub struct Args {
|
||||
#[arg(short, long)]
|
||||
pub version: bool,
|
||||
|
||||
- /// Config file path, only for cloud hypervisor and stratovirt, default is `/var/lib/kuasar/config_clh.toml`
|
||||
+ /// Config file path, for cloud hypervisor, qemu and stratovirt, default is `/var/lib/kuasar/config.toml`
|
||||
#[arg(
|
||||
short,
|
||||
long,
|
||||
value_name = "FILE",
|
||||
- default_value = "/var/lib/kuasar/config_clh.toml"
|
||||
+ default_value = "/var/lib/kuasar/config.toml"
|
||||
)]
|
||||
pub config: String,
|
||||
|
||||
@@ -61,7 +61,7 @@ mod tests {
|
||||
fn test_args_parse_default() {
|
||||
let args = Args::parse();
|
||||
assert!(!args.version);
|
||||
- assert_eq!(args.config, "/var/lib/kuasar/config_clh.toml");
|
||||
+ assert_eq!(args.config, "/var/lib/kuasar/config.toml");
|
||||
assert_eq!(args.dir, "/run/kuasar-vmm");
|
||||
assert_eq!(args.listen, "/run/vmm-sandboxer.sock");
|
||||
assert!(args.log_level.is_none());
|
||||
diff --git a/vmm/sandbox/src/bin/qemu/main.rs b/vmm/sandbox/src/bin/qemu/main.rs
|
||||
index 4d76f9e..8edb32a 100644
|
||||
--- a/vmm/sandbox/src/bin/qemu/main.rs
|
||||
+++ b/vmm/sandbox/src/bin/qemu/main.rs
|
||||
@@ -34,8 +34,7 @@ async fn main() {
|
||||
}
|
||||
|
||||
// For compatibility with kata config
|
||||
- let config_path = std::env::var("KATA_CONFIG_PATH")
|
||||
- .unwrap_or_else(|_| "/usr/share/defaults/kata-containers/configuration.toml".to_string());
|
||||
+ let config_path = std::env::var("KATA_CONFIG_PATH").unwrap_or_default();
|
||||
let path = std::path::Path::new(&config_path);
|
||||
|
||||
let config = if path.exists() {
|
||||
@@ -54,12 +53,15 @@ async fn main() {
|
||||
// Initialize log
|
||||
init_logger(&config.sandbox.log_level());
|
||||
|
||||
- let sandboxer: KuasarSandboxer<QemuVMFactory, QemuHooks> = KuasarSandboxer::new(
|
||||
+ let mut sandboxer: KuasarSandboxer<QemuVMFactory, QemuHooks> = KuasarSandboxer::new(
|
||||
config.sandbox,
|
||||
config.hypervisor.clone(),
|
||||
QemuHooks::new(config.hypervisor),
|
||||
);
|
||||
|
||||
+ // Do recovery job
|
||||
+ sandboxer.recover(&args.dir).await;
|
||||
+
|
||||
// Run the sandboxer
|
||||
containerd_sandbox::run(
|
||||
"kuasar-vmm-sandboxer-qemu",
|
||||
diff --git a/vmm/sandbox/src/qemu/config.rs b/vmm/sandbox/src/qemu/config.rs
|
||||
index bf3c986..408a39b 100644
|
||||
--- a/vmm/sandbox/src/qemu/config.rs
|
||||
+++ b/vmm/sandbox/src/qemu/config.rs
|
||||
@@ -64,6 +64,7 @@ lazy_static! {
|
||||
|
||||
#[derive(Clone, Debug, Deserialize)]
|
||||
pub struct QemuVMConfig {
|
||||
+ #[serde(flatten)]
|
||||
pub common: HypervisorCommonConfig,
|
||||
pub machine_accelerators: String,
|
||||
pub firmware_path: String,
|
||||
--
|
||||
2.43.0
|
||||
|
||||
43
patch/0006-add-ttrpc-rust-to-use-vendor.patch
Normal file
43
patch/0006-add-ttrpc-rust-to-use-vendor.patch
Normal file
@ -0,0 +1,43 @@
|
||||
From 726d90c0e9487273f556a1422a37f6b65e75b2d8 Mon Sep 17 00:00:00 2001
|
||||
From: liuxu <liuxu156@huawei.com>
|
||||
Date: Thu, 28 Nov 2024 21:24:11 +0800
|
||||
Subject: [PATCH] add ttrpc-rust to use vendor
|
||||
|
||||
Signed-off-by: liuxu <liuxu156@huawei.com>
|
||||
---
|
||||
vmm/sandbox/.cargo/config.toml | 4 ++++
|
||||
vmm/task/.cargo/config.toml | 4 ++++
|
||||
2 files changed, 8 insertions(+)
|
||||
|
||||
diff --git a/vmm/sandbox/.cargo/config.toml b/vmm/sandbox/.cargo/config.toml
|
||||
index 148c98af..0740e49a 100644
|
||||
--- a/vmm/sandbox/.cargo/config.toml
|
||||
+++ b/vmm/sandbox/.cargo/config.toml
|
||||
@@ -9,6 +9,10 @@ replace-with = "vendored-sources"
|
||||
git = "https://github.com/kuasar-io/rust-extensions.git"
|
||||
replace-with = "vendored-sources"
|
||||
|
||||
+[source."git+https://github.com/kuasar-io/ttrpc-rust.git"]
|
||||
+git = "https://github.com/kuasar-io/ttrpc-rust.git"
|
||||
+replace-with = "vendored-sources"
|
||||
+
|
||||
[source.vendored-sources]
|
||||
directory = "vendor"
|
||||
|
||||
diff --git a/vmm/task/.cargo/config.toml b/vmm/task/.cargo/config.toml
|
||||
index c7f73e86..906faaac 100644
|
||||
--- a/vmm/task/.cargo/config.toml
|
||||
+++ b/vmm/task/.cargo/config.toml
|
||||
@@ -5,5 +5,9 @@ replace-with = "vendored-sources"
|
||||
git = "https://github.com/kuasar-io/rust-extensions.git"
|
||||
replace-with = "vendored-sources"
|
||||
|
||||
+[source."git+https://github.com/kuasar-io/ttrpc-rust.git"]
|
||||
+git = "https://github.com/kuasar-io/ttrpc-rust.git"
|
||||
+replace-with = "vendored-sources"
|
||||
+
|
||||
[source.vendored-sources]
|
||||
directory = "vendor"
|
||||
--
|
||||
2.43.0
|
||||
|
||||
38
patch/0007-fix-use-ttrpc-rust-in-vendor.patch
Normal file
38
patch/0007-fix-use-ttrpc-rust-in-vendor.patch
Normal file
@ -0,0 +1,38 @@
|
||||
From 0c30ae1530c030aace0970cf7cfd8e636e9917d7 Mon Sep 17 00:00:00 2001
|
||||
From: liuxu <liuxu156@huawei.com>
|
||||
Date: Fri, 29 Nov 2024 16:27:40 +0800
|
||||
Subject: [PATCH] fix:use ttrpc-rust in vendor
|
||||
|
||||
Signed-off-by: liuxu <liuxu156@huawei.com>
|
||||
---
|
||||
vmm/sandbox/.cargo/config.toml | 1 +
|
||||
vmm/task/.cargo/config.toml | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/vmm/sandbox/.cargo/config.toml b/vmm/sandbox/.cargo/config.toml
|
||||
index 0740e49a..ecf54e19 100644
|
||||
--- a/vmm/sandbox/.cargo/config.toml
|
||||
+++ b/vmm/sandbox/.cargo/config.toml
|
||||
@@ -11,6 +11,7 @@ replace-with = "vendored-sources"
|
||||
|
||||
[source."git+https://github.com/kuasar-io/ttrpc-rust.git"]
|
||||
git = "https://github.com/kuasar-io/ttrpc-rust.git"
|
||||
+branch = "v0.7.1-kuasar"
|
||||
replace-with = "vendored-sources"
|
||||
|
||||
[source.vendored-sources]
|
||||
diff --git a/vmm/task/.cargo/config.toml b/vmm/task/.cargo/config.toml
|
||||
index 906faaac..cea47423 100644
|
||||
--- a/vmm/task/.cargo/config.toml
|
||||
+++ b/vmm/task/.cargo/config.toml
|
||||
@@ -7,6 +7,7 @@ replace-with = "vendored-sources"
|
||||
|
||||
[source."git+https://github.com/kuasar-io/ttrpc-rust.git"]
|
||||
git = "https://github.com/kuasar-io/ttrpc-rust.git"
|
||||
+branch = "v0.7.1-kuasar"
|
||||
replace-with = "vendored-sources"
|
||||
|
||||
[source.vendored-sources]
|
||||
--
|
||||
2.43.0
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
From 70b4d5f2fae117b3ced3ce76d25ef61bb453be1d Mon Sep 17 00:00:00 2001
|
||||
From: liuxu <liuxu156@huawei.com>
|
||||
Date: Tue, 17 Dec 2024 11:11:12 +0800
|
||||
Subject: [PATCH] logfix:print warn instead of error when dir not found.
|
||||
|
||||
Signed-off-by: liuxu <liuxu156@huawei.com>
|
||||
---
|
||||
vmm/sandbox/src/sandbox.rs | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/vmm/sandbox/src/sandbox.rs b/vmm/sandbox/src/sandbox.rs
|
||||
index 42875a8..dd724c9 100644
|
||||
--- a/vmm/sandbox/src/sandbox.rs
|
||||
+++ b/vmm/sandbox/src/sandbox.rs
|
||||
@@ -90,8 +90,13 @@ where
|
||||
let mut subs = match tokio::fs::read_dir(dir).await {
|
||||
Ok(subs) => subs,
|
||||
Err(e) => {
|
||||
- error!("FATAL! read working dir {} for recovery: {}", dir, e);
|
||||
- return;
|
||||
+ if e.kind() == ErrorKind::NotFound {
|
||||
+ warn!("WARN! read working dir {} for recovery: {}", dir, e);
|
||||
+ return;
|
||||
+ } else {
|
||||
+ error!("FATAL! read working dir {} for recovery: {}", dir, e);
|
||||
+ return;
|
||||
+ }
|
||||
}
|
||||
};
|
||||
while let Some(entry) = subs.next_entry().await.unwrap() {
|
||||
--
|
||||
2.34.1
|
||||
|
||||
8
series.conf
Normal file
8
series.conf
Normal file
@ -0,0 +1,8 @@
|
||||
0001-add-toml-to-use-vendor.patch
|
||||
0002-remove-ExecReload-field-in-the-service-file.patch
|
||||
0003-set-CONFIG_INITRAMFS_FILE_METADATA-empty.patch
|
||||
0004-vmm-qemu-support-aarch64.patch
|
||||
0005-vmm-qemu-support-config_qemu.toml.patch
|
||||
0006-add-ttrpc-rust-to-use-vendor.patch
|
||||
0007-fix-use-ttrpc-rust-in-vendor.patch
|
||||
0008-logfix-print-warn-instead-of-error-when-dir-not-foun.patch
|
||||
Loading…
x
Reference in New Issue
Block a user