Brainwaves Raspberry Pi

Kodi on Raspberry Pi 3 running Arch Linux ARM

When setting up Kodi under Arch Linux ARM running on Raspberry Pi 3, I encountered this error, which crashed the graphical environment right from the start:

[drm:vc4_bo_create [vc4]] ERROR Failed to allocate from CMA:

After some searching, I ran into an issue thread, where it was advised to increase the CMA memory (as a workaround that seems to just be the actual fix). You need to add ‘cma=256M’ to the kernel boot parameters. But how do you do that?

# Run as root...

# dependencies
pacman -S uboot-tools

# modify the kernel boot parameters
cd /boot
vim boot.txt # append cma=256M to the line with boot params

Before this fix, I had only 64 MB of CMA. This wasn’t enough. To check that this worked:

if the cma parameter is present and /proc/meminfo

cat /proc/cmdline
# should contain cma=256M

cat /proc/meminfo | grep Cma
# should say CmaTotal: 262144 kB

Now Kodi finally starts!

…though there are still some problems with the graphics driver (video doesn’t play, random switching to the console and back).

As it turns out, using the AArch64 version of Arch Linux ARM for Kodi is not the best option. Switching to the ARMv7 version helped a lot, everything worked from the start.


Linux PicoPosts Projects Raspberry Pi Technology

Linux udev USB automount script

I’ve been wondering how to enable automounting of USB drives on my Raspberry Pi server. The sollution is pretty simple with udev on Arch Linux.

  1. Create a new file /etc/udev/rules.d/automount.rules
  2. Fill this script:
    ACTION=="add",KERNEL=="sda*", RUN+="/usr/bin/mount /dev/sda1 /mnt/disk-a"
    ACTION=="remove", KERNEL=="sda*", RUN+="/usr/bin/umount /mnt/disk-a"
  3. Run udevadm control --reload-rules to reload the rules.
  4. Done!

Naturally you should modify the script to your needs. What this one does for me is that when sda1 is connected, it is mounted as /mnt/disk-a (and unmounted when removed). Adding more lines like this can be used to mount more / other drives.


Friendica Ideas Open source Privacy Projects Raspberry Pi Technology Uncategorized

Prism break

If you haven’t heard about the Prism scandal, you should read a bit about it. But basically, numerous large companies based in the US have allowed private information of their users to be accessible to the government (the NSA, to be more exact). Maybe even yours, if you’ve ever interacted with companies like Google, Apple, Facebook and others.

As mentioned on the Prism-Break website, there are lots of alternatives to the services and software most of us currently use. And surprisingly, it should’t be that hard to switch to a more secure and privacy-protecting solution to your daily internet-related needs.

Here is my personal ‘Prism break’ roadmap, or a security todo list:
Note: work in progress, subject to change.


Biggest challenge as far as I can see. The concept itself is sadly not really that secure.

Must have:

  • highly reliable (so no self-hosted solutions are acceptable)
  • web client for easy accessibility
  • address based on own domain name (and email address), e.g. me at dejvino dot com
  • at least country-local hosting (i.e. here in Czech Republic for me)

Should have:

  • contacts
  • calendar

Could have:

  • email content encryption. Currently it seems pretty impractical, but who knows. Maybe there is a usable solution?

Some cheap web-hosting with emails?


Similar to email. Doesn’t require 100% availability.


  • own secure Jabber/XMPP server? Could be self-hosted / VPS. Expensive, hard to maintain.
  • rented server? server-side history is hard to come by. Only Google has got it all…

Should have:

  • encrypted transmission
  • secured history saved on server side

Web hosting

I’m currently using external paid services. I might switch to a more custom solution, i.e. home server.

Raspberry Pi anyone? … UPDATE: nope, it could work for really simple services, but running anything more sophisticated results in long response times. And since I’ve got big plans, it is not the right solution.

Cloud storage

Dropbox has been a great service — lots of free space, great tools on Windows as well as on Android.
I’m in the process of switching to a more controlled ownCloud server solution.

Must have:

  • web interface
  • handle large files
  • access restrictions
  • per-user space limits (quotas)
  • PC client (Windows)

Should have:

  • online music streamer
  • public file-linking capability
  • applications / plugins / extensions

Could have:

  • Android client
  • synchronization / backup support

Social media

Friendica is a project I’ve been using a bit and am planing to use a bit more. But the other “standard” ones still seem quite usable, to some extent.

Should have:

  • RSS-feed-reader-like view
  • responsive design / client for Android
  • integration of different social networks

TODO: move Friendica to a more powerful server. It is quite CPU-demanding.

Web browsing

Type Current New Status
Browser Google Chrome Firefox DONE
Passwords KeePass KeePass + KeeFox DONE
Plugins DoNotTrackMe, HTTPS Everywhere, … see as a handy guide. DONE


Raspberry Pi Technology

Plan 9 on Raspberry Pi – done

Finally got it working. All it needed was a 2+ GB SD card and not only 1 GB, which resulted in a restart-loop with error messages not far from “Something is broken! Panic!”.
Next on my agenda – hook up all of my 5 RPis and form a “supercomputer”!


Also interesting:

To get you started:

And by the way – the user experience is ground-breaking and paradigm-shifting. The scrolling wheel works in an opposite direction! (+ some other mind blowing things)


PicoPosts Raspberry Pi Technology Uncategorized

Raspberry Pi case

It is finally here! My new Raspberry Pi case.

You can buy it here –


Linux Open source PicoPosts Raspberry Pi Technology Uncategorized

Distributed Pi

Plan 9 – distributed operating system, now ported to Raspberry Pi.

…newly on my ToDo list.


Linux Open source Raspberry Pi Technology

Raspberry Pi – sound HOW-TO

Here are a few pointers on how to make the sound work on Raspberry Pi. I’ve gathered these bits and pieces along the way of using this tiny computer.

First of all – Arch Linux for ARM (i.e. alarm) is the best distro I’ve used on RasPi so far. Lightweight, starts in just a few seconds, has a lots of packages and you can install it just the way you want. And this is also the distro for which I am writing this short How-To.

How to add the sound module

To make the system see the integrated sound card you need to load the appropriate kernel module. Like so:

sudo modprobe snd_bcm2835

To check whether it is loaded, just check the output of lsmod. The command written above has to be executed every time the system starts. To make it “stick”, add the module to the list of automatically loaded modules. That is create a new file  /etc/modules-load.d/sound.conf containing just a single line:


That’s it. The sound module should now load every time you start your RasPi.

How to install Alsa

Most of the programs will be able to output sound using Alsa. To install it, issue this command:

sudo pacman -S alsa-utils alsa-plugins alsa-lib alsa-firmware

Now you can run speaker-test and it should produce a nice white noise on your speakers.

How to enable analog sound

If you want to select which sound output should be used (HDMI or analog 3.5mm jack), the command to use for Alsa and analog output is:

sudo amixer cset numid=3 1

Or substitute the last “1” for “2” if you want HDMI.

How to make VLC or mplayer work with Alsa

If you are getting messages like this:

alsa audio output error: cannot commit hardware parameters: Invalid argument
jack audio output error: failed to connect to JACK server
main audio output error: no suitable audio output module

All you have to do is fix the sound card configuration via creating a simple *.conf file: /etc/asound.conf with the following content:

pcm.!default {
   type hw
   card 0
ctl.!default {
   type hw
   card 0

For more info, take a look at this: