Everything about Libreboot!

LibreBoot

In this blog post, details about Libreboot, its purpose and all is provided in detail. To understand the concept of libreboot better, read my posts on BIOS vs Bootloader, and all the other related blog posts, referenced here.

All computers need BIOS firmware for it to initialise and run programs, games and other software. Refer my blog post on BIOS and bootloader. At this time the most supported hardware is older because it sounds like Intel is not very friendly to this movement and does not like to release documentation or information about their products.

What is it?

Libreboot (formerly known as GNU Libreboot[5]) is a free software project aimed at replacing the proprietary BIOS firmware found in most computers with a libre, lightweight system designed to perform only the minimum number of tasks necessary to load and run a modern 32-bit or 64-bit operating system.[1]

Libreboot is established as a distribution of coreboot without proprietary binary blobs. Libreboot is not a straight fork of coreboot; instead, it is a parallel effort that works closely with and re-bases every so often on the latest coreboot as the upstream supplier, with patches merged upstream whenever possible. In addition to removing proprietary software, libreboot also attempts to make coreboot easy to use by automating the build and installation processes.[2]


Why use it?

You might be wondering why should you even be worried about such a thing that does not affect much. But let me tell you, if you are an open source enthusiast and don’t like the hidden curtains behind your softwares and computers. You should give it a shot and also it is faster, safer and more open than your current BIOS firmware.

But the real reason being, If you are privacy freak and worried about the backdoors that few software companies and government agencies might have implanted on your system without your consent, you should consider using libreboot as your BIOS firmware. You might have replaced all of the hardware, operating system and all utility programs to their open-source equivalent to have more control over those. But, did you really changed all the softwares?, even those required to put your system live to run other softwares? Yes, I am talking about BIOS firmware, hardware realted firmwares like bluetooth, wifi(which are not most-probably be open-source) and bootloader.

You might have also replaced to an open-source bootloader, may be GRUB, but what about your BIOS firmware? The hardware manufacturers usually install their closed source version of BIOS to fuel up your system over which you have no control and you don’t know, if it might contain any malicious software uptil now…

According to Libreboot website:

Why use libreboot? Many people use non-free boot firmware, even if they use GNU/Linux. Non-free BIOS/UEFI firmware often contains backdoors, can be slow and have severe bugs, where you are left helpless at the mercy of the developers; you have no freedom over your computing.

Advantages of LibreBoot

  • Fast
  • Secure with no backdoors
  • Open Source and released under GPL V3.0

Libreboot provides the missing jigsaw puzzle piece which you must be finding for ages but didn’t find. So, you need libreboot to fix your whole system but there’s a catch! Since, these BIOS firmware are very low level and hardware dependent programs, libreboot is not supported by all hardware that exist in market, mostly because the hardware related specifications are not open to all.

But also, there’s a good news which you must be waiting, how to install it on your system?

  1. Buy the supported hardware, a system with all the open source hardware and software. Here are some suggestions and some suppliers which provide preinstalled libreboot in their system.

  2. Install qemu, a virtualization software and put the piece back to its place. Refer my Blog post on Qemu to know more.Here

Founder/Creator

LibreBoot is created by Leah Rowe, who created this project to make a “Binary Blob” free version of “CoreBoot”. She is also the founder of Minifree, only company that sells GNU+Linux computers with the Libreboot firmware and Trisquel GNU+Linux operating system preinstalled.


History

Libreboot was launched in 2013 to make a free software version of coreboot (by removing “binary blobs” included in the coreboot source code). Since February 2015 the project has been endorsed by Free Software Foundation (FSF). The project became part of the GNU Project in May 2016.

Coreboot

Coreboot (formely known as LinuxBIOS) is another opensource firmware project that further leads to Libreboot but there’s a difference between both of them. Coreboot, although being opensource, use various propietary firmwares along to support more number of hardware and devices.

Nothing better than simply said: Libreboot is basically Coreboot without “Binary blobs”.

According to wikipedia:

coreboot has a number of variants from its original code base each with slightly different objectives:

  • librecore - A variant with more focus on freedom, non-x86 and firmware development frameworks.
  • libreboot - A variant with a primary focus to remove all binary blobs.

To know more about coreboot follow its wikipedia page here or its documentation here.

Journey to GNU family

In September 2016 the lead developer announced that the project would leave the GNU Project and in January 2017, Richard Stallman announced that Libreboot was released from the GNU project and later in April 2017, Libreboot again join forces with GNU family. Refer this.


Supported Systems

As stated above, since Libreboot and coreboot, both have to ported to every chipset and motherboard, they are available for only a limited number of hardware and motherboard platform. The list of supported hardware can be found here.

‘Supported’ means that the build scripts know how to build ROM images for these systems, and that the systems have been tested (confirmed working). There may be exceptions; in other words, this is a list of ‘officially’ supported systems.

It is also possible to build ROM images (from source) for other systems (and virtual systems, e.g. QEMU).


How to install it?

Since to install libreboot various dependencies have to be met, most important being the hardware support. So, The install instruction requires you to install “Qemu” as a dependency. Read this post to get more insights. Also, Since libreboot might not be supported by hardware, the following install procedure is meant for the libreboot installation on Qemu virtual machine.

Download from source/git[3

  • git clone https://notabug.org/libreboot/libreboot.git Follow this page for further reference.

Installation

* * * * *

Note: If for some reason, you fail to install libreboot yourself. You may have a GNU+Linux User Group, free software workshop or hackerspace near you that can help you with installing Libreboot, for instance.


Wanna Contribute!

Great, You landed exactly the place you wished for. I am contributing to it and will document everything for you to help. This post and others are part of my contribution journey.

Contact the project maintainers on:


References

To all the blog posts required by anyone to get the grasp of the BIOS, bootloader, LibreBoot, OpenSource and its contribution, and other softwares like qemu.

  • To understand how your computer initialises, follow this post.
  • Binary Blobs
  • To contribute to open source softwares, read this guide
  • My Blog post on how to contribute to open source software (OSS).
  • Free as in Freedom.
  • LibreBoot documentation.

Till then,

To infinity and Beyond!

Everything about QEmu!

Qemu

(Created by: Fabrice Bellard )

It is the blog post where all the required details are gathered for you to get the insights of Qemu software, its installation and how to get started with it and open source softwares.

What is it?

QEMU is a generic and open source machine [emulator] and [virtualizer]. When used as a machine emulator, QEMU can run OSes and programs made for one machine (e.g. an ARM board) on a different machine (e.g. your own PC). By using dynamic translation, it achieves very good performance.

When used as a virtualizer, QEMU achieves near native performance by executing the guest code directly on the host CPU. QEMU supports virtualization when executing under the Xen hypervisor or using the KVM kernel module in Linux. When using KVM, QEMU can virtualize x86, server and embedded PowerPC, 64-bit POWER, S390, 32-bit and 64-bit ARM, and MIPS guests.[1]

According to wikipedia:
QEMU is a hosted virtual machine monitor: it emulates CPUs through dynamic binary translation and provides a set of device models, enabling it to run a variety of unmodified guest operating systems. It also can be used with KVM to run virtual machines at near-native speed (requiring hardware virtualization extensions on x86 machines). QEMU can also do CPU emulation for user-level processes, allowing applications compiled for one architecture to run on another.

In a nutshell, You can run your system as a completely different hardware configuration without affecting anything on your system.

History

The history of qemu is still a mystery to me. Hope you understand git history :)
The git history of Qemu is here.

If you find more about qemu's history, comment below to share.

How to install it?

1. From .tar.xz

Follow these steps:
  1. wget https://download.qemu.org/qemu-2.xx.x.tar.xz
  2. tar xvJf qemu-2.xx.x.tar.xz
  3. cd qemu-2.10.1
  4. ./configure
  5. make

Note: Replace qemu-2.xx.x.tar.xz with the correct version number. (qemu-2.10.1.tar.xz)

2. From Linux Package Managers

QEMU is packaged by most Linux distributions[2]:

  • Arch:
    pacman -S qemu
  • Debian/Ubuntu:
    apt-get install qemu
  • Fedora:
    dnf install @virtualization
  • Gentoo:
    emerge --ask app-emulation/qemu
  • RHEL/CentOS:
    yum install qemu-kvm
  • SUSE:
    zypper install qemu

3. From Source/Git

  1. git clone git://git.qemu.org/qemu.git
  2. cd qemu
  3. git submodule init
  4. git submodule update --recursive
  5. ./configure
  6. make

4. MacOs

  1. brew install qemu


How to set up your system using qemu?

(Follow this qemu documentation if need further reference.)

Unlike other virtualization programs such as VirtualBox and VMware, QEMU does not provide a GUI to manage virtual machines (other than the window that appears when running a virtual machine), nor does it provide a way to create persistent virtual machines with saved settings. All parameters to run a virtual machine must be specified on the command line at every launch, unless you have created a custom script to start your virtual machine(s). However, there are several GUI front-ends for QEMU:

  •     virt-manager
  •     gnome-boxes
  •     qemu-launcher
  •     qtemu
  •     aqemuAUR

Additional front-ends with QEMU support are available for libvirt.[3]

QEMU is a processor emulator and supports emulation of ARM, PowerPC, SPARC, x86, x86-64 and more. QEMU has two operating modes[4]:
  •  User mode emulation: QEMU can launch Linux processes compiled for one CPU on another CPU, translating syscalls on the fly.
  •  Full system emulation: QEMU emulates a full system (virtual machine), including a processor and various peripherals such as disk, ethernet controller etc.

To setup a working environment, a virtual machine on qemu, follow following steps:
  •  


Wanna Contribute!

Like any open-source project, anyone excited enough, can contribute to qemu.  First to get started in open source world is to start using them.
  1. Install qemu on your device.
  2. Test it for a few days and check if it is your type or not.
  3. If it suits you, take a step ahead towards its contribution, peek into its source code. (You can download its source code from its git repository here or its Github repository here.
  4. Contact with the project maintainers and ask them to help if needed.
  5. Get yourself assigned to few simple and basic issue/tasks by the project maintainers to dive a little deeper.

You can also take help from various open source awareness programs like:

To Contact the project maintainers:
  • Join the project mailing list for their updates and to ask any doubts if you have.
  • Join their group on whatever medium they have (Slack, IRC, Telegram, Google Groups...).  The irc channel for qemu is #qemu on freenode network.




References

About:

Setup:

Others:


Check my blog posts on LibreBoot and its contribution to get more insights.
Till then, To infinity and Beyond !

Moving!

It's been a long time, since I published anything here, but that doesn't mean I stop writing, I kept writing everyday, just didn...