Welcome to Planet openSUSE

This is a feed aggregator that collects what openSUSE contributors are writing in their respective blogs.

To have your blog added to this aggregator, please read the instructions.

27 May, 2015

SUSE Studio: Maintenance

13:21 UTC

We are planning maintenance on our Studio hardware on Thursday
28.05.2015 between 13.00 and 17.00 o'clock CEST (+0200 UTC).
Please prepare for limited service during that time.


Your SUSE Studio Team


An estimated 45,000 students from a province in Indonesia have enhanced their education and computer-usage knowledge through a pilot  program using Linux and openSUSE that is expected to become a nationwide educational program.

From 2009 to 2014, the project called “Information and Communication Technology (ICT) Utilization for Educational Quality Enhancement in Yogyakarta Province” used openSUSE and created material with Linux to enhance educational quality and equality in Yogyakarta Province schools.

“More and more education people and officials come to Yogyakarta to learn about how to implement information technology in basic education,” said Mr. Mohammad Edwin Zakaria, an IT and Linux consultant for the program.

The program is expected to become a model of ICT utilization in the educational sector of Indonesia, Zakaria said. The pilot’s goal supports teaching and learning activities by providing ICT-based learning facilities, providing equipment, communication and network facilities, creating e-learning systems and developments, and by providing tools and support that are needed for schools activities to improve educational quality.

IMG_0429.CR2“For the teachers, we conduct training of how to make learning material,” said Singgih Raharjo, the department head of Yogyakarta Province’s Education Communication and Technology Office.

Creating With Linux

Many new materials made by teachers are now available to students, Raharjo said.

“It is what we think open-source software still lacks behind the proprietary software,” he said. “At the beginning we try to introduce eXe Learning, but in 2010 it still difficult for them. Because of this problem, the project-owner finally decided to give them proprietary software to make learning material.”

Many of the schools are remotely located. Yogyakarta Governor Sri Sultan Hamengku Buwono X proposed ICT as a program that would increase and equalize educational quality throughout the province.

IMG_0375.CR2“Many students and even teachers never had an experience with computers before,” Zakaria said. “Now they can interact with computer and Linux. We created special Math and Science learning materials for them. They can learn interactively with that material. Along with software packages on openSUSE Li-f-e like Gcompris, Tuxmath, kalgebra (and other KDE Edu), Tuxpaint, and Stellarium, they can learn many thing that they never imagined before.”

Some of it can be accessed publicly at http://lms.jogjabelajar.jogjaprov.go.id .

The pilot program consisted of several phases, was implemented in elementary and junior high schools, and was supported by several experts and professionals. Each school had a headmaster, math teachers, science teachers, and a PC lab technician involved with the project.

Making a Difference

IMG_0434.CR2Government officials, university professors, consultants facilitators, technical staff, learning material experts, examination experts, community development experts and curriculum experts all turned the pilot into a successful program.

The children around Yogyakarta Province become smarter and more creative from this project, Raharjo said. Because the project was not only giving infrastructure, but was interesting and fun from the ICT-based learning materials, the results of national exams increased for the province.

The results were shocking,  Raharjo said.

“The winners of the competition are not only centralized by students from the city

25 May, 2015


Rule the Stack

Last week during the the OpenStack Summit in Vancouver, Intel organized a Rule the Stack contest. That's the third one, after Atlanta a year ago and Paris six months ago. In case you missed earlier episodes, SUSE won the two previous contests with Dirk being pretty fast in Atlanta and Adam completing the HA challenge so we could keep the crown. So of course, we had to try again!

For this contest, the rules came with a list of penalties and bonuses which made it easier for people to participate. And indeed, there were quite a number of participants with the schedule for booking slots being nearly full. While deploying Kilo was a goal, you could go with older releases getting a 10 minutes penalty per release (so +10 minutes for Juno, +20 minutes for Icehouse, and so on). In a similar way, the organizers wanted to see some upgrade and encouraged that with a bonus that could significantly impact the results (-40 minutes) — nobody tried that, though.

And guess what? SUSE kept the crown again. But we also went ahead with a new challenge: outperforming everyone else not just once, but twice, with two totally different methods.

For the super-fast approach, Dirk built again an appliance that has everything pre-installed and that configures the software on boot. This is actually not too difficult thanks to the amazing Kiwi tool and all the knowledge we have accumulated through the years at SUSE about building appliances, and also the small scripts we use for the CI of our OpenStack packages. Still, it required some work to adapt the setup to the contest and also to make sure that our Kilo packages (that were brand new and without much testing) were fully working. The clock result was 9 minutes and 6 seconds, resulting in a negative time of minus 10 minutes and 54 seconds (yes, the text in the picture is wrong) after the bonuses. Pretty impressive.

But we also wanted to show that our product would fare well, so Adam and I started looking at this. We knew it couldn't be faster than the way Dirk picked, and from the start, we targetted the second position. For this approach, there was not much to do since this was similar to what he did in Paris, and there was work to update our SUSE OpenStack Cloud Admin appliance recently. Our first attempt failed miserably due to a nasty bug (which was actually caused by some unicode character in the ID of the USB stick we were using to install the OS... we fixed that bug later in the night). The second attempt went smoother and was actually much faster than we had anticipated: SUSE OpenStack Cloud deployed everything in 23 minutes and 17 seconds, which resulted in a final time of 10 minutes and 17 seconds after bonuses/penalties. And this was with a 10 minutes penalty due to the use of Juno (as well as a couple of minutes


Happy Towel Day!

I know I'm a bit late for the people living in germany, but it's still early enough for those living on the other side of the planet ;-) - especially for the other AppArmor developers!

Yesterday and today, I sent a flood of patches to the AppArmor mailinglist. You can easily see this as a (productive) DoS attack because AppArmor has a policy that every patch must be reviewed within a week...

Including some patches from the last days that didn't get a review yet, I have the answer - 42 patches pending for the AppArmor utils :-)

The biggest patches move the handling of change_profile and rlimit rules into classes and add tests for them. Another set of patches starts to unify the code of aa-logprof and aa-mergeprof (and fixes some bugs while doing that). The patch flood also contains some small bugfix and cleanup patches.

I'm quite sure the other developers will need some time to review all those patches *g*

If you are interested what exactly I changed, have a look at the AppArmor mailinglist archive and check my mails with the [patch] prefix.

For those who are more interested in statistics, here's the diffstat of my patch flood:

 /aa-mergeprof                         |  517 +++++++++++++---------------------
 /apparmor/aa.py                       |  363 +++++++++--------------
 /apparmor/regex.py                    |    7
 /apparmor/rule/__init__.py            |   41 ++
 /apparmor/rule/capability.py          |   11
 /apparmor/rule/change_profile.py      |   19 +
 /apparmor/severity.py                 |   13
 /apparmor/tools.py                    |   11
 /test/minitools_test.py               |   11
 /test/test-aa.py                      |   29 +
 /test/test-baserule.py                |    5
 /test/test-capability.py              |   32 ++
 /test/test-change_profile.py          |   18 +
 /test/test-severity.py                |   25 -
 utils/aa-audit                        |    1
 utils/aa-cleanprof                    |    1
 utils/aa-complain                     |    1
 utils/aa-disable                      |    1
 utils/aa-enforce                      |    1
 utils/aa-mergeprof                    |   50 ++-
 utils/apparmor/aa.py                  |   34 --
 utils/apparmor/regex.py               |   10
 utils/apparmor/rule/__init__.py       |    6
 utils/apparmor/rule/capability.py     |   14
 utils/apparmor/rule/change_profile.py |  173 +++++++++++
 utils/apparmor/rule/network.py        |   16 +
 utils/apparmor/rule/rlimit.py         |  265 +++++++++++++++++
 utils/apparmor/severity.py            |    4
 utils/apparmor/tools.py               |    7
 utils/test/common_test.py             |   22 +
 utils/test/minitools_test.py          |   25 -
 utils/test/test-aa.py                 |   55 +++
 utils/test/test-baserule.py           |    4
 utils/test/test-capability.py         |   46 ---
 utils/test/test-change_profile.py     |  443 +++++++++++++++++++++++++++++
 utils/test/test-example.py            |    4
 utils/test/test-network.py            |   17 +
 utils/test/test-rlimit.py             |  468 ++++++++++++++++++++++++++++++
 utils/test/test-severity.py           |  201 ++++---------
 39 files changed, 2183 insertions(+), 788 deletions(-)



We've seen two Dynamic DNS clients. We'll see another one here.

1. First of all, install the program.

$ zypper in ddclient

2. Create the confing file

$ nano /etc/ddclient.conf

with the following content

syslog=no # log update msgs to syslog
#mail=root # mail all msgs to root
#mail-failure=root # mail failed update msgs to root
pid=/var/run/ddclient.pid # record PID in file.
ssl=yes # use ssl-support. Works with
# ssl-library

use=if, if=eth0

Change the ones that are in bold letters.

3. Start the service

$ systemctl enable ddclient


24 May, 2015

Michael Meeks: 2015-05-24 Sunday.

21:00 UTCmember

  • Up late; read news, watched fascinating SpaceX GPU compute talk. J. and babes home in the afternoon; nasty cellulitis infected bite in leg - hmm. Out to Histon Baptist church for an afternoon service; pizza; bed early.


We've seen how to create an SD card. I used the 13.1 version. The wiki page https://en.opensuse.org/HCL:Raspberry_Pi is not very clear (to me) about resize partitions. So I tried to upgrade the version 13.1. Here what I did.

1. Check if the update repository already exists and is enabled.

$ zypper repos --uri

You should have the following enabled

3 | openSUSE-13.1-repo-update | openSUSE-13.1-repo-update | Yes | Yes | http://download.opensuse.org/ports/update/13.1/

If not, then add it

$ zypper addrepo --check --refresh --name 'openSUSE-13.1-Update' http://download.opensuse.org/update/13.1/ repo-update

2. Refresh and update your system

$ zypper ref && zypper update

3. Remove all third party/OBS repos you no longer need.

$ zypper lr

# Remove with

$ zypper rr (alias or number)

4. Change all remaining repo URLs to the new version of the distribution (needs to be run as root).

$ cp -Rv /etc/zypp/repos.d /etc/zypp/repos.d.Old

5. Change the repos.

$ sed -i 's/13\.1/13.2/g' /etc/zypp/repos.d/*

6. Refresh new repositories (you might be asked to accept new gpg key)

$ zypper ref

If you haven't removed third party/OBS repositories you may encounter some errors as these repositories may not exist yet or they may have different unguessable URL. It is always recommended to remove them and add their newer version after upgrade.

7. Upgrade

$ zypper dup

Now you have to wait. Reboot at the end, just to be sure that everything went smooth.

23 May, 2015

Michael Meeks: 2015-05-23 Saturday.

21:00 UTCmember

  • Up early; into Cambridge together by train, encouraged to have Andrzej and Ben show up - and see Andrzej's nice calc work; and get Ben's GSOC bits started. Many left; out for curry with Bjoern, Thorsten, Ben & Andrzej. Back home late; hacked on some bits until even later.


A good question is why do you want to sync a folder on your Raspberry Pi with a cloud service. The answer is little complicated. It's a subproject that I'm working on right now. I want to upload some data I'll create on a Raspberry Pi (with limited size of SD card). The uploaded data will be saved on other computer and the SD will be clear again to create new data.

The cloud service I prefer is always ownCloud.
Here I used http://www.copy.com. It provides 15GB of disk but you can increase it.

First of all download the file

$ wget http://copy.com/install/linux/Copy.tgz

Then extract it

$ tar xzvf Copy* copy/armv6h/

This will create a folder called “copy,” and in it there will be three sub-folders: “armv6h,” “x86,” and “x86_64.” The first one contains the Copy client binaries for the Raspberry Pi, the second contains the Copy client for 32-bit Linux on a PC, and the third the same client but for 64-bit Linux PCs.

$ cd /copy

$ cd armv6h

Now there are 2 ways of using copy. The CopyCmd tool and CopyConsole.


List of the directories
$ ./CopyCmd Cloud -username=user@gmail.com -password='mypass' ls

Upload all content of local /home/user/directory/ to remote /directory
$ ./CopyCmd Cloud -username=user@gmail.com -password='mypass' put -r /home/user/directory/ /directory


The CopyConsole tool keeps a folder on your Raspberry Pi synchronized with the data on Copy.com.
The sync app runs in the background and is started like this:

$ ./CopyConsole -daemon -username=user@gmail.com -password='mypass' -root=/home/user/directory

This will sync the local /home/user/directory to copy.com. If you delete something from there, it'll delete from local folder as well.

Remeber to run this command everytime you restart your pi. It's better to run it manually because there is username and password that are personal (unless you created an account just for your raspberry pi).

22 May, 2015

Michael Meeks: 2015-05-22 Friday.

21:00 UTCmember

  • Up early; train together to Cambridge - more hack-fest goodness much of the day; fixed a number of VclPtr issues.
  • Out punting in the evening with the lads; back for a swift drink & train home. Talked with team, bed late.


Raspberry Pi is a quite slow ARM board, compared to other boards. Even if you compare Raspberry Pi B+ against Raspberry Pi 2. So maybe one of the best use of RasPi is to make it seedbox. Let's say you're at the office and a friend tells you to test a distro. You can login to your home Raspberry Pi seedbox and add the torrent file there.

Here I will show you how to setup Transmission, vftpd and suggestions for Android programs.
First of all, download and create the openSUSE SD card (resize your SD card to full size or you can mount the extra size as extra partition. Since it's not something important, then you can use full size of your SD card).
Then setup the dynamic dns service (see previous posts).
Finally set a static IP (to use it with port forward of your router).


First install transmission:
$ zypper in transmission transmission-daemon

Create 2 folders for incomplete torrents and completed torrents:
$ mkdir -p /torrents/incomplete && mkdir /torrents/complete

Configure proper permissions for transmission:
$ chgrp transmission /torrents/incomplete
$ chgrp transmission /torrents/complete
$ chmod 770 /torrents/incomplete
$ chmod 777 /torrents/complete

Now edit transmission settings.json file using:
$ cp /var/lib/transmission/.config/transmission/settings.json /var/lib/transmission/.config/transmission/settings.json.old
$ rm /var/lib/transmission/.config/transmission/settings.json


$ nano /var/lib/transmission/.config/transmission/settings.json

Here is the content of your file:
"alt-speed-down": 50,
"alt-speed-enabled": false,
"alt-speed-time-begin": 540,
"alt-speed-time-day": 127,
"alt-speed-time-enabled": false,
"alt-speed-time-end": 1020,
"alt-speed-up": 50,
"bind-address-ipv4": "",
"bind-address-ipv6": "::",
"blocklist-enabled": false,
"blocklist-url": "http://www.example.com/blocklist",
"cache-size-mb": 4,
"dht-enabled": false,
"download-dir": "/torrents/complete",
"download-limit": 100,
"download-limit-enabled": 0,
"download-queue-enabled": true,
"download-queue-size": 5,
"encryption": 1,
"idle-seeding-limit": 30,
"idle-seeding-limit-enabled": false,
"incomplete-dir": "/torrents/incomplete",
"incomplete-dir-enabled": true,
"lpd-enabled": false,
"max-peers-global": 200,
"message-level": 2,
"peer-congestion-algorithm": "",
"peer-limit-global": 91,
"peer-limit-per-torrent": 150,
"peer-port": 51413,
"peer-port-random-high": 65535,
"peer-port-random-low": 49152,
"peer-port-random-on-start": false,
"peer-socket-tos": "default",
"pex-enabled": false,
"port-forwarding-enabled": true,
"preallocation": 1,
"prefetch-enabled": 1,
"queue-stalled-enabled": true,
"queue-stalled-minutes": 30,
"ratio-limit": 2,
"ratio-limit-enabled": false,
"rename-partial-files": true,
"rpc-authentication-required": true,
"rpc-bind-address": "",
"rpc-enabled": true,
"rpc-password": "{2dc2c41724aab07ccc301e97f56360cb35f8ba1fGVVrdHDX",
"rpc-port": 9091,
"rpc-url": "/transmission/",
"rpc-username": "transmission",
"rpc-whitelist": "*.*.*.*",
"rpc-whitelist-enabled": false,
"scrape-paused-torrents-enabled": true,
"script-torrent-done-enabled": false,
"script-torrent-done-filename": "",
"seed-queue-enabled": false,
"seed-queue-size": 10,
"speed-limit-down": 250,
"speed-limit-down-enabled": true,
"speed-limit-up": 0,
"speed-limit-up-enabled": true,
"start-added-torrents": true,
"trash-original-torrent-files": false,
"umask": 18,
"upload-limit": 100,
"upload-limit-enabled": 0,
"upload-slots-per-torrent": 14,
"utp-enabled": true

Username: transmission
Password: transmission
Port: 9091

Start and enable the service.

$ systemctl start transmission-daemon
$ systemctl enable transmission-daemon

You're done. All you have to do is to open your browser to http://RASPI.IP.ADDRESS:9091/ and use the login/password (default for above config transmission/transmission)


Let's say that the file is i your pi disk. You're not at home. How can you check it? Maybe the easiest way is to setup an FTP server. Maybe the best program is vsftpd. You can install it:

zypper in ftp vsftpd

Create a folder for ftp users (if it's not there).

mkdir /srv/ftp

Create a group called

Michal Čihař: Weblate 2.3

08:00 UTC


Weblate 2.3 has been released today. It comes with better features for project owners, better file formats support and more configuration options for users.

Full list of changes for 2.3:

  • Dropped support for Django 1.6 and South migrations.
  • Support for adding new translations when using Java Property files
  • Allow to accept suggestion without editing.
  • Improved support for Google OAuth2.
  • Added support for Microsoft .resx files.
  • Tuned default robots.txt to disallow big crawling of translations.
  • Simplified workflow for accepting suggestions.
  • Added project owners who always receive important notifications.
  • Allow to disable editing of monolingual template.
  • More detailed repository status view.
  • Direct link for editing template when changing translation.
  • Allow to add more permissions to project owners.
  • Allow to show secondary language in zen mode.
  • Support for hiding source string in favor of secondary language.

You can find more information about Weblate on http://weblate.org, the code is hosted on Github. If you are curious how it looks, you can try it out on demo server. You can login there with demo account using demo password or register your own user.

Weblate is also being used https://hosted.weblate.org/ as official translating service for phpMyAdmin, Gammu, Weblate itself and other projects.

If you are free software project which would like to use Weblate, I'm happy to help you with set up or even host Weblate for you.

Further development of Weblate would not be possible without people providing donations, thanks to everybody who have helped so far!

PS: The roadmap for next release is just being prepared, you can influence this by expressing support for individual issues either by comments or by providing bounty for them.

Filed under: English phpMyAdmin SUSE Weblate | 0 comments

21 May, 2015

Michael Meeks: 2015-05-21 Thursday.

21:00 UTCmember

  • Up early; breakfast & music practise with babes; breakfast with the guys; E-mail, drove into Cambridge - thanks to Doree - hackfest has food, rooms setup. Sam out to buy hubs, people started to arrive; encouraging to see such a great collection of hackers working away.
  • Out to the Cambridge Beer Festival in the evening, thanks to them for sponsoring the conference attendee's presence; fun - talked until late. Drove the team home - 7x seats full of adults - unusual.


To set a static IP in Debian based distros is easy. Just change a file (/etc/network/interfaces).
In openSUSE is easier. Everything can be done under YaST.

1. Open YaST and go to Network Devices>Network Settings.

2. Then choose Statically Assigned IP Address (move with tab button and click on space button). Give the static IP you want (IP address needs to be in the same range as the router's) and as Subnet Mask, Press Next (press enter).

3. You'll see an overview of the ethernet card.

4. Go to Hostname/DNS and add Google's DNS servers (optional).

5. Next, go to Routing and add your router ip (usually

Now press OK, reboot and try to login again with SSH.


vector chameleonThe GCC 5 compiler is gradually making its way to be the default compiler for Tumbleweed, but until then, GCC4 is it. There is a blockage in the build caused by what some believe to be an issue with the signing key and libzypp.

For GCC 5 to move forward, it needs to pass openQA to build. Anyone willing to take a look at the code is more than welcome.

Many other items are being worked on in Tumbleweed and a new kernel is pending, but nothing is problematic and most of the items are easy fixes for the next snapshot, according to an update by Tumbleweed team.

Most of the work taking place these past few days have been bug fixes for the latest release of Plasma 5.3 and GNOME 3.16.2.

Other noteworthy items in the latest snapshot were updates to the libqt5 and LibreOffice. Python-keyring updated from 4.0 to 5.3 and there were some additional updates to YaST’s user experience and network.

20 May, 2015

Michael Meeks: 2015-05-20 Wednesday.

21:00 UTCmember

  • Up early; into Cambridge - Andras & Kendy showed up, Quarterly review, lunch while working; misc. paperwork left & right. Back home for a roast meal, up late.


Available in Czech Republic, too, 98 grams, and pretty cheap. On my Nokia n900, GSM parts died, and hacking cellphone you are using is a bad idea... So... what about Pixi? Underpowered hardware, but still more powerful than n900. Does firefox os support wifi tethering by default? Is it reasonably easy to hack? (I guess "apt-get install python would be too much to ask, but..) Other candidates are Jolla/Sailfish and Ubuntu Phone.


We've seen how to install no-ip.
Fortunately, there's not only this service but other services too. Just for reference, here are some (not only free):


Let's see one of them https://freedns.afraid.org. After you register, go to Dynamic DNS link (on the left top box-for members).
Add your host with type A and subdomain and domain what you like as host.

Now there's going to be a list of your host names. Right click on the Direct Link and copy the link. You should keep the alpha-numeric key. The address will be something like http://freedns.afraid.org/dynamic/update.php?[alpha-numeric-key]

Now it's time to install the client. I've found it from https://github.com/troglobit/inadyn.

1. First of all, install the needed programs to build the service.

zypper in gcc-c++ gcc git libopenssl-devel make nano

2. Then

mkdir inadyn

cd inadyn

3. Download the program from ftp://troglobit.com/inadyn/

and decompress it

tar xvfJ inadyn-1.99.9.tar.xz

4. Go to the directory

cd inadyn-1.99.9

5. Compile and install


make install

6. Create the confing file

nano /etc/inadyn.conf

with the following content

--username USERNAME
--password PASSWORD
--update_period 3600
--forced_update_period 14400
--alias HOSTNAME,alphanumeric key
--dyndns_system default@freedns.afraid.org

The bold words are the ones you should change. Remember the alphanumeric key is the one you got from right click on the Direct Link.

7. Start the client. Create the service file.

nano /usr/lib/systemd/system/inadyn.service

8. Add the following content.

Description=inadyn Dynamic DNS Update Client



9. Start the service

systemctl start inadyn.service

and enable the service

systemctl enable inadyn.service

10. Reboot and check if the service is running.

ps -A | grep inadyn

you should get results something like:

1526 ? 00:00:00 inadyn

19 May, 2015

Michael Meeks: 2015-05-19 Tuesday.

21:00 UTCmember

  • Mail chew; slideware production & stats generation. Built ESC stats & agenda. Sam over in the evening, followed by Niall - good to catch up with them.


We've seen how to install openSUSE image on the SD card.
Next step is to be sure that we can have access from outside our house (since most of the times, Raspberry Pi is located at home).
To do that we use Dynamic DNS services. A free service (so far) is No-IP. Most of the routers support it. You can use your router's service. But what if you want 2 different host names on the same IP? Let's say you have different ARM boards on the same router or you have a server etc.

1. First of all, install the needed programs to build the service (same as I did with ZNC)

zypper in gcc-c++ gcc git libopenssl-devel make nano

2. Then

mkdir noip

cd noip

3. Download the program

and decompress it

tar vzxf noip-duc-linux.tar.gz

4. Go to the directory

cd noip-2.1.9-1

5. Compile and install


make install

While it install’s the software you will prompted to enter the username & password. Once that is done it will ask you teh refresh interval … leave it.. to have the default value. You are required to answer some more questions … just ans NO an d you should be good to go.

6. Start the client


To check if the service is running, use the command:

/usr/local/bin/noip2 -S

and the results should be like

1 noip2 process active.

Process 1516, started as noip2, (version 2.1.9)
Using configuration from /usr/local/etc/no-ip2.conf
Last IP Address set EXTERNAL IP
configured for:
Updating every 30 minutes via /dev/eth0 with NAT enabled.

Auto start the client on reboot

But what if you reboot? You want to start the client everytime you reboot. This can be done with systemd.

1. Create the service file.

nano /usr/lib/systemd/system/noip.service

2. Add the following content.

Description=No-IP Dynamic DNS Update Client



3. Start the service

systemctl start noip.service

and enable the service

systemctl enable noip.service

18 May, 2015

Michael Meeks: 2015-05-18 Monday.

21:00 UTCmember

  • Mail chew, document review, 1:1 calls variously. Lunch, team meeting, mail - dug at a SplitWindow regression; team meeting.
  • Fit new Dishwasher catch. Re-assembled the bath, having angle-ground offending nails off the back of the panelling.


Most of the projects around the Internet use Raspbian as main Raspberry Pi distro. Unfortunately, Raspbian doesn't work for me. Minibian worked for me. So I serched other distros. My favourite is Arch Linux because there are plenty of programs that I need for projects, but it needs some extra steps from terminal to create the SD.

Here we'll see how to create an SD card with openSUSE. There are plenty of information at the wiki page https://en.opensuse.org/HCL:Raspberry_Pi
. I'll collect the information I need for projects I'll write next.

I used 13.1 as distro because it's easier for me to resize the SD card.

1. Download the image (openSUSE-13.1-ARM-JeOS-raspberrypi.armv7l.raw.xz) from here:


decompress the image.

2. Find the device name of your card

cat /proc/partitions

usually it's going to be /dev/mmcblk0.

and create the card (as root)

sudo dd if=openSUSE-13.1*.raw.xz of=/dev/mmcblk0 bs=4M;sync

3. Since I didn't use a monitor (HDMI or DVI), I had to do some extra steps before boot my raspberry pi.

a. Delete the file /var/lib/YaST2/reconfig_system to start headless.
b. Resize the ext4 partition with Gparted.

4. When boot the Raspberry Pi, use the following

ssh root@IP

user: root
password: linux

Now the first command will be

zypper ref

and then update

zypper up

17 May, 2015

Michael Meeks: 2015-05-17 Sunday.

21:00 UTCmember

  • Up early; played violin at NCC; home for a fine lunch. Slept a chunk of the afternoon, dis-assembled the bath to clear the U-bend at some considerable length. The trainee-carpenter's "Easy to remove" ignored a large number of concealed screws, over-long nails & more; hmm.

16 May, 2015

Michael Meeks: 2015-05-16 Saturday.

21:00 UTCmember

  • Up earlyish; helped N. with LibreOffice draw - building a maths board game; replaced tyre on her bike. Attacked M's computer - Mozilla reporting all certificates as invalid even for google: turned out the date was mis-set (surely easy to check and do better here ) - a horribly unhelpful error message though; tweaked.
  • Out to Harminda's birthday party; populated by a large group of people from the gym & spec-savers - an interesting lot.

Plasma 5.3

The latest and greatest desktop tech from the KDE community

At the time of writing this, the openQA servers were busily running tests and, by the time we publish this article, they should be done. What was being tested? A massive amount of changes, bringing not only the latest Plasma 5.3 and Applications 15.04.1 to Tumbleweed, but also marking the switch to Plasma 5 as the default desktop!

What’s new

You can find an overview of major changes in the announcement of KDE Plasma 5.3 and the announcement of KDE Applications 15.04 two weeks before that.

Some of the biggest improvements in Plasma Desktop include much improved power management and widget handling. New are a touchpad configuration module, Comic widget and some system monitoring applets and improvements to plasma widgets like Clipboard, Recent Documents.

There were improvements in no less than 109 of the KDE Applications and its underlying libraries over the last 4 months:

  • A highlight is KDE PIM, with almost 400 commits, mostly around stability, performance and preparation of a port to Qt 5.
  • The Print manager was improved
  • There have been the usual raft of changes to Marble
  • Kdenlive and Telepathy Chat have been added to the KDE Applications, introducing KAccounts, a centralized account handling
  • And there was a lot of porting activity of tools like Kompare, KCharselect and more.

The massive list of improvements to existing KDE applications are detailed on this page.

Of course, this is just a taste of the changes you will notice compared to Plasma 5.2 and the release of the KDE Applications from December last year. Those who have not had the pleasure of experimenting with Plasma 5 will be delighted with improvements all over this well-designed workspace. Ranging from smoother animations to smarter behavior permeating almost all aspects of handling day-to-day tasks, Plasma 5 offers a more modern and optimized experience.

Edit videos like a pro with Kdenlive!

Edit videos like a pro with Kdenlive!

Default to Plasma 5.3

The packages being made available today include a switch to Plasma 5 as default desktop. The openSUSE KDE team deems this release stable for day-to-day usage and a considerable step up from the Plasma 4.x series. While the KDE community continues to maintain the 4.x series for a few more months, by the end of this year, all efforts will be directed toward the Plasma 5 series. Applications are porting in a swift manner with even the KDE PIM team eyeballing a Frameworks 5 release around August and half of the KDE Applications are now Frameworks 5 based.

This move will have an impact on current Tumbleweed users! The patterns have changed, and if you have the KDE Applications pattern installed, it will begin to pull in the Frameworks 5 based applications. And of course, if you currently use the KDE workspace you will migrate from Plasma 4.11 to 5.3 – giving you the newest, latest and best of Desktop Linux!

Note that the first time you

15 May, 2015

Michael Meeks: 2015-05-15 Friday.

21:00 UTCmember

  • Mail chew; sync. with Niall; dish washer door catch spring broke; dis-assembled and adapted (a rather weaker one) from another spring. Project review call. Couple of bugs fixed in the evening & a hair cut.

14 May, 2015

Michael Meeks: 2015-05-14 Thursday

21:00 UTCmember

  • Into Cambridge, chat with Tim; paperwork; sync. with Tracie. Home early; bug fixing on the train.

13 May, 2015

Michael Meeks: 2015-05-13 Wednesday

21:00 UTCmember

  • Finally found my VclPtr horror by using a perl-script to process the gdb H/W watchpoint output; uncovered a rats-nest long overdue for fixing too - the power of applied prayer etc.
  • New washing machine arrived; another Hotpoint (now Whirlpool apparently), if it does another decade - will be happy. Set too cleaning the code / rats-nest out. Lunch.

12 May, 2015

Michael Meeks: 2015-05-12 Tuesday

21:00 UTCmember

  • Mail chew, chased horror VclPtr smart-ref. counting issue - 2700 acquire/releases - and some of them wrong, for just one object; very strange.
  • Partner call; Philippe call.

Older blog entries ->