You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
4.1 KiB
Python
104 lines
4.1 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
# Name: menus.py
|
|
# Purpose: Module contain custom menu entries for fewer distros
|
|
# Authors: Sundar
|
|
# Licence: This file is a part of multibootusb package. You can redistribute it or modify
|
|
# under the terms of GNU General Public License, v.2 or above
|
|
|
|
from . import iso
|
|
from . import config
|
|
from .gen import MemoryCheck
|
|
|
|
|
|
def pc_tool_config(syslinux=True, grub=False):
|
|
"""
|
|
Menu entry for PC Tool ISO
|
|
:param syslinux:
|
|
:param grub:
|
|
:return:
|
|
"""
|
|
if syslinux is True:
|
|
return """KERNEL /system/stage1
|
|
APPEND initrd=/system/stage2 root=/dev/ram0 rw rdinit=/linuxrc video=vesa:ywrap,mtrr vga=0x303 loglevel=0 splash boot=cdrom\n"""
|
|
elif grub is True:
|
|
return """menuentry """ + iso.iso_basename(config.image_path) + """ {
|
|
linux /system/stage1 root=/dev/ram0 rw rdinit=/linuxrc video=vesa:ywrap,mtrr vga=0x303 loglevel=0 splash boot=cdrom
|
|
initrd /system/stage2\n}"""
|
|
|
|
|
|
def grub2only():
|
|
return """MENU LABEL """ + iso.iso_basename(config.image_path) + """
|
|
LINUX /multibootusb/grub/lnxboot.img
|
|
INITRD /multibootusb/grub/core.img
|
|
TEXT HELP
|
|
Switch to GRUB2 to select boot options.
|
|
ENDTEXT\n"""
|
|
|
|
|
|
def rising(syslinux=True, grub=False):
|
|
"""
|
|
Menu entry for Raising Anti-virus. Only grub2 menu is required. Syslinux menu is automatically added
|
|
:param syslinux:
|
|
:param grub:
|
|
:return:
|
|
"""
|
|
if grub is True:
|
|
return """menuentry """ + iso.iso_basename(config.image_path) + """ {
|
|
linux /multibootusb/linux/boot/isolinux/vmlinuz lang=us ramdisk_size=100000 init=/etc/init apm=power-off pnpbios=off vga=0x314 nomce quiet BOOT_IMAGE=rising
|
|
initrd /multibootusb/linux/boot/isolinux/ravroot.gz\n}"""
|
|
|
|
|
|
def memdisk_iso_cfg(syslinux=True, grub=False):
|
|
"""
|
|
Menu entry for ISO using memdisk. Need to have more RAM to make it work with mendisk properly.
|
|
By default, memory size is set to system RAM size or 3GB. The 'vmalloc=3072M' can also be used as 'mem=3G'.
|
|
:param syslinux: Default is True
|
|
:param grub: Default is False
|
|
:return: Menu entry for syslinux and grub2
|
|
"""
|
|
M = MemoryCheck()
|
|
avl_mem = M.value
|
|
if not avl_mem:
|
|
avl_mem = int(3072)
|
|
if syslinux is True:
|
|
menu_entry = 'LINUX memdisk\n' \
|
|
'INITRD /multibootusb/' + iso.iso_basename(config.image_path) + '/' + iso.iso_name(config.image_path) + '\n' \
|
|
'APPEND iso vmalloc=' + str(avl_mem) + 'M\n'
|
|
elif grub is True:
|
|
menu_entry = ' search --set -f /multibootusb/' + iso.iso_basename(config.image_path) + '/' + iso.iso_name(config.image_path) + '\n' \
|
|
' menuentry ' + iso.iso_basename(config.image_path) + ' {\n' \
|
|
' linux16 /multibootusb/memdisk iso vmalloc=' + str(avl_mem) + 'M\n' \
|
|
' initrd16 /multibootusb/' + iso.iso_basename(config.image_path) + '/' + iso.iso_name(config.image_path) + '\n' \
|
|
'}\n'
|
|
|
|
return menu_entry
|
|
|
|
|
|
def memdisk_img_cfg(syslinux=True, grub=False):
|
|
"""
|
|
Menu entry for IMG files using memdisk. Need to have more RAM to make it work with mendisk properly.
|
|
By default, memory size is set to system RAM size or 3GB.
|
|
:param syslinux: Default is True
|
|
:param grub: Default is False
|
|
:return: Menu entry for syslinux and grub2
|
|
"""
|
|
M = MemoryCheck()
|
|
avl_mem = M.value
|
|
if not avl_mem:
|
|
avl_mem = int(3072)
|
|
if syslinux is True:
|
|
menu_entry = 'LINUX memdisk\n' \
|
|
'INITRD /multibootusb/' + iso.iso_basename(config.image_path) + '/' + iso.iso_name(config.image_path) + '\n' \
|
|
'APPEND raw vmalloc=' + str(avl_mem) + 'M\n'
|
|
elif grub is True:
|
|
menu_entry = ' search --set -f /multibootusb/' + iso.iso_basename(config.image_path) + '/' + iso.iso_name(config.image_path) + '\n' \
|
|
' menuentry ' + iso.iso_basename(config.image_path) + ' {\n' \
|
|
' linux16 /multibootusb/memdisk raw vmalloc=' + str(avl_mem) + 'M\n' \
|
|
' initrd16 /multibootusb/' + iso.iso_basename(config.image_path) + '/' + iso.iso_name(config.image_path) + '\n' \
|
|
'}\n'
|
|
|
|
return menu_entry
|
|
|
|
|