"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, 5 November 2017

Upgrading to Ubuntu 17.10 (Artful Aardvark)

It's some time I don't upgrade my desktop computer, I must reckon I enjoyed the relative stability of using a LTS distribution and didn't fell the need of a twice-a-year system upgrade. Unfortunately my PC suffered of a system crash, probably because of some faulty hardware, just while updating with the result of corrupting the installed operating system beyond my capability of repairing it.
I so downloaded latest Ubuntu distribution release and started the good-old installation procedure.

No more Ubuntu-gnome long live to Ubuntu (Gnome)

I’ve been a Ubuntu-Gnome user for a long time, so I’ve been quite pleased to learn Canonical decided to stop Unity support and adopt Gnome-Shell as primary desktop manager. I so went for downloading latest Ubuntu ISO image. Once finished I prepared a bootable USB disk using Unetbootin tool, then I restarted my PC.


I started my computer from USB disk then selected the “Try Ubuntu ...” option instead of starting directly the installation program in order to collect screen-shots more easily.
After usual language and “third party” option selection I came to the installation type selection where I choose to upgrade my 16.04 installation.

Monday, 2 October 2017

Backing-up the Raspberry Pi 3

Recently I had to repeat installation of my Raspberry Pi 3 server. Probably because of some SD card corruption problem I started experiencing unexpected loss of active services, first GitLab then MiniDLNA, a and failures while trying reinstalling or reconfiguring them. I so downloaded latest Raspbian image and went with a complete installation. Not a big deal, since I’ve been following my own instructions on this blog but still a time consuming process.
Once the Raspberry server was operative again I started looking for a simple backup solution in the case something broke again by itself or, not unlikely, I broke something by myself.
I quickly found in the Internet this discussion page where, among other solutions, it was proposed a handy shell script to completely backup Raspberry SD Card. Following discussion links I landed on this GitHub page where the same script is available in its latest version.
Installing the script is just matter of downloading and unzipping it or, as alternative, cloning it with git command. I did choose the latter since I’m going to need git in future.
sudo apt-get install gitmkdir scriptcd script/git clone https://github.com/aweijnitz/pi_backup.git
configuring the script
The PI backup script is a fine example of shell programming, it needs only a couple of arrangements to fit the system where is installed.
First functions stopServices() and startServices must be edited by uncommenting commands to stop and start services running on the Raspberry. I added command to stop and start MiniDLNA service:
...sudo service minidlna stop...sudo service minidlna start...
Then I edited the backup path. In the same scrip section it’s possible to set the number of old backups to keep and if backed-up images must be compressed.
...# Setting up directoriesSUBDIR=backupMOUNTPOINT=/media/usbdiskDIR=$MOUNTPOINT/$SUBDIRRETENTIONPERIOD=1 # days to keep old backupsPOSTPROCESS=0 # 1 to use a postProcessSucess function after successfull backupGZIP=0 # whether to gzip the backup or not...

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