Category Archives: Blog

Debian fell over

With systemd 230, released a couple of days ago, the developers changed a default setting, that eliminates one of the few annoyances I experienced with systemd. Many a forum thread all over the net tried to solve the problem. This annoyance resulted in a message during reboot or shutdown, that the system is waiting for a process to shut down. This could take up to 90 seconds, if you did not set the level lower manually. These were stray background processes, that belonged to one or more users on the system and should have been shut down, when the owning user gets logged out.

The systemd developers with systemd 230 set the option KillUserProcesses in /etc/systemd/logind.conf to yes. That means that 95 percent of desktop users will not see these delays anymore, because all processes of a user will be closed when the user gets logged out. On the other hand, users of tools like screen, tmux and some others will find their processes also killed server-side, even though these were meant to be long-running background jobs. That being said, the devs did explain in the release note for systemd 230 under the third bullet, what users of such tools need to do to keep KillUserProcesses on yes and still have their long-running jobs stay alive. The problem at hand was being layed out in detail in a bugreport and it’s follow-up discussion already in April.

In Debian and Fedora this new behaviour led to long discussions (and the usual systemd laments of course). The bug report for Debian on this matter now led to the new standard setting being reverted in Debian with systemd 230-2 as of today. So, if you like your processes being stopped when your user logs out, you need to manualy revert the setting in /etc/systemd/logind.conf to yes again after updating to systemd 230-2. We decided months ago to have this set to yes as default for siduction. This will take effect with our next release. But if you want to set this to yes now, you need to do so yourself.

Should you be one of the users of screen, tmux, mosh and maybe a few other affected tools, there is ways to keep the setting at yes and still keep long running processes alive when logging out. You need two things to do this: first you set enable-linger [USER1 USER2...] for your respective users, as shown in the manpage to loginctl. PAM has been adapted to allow this as normal user. Then you can follow the manpage of systemd-run to start e.g. screen with the command systemd-run --scope --user screen in it’s own scope. This will keep the job running after logout, even though other user processes are stopped.

We admired Debian for deciding pro systemd, but we think, reverting this new default is the wrong decision in the face of desktop users.

Fun weekend at CLT Linux Conference

Photo by Christian Bär, CC BY-NC-SA 2.0 Six siductioneers spent the last weekend at CLT 2015, the annual Linux conference at Chemnitz University. First of all, let me thank the people who organized this conference for the 17th time and of course all the helper bees that make it the most pleasant event on the annual Linux calendar. Just to give you an idea, here is some numbers. Besides a lot of workshops, more than 90 talks on a wide variety of subjects were held, 60 projects like siduction could exhibit the soft- or hardware or the services they offer. Between the two days of work and hacking, Linux-Night offers socialising, food, drink and music. It was nice to see that the place was packed and bursting at the seams with visitors on both days.

We had a successful weekend and tons of fun. Besides answering questions or solving problems of visitors at our booth we were able to roll out some ideas for the future of siduction that you will learn about soon. Besides that we were paid a visit by some people from the distant past of our project. Klaus Knopper and also Kano from Kanotix came by our booth to say hello. Knopper was doing some inquiry on how to tame systemd for Knoppix, which is not all that easy due to the nature of the scripted way in which Knoppix boots. We were able to provide some help and advice here and put aside some of his worries in that regard. Both of them might be helpful to us in porting siduction to ARM devices. We supplied Kano with a developer board where he can play with porting stuff from other architectures. So with Knopper and Kano there and our pals from Debian right next to us, we had the full circle from the Knoppix/Kanotix origins to Debian Stable and beyond to the save haven of siduction.

Besides that we managed to talk to our server provider Hetzner, whose company was also present with a booth. They will upgrade our hardware for web- and buildserver in the course of 2015 free of cost and for the same fee as we pay now. We also worked on some ideas on how to attract new developers to siduction, which is a problem that in the long run we will need to solve for sure. Too much work is on just a few shoulders right now. Things we need to attack soon involve UEFI installs and, regarding the latest news from linux-loving Microsoft, we might have to deal with secure boot as well. One of the ideas to attract new blood is to rent another server and donate slices of that to developers and projects who need some iron to work on for a fixed time frame. Our terms for this would be, that people who want to use our offer at least have a look at our project and consider a list of problems we want to tackle and help a bit with that, if they can.

What we did not do on this weekend was taking pictures. I left my camera at home and noone else had one either. So this article has the only photo of our booth that I could find on the net. But that is ok, facts are more important than pics :). Some Debian folks invited us to DebConf, which is held in August for the first time in Germany. Besides that we will visit another young Linux fair called Open-Rhein-Ruhr and that takes place in November in the city of Oberhausen.

Revisting an article on how to set up Solid State Disks with Linux

Almost three years ago I wrote a lengthy article on how to align, partition, configure and benchmark Solid State Disks under Linux. Those were the early days of these NAND flash memory devices and you had to jump through some hoops to get them to perform at their best when it comes to performance and durability. So by now parts of the tutorial have been obsolete for some time now. Graphical partitioning tools e.g. handle the alignment of these devices correctly nowadays, which they did not do back then. I have never found the time to go back to that article and bring it up to the latest.

So we are grateful, that Don, who on the forum goes as dibl, took it upon him to present us with a modernised version of this tutorial. Not only does he eliminate cruft that is obsolete or plain wrong nowadays, he also describes a different concept of trimming these devices. This method substitutes the discard parameter in your fstab, that takes care of the trimming for most of us. This method makes use of the fstrim command from the package util-linux, which, which is run, preferably when you are absent from the machine, by a script using cron on a daily or weekly turn. This prevents that discard calls TRIM every time we delete a file and slow things down. So, here we go, thanks again, Don.

Optimizing SSD-based System Performance

The goal of these configuration settings, generally, is to select and configure a suitable filesystem, to minimize erase/write cycles that don’t add to system performance, to enable TRIM, and otherwise to optimize the OS to provide a very responsive user experience.

1. Filesystem type and /etc/fstab configuration

We want to use ext4 and take advantage of the journaling feature, for data security, but we want to reduce the frequency of journal commits (writes to the SSD) from the default 5 seconds to a slower rate, to extend the life of the SSD memory blocks. The “commit” mount option controls the frequency of journal commits, and as mentioned is set to 5 seconds by default. Understanding that slowing down this frequency also raises the risk of data lost in a power loss or system freeze situation, choose a slower frequency that you are comfortable with, like “120” for two minutes, a reduction of 24x. To avoid writes caused only by reading files, use the “noatime” option. As a result, the /etc/fstab line that mounts the OS will look like this:

UUID=bea3a748-3411-4024-acd0-39f3882ddaf9 / ext4 noatime,commit=120,errors=remount-ro 0 1

For typical laptop and single-user computers, we want to mount selected filesystems as “tmpfs”, which lets the OS use memory rather than the SSD for logging and spooling. The wise user will wait for a reasonable period of time after initially installing on the SSD, before these changes are made to /etc/fstab, because until you are sure your system is stable, you should allow the logs to be written on the SSD, for later review. Logs written in memory will not survive a reboot. When you are satisfied that the system is stable and the logs can safely be lost at each reboot, add these lines to the end of /etc/fstab:

none /tmp tmpfs defaults,noatime,mode=1777 0 0
none /var/tmp tmpfs defaults,noatime 0 0
none /var/log tmpfs defaults,noatime 0 0
none /var/spool tmpfs defaults,noatime 0 0

Alternatively, you could mount these directories on a hard disk drive if one is also installed in the system – a better approach for a server, for example, where you might need to periodically review older logs.

2. Enable TRIM

Recent guidance [4] recommends using the fstrim utility periodically, rather than using the “discard” filesystem mount option. At the conclusion of the linked blog, a very handy script for use as a cron job is shown, and it is repeated here for convenience:

# To find which FS support trim, we check that DISC-MAX (discard max bytes)
# is greater than zero. Check discard_max_bytes documentation at
for fs in $(lsblk -o MOUNTPOINT,DISC-MAX,FSTYPE | grep -E '^/.* [1-9]+.* ' | awk '{print $1}'); do
fstrim "$fs"

Save it as /etc/cron.weekly/fstrim_job.

Note that LVM systems and LUKS/dm encrypted filesystems add additional configuration tasks to the basic filesystem configuration described here – follow the guidance to enable TRIM at each level of your system configuration.

3. Outsource the browser cache to /run/user (guidance for single-user system, can be expanded for multi-user implementation)

Since Debian now has the shared directory /run/user/usernumber in RAM, we can outsource the cache generated during browsing to memory, and eliminate many SSD writes. For example, in the Firefox/Iceweasel address bar we enter “about:config” and confirm the warning. Now right-click in the white space and choose “New ==> String” and we create a new entry called:


After double-clicking the new string, we assign it the value:

/run/user/1000/firefox-cache for the first user.

Now as user in the terminal create a directory:

mkdir -p /run/user/1000/firefox-cache

After a Firefox restart, browser caching happens in memory, not on the SSD.

For chromium-browser, the cache location is set with the --disk-cache-dir=”DIRNAME launch command option. So to outsource the chromium-browser cache:

mkdir -p /run/user/1000/chromium-cache

Open the chromium-browser launch icon for editing, change to the »Application« tab, and edit the start command to read as follows:

/usr/bin/chromium –disk-cache-dir=/run/user/1000/chromium-cache %U

In /usr/share/applications/chromium.desktop, find the line

Exec=/usr/bin/chromium %U

and edit it to read

Exec=/usr/bin/chromium –disk-cache-dir=/run/user/1000/chromium-cache %U.

Note that this will need to be done again after each chromium package update overwrites it.

The new browser cache directory in /run/user will not survive a reboot. To automate this process, put the following “” script in your ~.kde/Autostart folder (for KDE users), and then chmod +x to make it executable:

mkdir -p "$NEWDIR" &
sleep 1
mkdir -p "$NEWDIR1" &
sleep 1

Analogous cache outsourcing configuration can be made for other browsers, if they allow the user to specify the cache location, and the startup script can be adapted to add directories for each browser that the user wants to run.

For a desktop system that remains booted for long periods, and depending on the memory capacity and browsing activities, the outsourced browsing cache could grow to a problematic size and need to be manually cleared to avoid sending the system into swapping.

4. I/O Scheduler selection

Multiple sources that you can find with a google search indicate that, for SSDs, the “deadline” and “noop” schedulers perform better than the default “cfq” scheduler, with deadline getting the most recommendations. Set the scheduler in /etc/sysfs.conf as so:


5. Virtual memory settings

Depending on how much memory your system has, and how you use it, the same tweaks to vm (swappiness, vfs_cache_pressure, etc.) that you use for a hard disk drive installation can also be applied to a system installed on a SSD. Guidance is available via google search as well as the two excellent references below. Here are the lines added to /etc/sysctl.d/sysctl.conf on one of my SSD installations:

vm.dirty_ratio = 50
vm.dirty_background_ratio = 3

Virtual Memory Tuning References:


Performance Testing (from devil’s article)

Before you spend time on performance testing and benchmarking your SSD, you need to determine the firmware version you have, and then check the OEM’s website and learn whether a more recent version is available. Significant performance improvements can result merely from updating your SSD firmware — follow your OEM’s instruction to install updated firmware. To check your firmware version:

hdparm -iv /dev/sdx

6. Verify that TRIM is working (after setting the “discard” mount option as shown in #1 above).

# cd to some directory on the SSD, then
dd if = /dev/urandom of=tempfile bs=512k count=100 oflag=direct
hdparm - fibmap tempfile

# here we read the sectors from the tempfile

From the output we copy the number immediately under “begin_LBA” and insert it in the next command:
hdparm - read-sector 1234567 /dev/sdx
# 1234567 replaced with the number from the previous command and /dev/sdx with your device ID

The output should be a longer string. Next:

rm tempfile
hdparm -read-sector 1234567 /dev/sdx

# replace 1234567 and /dev/sdx with your values

The sectors will not be cleared instantly due to caching — wait for some seconds. Then repeat the last command (hdparm – read-sector …) — it should (after a short while) come out all zeros. That means TRIM works! If you have problems with “discard” on your SSD and you have verified that your SSD does support TRIM, you can use fstrim which is in the current util-linux package (check “man fstrim”), or use the tool “DiskTrim” from

7. Throughput Benchmarking

CAUTION: You can benchmark your SSD to a premature death by subjecting it to frequent comprehensive benchmark tests!

7a. Simple hdparm test:

hdparm -tT /dev/sdx

Run it twice in rapid succession — normally the second run is fastest.

7b. hdparm with O_DIRECT kernel flag:

hdparm --direct -tT /dev/sdx

7c. More reliable benchmark using dd:

# cd to some directory on the SSD, then
$ dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync, notrunc
1024 +0 records in
1024 +0 records out
1073741824 bytes (1.1 GB) copied, 2.18232 s, 492 Mb/s

Now (as root) clear the buffer cache to force reading directly from disk:
# echo 3 > /proc/sys/vm/drop_caches
$ tempfile dd if=of=/dev/null bs=1M count=1024
1024 +0 records in
1024 +0 records out
1073741824 bytes (1.1 GB) copied, 2 , 55234 s, 421 Mb/s

Now we have the last file in the buffer cache and measure its speed:
$ dd if=tempfile of=/dev/null bs=1M count=1024
1024 +0 records in
1024 +0 records out
1073741824 bytes (1.1 GB) copied, 0.122594 s, 8.8 Gb/s

For the most accurate possible value for your SSD, re-run the last command 5 times and average the results.

7d. Other benchmarking tools are bonnie++ and compilebench. Have fun!


[1] Debian Wiki

[2] Arch Wiki

[3] SSD Endurance Testing

[4] Trim Guidance

It’s that time of year again

The temperatures are dropping, outside your window and even more so within Debian. In less than a month Debian will go into hibernation to prepare for the next stable release Debian 8 »Jessie«. The upcoming freeze leads, even more so than with other Debian releases I remember, to a flurry amongst the developers. Everybody tries to get their latest developements into sid to have a chance to see them integrated in Jessie in a couple of months.

That being said, me abstaining from this blog for a while due to time restraints does not mean, your favourite distribution is not moving forwards. Everyone watching our git repositories will know we are constantly busy improving what we already have. So what have we been doing? Besides working on a better integration of systemd into our build tools we are concentrating on two releases: for one, 2014.1 has still not materialized, even though a lot of work has already been devoted to it.

The reason for that is that at this moment, there is only one desktop environment that could undoubtedly be released as is and that is XFCE. This is due to the fact that there has been no major updates for quite some time now. On a close second rank is KDE SC, which is, despite the upcoming switch to it’s fifth iteration, in pretty good shape. Gnome has just been updating (or is still in the process of doing so) to 3.14, with some glitches to be ironed out still.

Then there is the LXDE/LXQT/Razor-Qt conglomerate. As you will know, LXDE and Razor-Qt are going together under the Qt framework to form a new desktop environment. Razor-Qt will not be released by us anymore, it is practicaly dead, while LXQT is not quite where it needs to be for a release. As LXQT 0.8 is still not released (a 0.8rc1 might be due these days), LXQT unfortunately will not make it into Jessie. We will for sure let you try out a dev-release once LXQT is worthy of it.

Another desktop environment that will definitely make it it into debian’s next release is cinnamon. And that is the second relesase I told you we were working on. Before sicution 2014.1, in a matter of days, we will bring to you a dev-release of siduction cinnamon. Longtime supporter musca has commited himself to bring cinnamon into shape for siduction and I can tell you that a lot of love went into this project. So soon you will see a rather polished dev-release bringing the cinnamon desktop to siduction. You now may hold your breath.

Release notes for siduction LXQt Dev Release

Please welcome a new linux citizen!

We are very happy to present to you today, straight from LinuxTag conference in Berlin, the first integration of the shiny new desktop environment LXQt into a distribution image. This is clearly labeled as a Dev-Release, so do not trust it, it might kill your kittens, although the developers of LXQt flagged it as being beta status. The image is to be found on this and other mirrors.

The released image, that is only available for 64-bit for now is a snapshot of Debian unstable, that also goes by the name of Sid, from 2014-05-08. They are enhanced with the lightweight LXQt desktop environment, some useful packages and scripts, our own installer and a custom patched version of the linux-kernel 3.14-3, accompanied by X-Server 1.15.1.

LXQt, the new kid in town

LXQt, the kingpin of this release is a shiny new desktop environment, that , remarkebly enough, came to live through a merge, not a fork. The desktop envirmonments LXDE (GTK+ 2) and Razor-Qt (Qt 4) bundled their ressources and, on May 7, after more than a year of development, released a first beta version LXQt 0.7, based on top of the Qt 4 framework. The developers say, the port to Qt needs just a bit more RAM than LXDE did, but performance is said to be as blazingly fast as we know LXDE is.

As with our latest full release from January 2014 we again make use of Systemd as init system in version, which Debian will also ship, starting with the release of Debian 8 “Jessie”, expected in early 2015. It is clearly the most technicaly advanced of the init systems at hand.

New commands

Here is a little cheat sheet with some of the commands that are new for booting, handling services and logging with systemd:

Handling Services

  • systemctl list-units – List all units (where unit is the term for a job/service)
  • systemctl start [NAME…] – Start (activate) one or more units
  • systemctl stop [NAME…] – Stop (deactivate) one or more units
  • systemctl disable [NAME…] – Disable one or more unit files

Check man systemctl for more information. For your comfort we also ship systemd-ui, which is called with the command systemadm.

Changing Runlevels, Reboot and Shutdown

Changing runlevels is also different from sysvinit. What was known as runlevel 3 is now, init 5 changes to

  • systemctl isolate – Will take you to what you know as init 5
  • systemctl isolate – Will take you to what you know as init 3
  • systemctl reboot – Shut down and reboot the system
  • systemctl poweroff – Shut down and reboot the system

Logging with Systemd Journal

    Journal is a great win over the agedsyslog. Logging starts earlier, which for sure was one of the backsides ofsyslog. Also there is commands that give you tailored information at your fingertips.

  • journalctl –all – gives you the full journal of the system and all users
  • journalctl -f – gives you a live view of the journal as it grows (used to be tail -f /var/log/messages)
  • journalctl -b – shows the log of the last boot
  • journalctl -b -p err – shows the log of last boot, limited to the priority ERROR
  • journalctl –since=yesterday – since Linux people normaly do not reboot much, this is limiting it more than -b

That is only the tip of the iceberg, more is to be found on Lennart Poetterings blog

Since we still ship a compatibility package called systemd-sysv, you can also continue to use the commands you are used to for now, other than the ones for the journal. Besides that we set up systemd in a way, where you can use all the above commands for the journal as plain user, no root needed.

Our Resources

siduction Forum
siduction Blog
Git Archive
Distro News

Support can be obtained on our forum as well as on IRC. The relevant channels on OFTC-Network are #siduction for english support or #siduction-core, if you like to join in and participate. On your desktop you also find an icon that takes you to the right channel for support, depending on the chosen language.

To be able to act as a testbed for Debian, we are introducing our own bug-tracker. Let me explain how you can help us and Debian by submitting bugreports for broken packages. Weathered users will know how to file bugs directly with the Debian BTS (Bug Tracking System). For users not so comfortable with the system we have reportbug-ng preinstalled.

If you think, you found a bug in a Debian package, please start reportbug-ng and put the name of the package in the adressline on top. The app will now search through the already filed bugs for that package and show those. Now it’s up to you to determine, if “your” bug has already been reported. If it is, ask yourself if you have anything relevant to add to this report or maybe even a patch. If not, you are done for this time. If the bug has not been reported yet and you are not familiar with the BTS yet, you may report the bug in our Bug-Tracker.

That obviously goes for siduction packages as well. We will sort the bugs for you and file them in the appropriate place, if it’s reproducible. Please look out for a forum post with more detailed info on the bug-tracker soon.

Speaking of release and our planned release cycle. There is nothing we can tell you other than that we strive for 2-4 releases per year.

As we are always looking for contributors, here is what to do: Come to IRC to channel #siduction-core and talk to us about what you would like to do within the project, or where you think you could help. As you will notice if you scroll down, we have no art-team at the moment. If you are willing and capable, talk to us.

Hardware Tips

If you should own a ATI Radeon graphics accelerator, please use the failsafe option, when booting the Live-ISO. This option will add the cheatcodes radeon.modeset=0 xmodule=vesa to the Kernel bootline, so that you can boot to X. Before installing, on the Live-ISO, please install firmware-linux-nonfree. To do so, please open your /etc/apt/sources.list.d/debian.list with your favourite editor as root and append contrib non-free to the end of the first line. Save the edit and do:

apt-get update && apt-get install firmware-linux-nonfree

If you install the operating system now, the package will be installed also, preventing you from a garbled screen when first rebooting. Mind that if you rebootbefore installing the system, the changes you made will be lost.

If your system has wireless network, this will probably not work out of the box with free drivers, so you better start with wired network connected. You might want to use the script fw-detect to get information on wireless drivers. The installer will prompt you for any missing firmware and guide you through the process of installing it.

Last but not least a hint for users of the kernel based virtual machine KVM. The developement of a frontend for the kernelbased virtual machine (kvm) has begun as a fork of qemu with the name qemu-kvm or short “kvm”. Since qemu version 1.4 all patches of the kvm fork have been integrated back into the qemu source. Also there has been much progress in the field of virtualization. So there is a lot of outdated documentation around. We have a current worksheet for Qemu in our wiki.

Credits for the dev release of siduction LXQt

Core Team:

Alf Gaida (agaida)
Angelescu Ovidiu (convbsd)
Axel Beu (ab)
Ferdinand Thommes (devil)
Hendrik Lehmbruch (hendrikl)
Markus Meyer (coruja)
Tom Wroblewski (GoingEasy 9)
Torsten Wohlfarth (towo)

Maintainers of the siduction Desktop Environments:

GNOME: Angelescu Ovidiu (convbsd)
KDE: Ferdinand Thommes (devil), José Manuel Santamaría Lema (santa)
LXDE: Markus Meyer (coruja)
noX: Alf Gaida (agaida)
Razor-qt: Alf Gaida (agaida)
XFCE: Torsten Wolfahrt (towo)
LXQt: Alf Gaida (agaida)

Art Team:

missing in action 🙂
Seriously, we need contributors for siduction release art!

Code, ideas and support:

J. Hamatoma (hama)
Markus Schimpf (arno911)

Thank you!

Also thank you very much to all testers and all the people giving us support in any possible way. This is also your achievement.

We also want to thank Debian, as we are using their base.

And now enjoy the new linux citizen that came from a merger, not a fork!

On behalf of the siduction team:
Ferdinand Thommes

It’s that time of year again – LinuxTag is here

Yes, it is. LinuxTag (LT) conference and fair starts tomorrow. We have a new location, moving away from Berlin Messe, the big convention center, to a more cozy place called The Station. So everyone involved is real excited about how the new concept is going to pan out. We again share a booth with Debian and Kanotix.

This year we have two big surprises for our visitors. For one we do a Linux quiz with valuable prices, like a Intel NUC mini-pc, a Raspberry Pi, accompanied by a book with projects for it, a beginners book about learning Python and t-shirts and USB-Sticks.

Secondly we will have our by now traditonal release for LT. This one is kind of special, as it is the first official appearance of a new desktop environment. Today the teams behind LXDE and Razor-Qt have, with a little help from siduction, released the first version of the united LXQt desktop environment, based on the Qt framework, LXQt 0.7.0. During LT we will offer an image for download and on display at LT that features the newcomer.


So, if you are in town, come see us on community day, which is on Saturday, May 10th, when admission is €10 only. We throw a little party at our booth with beer and snacks at 16:00, announcing the winners of our little quiz.

New website launched

After just two weeks of tinkering, we moved our website over… Well no, not really, let me start over 🙂

Together with the first release of siduction we also wanted to move our website away from Zikula, the CMS that we had used before. We find it unnecessarily complicated in administration without at the same time offering an adequate plethora of options and nifty tools, specially when it comes to things like spam protection. First off we had an intensive look at Joomla, did not really warm to it though. At least, in the process, I learned a lot about setting up Joomla with multiple languages, which a year ago was anything but straight forward. Continue reading

Summer in the City

Let me tell you, it is hot and it’s been that way for a month now. Just now a storm is brewing up and it will rain. My private life was quite stormy too during the course of this year. Spent spring in the US, then got back, got married, had a honeymoon on a float on a river and now filed papers for migrating to the USA. So the rest of the year will be busy as well. Continue reading