feat(mkimg): add other filesystem support

Signed-off-by: Celeste Liu <CoelacanthusHex@gmail.com>
This commit is contained in:
Celeste Liu 2023-07-10 19:36:50 +08:00
parent a5f037a9b3
commit 7a2b4531ed
No known key found for this signature in database
GPG key ID: E35C89E45867AE35

11
mkimg
View file

@ -12,13 +12,14 @@ use_fixed_password=0
build_firmware=1 build_firmware=1
varbose_arg= varbose_arg=
rootfs="archriscv-$(date --rfc-3339=date).tar.zst" rootfs="archriscv-$(date --rfc-3339=date).tar.zst"
fstype=ext4
uboot_version=v2023.04 uboot_version=v2023.04
opensbi_version=v1.2 opensbi_version=v1.2
show_help() { show_help() {
cat << EOF cat << EOF
Usage: ${0##*/} [-hvfd] [-p PASSWORD] [-r ROOTFS] [FILENAME] Usage: ${0##*/} [-hvfd] [-p PASSWORD] [-r ROOTFS] [-t FSTYPE] [FILENAME]
Create Arch RISC-V distro image. Create Arch RISC-V distro image.
FILENAME generated image file name FILENAME generated image file name
@ -30,13 +31,14 @@ Create Arch RISC-V distro image.
-d only build the disk image and omit building OpenSBI/U-Boot -d only build the disk image and omit building OpenSBI/U-Boot
-p PASSWORD set root password to PASSWORD instead of passwd in rootfs -p PASSWORD set root password to PASSWORD instead of passwd in rootfs
-r ROOTFS specify rootfs file name -r ROOTFS specify rootfs file name
-t FSTYPE specify rootfs filesystem type (default: ext4)
-v verbose mode -v verbose mode
EOF EOF
} }
parse-args() { parse-args() {
local OPTIND=1 local OPTIND=1
while getopts 'hvfdr:p:' opt; do while getopts 'hvfdr:t:p:' opt; do
case $opt in case $opt in
h) show_help h) show_help
exit 0 exit 0
@ -52,6 +54,8 @@ parse-args() {
;; ;;
r) rootfs=$OPTARG r) rootfs=$OPTARG
;; ;;
t) fstype=$OPTARG
;;
*) show_help >&2 *) show_help >&2
exit 1 exit 1
;; ;;
@ -142,8 +146,7 @@ msg "Partitioning..."
sudo partprobe "$loopdev" sudo partprobe "$loopdev"
partdev="$loopdev"p1 partdev="$loopdev"p1
sudo mkfs.ext4 "$partdev" sudo mkfs.$fstype -L rootfs "$partdev"
sudo e2label "$partdev" rootfs
sudo mkdir -p mnt sudo mkdir -p mnt
sudo mount "$partdev" mnt sudo mount "$partdev" mnt