def early_init(): # Set up redirection first, before importing anything else, so that any # errors in subsequent imports will get captured into the log. import_start_msg("redirect") import redirect end_msg() init_start_msg("redirect") redirect.redirect() init_end_msg("redirect") # Parse the ACPI SPCR and automatically set up the serial port if present serial_cmd = "false" try: import_start_msg("acpi") import acpi end_msg() init_start_msg("serial port redirection", False) spcr = acpi.parse_table("SPCR") if spcr is not None: addr = spcr.base_address speed = acpi.baud.get(spcr.baud_rate) if addr.address_space_id == acpi.ASID_SYSTEM_IO and addr.register_bit_width == 8 and addr.address != 0 and speed is not None: port = addr.address serial_cmd = "serial --port={:#x} --speed={}".format(port, speed) except Exception as e: print "Error parsing Serial Port Console Redirect (SPCR) table:" print e init_end_msg("serial port redirection") import_start_msg("os") import os end_msg() os.environ["serial_cmd"] = serial_cmd
def early_init(): # Set up redirection first, before importing anything else, so that any # errors in subsequent imports will get captured into the log. with import_annotation("redirect"): import redirect with init_annotation("redirect"): redirect.redirect() # Parse the ACPI SPCR and automatically set up the serial port if present with init_annotation("serial port redirection"): serial_cmd = "false" try: with import_annotation("acpi"): import acpi spcr = acpi.parse_table("SPCR") if spcr is not None: addr = spcr.base_address speed = acpi.baud.get(spcr.baud_rate) if addr.address_space_id == acpi.ASID_SYSTEM_IO and addr.register_bit_width == 8 and addr.address != 0 and speed is not None: port = addr.address serial_cmd = "serial --port={:#x} --speed={}".format( port, speed) except Exception as e: print "Error parsing Serial Port Console Redirect (SPCR) table:" print e with import_annotation("os"): import os with init_annotation("os"): os.environ["serial_cmd"] = serial_cmd
def init(): import_start_msg("bitsconfig") import bitsconfig end_msg() init_start_msg("bitsconfig") bitsconfig.init() end_msg() import_start_msg("grubcmds") import grubcmds end_msg() init_start_msg("grubcmds") grubcmds.register() end_msg() import_start_msg("bits") import bits end_msg() import os import sys try: import acpi init_start_msg("PCI Express MCFG detection", False) mcfg = acpi.parse_table("MCFG") if mcfg is None: print 'No ACPI MCFG Table found. This table is required for PCI Express.' else: for mcfg_resource in mcfg.resources: if mcfg_resource.segment == 0: if mcfg_resource.address >= (1 << 32): print "Error: PCI Express base above 32 bits is unsupported by BITS" break bits.pcie_set_base(mcfg_resource.address) os.putenv('pciexbase', '{:#x}'.format(mcfg_resource.address)) os.putenv('pcie_startbus', '{:#x}'.format(mcfg_resource.start_bus)) os.putenv('pcie_endbus', '{:#x}'.format(mcfg_resource.end_bus)) break else: print "Error initializing PCI Express base from MCFG: no resource with segment 0" except Exception as e: print "Error occurred initializing PCI Express base from MCFG:" print e init_end_msg("PCI Express MCFG detection") import_start_msg("readline") import readline end_msg() init_start_msg("readline") readline.init() end_msg() import_start_msg("rlcompleter_extra") import rlcompleter_extra end_msg() import_start_msg("testacpi") import testacpi end_msg() init_start_msg("testacpi") testacpi.register_tests() end_msg() if sys.platform == "BITS-EFI": import_start_msg("testefi") import testefi end_msg() init_start_msg("testefi") testefi.register_tests() end_msg() import_start_msg("testsmrr") import testsmrr end_msg() testsmrr.register_tests() import_start_msg("smilatency") import smilatency end_msg() init_start_msg("smilatency") smilatency.register_tests() end_msg() import_start_msg("mptable") import mptable end_msg() init_start_msg("mptable") mptable.register_tests() end_msg() import_start_msg("cpulib") from cpudetect import cpulib end_msg() init_start_msg("cpulib") cpulib.register_tests() end_msg() import_start_msg("testsuite") import testsuite end_msg() init_start_msg("testsuite") testsuite.finalize_cfgs() end_msg() import_start_msg("sysinfo") import sysinfo end_msg() init_start_msg("sysinfo", False) sysinfo.log_sysinfo() init_end_msg("sysinfo") import_start_msg("smbios") import smbios end_msg() init_start_msg("smbios", False) smbios.log_smbios_info() init_end_msg("smbios") if sys.platform == "BITS-EFI": import_start_msg("efi") import efi end_msg() init_start_msg("efi", False) efi.log_efi_info() init_end_msg("efi") batch = bitsconfig.config.get("bits", "batch").strip() if batch: import redirect print "\nBatch mode enabled:", batch for batch_keyword in batch.split(): print "\nRunning batch operation", batch_keyword try: if batch_keyword == "test": testsuite.run_all_tests() with redirect.logonly(): if batch_keyword == "acpi": import acpi print acpi.dumptables() if batch_keyword == "smbios": import smbios smbios.dump_raw() except: print "\nError in batch operation", batch_keyword import traceback traceback.print_exc() print "\nBatch mode complete\n" redirect.write_logfile("/boot/bits-log.txt") import_start_msg("cpumenu") import cpumenu end_msg() init_start_msg("cpumenu") cpumenu.generate_cpu_menu() end_msg() import_start_msg("bootmenu") import bootmenu end_msg() init_start_msg("bootmenu") bootmenu.generate_boot_menu() end_msg() import_start_msg("mwaitmenu") import mwaitmenu end_msg() init_start_msg("mwaitmenu") mwaitmenu.generate_mwait_menu() end_msg() import_start_msg("builtin") import __builtin__ end_msg() __builtin__.help = _Helper()
def init(): import bitsconfig bitsconfig.init() import grubcmds grubcmds.register() import bits import os try: import acpi mcfg = acpi.parse_table("MCFG") if mcfg is None: print 'No ACPI MCFG Table found. This table is required for PCI Express.' else: for mcfg_resource in mcfg.resources: if mcfg_resource.segment == 0: if mcfg_resource.address >= (1 << 32): print "Error: PCI Express base above 32 bits is unsupported by BITS" break bits.pcie_set_base(mcfg_resource.address) os.putenv('pciexbase', '{:#x}'.format(mcfg_resource.address)) os.putenv('pcie_startbus', '{:#x}'.format(mcfg_resource.start_bus)) os.putenv('pcie_endbus', '{:#x}'.format(mcfg_resource.end_bus)) break else: print "Error initializing PCI Express base from MCFG: no resource with segment 0" except Exception as e: print "Error occurred initializing PCI Express base from MCFG:" print e import readline readline.init() import rlcompleter_extra import testacpi testacpi.register_tests() try: import testefi testefi.register_tests() except ImportError as e: pass import testsmrr testsmrr.register_tests() import smilatency smilatency.register_tests() import mptable mptable.register_tests() from cpudetect import cpulib cpulib.register_tests() import testsuite testsuite.finalize_cfgs() import sysinfo sysinfo.log_sysinfo() import smbios smbios.log_smbios_info() try: import efi efi.log_efi_info() except ImportError as e: pass batch = bitsconfig.config.get("bits", "batch").strip() if batch: import redirect print "\nBatch mode enabled:", batch for batch_keyword in batch.split(): print "\nRunning batch operation", batch_keyword try: if batch_keyword == "test": testsuite.run_all_tests() with redirect.logonly(): if batch_keyword == "acpi": import acpi print acpi.dumptables() if batch_keyword == "smbios": import smbios smbios.dump_raw() except: print "\nError in batch operation", batch_keyword import traceback traceback.print_exc() print "\nBatch mode complete\n" redirect.write_logfile("/boot/bits-log.txt") import __builtin__ __builtin__.help = _Helper() import pydoc import ttypager pydoc.getpager = ttypager.getpager
def init(): with import_annotation("bitsconfig"): import bitsconfig with init_annotation("bitsconfig"): bitsconfig.init() with import_annotation("grubcmds"): import grubcmds with init_annotation("grubcmds"): grubcmds.register() with import_annotation("bits"): import bits with import_annotation("os"): import os with import_annotation("sys"): import sys sys.argv = [] with init_annotation("PCI Express MCFG detection"): try: import acpi mcfg = acpi.parse_table("MCFG") if mcfg is None: print 'No ACPI MCFG Table found. This table is required for PCI Express.' else: for mcfg_resource in mcfg.resources: if mcfg_resource.segment == 0: if mcfg_resource.address >= (1 << 32): print "Error: PCI Express base above 32 bits is unsupported by BITS" break bits.pcie_set_base(mcfg_resource.address) os.putenv('pciexbase', '{:#x}'.format(mcfg_resource.address)) os.putenv('pcie_startbus', '{:#x}'.format(mcfg_resource.start_bus)) os.putenv('pcie_endbus', '{:#x}'.format(mcfg_resource.end_bus)) break else: print "Error initializing PCI Express base from MCFG: no resource with segment 0" except Exception as e: print "Error occurred initializing PCI Express base from MCFG:" print e with import_annotation("readline"): import readline with init_annotation("readline"): readline.init() with import_annotation("rlcompleter_extra"): import rlcompleter_extra with import_annotation("testacpi"): import testacpi with init_annotation("testacpi"): testacpi.register_tests() if sys.platform == "BITS-EFI": with import_annotation("testefi"): import testefi with init_annotation("testefi"): testefi.register_tests() with import_annotation("testsmrr"): import testsmrr with init_annotation("testsmrr"): testsmrr.register_tests() with import_annotation("smilatency"): import smilatency with init_annotation("smilatency"): smilatency.register_tests() with import_annotation("mptable"): import mptable with init_annotation("mptable"): mptable.register_tests() with import_annotation("cpulib"): from cpudetect import cpulib with init_annotation("cpulib"): cpulib.register_tests() with import_annotation("testsuite"): import testsuite with init_annotation("testsuite"): testsuite.finalize_cfgs() with import_annotation("sysinfo"): import sysinfo with init_annotation("sysinfo"): sysinfo.log_sysinfo() with import_annotation("smbios"): import smbios with init_annotation("smbios"): smbios.log_smbios_info() if sys.platform == "BITS-EFI": with import_annotation("efi"): import efi with init_annotation("efi"): efi.log_efi_info() efi.register_keyboard_interrupt_handler() batch = bitsconfig.config.get("bits", "batch").strip() if batch: import redirect print "\nBatch mode enabled:", batch for batch_keyword in batch.split(): print "\nRunning batch operation", batch_keyword try: if batch_keyword == "test": testsuite.run_all_tests() with redirect.logonly(): if batch_keyword == "acpi": import acpi print acpi.dumptables() if batch_keyword == "smbios": import smbios smbios.dump_raw() except: print "\nError in batch operation", batch_keyword import traceback traceback.print_exc() print "\nBatch mode complete\n" redirect.write_logfile("/boot/bits-log.txt") with import_annotation("cpumenu"): import cpumenu with init_annotation("cpumenu"): cpumenu.generate_cpu_menu() with import_annotation("bootmenu"): import bootmenu with init_annotation("bootmenu"): bootmenu.generate_boot_menu() with import_annotation("mwaitmenu"): import mwaitmenu with init_annotation("mwaitmenu"): mwaitmenu.generate_mwait_menu() with import_annotation("__builtin__"): import __builtin__ with init_annotation("__builtin__"): __builtin__.help = _Helper()