Piotr Król

Founder and Embedded Systems Consultant at 3mdeb as well as freelance CTO of Vitro Technology and CEO of LPN Plant. Passionate about building firmware that enables advanced hardware features in modern products. Dedicated to customers that treat embedded software security and upgradeability as forethought. Open source firmware evangelist interested in platform security and trusted computing. In favor of fixed price projects with a clear definition of success.

Social media profiles

Check GitHub profile


Articles (83)


Prepare for Ruby on Rails on Debian wheezy

Published at November 18, 2012 ·  3 min read

I start to learn Ruby on Rails. As always when you learn new programming language toolchain is required. In this tutorial I will try to go through toolchain preparation for my Debian wheezy. Of course I based on Vim as my editor of choice. Second requirement will be using some parts of toolchain in latest greatest version. As a beginner point for learning Ruby on Rails I choose this tutorial. I will try to use their methods of setting environment adding my comments where it is needed....

Categories: app-dev

Mutt tutorial part 4 - html mails, address book and other useful features

Published at May 13, 2012 ·  2 min read

How mutt can handle mails in html format ? Takling about html mail handling is talking about handling any type of Multipurpose Internet Mail Extensions. Mutt supports handling for all MIME types in one place for all programs. This place is .mailcap file. Googling a little bit I found below mailcap file configuration (kudos to Bart Nagel). 1 2 3 4 text/html; pandoc -f html -t markdown; copiousoutput; description=HTML Text; test=type pandoc >/dev/null text/html;lynx -stdin -dump -force\_html -width 70; copiousoutput; description=HTML Text; test=type lynx >/dev/null text/html; w3m -dump -T text/html -cols 70; copiousoutput; description=HTML Text; test=type w3m >/dev/null text/html; html2text -width 70; copiousoutput; description=HTML Text; test=type html2text >/dev/null Of course we need to install all applications to make mailcap work correct:...

Categories: miscellaneous

Mutt tutorial part 3 - sidebar, URLs in e-mails

Published at May 13, 2012 ·  2 min read

Information in this post came from lunar linux page. Kudos to its author. In this post I want to discuss two topics: sidebar and how to open urls form inside mutt. Sidebar is mutt feature delivered in mutt-patched package in Debian. It cause to split standard mutt window in two parts. In first we can find list of folders defined in the $HOME/.muttrc file, second window is a known old window with the list of posts....

Categories: miscellaneous

Mutt tutorial part 2 - secure login

Published at May 13, 2012 ·  2 min read

This is second post of mutt tutorial series. As in the previous post for below information I need to thank Kousik for posts about gpg and using it with mutt. But probably the most important to simplify this method was Fau comment here. So going to the point of secure login for mutt we need gpg. First of all we need to install it by simply: 1 sudo apt-get install gpg After that we generate our keys by:...

Categories: miscellaneous

Mutt tutorial part 1 - setup IMAP account

Published at May 13, 2012 ·  3 min read

Mutt is one of those programs that make people call you a linux geek, nerd or a snob. This is because using TUI or command line tools in world of fancy GUI for most people is weird. What’s so great about mutt? I probably still have not found much of its advantages, but at first glance we can notice a few things. First, it keeps Unix convention of small programs for specific task “Make each program to one thing well” or KISS....

Categories: miscellaneous

Vim as a Blogger editor

Published at April 21, 2012 ·  2 min read

Blogger.vim is a vim plugin for interfacing with Google’s Blogger. Below I will use my workspace git repository. To use this plugin we need pretty new ruby >= 1.9.2 and gems nokogiri and net-https-wrapper. Let’s install latest possible ruby for Debian, before that make sure you have latest updates: 1 sudo apt-get update sudo apt-get upgrade sudo apt-get dist-upgrade And ruby: 1 sudo apt-get install ruby1.9.3 Before we install gems , we need to resolve some dependencies:...

Categories: miscellaneous

Debugging coreboot in qemu environment - part 2

Published at April 18, 2012 ·  2 min read

In previous post coreboot was configured and installed. Here we try to establish good debugging environment for it. To create a good emulated environment to debug, research and learn coreboot few tricks are required. First of all we need to know how to run our emulated environment (qemu). What I mean by that?...

Categories: firmware

Building ARM toolchain? part 2: gcc and eglibc

Published at April 12, 2012 ·  4 min read

Unfortunately after few tries of cross compiling eglibc using different source for instructions I always end with hard to solve issues. Luckily, in the sources of eglibc I noticed instructions for cross-compiling written long time ago by Jim Blandy(I know i should start here). Lot of thanks to him for it. Below I describe my experience which I gained during eglibc cross compilation for arm-unknown-linux-gnueabi and procedure that I used. Commands below contain some constants that I used in previous works....

Categories: app-dev os-dev

How to download videos from videos.linux.com

Published at April 6, 2012 ·  1 min read

Therefore, I’m leaving for the Easter holidays I wanted to download some lecture on embedded systems, which was presented at the 2012 Embedded Linux Conference. Although I regret I found that I could not find as good quality copy in the network as on the Linux Foundation page. It is unfortunate that linux.com site does not have the possibility of direct downloading video files. But there is a workaround. Follow below tutorial:...

Categories: miscellaneous

Building ARM toolchain - part 1: libs and binutils

Published at March 20, 2012 ·  3 min read

Searching the Internet for information on how to build arm toolchain from scratch I realize that it is very hard to find information about this matter (and recent one even harder). I will try to fill this lack of information and try to build toolchain. My main goal is to use a component based on the GNU public license, and using them in as the newest version as it is possible....

Categories: app-dev os-dev