Skip to content

Commit d4981c8

Browse files
committed
Use new parition for nvme rootfs
Signed-off-by: Bo Yu <[email protected]>
1 parent 24bd233 commit d4981c8

File tree

4 files changed

+27
-15
lines changed

4 files changed

+27
-15
lines changed

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,4 @@ jobs:
3636
with:
3737
files: |
3838
image/nvme-rootfs*.img.xz
39-
image/sd-uboot*.img
39+
image/sd-uboot*.img.*

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ RUN --mount=type=cache,sharing=shared,target=/var/cache \
2323
systemd-container texinfo zlib1g-dev wget \
2424
&& update-binfmts --enable qemu-riscv64 \
2525
&& mmdebstrap --architectures=riscv64 \
26-
--include="debian-archive-keyring linux-image-riscv64 u-boot-menu u-boot-sifive" \
26+
--include="debian-archive-keyring" \
2727
sid /tmp/riscv64-chroot \
2828
"deb http://deb.debian.org/debian sid main contrib non-free non-free-firmware"
2929

after_mkrootfs.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ EOF
2121
# Set up fstab
2222
cat << EOF > ${ROOTFS_POINT}/etc/fstab
2323
# <file system> <mount point> <type> <options> <dump> <pass>
24-
/dev/nvme0n1p1 / ext4 errors=remount-ro 0 1
24+
/dev/nvme0n1p4 / ext4 errors=remount-ro 0 1
25+
/dev/nvme0n1p3 /boot ext4 nodev,noexec,rw 0 2
2526
EOF
2627

2728
## Add needed modules in initrd
@@ -30,7 +31,7 @@ EOF
3031
chroot "${ROOTFS_POINT}" sh -c "cp /usr/lib/linux-image-*/sifive/hifive-unmatched-a00.dtb /boot/"
3132
chroot "${ROOTFS_POINT}" sh -c "echo U_BOOT_FDT=\"hifive-unmatched-a00.dtb\" >> /etc/default/u-boot"
3233
chroot "${ROOTFS_POINT}" sh -c "echo 'U_BOOT_PARAMETERS=\"rw rootwait console=ttySIF0,115200 earlycon\"' >> /etc/default/u-boot"
33-
chroot "${ROOTFS_POINT}" sh -c "echo 'U_BOOT_ROOT=\"root=/dev/nvme0n1p1\"' >> /etc/default/u-boot"
34+
chroot "${ROOTFS_POINT}" sh -c "echo 'U_BOOT_ROOT=\"root=/dev/nvme0n1p4\"' >> /etc/default/u-boot"
3435

3536
chroot "${ROOTFS_POINT}" sh -c "u-boot-update"
3637

create_image.sh

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ U_BOOT_IMG="sd-uboot.img"
1010
NVME_ROOTFS_IMG="${OUT_DIR}/${ROOTFS_IMG}"
1111
SD_UBOOT_IMG="${OUT_DIR}/${U_BOOT_IMG}"
1212
SD_DD_OPTS="bs=4k iflag=fullblock oflag=direct conv=fsync status=progress"
13-
PACKAGES_LIST="sudo openssh-server openntpd"
13+
PACKAGES_LIST="linux-image-riscv64 u-boot-menu u-boot-sifive sudo openssh-server openntpd"
1414

1515
source $(pwd)/after_mkrootfs.sh
1616

@@ -25,15 +25,20 @@ echo "Creating Blank nvme rootfs Image ${NVME_ROOTFS_IMG}"
2525
dd if=/dev/zero of="${NVME_ROOTFS_IMG}" bs=1M count=3072
2626

2727
sgdisk -g --clear --set-alignment=1 \
28-
--new=1:34:-1 --change-name=1:'rootfs' --typecode=1:0x0700 --attributes=3:set:2 \
28+
--new=1:34:+1M: --change-name=1:'u-boot-spl' --typecode=1:5b193300-fc78-40cd-8002-e86c45580b47 \
29+
--new=2:2082:+4M: --change-name=2:'opensbi-uboot' --typecode=2:2e54b353-1271-4842-806f-e436d6af6985 \
30+
--new=3:16384:400M: --change-name=3:'boot' --typecode=3:0x0700 --attributes=3:set:2 \
31+
--new=4:835584:-0 --change-name=4:'rootfs' --typecode=4:0x8300 \
2932
${NVME_ROOTFS_IMG}
3033

31-
#LOOPDEV=$(kpartx -av "${NVME_ROOTFS_IMG}")
34+
KPARTX_INFO=$(kpartx -av "${NVME_ROOTFS_IMG}")
35+
echo "KPARTX_INFO"
36+
LOOPDEV=$(kpartx -av "${NVME_ROOTFS_IMG}" | grep 'loop' | awk '{print $3}' | awk '{sub(/p[^p]*$/, ""); print}' | uniq)
3237
#echo "print ${LOOPDEV}"
33-
LOOPDEV=$(kpartx -av "${NVME_ROOTFS_IMG}"| awk '{print $3}')
38+
#LOOPDEV=$(losetup --partscan --find --show ${NVME_ROOTFS_IMG})
3439
echo "Nvme ${LOOPDEV}"
3540

36-
if [ -z ${LOOPDEV} ]; then
41+
if [[ -z ${LOOPDEV} ]]; then
3742
echo "loopdev is empty"
3843
exit 1
3944
fi
@@ -42,18 +47,21 @@ fi
4247
#LOOPDEV="${LOOP}"
4348
echo "Partitioning loopback device ${LOOPDEV}"
4449

45-
mkfs.ext4 -L rootfs -F "/dev/mapper/${LOOPDEV}"
50+
mkfs.ext4 -F -L boot "/dev/mapper/${LOOPDEV}p3"
51+
mkfs.ext4 -F -L rootfs "/dev/mapper/${LOOPDEV}p4"
4652

4753
# Copy Files, first the rootfs partition
4854
echo "Mounting partitions ${LOOPDEV}"
49-
ROOTFS_POINT=/nvme_rootfs
55+
ROOTFS_POINT=/tmp/nvme_rootfs
5056
mkdir -p "${ROOTFS_POINT}"
5157

52-
mount "/dev/mapper/${LOOPDEV}" "${ROOTFS_POINT}"
58+
mount "/dev/mapper/${LOOPDEV}p4" "${ROOTFS_POINT}"
5359

5460
# rv64-port from mmdebstrap
5561
cp -a /builder/rv64-port/* "${ROOTFS_POINT}"
5662

63+
mount "/dev/mapper/${LOOPDEV}p3" "${ROOTFS_POINT}/boot"
64+
5765
mount -t proc /proc "${ROOTFS_POINT}/proc"
5866
mount -t sysfs /sys "${ROOTFS_POINT}/sys"
5967
mount -o bind /dev "${ROOTFS_POINT}/dev"
@@ -69,14 +77,16 @@ cp ${ROOTFS_POINT}/usr/lib/u-boot/sifive_unmatched/u-boot.itb ./u-boot.itb
6977
# need improve here also, we do not need another script
7078
after_mkrootfs
7179

80+
7281
# rv:rv
7382
chroot "${ROOTFS_POINT}" sh -c "useradd -m -s /bin/bash -G adm,cdrom,floppy,sudo,input,audio,dip,video,plugdev,netdev rv"
7483
chroot "${ROOTFS_POINT}" sh -c "echo 'rv:rv' | chpasswd"
7584

7685
# root: unmatched
77-
ROOT_PASSWORD_HASH="$(echo 'unmatched' | openssl passwd -1 -stdin)"
78-
chroot "${ROOTFS_POINT}" sh -c "usermod --password '$ROOT_WORD_HASH' root"
86+
#ROOT_PASSWORD_HASH="$(echo 'unmatched' | openssl passwd -1 -stdin)"
87+
#chroot "${ROOTFS_POINT}" sh -c "usermod --password '$ROOT_WORD_HASH' root"
7988
#chroot "${ROOTFS_POINT}" sh -c "usermod --password "$(echo 'unmatched' | openssl passwd -1 -stdin)" root"
89+
chroot "${ROOTFS_POINT}" sh -c "export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true; apt clean"
8090

8191
rm -v "${ROOTFS_POINT}"/etc/ssh/ssh_host_*
8292
chroot "${ROOTFS_POINT}" sh -c "apt clean"
@@ -88,6 +98,7 @@ umount "${ROOTFS_POINT}/proc"
8898
umount "${ROOTFS_POINT}/sys"
8999
umount "${ROOTFS_POINT}/dev"
90100

101+
umount "${ROOTFS_POINT}/boot"
91102

92103
umount "${ROOTFS_POINT}"
93104

@@ -122,6 +133,6 @@ echo "Compressing the image: ${NVME_ROOTFS_IMG}"
122133

123134
echo "Compressing the image: ${SD_ROOTFS_IMG}"
124135

125-
(cd "${OUT_DIR}" && xz -T0 "${SD_ROOTFS_IMG}")
136+
(cd "${OUT_DIR}" && xz -T0 "${SD_UBOOT_IMG}")
126137

127138
echo "Finishing the image..."

0 commit comments

Comments
 (0)