mirror of
https://github.com/mbusb/multibootusb
synced 2024-11-18 15:25:46 +00:00
815241572c
1. Catch 7zip error while listing ISO content 2. Way to detect .ISO and .IMG files for direct booting using memdisk 3. Added a class for finding available RAM size 4. Added feature for selecting ISO, IMG, Zip and all files options in file chooser dialog 5. Added generic menu entry for memdisk 6. Corrected path to menu.lst file for distrs based on grub4dos 7. Fix for crash when multicard reader is inserted on the system without a SD card 8. Correctly detect USB disk information using udisk2-dbus without crash
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
|
|
|
|
|