fwupd: update UEFI firmware from session software

chipUpdating firmware on a device is, in general, tricky. Most vendors ask to boot into BIOS mode, or a DOS/custom environment and apply the update files which typically come as binary files. In short, there’s no standard procedure. Things change a bit with UEFI where the specification and the stakeholders target standardizing many of the associated processes too. Continue reading fwupd: update UEFI firmware from session software

Symple: Ubuntu desktops at $89

Imagine a Ubuntu Linux desktop with respectable specs for $89! A cost-effective fit for classroom labs, call-centers, non-profit organizations or small businesses. Symple makes it true using desktops re-manufactured from 100% recycled products. The goal of the project is to utilize our e-waste and use it for purposes which benefit low-budget or underprivileged situations.

Symple started as an idea of its founder, Jason Spisak, in 2001. It’s driven by our responsibilities to the planet. in addition to re-using e-waste the organization also donates $2 per unit sold to software projects that make this possible such as Debian, Ubuntu and LibreOffice via Software in the Public Interest, and sends them each a check every six months.

Features & Specs

  • At least 2GB of RAM (DDR2 or Better)
  • At least 2.8GHz single core or better (Intel or AMD processor)
  • At least 80GB SATA HD
  • At least 10/100 Ethernet or better
  • At least VGA port (Integrated)
  • At least 2 USB Ports or more
  • At least 1 audio out port
  • 1 Year Advanced Replacement Warranty
  • Ships with Ubuntu 14.04. Will receive security updates till Apr 2019.
  • Encased in 12.5×12.5×6.25 of 1/8th inch black recycled ABS plastic
  • Shipped in 100% non-virgin fiber packaging
  • Around 50% of the shipping weight of a standard desktop tower

Webpage: Symple

go-wol: Wake on LAN in Go

p2p_network_compgo-wol is Wake on LAN packet generator written in Go. Wol on LAN (WOL) is a data link layer protocol to wake up systems remotely by sending a magic packet to the network card. Note that WOL should be supported by the hardware. Normally there is a setting in system BIOS to enable or disable WOL.

The WOL enabled device listens for a magic packet with its MAC address encoded in WOL scheme. As the protocol works in the data link layer, IP address is irrelevant. The magic packet has 6 bytes of 0xff followed by 16 repetitions of the target device’s MAC address (total of 102 bytes). go-wol generates this magic packet with the MAC address provided by the user and sends it out as a UDP broadcast.


  • Wake up devices remotely using WOL
  • Store and manage MAC address aliases


To install the package you need to have golang packages installed on your device. Run the following commands to install go-wol:

$ sudo apt-get install golang
$ go get github.com/sabhiram/go-wol


  • Wake up a device
    $ wol wake 00:11:22:aa:bb:cc
  • Store an alias
    $ wol alias skynet 00:11:22:aa:bb:cc

    Aliases are stored in ~/.config/go-wol/aliases

  • Wake up a device using alias
    $ wol wake skynet
  • List aliases
    $ wol list
  • Delete an alias
    $ wol remove skynet
  • Specify broadcast IP and port
    $ wol wake 00:11:22:aa:bb:cc -b -p 7
    $ wol wake skynet --bcast --port 7

    Default broadcast IP:, port: 9

  • Supported MAC address formats
  • Unsupported MAC address formats
    01 23 45 56 67 89

On GitHub: go-wol

Behold Raspberry Pi 2!

raspberry_pi_compThe second model of the highly popular Raspberry Pi board hit the market today. The news first broke in The Register. The announcement is also live on Raspberry Pi website now. Hackers have another top board to get their hands dirty with. The new board is officially named Raspberry Pi 2 Model B. With the new hardware spec it’s expected to deliver at least 6x times than the earlier B+ model.


  • Broadcom BCM2836 900MHz quad-core Cortex-A7 (ARM) SoC
  • 1 GB RAM
  • What remains same as in B+:
    > Form factor
    > Full size HDMI port
    > 10/100 Ethernet port
    > CSI camera port and DSI display ports
    > micro USB power supply connection

As you can see, the SoC is a quad-core one and it’s nothing less than a mini-PC with the ability to play HD videos. If you aren’t sure what to do with it, you can have a superb media center with this board (HowTo with B+ model).

To install on Pi 2, you’ll need an updated NOOBS or Raspbian image including an ARMv7 kernel and modules from the official Raspberry Pi website downloads section. As per an update from Ubuntu, Snappy Ubuntu Core will run on Raspberry Pi 2.

Grab it!

Pi 2 is priced at $35. Same as the earlier B+ model! Tentatively 100,000 units will be available in the first go. So we can expect more outlets pretty soon. You can order it at the following websites:

Stresslinux: load test your box

Want to put your system under extreme load and test the performance, stability and thermal conditions? If you are a system builder, overclocker or the die-hard gamer looking for a robust hardware, you might. Stresslinux is a Linux mini-disto to do all kind of hardware load testing.

Stresslinux is built from SUSE Studio build system and is a OpenSUSE variant. It can run from a bootable cdrom, usb, virtual machine or via PXE (wip). It comes with cmdline utilities for system stress testing and does not have a GUI.

The default username and password for Stresslinux is stress. The user is a sudoer. The default root password is stresslinux.

Let’s check out some of the tools that come with Stresslinux:

  • stress: workload generator for POSIX systems. It imposes a configurable amount of CPU, memory, I/O, and disk stress on the system.
  • cpuburn: overclock and test your CPU.
  • hddtemp: monitor hard disk temperature.
  • lm_sensors: read CPU temperature sensor chip data.
  • mprime: overclock and test system stability.
  • smartmontools: monitor S.M.A.R.T. attributes and run hard drive self-tests.
  • memtester: userspace utility for testing the memory subsystem for faults.
  • netperf: network performance benchmarking tool.
  • ramspeed: a cache and memory benchmarking tool.
  • y-cruncher: scalable multi-threaded Pi-benchmark for multi-core systems.

The distro has versions to be downloaded for burning on both Linux and Windows. The download size is around 200MB.

Webpage: Stresslinux

TrackingPoint 338TP rifle hits within a mile, uses Linux

If you ever used a gun, you might already know how difficult it is to hit a target at a mile’s distance. Word was out recently that the US army is testing rifles which can hit a target accurately even if the shooter is not an expert or the aim is not accurate, turns out it’s based on Linux.

The 338TP is the latest model from TrackingPoint, based in Austin, Texas. It’s a Precision-Guided Firearm which implements the same lock-and-launch technology found in fighter jets. Because of the range of accuracy, it is also called the Mile Maker. It was demonstrated at the Consumer Electronics Show (CES) in Las Vegas this January.

As for the hardware, the 338TP bases on the .338 Lapua Magnum, which started as a design for the US Marine sniper rifles. The rifle uses laser technology to latch on or “tag” the target. TrackingPoint calls it the Tag-and-Shoot tech. It also takes care of wind speed, direction, temperature, and barometric pressure through sensors. The data is fed to a Linux based chip which automatically tracks the latched target. The tracking system then guides the trigger release. Once the trigger is pulled, the device calculates the precise location of the target based on all the factors and the bullet goes off. It takes around a second with this gear.

The firearm comes with Heads Up Display (HUD), Permanent Zero (no need to bother about zeroing-in twice), TriggerLink (electronic connection between the tracking optic and the guided trigger), ShotView App (streams real-time video from the Precision-Guided Firearm to a ShotGlass on the Recon Jet wearable, smart phone, or tablet) and Virtual Rest.

The 338TP will cost around $40K with 200 rounds of ammo (approx. $8 per round).

TrackingPoint has been using Linux for many of its models. The careers section clearly mentions that an applicant for an engineer’s position should be working in and with Linux. Knowledge of Linux device drivers is an additional advantage.

Not a regular area where you see Linux, right? But it definitely proves what the OS is capable of! How about an error detecting pen?

Webpage: TrackingPoint

intel_frequency: manipulate Intel GPU frequency

tux_compBenjamin Widawsky has pushed a new tool to change the frequency of Intel GPUs from userland. This is not a new functionality as this could be done using sysfs but this tool brings it to end users. The tool should be useful for debugging performance issues or benchmarking. It does not allow any GPU overclocking or any functionality not allowed via sysfs. Also note that the tool underwent minimal testing at the time of writing.


The name of the tool is intel_frequency. It should be run as the root user or sudoer. Options:

  • Get current, min, max and efficient frequencies
    $ sudo intel_frequency --get=cur,min,max,eff
    $ sudo intel_frequency -g
    cur: 200 MHz
    min: 200 MHz
    RP1: 200 MHz
    max: 1200 MHz
  • Another way to get a particular frequency
    $ sudo intel_frequency -geff
    RP1: 200 MHz
  • Lock frequency to an absolute value
    $ sudo intel_frequency --set min=300
  • Set a custom max (or min) frequency
    $ sudo intel_frequency --custom max=900
  • Lock frequency to the most efficient frequency
    $ sudo intel_frequency -e
    $ sudo intel_frequency -g
    cur: 200 MHz
    min: 200 MHz
    RP1: 200 MHz
    max: 200 MH
  • Lock frequencies to the max frequency
    $ sudo intel_frequency --max
    $ sudo intel_frequency -g
    cur: 1200 MHz
    min: 1200 MHz
    RP1: 200 MHz
    max: 1200 MHz
  • Lock frequencies to the min frequency (DEBUG only)
    $ sudo intel_frequency --min
    $ sudo intel_frequency -g
    cur: 200 MHz
    min: 200 MHz
    RP1: 200 MHz
    max: 200 MHz

The patch is available here in the Intel Graphics mailing list, waiting to be added to the Intel GPU tools package (at the time of writing).

Reduce effective area of touchpad on Linux

cool_penguin_smallHaving a large laptop touchpad poses severe threat to typing. My touchpad is quite sensitive and whenever the lower areas of my palm touch the touchpad the pointer moves away. While the brilliant engineers at Sony designed this, it is counter-productive. And moving around with a mouse (when you have a touchpad) doesn’t see like a bright idea to me.

This morning I was quite determined to fix the problem, even if it needs a hook in the driver. Turned out if your touchpad uses the Synaptics driver, you can reduce its effective area easily. There is a userspace utility to change the parameters at runtime.

Get the default x and y axis range for your touchpad:

$ less /var/log/Xorg.0.log | grep -i range
[ 20.616] (--) synaptics: SynPS/2 Synaptics TouchPad: x-axis range 1472 - 5638 (res 37)
[ 20.616] (--) synaptics: SynPS/2 Synaptics TouchPad: y-axis range 1408 - 4714 (res 59)

As you can see from the results, for me the width is 5638 and height is 4714.

I adjust these as below:

$ synclient AreaRightEdge=5000 AreaLeftEdge=2000 AreaBottomEdge=4000

The arguments are self-explanatory. If you want to adjust the upper limit, use AreaTopEdge.

Enable two finger scrolling for a better experience.

Play HD video on Pi and watch on TV

raspberry_pi_compRecently I connected my Raspberry 1 Pi (Model B) board to watch up to 1080p HD videos on my TV. I can control the XMBC interface using TV remote. It’s a quicker way than connecting your laptop to your TV. The videos can be stored on a USB pen drive. Here’s a no-brainer guide to do the same from Linux. Nothing fancy and anyone can do it easily.


  • Raspberry Pi 1 Model B powered using the micro USB (again connected to TV)
  • Class 6 SD card of 2GB or greater capacity
  • A TV with HDMI capability
  • 1 USB flash drive to store your video files


  1. Download Raspbmc latest Standalone Image.
  2. Extract the file
    $ gunzip raspbmc-2014-11-24.img.gz
  3. Attach the SD card t your laptop and write the image on the card
    $ sudo dd bs=4M if=sd.img of=/dev/mmcblk0
    //where mmcblk0 is the SD card device node
    //double check using 'fdisk -lu' command
  4. Connect Pi and TV using HDMI cable
  5. Attach the USB flash drive (with videos) to Pi
  6. Power on Pi using the Micro USB cable from any source

Once Pi powers on, it will configure Raspbmc. This may take up to 5 minutes and is a one time operation. Once the boot procedure is complete you will be greeted with the XMBC screen on the TV screen.

f3: check true capacity of USB drives

cool_penguin_smallFake USB flash drives exist. The actual capacity of such a drive is much less than advertised and when you fill them up you lose your data. How do you detect these fake USB drives and get to know the true capacity?

f3 is the software that can come to your aid. It follows a simple algorithm: fill the whole drive with a data of known pattern and read the whole data to determine how much of it is correctly readable.

f3 is open source, free and supports multiple platforms – Linux, Apple Mac, Windows/Cygwin and FreeBSD.

To use f3 you need to compile it from source. Get it from the GitHub repository and run:

$ make


Mount the pen drive you want to test. f3 has two components or utilities to write and read data. You do not need to be root to run the utilities. Example usage:

$ ./f3write /media/5EBD-5C80/
$ ./f3read /media/5EBD-5C80/

Webpage: f3