All Projects → farjump → Fwtr

farjump / Fwtr

Licence: cc0-1.0
Open Database of Firmware Test Results

Projects that are alternatives of or similar to Fwtr

Data
Fast DB-independent DAL for .NET Core: abstract queries, SQL commands builder, schema-less data access, POCO mapping (micro-ORM).
Stars: ✭ 150 (-2.6%)
Mutual labels:  database
Ebooks
A repository for ebooks, including C, C plus plus, Linux Kernel, Compiler, OS, Algorithm, Security, Database, Network, ML and DL
Stars: ✭ 151 (-1.95%)
Mutual labels:  database
Chunked
Chunkwise Text-file Processing for 'dplyr'
Stars: ✭ 153 (-0.65%)
Mutual labels:  database
Interview
Android、Java程序员面试资源总结,涉及Java、Android、网络、操作系统、算法等
Stars: ✭ 150 (-2.6%)
Mutual labels:  database
Slimdump
A tool for creating configurable dumps of large MySQL-databases.
Stars: ✭ 151 (-1.95%)
Mutual labels:  database
H2gis
A spatial extension of the H2 database.
Stars: ✭ 152 (-1.3%)
Mutual labels:  database
Etcd Cloud Operator
Deploying and managing production-grade etcd clusters on cloud providers: failure recovery, disaster recovery, backups and resizing.
Stars: ✭ 149 (-3.25%)
Mutual labels:  database
Flask Migrate
SQLAlchemy database migrations for Flask applications using Alembic
Stars: ✭ 1,971 (+1179.87%)
Mutual labels:  database
Bats
面向 OLTP、OLAP、批处理、流处理场景的大一统 SQL 引擎
Stars: ✭ 152 (-1.3%)
Mutual labels:  database
Myproxy
A sharding proxy for MYSQL databases
Stars: ✭ 153 (-0.65%)
Mutual labels:  database
Spark With Python
Fundamentals of Spark with Python (using PySpark), code examples
Stars: ✭ 150 (-2.6%)
Mutual labels:  database
Tera
An Internet-Scale Database.
Stars: ✭ 1,846 (+1098.7%)
Mutual labels:  database
Norm
Access a database in one line of code.
Stars: ✭ 152 (-1.3%)
Mutual labels:  database
Deno Sqlite
Deno SQLite module
Stars: ✭ 151 (-1.95%)
Mutual labels:  database
Quill
Compile-time Language Integrated Queries for Scala
Stars: ✭ 1,998 (+1197.4%)
Mutual labels:  database
Relaxo
Relaxo is a transactional document database built on top of git.
Stars: ✭ 149 (-3.25%)
Mutual labels:  database
Immudb
immudb - world’s fastest immutable database, built on a zero trust model
Stars: ✭ 3,743 (+2330.52%)
Mutual labels:  database
Us Car Models Data
This repo contains approximately 10K car models data that are available in the United States between 1992-2020
Stars: ✭ 154 (+0%)
Mutual labels:  database
Peloton
The Self-Driving Database Management System
Stars: ✭ 1,887 (+1125.32%)
Mutual labels:  database
Hbase Connectors
Apache HBase Connectors
Stars: ✭ 153 (-0.65%)
Mutual labels:  database

About

An open place to share compliance results of board's firmwares with BIOS, UEFI, ACPI, Multiboot... Anything your software (bootloader, OS...) may rely on.

Every non ad hoc operating system highly relies on standardized interfaces that the firmware and the bootloader(s) are largely responsible for (e.g., the physical memory mapping, EFI services). Non compliant firmwares are likely to cause serious problems and undefined behaviours (e.g., bootloader errors, power management issues). Since firmwares of proprietary boards cannot be replaced with better ones, you could end up with an unusable board. So far, you can only hope and cross your fingers to purchase a board with a firmware correctly implementing the features your OS expects.

Every firmware developer should provide these results. Until then, feel free to share with the community, especially if your results show important errors... Standard testing tools such as Firmware Test Suite (FWTS) or Linux UEFI Validation (LUV) are freely available and allow you to test your firmware with a live CD/USB very simply.

Consulting Results

This repository is meant to be very simple and as straightforward as possible. Results are catalogued per system vendors, system names, motherboard names, etc. But you should use a search engine (e.g., GitHub's) when looking for specific results.

Use http://rawgit.com/ to render html results without cloning the repository (demo).

To avoid dead links, a new version tag is released every time new results are merged. Allowing you to share permalinks by browsing this repository by tags instead of moving branch heads such as master.

Testing your firmware

Live images are available and are the easiest way to test your firmware without modifying your OS setup. Simply download it, copy it on a USB key, and boot from it (telling your firmware to do so). Please follow the official documentation of the tool you chose.

Ubuntu's Firmware Test Suite (FWTS) - recommended

Allows to test BIOS, UEFI and ACPI interfaces.

The Firmware Test Suite is officially recommended by the UEFI Board of Directors for ACPI Self-Certification Test.

Live Image

The easiest way to run it is using the live image. It does everything for you: from running the tools according to the test suites you selected, to saving the results in the key. You can then send the result with a pull request ;)

Command line

Install or compile FWTS from the sources.

Usage example:

# root privileges required
$ mkdir my-test && cd my-test
$ fwts -d -f --log-type plaintext,html --batch
# ask fwts to run every non-interactive tests available (--batch), dump firmware log files (-d),
# log the results in HTML (--log-type), and recreate new logs (-f).
$ ls
results.html acpi.log lspcidump.log dmesg.log ...

Refer to the reference for more details about available test suites.

Intel's Linux UEFI Validation (LUV)

Linux UEFI Validation. Similar to FWTS.

Live Image

The easiest way to run it is also using the live image. It does everything for you: from running the tool, to saving the results in the key. You can then send the resulting directory with a pull request ;)

Contributing - Sharing results

Expected Results

Please read the section Testing your firmware to run your tests and include:

  • HTML results for easier reading (using rawgit, as already explained).
  • Plain text results to allow diffing between test variants.
  • As much logs as you want, especially if you are reporting bugs to firmware teams.
  • Remove serial numbers from your logs.

Storing Results

The shell script scripts/fwtr.sh will guide you to store your results. A POSIX shell and GNU Awk are required.

$ ./scripts/fwtr.sh --help
Usage: ./scripts/fwtr.sh [--help] <command> <args>

COMMANDS
  add [<options>] <logs>...
    Add new test results in the repository. Retrieve data from the logs and
    store them accordingly.

    Options:
      --dry-run
        Do not execute the commands adding the results in the repository.
        Useful to see what would happen and what can be retrieved from the logs.

      --test-id=ID
        Force the test ID. Default is the test date in the logs.

      --system-vendor=NAME
        Force the system vendor name. Default is retrieved from the
        BIOS Information Table in the logs.

      --bios-vendor=NAME
        Force the BIOS vendor name.

      --product-name=NAME
        Force the product name.

      --board-name=NAME
        Force the board name.

      --bios-version=NAME
        Force the BIOS version.

It applies the following template to the BIOS Information table contained in your result logs:

<system-vendor>/<product-name>/<board-name>/<bios-vendor>/<bios-version>/<tool-name>/<test-id>

If some data is missing or wrong, options are available to force their values. You are greatly advised to use --dry-run to see what happens.

Since this tool needs to be further validated, the script is interactive and asks you to review retrieved data.

Writing the README.md

A README.md template is created by the tool. Please describe as much as possible the BIOS settings that may influence your results (e.g., UEFI boot disabled). Note that tools like FWTS allow you to unselect test suites so that you only cover what your settings enable. FWTS is also generally able to skip disabled features.

Examples

Results with a good BIOS Information table

fwtr.sh add don't need further options with results from a motherboard whose BIOS Information table is correctly programmed.

$ ./scripts/fwtr.sh add my_dell_inspiron_3521_test/results.log
fwtr add: probing the result format...
fwtr add: `fwts` version `V16.01.00` detected.
fwtr add: retrieving BIOS informations...

fwtr add: Collected data:
fwtr add: BIOS Vendor:       dell
fwtr add: BIOS Version:      A12
fwtr add: BIOS Release Date: 10/25/2013
fwtr add: Board Name:        0010T1
fwtr add: Board Version:     A00
fwtr add: Product Name:      Inspiron 3521
fwtr add: Product Version:   A12
fwtr add: System Vendor:     dell

fwtr add: Test ID:                       20160209_130610
fwtr add: Source Test Results Path:      my_dell_inspiron_3521_test
fwtr add: Destination Test Results Path: ./scripts/../dell/inspiron-3521/0010t1/dell/a12/fwts/20160209_130610

fwtr add: please review previous logs before continuing.
fwtr add: options are available in order to correct wrong informations by forcing values.
fwtr add: continue? (C-c or C-d to exit)
[...]

Results with an incomplete or wrong BIOS Information table

fwtr.sh add should not fail but it won't be able to end with a correct result. If mandatory values are missing, fwtr.sh add should report you the error. But if the table contains wrong informations, only you can correct it by using fwtr.sh add options.

Here is an example of a table with dummy entries (probably read from an uninitialized ROM):

$ ./scripts/fwtr.sh add --dry-run my_intel_nuc_de3815tykhe/results.html
fwtr add: probing the result format...
fwtr add: `fwts` version `V16.01.00` detected.
fwtr add: retrieving BIOS informations...
ERROR: unknown vendor name `���������������������������������`
       please add your new vendor name in `to_vendor_id()` function

fwtr add: Collected data:
fwtr add: BIOS Vendor:       intel
fwtr add: BIOS Version:      TYBYT10H.86A.0046.2015.1014.1057
fwtr add: BIOS Release Date: 10/14/2015
fwtr add: Board Name:        DE3815TYKH
fwtr add: Board Version:     H26998-401
fwtr add: Product Name:      ���������������������������������
fwtr add: Product Version:   ���������������������������������
fwtr add: System Vendor:     error

fwtr add: Test ID:                       20160206_220323
fwtr add: Source Test Results Path:      my_intel_nuc_de3815tykhe
fwtr add: Destination Test Results Path: ./scripts/../error/���������������������������������/de3815tykh/intel/tybyt10h.86a.0046.2015.1014.1057/fwts/20160206_220323

fwtr add: please review previous logs before continuing.
fwtr add: options are available in order to correct wrong informations by forcing values.
fwtr add: continue? (C-c or C-d to exit)
<C-c keystroke>

You can see this table has some uninitialized entries. Values need to be provided manually:

$ ./scripts/fwtr.sh add --system-vendor intel --product-name nuc my_intel_nuc_de3815tykhe/results.html
fwtr add: probing the result format...
fwtr add: `fwts` version `V16.01.00` detected.
fwtr add: retrieving BIOS informations...
ERROR: unknown vendor name `���������������������������������`
       please add your new vendor name in `to_vendor_id()` function

fwtr add: Collected data:
fwtr add: BIOS Vendor:       intel
fwtr add: BIOS Version:      TYBYT10H.86A.0046.2015.1014.1057
fwtr add: BIOS Release Date: 10/14/2015
fwtr add: Board Name:        DE3815TYKH
fwtr add: Board Version:     H26998-401
fwtr add: Product Name:      nuc [forced]
fwtr add: Product Version:   ���������������������������������
fwtr add: System Vendor:     intel [forced]

fwtr add: Test ID:                       20160206_220323
fwtr add: Source Test Results Path:      my_intel_nuc_de3815tykhe
fwtr add: Destination Test Results Path: ./scripts/../intel/nuc/de3815tykh/intel/tybyt10h.86a.0046.2015.1014.1057/fwts/20160206_220323

fwtr add: please review previous logs before continuing.
fwtr add: options are available in order to correct wrong informations by forcing values.
fwtr add: continue? (C-c or C-d to exit)
[...]

Forcing values won't avoid their parsing from the logs. Values are only overwritten after the parsing. This is why error messages from text sanitizers are still present.

Still need help?

If things are still unclear, place your result folder wherever you think it should be using fwtr.sh add and create a pull request that will be reviewed and reworked before merging if required.

License

CC0
To the extent possible under law, farjump has waived all copyright and related or neighboring rights to the Open Database of Firmware Test Results.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].