DDD #3: Advanced Live-CD/DVD creation

In post 19 (Creating an Arch Live-CD) I blogged about building a simple Live-CD on Arch Linux. It was the summary of my first attempts relating to that topic. In the meantime I created another ISO and published it as a first preview of my “Desktop Demo DVD” project in post 21 (The Desktop Demo DVD).

This new entry will describe how my “DDD” was built (and thus how you add things like a graphical login manager and add users to a live medium).

Preparations

First I create a new virtual machine to keep things clean and tidy and then build and install the archiso tool. Next is building AUR packages edelib and ede as well as creating a custom repo for them. (I won’t repeat it in detail here. You can look up both things in post #19 if you wish).

Configuring archiso

Just like in my previous building attempt, it’s necessary to create a new directory and copy over the “releng” dir from archiso. After that the various steps at configuring the iso can be taken.

Packages

The first thing to do is adding the right packages to the file packages.i686. Since we want a graphical environment, it’s a good idea to have xorg-server installed (we’re going to use a graphical login manager this time, so we can do without xorg-xinit).

Since the system is meant to run on about every hardware, X11 needs the proper graphic drivers. You may want to look for all xf86-video-* packages and add them. The only issue with that was that the openchrome and unichrome drivers were conflicting, but later (and older) one has been removed from the “extra” repository recently. Whatever you do, be sure to leave xf86-video-vesa in there – that’s the fallback driver that will work on most machines even if none of the others does (which is pretty rare however). Also it might be a good idea to add xf86-input-evdev just to make sure, you can use e.g. your keyboard in X. Adding virtualbox-guest-modules, too, will let X.org use the appropriate driver if running inside a VirtualBox VM.

Next I added the desktop environments that I wanted to be available. I chose mate (remember to add the additional repos for it and ede!), xfce4, lxde and e-svn as well as libxpm (needed by ede) and the packages edelib and ede. Finally the display manager lxdm is added as well.

Display manager

Thanks to systemd, much of the wiki page about archiso is outdated and no longer of any use. This is the case e.g. when it comes to starting the display manager automatically after booting. It suggests using an inittab and we could actually do so and use a sysVinit compatibility package as well. However it was already announced that this would be dropped in the forseeable future so it’s best to do things the proper way right from the beginning.

LXDM comes with its own service file for usage with systemd. So the default command to configure the system for starting it after booting is systemctl enable lxdm.service. However this will of course not work in our case: First we don’t even have LXDM installed on building system and second – even if we had – enabling it there would not affect the live system. However for that reason there’s a folder called root image where we can make changes that will affect it!

So what does the above command really do? No more actually than creating a softlink! Of course we can do that by hand, too. Let’s change our PWD (present working directory) to /root/archlive/releng/root-image/etc/systemd/system. Now let’s create the proper link, shall we? The command for that is ln -s /usr/lib/systemd/system/lxdm.service display-manager.service.

Next step is creating a new directory (that is normally created when LXDM is installed): mkdir ../../lxdm and then I change into that dir. Afterwards I install lxdm on my build system and copy its configuration file into the new dir: cp /etc/lxdm/lxdm.conf . (if you’ve got LXDM installed on any other system, you can of course also copy it from there). Now it’s time to edit lxdm.conf: I simply add user “arch” to the blacklist (right at the end of the default configuration file). It’s a user automatically created by the install scripts and I have not yet looked into how to prevent its creation. For that reason I decided to just block it there so that it’s not offered by LXDM.

Adding a user

This step is important since we disabled the user “arch” and cannot log in as “root”. The solution suggested for this on the Arch wiki is simply copying over the files passwd, shadow and group (all located in /etc) from a system set up the way we want it. This is actually a fine way and since we’re using virtual machines anyway, it does not hurt to simply clone one, adding the desired user (“desktopdemodvd” in my case) there and copying said files over to root-img/etc on our building VM (using a USB device is probably the most confortable way).

That was the easy part. Many DEs will however not work if there’s no proper /home/$username directory present. We could of course create one in root-image/home, but that would be owned by root on our live system so that’s not quite what we want. Again the wiki is outdated (while I’m at it anyway, I should dedicate some love to it when I’m done here, I guess). We want to do things the systemd way! So how to do it in this case? Let’s write a new service for it (woah)!

Luckily things are easier than it might look first. Ok, I admit that it took me a few attempts before things finally worked right. But you can save yourself some time and simply copy what I did. Change into the dir root-img/etc/systemd/system again. Now create a new service file – I called mine “autostart.service”. The content of my file is like this:

[Unit]
Description=Autostart

[Service]
Type=oneshot
ExecStart=/bin/mkdir /home/desktopdemodvd
ExecStart=/bin/chown desktopdemodvd /home/desktopdemodvd

[Install]
WantedBy=multi-user.target

Note: “ExecStart=/bin/chown desktopdemodvd /home/desktopdemodvd” is one line!

Done configuring

Yes, if I remember correctly, that was all. You should be able to build the iso now.

I don’t know if I did any changes beside these, but this blog entry at least shows two important things: Adding users and using a graphical login manager.

There are of course a lot of things you could customize as well and perhaps I’m going to explore some of these in the future, too. But right now I’m going to wait and see what happens with the “DDD”.

What’s next?

My next post will deal with what should be considered essential graphical applications – and afterwards we’re getting back into the world of toolkits.

Advertisements

DDD #2: The “Desktop Demo DVD”!

In the last entry I discussed the situation of Linux desktop environments in general and how it encourages taking various less-known DEs into account for your system, too. Now it’s time to talk about the first alpha version of the actual DDD!

If you just want to download it, have a look here.

The idea behind the DDD

There are four reasons why I decided to create the “DDD”:

  1. Because I found out that there are many Linux users today who would like to know more about alternative DEs
  2. Because I think the less known DEs deserve some publicity
  3. Not every DE can be installed easily on each distro and thus it can take a lot of time and effort to try them out
  4. Because I’m interested in different DEs and building “DDD” is another informative thing

The version I release today is just a little preview. But before I describe what 0.1 includes right now, I’d like to share my vision of what DDD 1.0 should be.

Vision

  • A perfect Desktop Demo DVD should come with all available desktop environments the Linux world has to offer.
  • If possible it should also showcase some default applications of the particular DE which are not in the menus of the other ones so things don’t get confusing.
    (I think that this can be done with the desktop files or probably by other means.)
  • Localization at least for the most common languages.
    (Better: As much languages supported as possible.)
  • Only list the real DEs in the display manager (and not probably confusing variants with different WMs).
  • A short html tutorial which helps the users to discover the most important features of the various DEs could be very beneficial.
  • Some nice artwork would be great, too.
  • A few other “cosmetics”.

Desktop Demo DVD

This project is to provide an ISO file that can be downloaded and used in either a virtual machine or burned to a disk and then used with real hardware. It is meant to showcase the various DEs that work with Linux and thus give anybody interested the oportunity to quickly take a look at them without all the hassle (i.e. finding out that they even exist, often building them yourself, getting them to run on your distro, etc.).

You can download version 0.1 of it from Bitshare.

If you want to check the integrity of the downloaded file, you can just put this into a new file and use md5sum:

f9d57debb8d83cba46f4dada042133a5 desktop_demo_dvd_0.1.iso

As you would guess when you read the version number, this release is mearly a first attempt. Right now it fits on a CD but that’s going to change. I’ll try to improve DDD if I find time for it and then release a second version.

Currently it provides a graphical login (using lxdm) and comes with as much as 5 DEs:

  • MATE
  • Xfce
  • LXDE
  • Enlightenment 17
  • Equinox DE

Using the DDD

If all goes well you should be greeted by the graphical login manager LXDM after startup. First open the list of available desktop environments (if you don’t change anything, LXDE will be started as default). To do so, click on the list to open it.

Graphical login: First step

Now select which one to start and then click on the user “desktopdemodvd”.

Graphical login: Second step

The password for the primary user desktopdemodvd is simply ddd. Enter it and then press the return key.

Graphical login: Last step

That’s it! The DE you selected from the list should be starting.

Issues with version 0.1

There are a few issues I didn’t find a solution for yet, but I didn’t want to postpone things again for an even longer delay. Probably the worst thing is performance: Even when using the ISO in a virtual machine on a fast PC it takes quite a while until the DEs finish loading. Please be patient. Because of that I can’t recommend burning it and using a disk. Also for some reason loging out of E-17 does not work.

Please report other problems, make suggestions and give feedback of any kind. I’d very much appreciate it!

What’s next?

I can’t promise when (or if!) a new DDD version will be released. The next post will be about the technical side of it and describe how to build an extended Arch live-cd including users other than root and with a graphical login (display manager).

Linux desktop comparison summary – 20 solutions for your desktop!

Our first Linux desktop comparison is over. I took a look at quite some projects during the last weeks. 20 of those (including modes that are behaving differently) proved to be full DEs which should be covered by a broadscale test.

Some others, like UDE for example, had to be skipped. While it does have a very interesting concept, it’s not currently a DE but only offers a window manager (despite the name “Unix Desktop Environment”). In the end 18 DEs were actually tested (I failed to get the other two to run on Arch).

Problems

Comparing DEs over the time of several weeks on a rolling release system might not really wield the best results. I also wanted to add something new to this post so that it’s not just a boring summary for those who have read the past entries. Therefore I decided to add the size of the packages that are downloaded to install the DE, too. After all network traffic can still be an issue for some people. Well, and for some DEs new versions have been released in the meantime and I’d feel stupid to write a new entry by just warming up old stuff.

For these reasons I repeated most of the tests last Monday and Tuesday and use the new values here (which sometimes make a huge difference!). Only CDE uses the old package; I was able to build a current package but did not succeed in making the DE start. Unity2d is now obsolete just like the old GNOME 2 (which I essentially added so that MATE can be compared to it, anyway).

Overall Ranking

I’ll begin with the overall rating here since that’s the most important thing. I’ve compared all DEs in terms of 1. memory consumption (most important for me and thus weighted *3), 2. disk space used (weighted *2) and 3. size of packages to download. So, here’s the result:

Rank DE Version
01 OpenCDE 620
02 Equinox DE 2 2.0
03 CDE 2.2.0a/b
04 LXDE 0.5.x
05 ROX DE 0.41.0
06 Enlightenment 17 svn-75246
07 Razor-Qt 0.4.1
08 Xfce 4.10.0
09 Sugar 0.94.1
10 MATE DE 1.4
11 Cinnamon UI 1.5.7
12 GNOME 3 Classic 3.4.2
13 GNOME 3 Shell 3.4.2
14 Trinity DE 3.5.13
15 Unity 3D 6.4.0
16 KDE Plasma 4.9.0

RAM usage

Here’s the table that compares memory usage of the tested DEs:

<101 MB 101 – 200 MB 201 – 300 MB >300 MB
obsolete not working
Rank DE Version Memory usage
00 Arch Linux 08/2012 37 MB
00 X11, VBoxadds, xterm 08/2012 54 MB
01 OpenCDE 620 57 MB
02 Equinox DE 2 2.0 71 MB
03 CDE 2.2.0a 72 MB
04 ROX DE 0.41.0 72 MB
05 LXDE 0.5.x 83 MB
06 Enlightenment 17 svn-75246 97 MB
07 Xfce 4.10.0 104 MB
08 Razor-Qt 0.4.1 117 MB
09 Sugar 0.94.1 122 MB
10 GNOME 2 2.32 137 MB
11 MATE DE 1.4 139 MB
12 Trinity DE 3.5.13 202 MB
13 GNOME 3 Classic 3.4.2 211 MB
14 Cinnamon UI 1.5.7 224 MB
15 GNOME Shell 3.4.2 253 MB
16 Unity 3D 6.4.0 312 MB
17 KDE Plasma 4.9.0 354 MB
18 Unity 2D 6.0.0 404 MB
xx Ètoilè 0.4.2 ??
xx Mezzo ?? ??

Drive space needed

Here’s the next table:

<301 MB 301 – 600 MB 601 – 1.2 GB >1.2 GB
obsolete not working
Rank DE Version Disk space used
00 Arch Linux 08/2012 561 MB
00 X11, VBoxadds, xterm 08/2012 +68 MB
01 OpenCDE 620 +83 MB
02 Equinox DE 2 2.0 +174 MB
03 CDE 2.2.0b +192 MB
04 Razor-Qt 0.4.1 +226 MB
05 LXDE 0.5.x +325 MB
06 Enlightenment 17 svn-75246 +340 MB
07 ROX DE 0.41.0 +497 MB
08 Xfce 4.10.0 +559 MB
09 Sugar 0.94.1 +604 MB
10 GNOME 2 2.32 +630 MB
11 MATE DE 1.4 +675 MB
12 Cinnamon UI 1.5.7 +947 MB
13 GNOME Shell 3.4.2 +1023 MB
14 GNOME 3 Classic 3.4.2 +1023 MB
15 Unity 3D 6.4.0 +1121 MB
16 KDE Plasma 4.9.0 +1232 MB
17 Trinity DE 3.5.13 +2098 MB
18 Unity 2D 6.0.0 ??
xx Ètoilè 0.4.2 ??
xx Mezzo ?? ??

Download size

And here’s the last one:

<51 MB 51 – 100 MB 101 – 200 MB >200 MB
Rank DE Version size default / max
00 Arch Linux 08/2012 123 MB
00 X11, VBoxadds, xterm 08/2012 +15 MB
01 OpenCDE 620 +19 MB
02 Equinox DE 2 2.0 +38 MB
03 CDE 2.2.0b +49 MB
04 Razor-Qt 0.4.1 +53 MB
04 LXDE 0.5.x +53 MB
05 ROX DE 0.41.0 +75 MB
05 Enlightenment 17 svn-75246 +75 MB
06 Xfce 4.10.0 +82 / 99 MB
07 Sugar 0.94.1 +89 MB
08 MATE DE 1.4 +119 /169 MB
09 Cinnamon UI 1.5.7 +147 / 347 MB
10 Unity 3D 6.4.0 +163 /302 MB
11 GNOME 3 Shell 3.4.2 +167 / 366 MB
11 GNOME 3 Classic 3.4.2 +167 / 366 MB
12 KDE Plasma 4.9.0 +306 / 774 MB
13 Trinity DE 3.5.13 +485 MB

Conclusion

The most light-weight DE tested is OpenCDE, based upon Motif. The second best is Equinox DE using FLTK as its toolkit. The lightest GTK+-based DE is LXDE, ranked No. 5 and the lightest Qt one Razor-Qt which scored rank 7. So these will be the candidates to examine closer in a future testing series.

What’s next?

The next entry will deal with what Eerie’s last two letters stand for.

Linux desktop comparison (pt. 2): Traditional GTK+ DEs

This is part 2 of our desktop testing series. We’ll deal with 4 traditional gtk+-based desktop environments in this entry.

These are:

For test criteria and the basic Arch system, please refer to the first part of this test.

GNOME 3 Classic

GNOME 3 Classic – also called “fallback mode” – is a re-implantation of GNOME 3 resembling the “GNOME 2 way”. It offers the familiar panel instead of the shell. However it is not on an equal footing with the shell but really meant only for those machines which cannot run the later (most likely because of missing 3D acceleration). It’s not working exactly like GNOME 2 as there are a number of (mostly annoying) differences but it may be dropped anyway in the future.

The GNOME 3 Classic desktop

Installation

pacman -S xorg-server xorg-xinit dbus virtualbox-archlinux-additions gnome

Statistics

Memory usage right after starting up GNOME 3 Classic (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux + GNOME 3 Classic (3.4.2)
MemTotal: 1030652 kb
MemFree: 804524 kb
Buffers: 15868 kb
Cached: 94984 kb
Rootfs: 1732056 / 1.7G
RAM used at startup: 226128 / ~221 MB
Disk space (less basic system): 1077768 / 1.1 GB

MATE desktop

The MATE desktop begun its life as a complete fork of the latest version of GNOME 2. Many people doubted (or continue to do so) if the project will last. While it started with one developer renaming all the applications (to avoid incompatibility with GNOME 2 and 3), in the meantime some people have joined the project, additional features have been added and with Linux MINT a big distribution has adopted it as one of its standard DEs. To just name one of the new features: Caja, the file manager (formerly Nautilus), now has an undo option available in the menu (this was actually something that I had been missing since I left the Windows world)!

The MATE desktop

Installation

Additional repo “mate”: http://repo.mate-desktop.org/archlinux/$arch
pacman -S xorg-server xorg-xinit dbus virtualbox-archlinux-additions mate

Statistics

Memory usage right after starting up MATE (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux + MATE (1.4)
MemTotal: 1030652 kb
MemFree: 878688 kb
Buffers: 13536 kb
Cached: 58112 kb
Rootfs: 1348280 / 1.3G
RAM used at startup: 151964 / ~148 MB
Disk space (less basic system): 693992 / 678 MB

Xfce

Xfce started as a light-weight desktop environment but over time it has grown into a full DE. It’s still quite a bit lighter than GNOME/KDE, of course. But if you’re looking for something really light, Xfce may no longer be what you may want to install on your machine. If you however want a good compromise between a rather light-weight DE and great usability, give it a try. In some aspects it’s somewhat like a less bloated GNOME 2 but it’s going its own way in other cases.

The Xfce desktop

Installation

pacman -S xorg-server xorg-xinit dbus virtualbox-archlinux-additions xfce4

Statistics

Memory usage right after starting up Xfce (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux + Xfce (4.10.0)
MemTotal: 1030652 kb
MemFree: 918092 kb
Buffers: 11388 kb
Cached: 49092 kb
Rootfs: 1226416 / 1.2G
RAM used at startup: 112560 / ~110 MB
Disk space (less basic system): 572128 / 559 MB

LXDE

LXDE is currently the most popular light-weight desktop environment available for Linux. It’s designed with low resource usage in mind and build completely modularly. If you just need some of the applications it consists of, you are encouraged to do so. It is in a rather early state, however, and people who are spoiled by a full-grown DE might miss quite some features which LXDE simply does not provide. Yet if you are not looking for something that is primarily appealing visually but just want a working DE with the basic functions – LXDE might well be your desktop environment of choice.

The LXDE desktop

Installation

pacman -S xorg-server xorg-xinit dbus virtualbox-archlinux-additions lxde

Statistics

Memory usage right after starting up Xfce (with a second login on tty2) and used disk space after removing pacman cache. Here are the values I got with cat /proc/meminfo and df respectively df -h:

Arch Linux + LXDE (0.5.x)
MemTotal: 1030652 kb
MemFree: 938660 kb
Buffers: 9744 kb
Cached: 41816 kb
Rootfs: 986260 / 963M
RAM used at startup: 91992 / ~90 MB
Disk space (less basic system): 331972 / 324 MB

Conclusion

Well, no surprise: These GTK+ based non-3D-desktops are generally quite a bit lower on system resources. While it shows that GNOME 3 Classic is not optimized in this regard, even the full-grown MATE does rather well in comparison. Xfce is yet a little lighter and LXDE the smallest DE so far.
I’ve dropped the “minimal RAM” thing this time as it is not of much use with these DEs. Each one can run actually with as little 32 MB – with heavy swapping of course. Like one would expect, GNOME 3 Classic is totally useless in this case while LXDE is a lot more responsive (but still far from being useful).

What’s next?

The next entry will cover the QT based desktop environments.