Git Product home page Git Product logo

bits's Introduction

                     BIOS Implementation Test Suite (BITS)

Build ID: @@BUILDID@@
Build number: @@BUILDNUM@@

Please send any bug reports, patches, or other mail about BITS to the BITS
mailing list, <[email protected]>, and please include the build ID for
reference.

You can find the BITS homepage at http://biosbits.org/

Disclaimer
==========

None of the menu options provided by this toolkit should affect your system
permanently, only for the current boot.  If you *ever* find that this toolkit
affects your system in any permanent way, that represents a serious bug.
However, poking around at the GRUB command line may turn up some commands
provided by GRUB that can affect your system; if it breaks, you get to keep
both pieces.


Other sources of information
============================

This README.txt file documents how to use BITS.

For instructions to build a bootable USB disk from a BITS binary distribution,
refer to INSTALL.txt included in the top-level directory of that that binary
distribution.

For more detailed documentation on specific components of BITS, see the files
in the Documentation directory.

If you want to do BITS development, start with the BITS source code; on a BITS
USB disk built from this version of BITS, you can find the source code under
/boot/src/bits-@@BUILDNUM@@.tar.gz; for more information, see
README.Developers.txt in the BITS source.


Getting Started
===============

BITS has two modes of operation: an interactive mode that provides a menu of
available functionality, and a batch mode that automatically runs operations
such as the testsuite or structure decoding and saves a log of the results
without any user interaction.  By default, BITS runs in interactive mode.  To
configure batch mode, edit the configuration file /boot/bits-cfg.txt and set
the batch option to include one or more batch operations.

BITS will detect your processor signature and enable appropriate menu options
for your CPU and general CPU family.  For instance, if you have a Westmere
processor, you will see menu options specific to the Westmere processor, menu
options for the Nehalem family of processors, and menu options for all Intel
processors.

The available options in BITS fall into several broad categories:

- "Test Menu" contains various test suites designed to test your system and
  its BIOS configuration.  When run normally, these test suites will produce
  a list of all test failures, and a summary of the tests run.  Tests that
  pass will generate no output, and if the entire test suite passes, you will
  see only the summary at the end.  If you want to see more verbose failure
  information from each test, you can set the verbosity level via the
  "test_options" command from the GRUB command line.  If you turn it up high
  enough it will show tests that pass, but that will quickly drown out the
  useful information about test failures; apart from the novelty of seeing
  how many tests BITS includes, this serves little useful purpose.  Turn it
  back off and get back to fixing bugs. :)

- "Configure Menu" contains options to temporarily reconfigure your system.
  None of these options will touch your BIOS or permanently change your system
  configuration, but they will override that configuration for the current boot
  only.

- "Explore Menu" contains options that let you explore your system's existing
  configuration and behavior, as well as experimental tests which produce
  results beyond just PASS/FAIL.  For example, you can explore the latency
  incurred to wake CPUs from deeper C-states.

- "View and Save Log" contains options to review the log of BITS test
  results, clear the log, or save the log to /boot/bits-log.txt.

- "Boot an OS from disk" provides options that allow you to boot your
  existing operating system from a hard disk.  You can use these options to
  test OS behavior after running options from the Configure menu to change
  your system's configuration; for instance, after running Intel's power
  management reference code to overwrite your BIOS's power management
  configuration, you could boot Linux and run powertop, or boot your own test
  workload and run benchmarks.


Credits
=======

Authors:
Burt Triplett <[email protected]>
Josh Triplett <[email protected]>

Based on:
GNU GRUB2 - https://www.gnu.org/software/grub/
Python - https://www.python.org/
ACPICA - https://acpica.org/
fdlibm - http://www.netlib.org/fdlibm/

For more details, see README.Developers.txt

bits's People

Contributors

burttriplett avatar joshtriplett avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bits's Issues

Requesting help with (maybe) unusual usage

Hi there

first of all - in my opinion you created a great tool here!

My bosses also mentioned this and have the idea to run a python script before booting windows in uefi-mode.

I got the mission to realise this - and i´m failing. But maybe you can give me an hint.....

Thats what I tried until today:

I´ve created an debian based minimalistic USB-Stick. Unfortunately debian uses GRUB 2.02 and your files aren´t compatible. (I get the message error: symbol 'grub_isprint' not found. which means that the grub-version doesnt match)

So I purged grub* from the stick, cloned your repository and compiled the same grub version you use.

My idea was to boot from the stick and install grub on the existing uefi-partition (via grub-install /dev/sda --directory=biosbits/grub-core --recheck --force). This is working so far.
But when I overwrite or swap the files in /boot with your files I get again this error: symbol 'grub_isprint' not found...

What i´m doing wrong?

Thank you in forward!

edit
I forgot - your guide for installing via Syslinux doesn´t work in my case.
I tryed to install it in the EFI-Partition but Windows is booting straight trough...

Tests for ACPI BGRT table

We should include tests for the correctness of the BGRT table:

  • Length shorter than minimum
  • Version not 1
  • Status bits (other than the LSB) set. (The remaining checks should only occur if status == 1.)
  • Image type not 0 (BMP).
  • Image address NULL.

improvement suggestion: change keyboard layout

Hi Josh

first of all - thanks for your great work!

Unfortunately i´m using an different keyboard layout.
It is possible, but quite annoying to search the right character when its needed.

Therefore i would like to ask you if you could create a set of gkb-files with the most used keyboard layouts. In my case german ;)
It seems that this gkb files have to be created exactly with the correct grub version. Else there is only an error message.

Thanks
Netlord

Can't get logs

Hi.
I have copied the image file on a USB key. it works fine as live distro, but when I try to read the logs from the usb connected to Ubuntu or Windows, can't read any partition.
Any known issue on that?
Thanks

Python module - bits

I am unable install the bits module in python. Is there any way to install module? is a available anymore??

AttributeError: 'SystemEnclosureContainedElement' object has no attribute 'type'

Hi there

i get this error message while booting from an usb hard drive:

BIOS Implementation Test Suite (BITS)
bits-2005, build ID 6026f64
Initialization redirect module done
Importing acpi module... done
Initializing serial port redirection module...
Initialization serial port redirection module done
Importing os module... done
Importing bitsconfig module... done
Initializing bitsconfig module... done
Importing grubcmds module... done
Initializing grubcmds module... done
Importing bits module... done
Initializing PCI Express MCFG detection module...
Initialization PCI Express MCFG detection module done
Importing readline module... done
Initializing readline module... done
Importing rlcompleter_extra module... done
Importing testacpi module... done
Initializing testacpi module... done
Importing testsmrr module... done
Importing smilatency module... done
Initializing smilatency module... done
Importing mptable module... done
Initializing mptable module... done
Importing cpulib module... done
Initializing cpulib module... done
Importing testsuite module... done
Initializing testsuite module... done
Importing sysinfo module... done
Initializing sysinfo module...
Processor signature 0x306c3, detected CPU as Unknown
Initialization sysinfo module done
Importing smbios module... done
Initializing smbios module...
Error parsing SystemEnclosure
Traceback (most recent call last):
File "/boot/python/smbios.py", line 364, in init
self.add_field('contained_elements', tuple(SystemEnclosureContainedElement(u, self.contained_element_length) for i in range(self.contained_element_count)))
File "/boot/python/smbios.py", line 364, in
self.add_field('contained_elements', tuple(SystemEnclosureContainedElement(u, self.contained_element_length) for i in range(self.contained_element_count)))
File "/boot/python/smbios.py", line 386, in init
self.add_field('type_select', bitfields.getbits(self.type, 7), unpack.format_table("contained_element_type[7]={}", type_selections))
AttributeError: 'SystemEnclosureContainedElement' object has no attribute 'type'
SMBIOS information:
0: BIOSInformation(type=0x0, length=0x18, handle=0x0, vendor=1 'FUJITSU //
American Megatrends Inc.', version=2 'V4.6.5.4 R2.14.0 for D3239-A1x',
starting_address_segment=0xf000, release_date=3 '04/16/2015',
rom_size=0x7f, characteristics=0x134099880, characteristics_extensions=[3,
13], major_release=0x2, minor_release=0xe, ec_major_release=0xff,
ec_minor_release=0xff)
1: SystemInformation(type=0x1, length=0x1b, handle=0x1, manufacturer=1
'FUJITSU', product_name=2 'PRIMERGY TX1320 M1', version=3 'GS01',
serial_number=4 'YLXL001001', uuid=UUID('c9b50cb1-4c16-8a4f-b86e-
642761e128e4'), wakeup_type=6 (Power Switch), sku_number=5
'ABN:1386-V101-101', family=6 'SERVER')
Initialization smbios module done
Importing cpumenu module... done
Initializing cpumenu module... done
Importing bootmenu module... done
Initializing bootmenu module... done
Importing mwaitmenu module... done
Initializing mwaitmenu module... done
Importing builtin module... done
Error parsing SystemEnclosure
Traceback (most recent call last):
File "/boot/python/smbios.py", line 364, in init
self.add_field('contained_elements', tuple(SystemEnclosureContainedElement(u, self.contained_element_length) for i in range(self.contained_element_count)))
File "/boot/python/smbios.py", line 364, in
self.add_field('contained_elements', tuple(SystemEnclosureContainedElement(u, self.contained_element_length) for i in range(self.contained_element_count)))
File "/boot/python/smbios.py", line 386, in init
self.add_field('type_select', bitfields.getbits(self.type, 7), unpack.format_table("contained_element_type[7]={}", type_selections))
AttributeError: 'SystemEnclosureContainedElement' object has no attribute 'type'

Can you help me with this?

running bits in Virtualbox

When I try to boot from the iso on virtualbox, I get the following:

Welcome to GRUB!

Starting BITS ...
[0.00] Import redirect

then the screen freezes. Any idea of how to get this working on Virtualbox?

No real documentation anywhere, project dead or alive?

The last commit was years ago and there has not been ANY recent activity. I tried mailing the developers but was ignored. Is this project even alive? There is no documentation. The 'readme' and 'readme-developers' both did not have any info. The Documentation folder was absolutely useless too. Where can I get a list of all the bits functions and classes with what they do? Is there any documentation or help for people that want to use this project? Or has this project been abandoned?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.