Ai
1 Star 0 Fork 5

chenhao/CreateImage

forked from src-openEuler/CreateImage
关闭
 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0001-add-basic-riscv64-support.patch 3.70 KB
一键复制 编辑 原始数据 按行查看 历史
jchzhou 提交于 2024-05-27 15:54 +08:00 . add basic riscv64 support
From e6930abda5451362c3c7779af961d8521399b735 Mon Sep 17 00:00:00 2001
From: jchzhou <zhoujiacheng@iscas.ac.cn>
Date: Mon, 27 May 2024 15:47:32 +0800
Subject: [PATCH] add basic riscv64 support
---
bin/create-image | 5 +++++
hooks/finalise.d/50-bootloader | 29 +++++++++++++++++++++++++++++
hooks/root.d/01-create-root | 2 ++
3 files changed, 36 insertions(+)
diff --git a/bin/create-image b/bin/create-image
index 7ba30c0..b610dd8 100755
--- a/bin/create-image
+++ b/bin/create-image
@@ -157,6 +157,11 @@ elif [ $ARCH == "loongarch64" ]; then
/usr/sbin/parted system.img -- mkpart primary fat16 0% 5%
/usr/sbin/parted system.img -- mkpart primary ext4 5% 100%
+
+elif [ $ARCH == "riscv64" ]; then
+
+ /usr/sbin/parted system.img -- mkpart primary fat16 0% 5%
+ /usr/sbin/parted system.img -- mkpart primary ext4 5% 100%
fi
export DEVICE=`losetup -f`
diff --git a/hooks/finalise.d/50-bootloader b/hooks/finalise.d/50-bootloader
index b0f81f5..b24b6a4 100755
--- a/hooks/finalise.d/50-bootloader
+++ b/hooks/finalise.d/50-bootloader
@@ -100,6 +100,32 @@ function install_grub2_loongarch64 ()
sed -i "s#root=.*.img #${sed_str}#g" $GRUB_CFG
}
+function install_grub2_riscv64 ()
+{
+ cp -r /usr/lib/grub/riscv64-efi /boot/efi/EFI/openEuler/
+ eval "grub2-mkimage -d /usr/lib/grub/riscv64-efi -O riscv64-efi --output=/boot/efi/EFI/openEuler/grubriscv64.efi '--prefix=(,msdos1)/efi/EFI/openEuler' fat part_gpt part_msdos linux"
+
+ mkdir -p /boot/EFI/BOOT/
+ cp -f /boot/efi/EFI/openEuler/grubriscv64.efi /boot/EFI/BOOT/BOOTRISCV64.EFI
+
+ echo 'GRUB_TIMEOUT=5' >> /etc/default/grub
+ echo 'GRUB_DEFAULT=saved' >> /etc/default/grub
+ echo 'GRUB_DISABLE_SUBMENU=true' >> /etc/default/grub
+ echo 'GRUB_TERMINAL_OUTPUT="console"' >> /etc/default/grub
+ echo 'GRUB_CMDLINE_LINUX="console=ttyS0 highres=off earlycon no4lvl systemd.default_timeout_start_sec=600 rootfstype=ext4 nomodeset quiet net.ifnames=0 biosdevname=0 nmi_watchdog=1 rd.shell=0 selinux=0 crashkernel=256M reserve_kbox_mem=16M crash_kexec_post_notifiers panic=3 no-steal-time use-sched-idle-time"' >> /etc/default/grub
+ echo 'GRUB_DISABLE_RECOVERY="true"' >>/etc/default/grub
+
+ echo "cat <<EOF" >> /etc/grub.d/00_header
+ echo "set superusers=\"root\"" >> /etc/grub.d/00_header
+ echo "password_pbkdf2 root grub.pbkdf2.sha512.10000.5A45748D892672FDA02DD3B6F7AE390AC6E6D532A600D4AC477D25C7D087644697D8A0894DFED9D86DC2A27F4E01D925C46417A225FC099C12DBD3D7D49A7425.2BD2F5BF4907DCC389CC5D165DB85CC3E2C94C8F9A30B01DACAA9CD552B731BA1DD3B7CC2C765704D55B8CD962D2AEF19A753CBE9B8464E2B1EB39A3BB4EAB08" >> /etc/grub.d/00_header
+
+ echo "EOF" >> /etc/grub.d/00_header
+ GRUB_CFG=/boot/efi/EFI/openEuler/grub.cfg
+ grub2-mkconfig -o $GRUB_CFG
+ sed_str="root=UUID=${ROOT_FS_UUID} "
+ sed -i "s#root=.*.img #${sed_str}#g" $GRUB_CFG
+}
+
if [ -f /boot/grub2/device.map ]; then
cat << EOF | tee /boot/grub2/device.map > /dev/null
(hd0) /dev/xvda
@@ -119,3 +145,6 @@ if [ $ARCH == "loongarch64" ]; then
install_grub2_loongarch64
fi
+if [ $ARCH == "riscv64" ]; then
+ install_grub2_riscv64
+fi
diff --git a/hooks/root.d/01-create-root b/hooks/root.d/01-create-root
index 96a0cec..0a38a2e 100755
--- a/hooks/root.d/01-create-root
+++ b/hooks/root.d/01-create-root
@@ -104,6 +104,8 @@ elif [ $ARCH == "aarch64" ]; then
sudo -E chroot $TARGET_ROOT yum -y install grub2-efi-aa64-modules
elif [ $ARCH == "loongarch64" ]; then
sudo -E chroot $TARGET_ROOT yum -y install grub2-efi-loongarch64-modules
+elif [ $ARCH == "riscv64" ]; then
+ sudo -E chroot $TARGET_ROOT yum -y install grub2-efi-riscv64 grub2-efi-riscv64-modules
fi
sudo -E chroot $TARGET_ROOT yum -y install grub2-efi grub2-tools kernel
--
2.45.1
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/chenhchenh/CreateImage.git
git@gitee.com:chenhchenh/CreateImage.git
chenhchenh
CreateImage
CreateImage
master

搜索帮助