"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." (Robert A. Heinlein)

Sunday, 10 September 2017

KODI on RetroPie (and Raspberry Pi)

I’m not what you’d call a hard gamer ... probably I’m not a gamer at all, so after a little playing with RetroPie and the few ROM files I managed to find I continued with experimenting with available RetroPie “ports”.
RetroPie ports are a plug-in system that usually allow you to add open source games or additional emulation engine to RetroPie interface. The “KODI” port instead allow you to install and start from RetroPie interface a full featured media manager giving your retro-computing machine an effective “double life”.

KODI Media Manager

KODI, previously known as XBMC is a media manager software available for various Linux flavours. On the Raspberry it's available both as installation package and as stand alone distribution. KODI is of course capable of playing music and video both stored locally on a remote DLNA source. In addition KODI allows installing a great variety of add-on modules to display, for example, YouTube videos or whether news.

Installing KODI “port”

KODI can be installed and integrated with RetroPie interface from RetroPie set-up script.
sudo RetroPie-Setup/retropie_setup.sh
I selected the “Manage packages” menu, then the “Optional packages” one at last I selected “KODI” package in packages list.
Then the installation script started and I only hat to patiently wait its conclusion.

Saturday, 15 July 2017

Installing RetroPie (on the Raspberry Pi B+)

Just after I installed the Raspberry Pi 3 as home server I promised myself I would have destined the old board to more “experimental” experiences. As soon as I got some fee time I so decided to explore Raspberry gaming capabilities. I'm far from being a gamer today but I spent some time playing computer games when I was younger, during the “Commodore Amiga age”.


RetroPie is a Raspberry Pi distribution, based on Raspbian, specialised on making the Raspberry a full featured gaming machine. RetroPie image is provided with a great variety of emulation software, a graphics user interface, gaming control support and a configuration program to setup most of its options without the need of keyboard and mouse. Among its features RetroPie allows to download and install optional modules supporting things like media server software and open source games.

Parts list

Before starting to install I collected the required hardware: The Raspberry Pi, of course, a 8GB USB disk I had available, a wireless USB adapter I already used with the Raspberry and a cheap wireless keyboard I bought during a surplus fair. Last but not least by bedroom TV was going to be used as monitor. The wireless keyboard has been the only thing I bought with this project in mind.

Friday, 30 June 2017

GitLab on the Raspberry Pi 3

Software version control systems (VCS) are among essential (almost life-saving) tools when programming in team. Also while working by themselves they can reveal a big deal useful. I had Mercurial and Mercurial-server installed on my desktop computer time ago and used them to backup and synchronize my programming experiments between the netbook and the desktop computer.
Since I installed Mercurial I went trough a couple of desktop full-reinstall, of course, I also had to reinstall and reconfigure the version control system tools. So, when I bought the Raspberry Pi 3, I did put using it as VCS server on top of my personal wish-list.

Why Git? Why GitLab?

I must say I have no complaints against Mercurial, it always worked without any problem, but I’ve become a GitHub user so, passing to Git also at home seemed me the natural thing to do. At the beginning I was thinking about a plain bare-bone Git installation, without any graphical user interface, just like it was for Mercurial-server. While I was looking for a suitable git-on-raspberry how-to page I literally stumbled on this GitLab Installation how-to.
GitLab is a Git server full featured with web interface, projects and users management. GitLab is Open-source, or at least exists a community version, but what triggered my decision is that it’s quite easy to install. Installing GitLab is not harder than installing a bare-bone Git server, so … here I am.

Installing GitLab

Installing GitLab has been a simple four-step process, at the end of installation process GitLab was ready-and-running without any need of configuration.
First I installed some required dependencies. Because of previous installations on my Raspberry the only one I had to install has been Postfix mail server.
sudo apt install curl openssh-server ca-certificates postfix apt-transport-https
Then I added GitLab repositories and keys to Raspbian sources:
curl https://packages.gitlab.com/gpg.key | sudo apt-key add -
sudo curl -o /etc/apt/sources.list.d/gitlab_ce.list "https://packages.gitlab.com/install/repositories/gitlab/raspberry-pi2/config_file.list?os=debian&dist=jessie" && sudo apt-get update
I then installed GitLab with a simple apt-get command
sudo apt-get install gitlab-ce
At last I executed the GitLab reconfiguration command in order to make configuration effective.
sudo gitlab-ctl reconfigure
I edited GitLab configuration file (located in /etc/gitlab/gitlab.rb) only to change two configuration details: I placed GitLab repository folder on Raspberry external USB disk
git_data_dirs({"default" => "/media/usbdisk/gitlab"})
And I set GitLab web server in order to work on a HTTP port different from default one.
external_url 'http://raspberrypi3:8887'
After any change of GitLab configuration file the reconfigure command must be executed in order to see them effective. In spite of changing GitLab web port SFPG picture gallery I had installed on the Raspberry stopped working, I’ll have to solve this in the near future.

First login

On the very first access to GitLab web page user is asked to change administrator password

Saturday, 27 May 2017

New toy on the desk: Galaxy tab A6

At least I gave up and decided for buying myself a tablet. I've always been more favorable towards netbooks instead of tablets mostly because real computers, even under-powered, better suits the way I use them: mostly writing documents and programming. I didn't entirely changed my mind but I have to reckon a tablet can have many uses where it perform superbly like browsing the Internet or keeping in contact with e-mail or the many social media applications. Last but not least I needed a modern device for studying and testing Android development, so here I am ...

Friday, 28 April 2017

Setting-up the Raspberry PI 3 as a home server

It has been some time since last time I wrote, unfortunately my job stole most of my limited free time keeping me from experimenting and so posting about it. At last I managed to collect enough free time to complete Raspberry PI 3 installation and replace the older model I was using as home server.

Just like before? Not exactly

When I started configuring and installing the Raspberry PI 3 I was hoping it would have been a simple repetition of operation I already performed on the older Raspberry. Most of it has been that way but in some cases I experienced some relevant difference.

Configuring a static IP address

I've been configuring static IP address on Linux since I installed my first Pentium III based Linux, so I really didn't expect any problem here. Once I configured “/etc/networking/interfaces file” I instead noticed the Raspberry was visible on the network with two different addresses. After some searching on the Internet I discovered it's because of a different way DACP client works on latest Raspbian release. The problem can be solved in two ways: first is configuring DHCP client in order to let it set a static address on network interface alternatively it's possible disable DHCP client for one or more network interface. I chose the latter, at the end, since the Raspberry is going to be a DHCP server so there is no deal in keeping DHCP client active. I disabled DHCP client from assigning address to both wired and wireless network interface by adding the following line to “/etc/dhcpcd.conf” configuration file.
denyinterfaces wlan0 eth0

DHCP server and wireless access point

Like I did on my first Raspberry server I configured the new one to work as DHCP server and a wireless access point. It seem there are no relevant changes since first time I did it, I simply had to follow my own instructions.

Installing applications

Installing apt-ger based applications like LAMP sever and MiniDLNA server has been a quite easy task, while to install other applications like RPI-Monitor I had to look for the updated download link on the Internet. I also installed the updated version of SFPG picture gallery, it works but picures thumbnails don't show. I'll look for a solution later.

Power supply and cables

Once I had the Raspberry PI 3 installed and configured on my desktop I pit it in place of the old one and … nothing was working. It took me some time of testing and pinging before I noticed the board power led wasn't properly lighted-up. The phone/tablet charger I used to supply the old Raspberry wasn't up to the Raspberry PI 3 power requirement. I replaced the power supply with the one I used for desktop test but it wasn't enough to make the Raspberry PI 3 working, I had to replace micro-USB power cable with a shorter one in order to have it working, I think it's better I'll buy a dedicated Raspberry PI 3 power supply soon.