Running Ubuntu on Zynq-7000

I have lately needed to get Ubuntu running on my Zynq, and as usual, it required a bit more a following a recipe. My final goal was to run a macro benchmark where the task was to compile the Linux Kernel for ARM in the Zynq itself. In this post, I will go through what are the necessary steps to get Ubuntu running on the Zynq, what is needed to get a working apt-get, and finally how to fix some compilation errors when compiling the kernel. Note that the last point is not specific for the kernel, but it can happen even when compiling a simple Hello World.

Continue reading

Update OpenSSL in OSX

While having an updated version of OpenSSL is always recommended, vulnerabilities such as The Heartbleed Bug reported 7th of April 2014 reminds us of it. Also, not counting on an updated version can cause some packages not to install (e.g., IO::Socket::SSL, necessary to run git send-email). In this post we go through the steps of updating OpenSSL in OSX, which as usual, entails a few more steps than in linux. I use Homebrew as a package manager.

Continue reading

Open Virtualization for Xilinx’s ZC-702

Open Virtualization (OV) is the first open software implementation of a Trusted Security Environment (TEE) for ARM TrustZone hardware security extensions as specified in Global Platform’s TEE Specification.. Sierraware is the company behind it. Since I first knew of OV I have had a great interest in using it for my research, and therefore I have spent some time understanding it and improving it to work with the boards we work with – the Xilinx’s ZC702. This efforts are now materialized in a git repository, under a GNU v2.0 License.

Continue reading

OpenIT: “Building Trust Despite Digital Personal Devices”

The IT University of Copenhagen started in 2013 an initiative called OpenIT. The idea is to share knowledge inside the university by giving TED-like talks on a weekly bases. Here is mine 🙂


Our innate ability to evaluate social norms, contexts, or the trust we put in other individuals, makes us naturally equipped to regulate flows of information in our daily human interactions. However, when dealing with digital interactions, we are not that well equipped. Not being able to control how digital devices handle our sensitive information leads us to distrust both the devices, the services we are using, and the parties that provide them. Usage control models have been defined that could represent complex information flow policies. They have never been implemented so far because they made out-of-touch assumptions about security. Even today, the usage policies embedded in personal devices, defined by manufacturers and service providers, are based on obscurity and are therefore fragile to exposure. They cannot be modified or extended by users. Does it have to be this way? We don’t think so. In this talk, we will present (i) the building blocks to implement a usage control model that can enforce policies coming from both users and service providers; (ii) a framework that can support it; and (iii) our work on trusted storage, data integrity, and storage-based intrusion detection, from which usage policies adapted to today’s technological context start to emerge.\



Parallels 9 for Mac improving guest – host communication

As most of my post containing tips, this one is also about how to integrate MacOS with a proper Linux developing environment without introducing a big overhead. The obvious question here would be: Why don’t you fully move to Linux and forget about having to integrate your everyday OS with your developing environment?  Well, we all have our preferences and motives, which are not the goal of this post. For those who use a similar setup as mine here comes good news: Parallels 9 successfully approaches one of the biggest issues I have found when dealing with Virtual Machines (VMs) under MacOs: Sharing the file system between the host and the guest machines.

Continue reading

TrustData’13 – Towards an Open Framework Leveraging a Trusted Execution Environment

Last November I attended The 5th International Symposium on Cyberspace Safety and Security (CSS 2013), November 13-15, 2013 in Zhangjiajie, China and presented Towards an Open Framework Leveraging a Trusted Execution Environment in one of the technical sessions (TrustData’13).

The CSS is an international conference where the academia and the industry come together with the goal of addressing challenges related to Cyberspace, Safety and Security. (

Continue reading

Best tools to get more out of your fingers in your mac

Depending on the task you are carrying out, you want you fingers either in your keyboard or in your mouse; and you want them to stay there. When I am programming I want to forget about my mouse and this implies that I should be able to open new terminals, navigate the code or check Stack Overflow without missing it. On the other hand, when working on my pictures, I want to prescind as much as I can from the keyboard, or at least limit my interaction with it to only one hand. Today I will tell you about the tools I use that allow me to feel comfortable working on my mac; from mapping gestures and shortcuts to choosing the speed of a certain key repetition.

Continue reading

On C, memory violations, and the white knight: Valgrind

Dealing with dynamic memory is a very demanding task in low level programming languages like C, where the flexibility of the language is build on top of the assumption that programmers do not make mistakes, but they (we) know what they are doing at all times. As Peter Van Der Linden masterfully writes in this Expert C Programming book: “It’s not a bug. It is a language feature”. (if you have not read the book, but it. Now!). In this post I will present one of my favourite programming tools: Valgrind, which helps programmers (among other things) to deal with memory leaks in their programs.

Continue reading

Non case-sensitive Mac OS Extended formatting colliding with git clone

If you use Mac OS for development and have ever experienced that cloning a GIT repository produces instant non staged changes for commit then this is your post. Here I will explain the underlying problem for this GIT weird behaviour and propose 2 solutions: (i) lazy i-don’t-want-to-format-my-mac, and (ii) I want to do things right. So, let’s get started.

Continue reading

Getting efficient with vim and YADR

A couple weeks ago I posted my new working environment: YADR + iTerm2 . I am still loving it, and in fact it gets better and better as one gets used to the shortcuts and the new functionality that was simply not there before! The problem is that due to all that many new shortcuts + the chances of you messing up when typing something wrong in vim, I keep finding myself in google or egreping my YADR tree very often. This post is therefore as much for myself as for anybody in the same situation as me: A compilation of shortcuts and useful commands that make my/your life easier. Continue reading