-for i in $(ls /sys/block/); do
- if ! [ -e /dev/$i ]; then
- blkdev_num=$(sed 's/:/ /g' /sys/block/$i/dev)
- vtlog "mknod -m 0666 /dev/$i b $blkdev_num"
- mknod -m 0666 /dev/$i b $blkdev_num
+check_mkdev_node() {
+ for i in $(ls /sys/class/block/); do
+ if ! [ -e /dev/$i ]; then
+ blkdev_num=$(sed 's/:/ /g' /sys/class/block/$i/dev)
+ vtlog "mknod -m 0666 /dev/$i b $blkdev_num"
+ mknod -m 0666 /dev/$i b $blkdev_num
+ fi
+ done
+}
+
+check_insmod() {
+ if [ -f "$1" ]; then
+ vtlog "insmod $1"
+ insmod "$1" >> $VTOY_PATH/log 2>&1
+ else
+ vtlog "$1 not exist"
+ fi
+}
+
+wrt_insmod() {
+ kbit=$1
+ kv=$(uname -r)
+
+ vtlog "insmod $kv $kbit"
+
+ check_insmod /ventoy_openwrt/$kv/$kbit/dax.ko
+ check_insmod /ventoy_openwrt/$kv/$kbit/dm-mod.ko
+}
+
+insmod_dm_mod() {
+ if grep -q "device-mapper" /proc/devices; then
+ vtlog "device-mapper enabled by system 0"
+ return
+ fi
+
+ check_insmod /ventoy/modules/dax.ko
+ check_insmod /ventoy/modules/dm-mod.ko
+
+ if grep -q "device-mapper" /proc/devices; then
+ vtlog "device-mapper enabled by system 1"
+ return
+ fi
+
+ if [ -f /ventoy_openwrt.xz ]; then
+ tar xf /ventoy_openwrt.xz -C /
+ rm -f /ventoy_openwrt.xz