grub2 mode support KNOPPIX

pull/2070/head
longpanda 2 years ago
parent a5c6859f5f
commit 6203366040

@ -362,7 +362,8 @@ static grub_err_t
cmd_append (const char *line, struct syslinux_menu *menu) cmd_append (const char *line, struct syslinux_menu *menu)
{ {
if (!menu->entries) if (!menu->entries)
return grub_error (GRUB_ERR_BAD_ARGUMENT, "kernel without label"); return GRUB_ERR_NONE;
//return grub_error (GRUB_ERR_BAD_ARGUMENT, "kernel without label");
menu->entries->append = grub_strdup (line); menu->entries->append = grub_strdup (line);
if (!menu->entries->append) if (!menu->entries->append)

@ -99,6 +99,19 @@
}\ }\
} }
#define VTOY_SKIP_SPACE(s) \
while (ventoy_isspace(*s)) \
{\
s++;\
}
#define VTOY_SKIP_SPACE_NEXT(s, initial) \
s += initial;\
while (ventoy_isspace(*s)) \
{\
s++;\
}
typedef enum VTOY_FILE_FLT typedef enum VTOY_FILE_FLT
{ {
VTOY_FILE_FLT_ISO = 0, /* .iso */ VTOY_FILE_FLT_ISO = 0, /* .iso */

@ -177,10 +177,7 @@ static grub_err_t ventoy_isolinux_initrd_collect(grub_file_t file, const char *p
{ {
nextline = ventoy_get_line(start); nextline = ventoy_get_line(start);
while (ventoy_isspace(*start)) VTOY_SKIP_SPACE(start);
{
start++;
}
offset = 7; // strlen("initrd=") or "INITRD " or "initrd " offset = 7; // strlen("initrd=") or "INITRD " or "initrd "
pos = grub_strstr(start, "initrd="); pos = grub_strstr(start, "initrd=");
@ -438,10 +435,7 @@ static grub_err_t ventoy_grub_cfg_initrd_collect(const char *fileName)
{ {
nextline = ventoy_get_line(start); nextline = ventoy_get_line(start);
while (ventoy_isspace(*start)) VTOY_SKIP_SPACE(start);
{
start++;
}
if (grub_strncmp(start, "initrd", 6) != 0) if (grub_strncmp(start, "initrd", 6) != 0)
{ {
@ -454,10 +448,7 @@ static grub_err_t ventoy_grub_cfg_initrd_collect(const char *fileName)
start++; start++;
} }
while (ventoy_isspace(*start)) VTOY_SKIP_SPACE(start);
{
start++;
}
if (*start == '"') if (*start == '"')
{ {
@ -528,10 +519,7 @@ static grub_err_t ventoy_grub_cfg_initrd_collect(const char *fileName)
if (*start == ' ' || *start == '\t') if (*start == ' ' || *start == '\t')
{ {
while (ventoy_isspace(*start)) VTOY_SKIP_SPACE(start);
{
start++;
}
} }
else else
{ {
@ -1813,18 +1801,12 @@ static char *ventoy_systemd_conf_tag(char *buf, const char *tag, int optional)
for (start = buf; start; start = nextline) for (start = buf; start; start = nextline)
{ {
nextline = ventoy_get_line(start); nextline = ventoy_get_line(start);
while (ventoy_isspace(*start)) VTOY_SKIP_SPACE(start);
{
start++;
}
if (grub_strncmp(start, tag, taglen) == 0 && (start[taglen] == ' ' || start[taglen] == '\t')) if (grub_strncmp(start, tag, taglen) == 0 && (start[taglen] == ' ' || start[taglen] == '\t'))
{ {
start += taglen; start += taglen;
while (ventoy_isspace(*start)) VTOY_SKIP_SPACE(start);
{
start++;
}
return start; return start;
} }
} }
@ -2038,10 +2020,7 @@ grub_err_t ventoy_cmd_linux_limine_menu(grub_extcmd_context_t ctxt, int argc, ch
for (start = filebuf; start; start = nextline) for (start = filebuf; start; start = nextline)
{ {
nextline = ventoy_get_line(start); nextline = ventoy_get_line(start);
while (ventoy_isspace(*start)) VTOY_SKIP_SPACE(start);
{
start++;
}
if (start[0] == ':') if (start[0] == ':')
{ {

@ -852,6 +852,13 @@ function uefi_linux_menu_func {
configfile "mem:${vt_sys_menu_mem_addr}:size:${vt_sys_menu_mem_size}" configfile "mem:${vt_sys_menu_mem_addr}:size:${vt_sys_menu_mem_size}"
fi fi
fi fi
if [ $vtback_cfg_find -eq 0 ]; then
if [ -f (loop)/boot/isolinux/syslnx64.cfg ]; then
syslinux_configfile (loop)/boot/isolinux/syslnx64.cfg
set vtback_cfg_find=1
fi
fi
if [ "$vtback_cfg_find" = "0" ]; then if [ "$vtback_cfg_find" = "0" ]; then
echo " " echo " "
@ -1319,6 +1326,13 @@ function legacy_linux_menu_func {
configfile "mem:${vt_sys_menu_mem_addr}:size:${vt_sys_menu_mem_size}" configfile "mem:${vt_sys_menu_mem_addr}:size:${vt_sys_menu_mem_size}"
fi fi
fi fi
if [ $vtback_cfg_find -eq 0 ]; then
if [ -f (loop)/boot/isolinux/syslnx64.cfg ]; then
syslinux_configfile (loop)/boot/isolinux/syslnx64.cfg
set vtback_cfg_find=1
fi
fi
vt_unset_boot_opt vt_unset_boot_opt
set root=$vtback_root set root=$vtback_root

Loading…
Cancel
Save