When I upgraded my computer, I wanted to make it available to my family even when I’m sitting in front of it (this happens most of the time). Natural way to allow this is to connect additional terminals to the computer. The simplest, cheapest and power saving kind of terminal consists just of a set of I/O devices, such as a monitor, a keyboard and a mouse or a TV with a remote control.
So I equipped the new computer with two graphics cards, assuming that connecting multiple input and output devices to the computer should be just a matter of having corresponding number of graphics cards and free USB ports available. Big mistake! Never, never underestimate software problems. It took me several months to make the multiseat setup actually working and still not without problems.
The very first problem was that X.Org 7.0 refused to run on the second graphics card at all. This is some mismatch between X.Org 7.0/6.9 and recent Linux kernels. After a lot of experiments and googling I finally found a patch that works for me.
Now I was able to run two different X servers, but only on different Linux consoles, i.e. not accessible in parallel. I followed the very nice Multiseat HOWTO, but it still didn’t work – my X session has always frozen when I started the second instance of the X server sharing the console. After additional experiments and googling I’ve found it might be worth to try running different video drivers on each of the graphics cards. The two graphics cards I’ve got in my computer are the same, so I tried to run one of them with the X.Org ATI driver and the other with the ATI proprietary driver. Indeed, I can run two X servers in parallel now. Not without limitiatons: While the free X.Org driver runs fine, the ATI proprietary driver runs only on the first graphics card (it refuses to start on the second card), without 3D acceleration (compilation of the fglrx kernel module failed) and it freezes the computer when one logs out (this is a real problem that I don’t understand since the X server is not restarted on logout). Another problem is that X.Org doesn’t allow switching to a Linux text console when running multiseat.
An additional interesting observation is that one can’t rely even on such basic things like that a keyboard works. My USB keyboard stops working very soon after boot and needs to be unplugged and plugged in again. Then it works fine, but if I do it when X has already been started, the mouse connected to the USB hub built in the keyboard stops working completely. AFAIK there is a lot of problems with USB keyboards on Linux, often without solution. Well, this is so called computer age…
Well, not only proprietary drivers are crappy, they are just more crappy than anything else. Free software sometimes suffers from serious problems too.
I use a dedicated virtual machine to manage my printing services. One of the reasons I’ve put it on a separate machine is stability: While software on my other machines is updated, the printing server can remain untouched.
Now I know I can’t expect that kind of stability from CUPS. I often upgrade my workstation. Suddenly printing from GIMP and PhotoPrint stopped working with the error message saying something like “Bad IPP request”. After some attempts to find out what’s wrong I’ve found that my CUPS client is of newer version than the CUPS server. Great – unless you use the same client and server software version on your network, CUPS may not work. So I had to upgrade the CUPS server, just because a workstation happened to use newer client version.
The CUPS server upgrade wasn’t without trouble. Together with the 1.1 -> 1.2 transition the main configuration file was changed. Well, that’s OK (only if I wasn’t forced to fiddle with new configuration right now because of the client software update!). But I couldn’t access the printing server because of some permission problem. After significant amount of time spent on discovering what’s wrong I’ve finally got it: The ‘Allow’ directive doesn’t work with host name, it requires an IP address. Sigh.
So CUPS started to work with my parallel port printer. Not so with the printer connected through USB. It reported to be unable to open the corresponding USB device. Even setting the device permissions to 666 didn’t help. I ended up with downgrading CUPS to 1.1 on both the server and client machines.
I’ve never liked CUPS. CUPS is not a bad idea and it’s fine when it happens to work well, but it has been making troubles all the time I use it. From what I’ve seen for several years of CUPS usage I have to say that Linux printer management is apparently in incompetent hands (not sure whether upstream or in Debian).
My long term observation about GNOME and KDE is that GNOME is stronger in desktop, while KDE is stronger in applications. One of the excellent KDE applications is digiKam.
The most popular free image processing tool, GIMP, hasn’t succeeded to become a tool for serious work. Its lack of important features (such as 16-bit color support) and poor user interface make it suitable just for occasional use and perhaps for web designers. Lack of free usable photo processing and management tools has motivated me to develop my own photo processing program as a part of my Springtail Lisp tools. But due to lack of time and zero support from McCLIM developers Springtail didn’t provide completely satisfying results.
About a year ago I discovered digiKam. After trying it I’ve abandoned the Springtail photo application development immediately. Not that digiKam offered all the features present in Springtail and everything I needed, but it provided interesting features, good user interface and was well maintained. It was clear to me that this may be the right tool and it made no sense to invest my effort into development of my own tool instead of helping a promising project.
I can say that digiKam fulfills my expectations and I recommend it to photo enthusiasts who look for a good photo editing and management tool. It can’t do everything and there are many features that could be improved, but this is up to us – we can file bug reports, vote for bugs and make patches. I believe this project is well maintained and it’s worth to help it.
ATI graphics cards suck and I can’t recommend buying them. I’ve spent significant amount of time trying to get run their proprietary drivers on Linux and the conclusion is that the X.Org free drivers are dozen times better than those from ATI, despite 3D acceleration and TV-out don’t work with my ATI card. Effectively, my new ATI card is a 3D incapable device without TV output.
I don’t believe NVidia is much better – I’ve once had particularly bad experience with an NVidia graphics card. Intel cards are well supported, but does Intel make anything else than onboard cards? We clearly miss real competition on the hardware market.
I really can’t understand the ignorance of hardware vendors. They are incapable to produce stable and well working drivers for Linux. Well, why don’t they provide specifications to their devices then and let people make good drivers for free? What’s so secret on accessing 3D graphics acceleration or making a printer to print a borderless photo?!
Will Linux and other non-proprietary operating systems still be usable without essential modern hardware features? I doubt. But what’s the solution? Current market turns into unbreakable oligopoly in many areas, so the natural market mechanism doesn’t work. Open hardware would be the best solution, but it seems this is not something that could become widely accessible in the foreseeable future. Apparently there is not much else to do now than continuing the reverse engineering battle.