Tag Archives: linux

Open source software? Free software?

Today I attended the Open World Forum conference here in Paris. Basically, it’s a business-oriented conference to do networking for folks in the free/open source industry. Some of the panelists were sometimes really boring, such as the “French Secretary of State responsible for the Digital Economy” who seemed to have deeply confused “free as in speech” and “open source” software — a grave mistake by my book. The panelist, who knew the difference of course, regularly overemphasised the use of “open source” software, but the notion of “free as in speech” was lost, and mentioned rarely, with the notable exception of the Red Hat folks. With the release of CryptoMiniSat, which I explicitly released under a free software licence, GPLv3, I of course disagreed.

The highlight of the conference for me was meeting the current Debian Leader, Stefano Zacchiroli, and researcher Roberto Di Cosmo. I have been using Debian for a very long time, and I always wanted to contribute. However, the best way to contribute is always with your expertise, which for me is SAT solvers. So, I approached Stefano with the idea of configuration management in Debian (dpkg), for which CryptoMiniSat would be a good fit, I think: complex package dependencies could be resolved with ease using CryptoMiniSat. If included in dpkg, CryptoMiniSat could take the prize of the most deployed SAT solver away from SAT4J, which currently holds this title due to its inclusion in the Eclipse development package. Fingers crossed… and lots of work is ahead.

Why do I use Linux?

I used to be quite an expert on Windows, I even used to hang out on the #windows-help IRC channel. So why do I use Linux uniquely nowadays?

First, I tried Linux out of curiosity. What made me interested initially is that I am a control freak: I like to know what happens with my computer. With windows there were always a billion things running in the background, and I had no clue what they were doing. With linux you always know what does what. “man programname” and you have a complete documentation. This was a real kick for me. I could read these manuals for days, literally. I hate when things “just work” – I want to know *why?*. Simple curiosity. However, this doesn’t explain why I have stuck with Linux for such a long time.

The reasons I have stuck with GNU/Linux are the following:

  • No adware/spyware/viruses since all programs in all Linux distributions are installed from signed packages
  • Huge amount of available documentation and a howto for everything. Got stuck? Just read up
  • No vendor lock-in. Wanna change from KDE to GNOME? From KOffice to OpenOffice? No problem.
  • Faster than Windows and accompanying proprietary software (Office, MSN messenger, Adobe PDF reader, etc.)
  • More customisable than Windows. Proprietary applications mean that if you change your colorscheme in Windows, almost none of your applications will have that colorscheme. If you do something different than most people (e.g. keycombinations), in Linux, you can easily change the program to suit your needs.
  • Installing applications is fast and easy: Tired of answering the 20 questions that all installers ask you in Windows? So am I. In Linux, just launch Synaptics, type in what you want to do, e.g. “instant messaging”, and you are presented with all applications offering that service. Double-click on any and you are done (this is not a joke, it’s really that simple) It’s safe, fast, and there are no questions asked.
  • Uninstalling is fast and efficient. Uninstalling AOL messenger is not only terribly difficult, but also leaves a lot of stuff behind. AOL browser? AOL as default webpage? And this not only applies to AOL. Windows messenger will change your default webpage when installed. Uninstalling it doesn’t reverse that.
  • No junk software. Are you, too, tired of all the popups that “The full version of this software offers this-and-that, buy it now!” ?
  • Software upgrades are seamless. One interface for all upgrades. You don’t need 20 upgrade programs running non-stop (Java nags you non-stop? Adobe PDF Reader naggings? Windows upgrade naggings?)
  • Does all that is possible, not all that vendors want to be possible. Print to PDF? No problem. Backup your DVD? No problem.
  • Cheap, or even free. Tired of all the money you have to pay, and still it doesn’t work? Well, in Linux it might not work, either, but if you payed a little bit, you can call the service desk (and they are helpful), or you can ask you local linux geek (he will be all too helpful), or you can just read up on the documentation (it’s good and well-written)
  • If you have found a problem in the program, there are always helpful developers to correct the problem. They listen to what you have to say, and personally thank you for your comments. Try to do that with any proprietary software: they will send you a pre-written “thank you” notice, and promptly ignore you.

Of course there are many other, less practical and more theoretical reasons for why I like linux: Free as in not locked-in, total control, possiblity of tweaking things, the availability of developer discussions through open mailinglists, the number of programs to do the same thing (i.e. choice), and many others.

To use Linux day-to-day takes a bit of courage. Your friends will be annoyed that they can’t use the ultra-cool (but ultra-useless) features of their newest MSN messenger when they talk to you. And there will be other problems. You might be forced to use Windows at work, or you might need to use a software that doesn’t run under the free windows emulator, wine (though most software does), and you will have to find a replacement. And you won’t be able to play the newest game out there (but you can play World of Warcraft, and most other big games, like Diablo, on Linux).

The advantages are huge, however. You simply won’t understand how can your friends get a malware infection every day, why their bankaccounts get overtaken once a year, and why on Earth does it take their computer 5 minutes to boot up. You will sleep tight, knowing full well that your computer is safe from all people who might do you harm, be them malicious (malware writers), or be them proprietary companies restricting the use of the music or video you just bought. And you will know that if some problem comes up, there will be tons and tons of free tools and lots and lots of developers ready and willing to help you out just for the kicks. You are not alone.

How to unload the sound module

I regularly have a problem with my sound card: it simply stops working, and xine (and everything else) says that it cannot open the sound socket. So, I need to unload and reload the snd_hda_intel module. Most of the time, however, I cannot since it is in use. I try to close all possibly using sound, but most of the time it is a dead process that is using it. But, I have figured out how to find these unruly processes:

1) fuser -a /dev/snd/pcmxxxx (where try all here, xxxx can be anything)
2) for each process ID (PID) listed, do a, do “ps xa | grep PID”, so see what the process is. Close it cleanly, if possible (through the gui), or “kill” it if it is a hanged process. Most of the time, it is a program in a messed-up state – in my case it is sometimes a “kio-exec” process. Killing is simply “kill PID” or, more harshly, “kill -9 PID”.

Now issue “rmmod snd_hda_intel” and then “modprobe snd_hda_intel”. Done! :)

KDE4 composite with intel drivers

I have been having a hard time getting the composite effects running smoothly on KDE4 with my intel Mobile 945GM graphics card. But I have finally managed to get it up and running! This is how:

  1. Get the latest intel driver from your repository (I have 2.3.2)
  2. Put into xorg.conf at the driver section:
    Section "Device"
    Identifier      "Configured Video Device"
    Driver "intel"
    Option "DRI" "true"
  3. Put at the end of your xorg.conf:
    Section "DRI"
    Mode 0666
    Section "Extensions"
    Option "Composite" "Enable"
    Option "DAMAGE" "Enable"
    Option "RENDER" "Enable"
    Option "RandR" "on"
  4. Under the system settings, enable desktop effects and set in the advanced settings to use XRender! (and take out the update thumbnails and the smooth scaling).
  5. Restart X: restart the computer or just do: logout then push “ctrl+alt+backspace”, log in to the console as root, and restart kdm by issuing: “/etc/init.d/kdm restart”.

I have by the way, a Dell D430, so an extremely lightweight, small computer that probably has the worst performance among its peers, and the effects are *fast* I must say that the “coverflow” effect (not enabled by default) isn’t that great, something is wrong with it, but still: scrolling is super-fast, switching windows is super-fast, so you won’t notice any slowdown at all!

Suspend on Dell D430

I have been having problems suspending my Dell Latitude D420 for a long time, but finally, I have made it work! This is the simple howto:

  1. install guidance power manager
  2. install pm-utils
  3. install uswsusp
  4. Go to /usr/lib/pm-utils/ and edit the file “defaults”. Set ‘SLEEP_MODULE=”uswsusp””
  5. Start the guidance power manager

You are done. This solution is *very* neat in many respects. The old solution that is much worse, you can find on the internet is to compile atkbd and psmouse as modules, then remove and modprobe them before suspend and after resume. That can be done by adding atkbd and psmouse in /usr/lib/pm-utils/defaults under “USPEND_MODULES=…”, but that has a *big* drawback. First, the resume hangs about 1% of the time. Second, the synaptics driver will no longer use the defaults you gave to it in the xorg.conf or through the synclient program – effectively, you won’t be able to control how your touchpad will work.

The worst thing about this suspend problem was, by the way, that there is absolutely *no* documentation on the possible suspend modes in Linux. It took me 2 months to figure out that I wasn’t in fact using s2ram! There are many modes to suspend, by the way:

  1. powersaved does some tricks, though it seem to fail on my computer, I think it might try s2ram without the –force option (this option is given by pm-utils, in modules.d/uswsusp, have a look)
  2. acpi (/etc/acpi) stuff – never gets executed, as far as I know
  3. pm-utils
  4. s2ram
  5. tuxonice
  6. suspend2

I didn’t find any info about these, how these work, when they work, etc. And it gets worse. There are multipe utilities, too: guidance, kpowersaved, just to name two. But you can most probaby configure-on-lidclose in Gnome systemsettings, too. And what do THEY execute? No clue. I wonder how the guidance-power-manager gets to use the pm-utils at all? Cannot be set what to use, as far as I now.

Well, this much about my frustration of the suspend-stuff. BTW I would be really greatful to the package managers&developers; to make it absolutely clear what does what, and what gets executed by what, e.g. what is used by guidance? And kpowersaved? And powersaved? I would also appreciate if there weren’t 6 ways of suspending my machine, only 2, maybe 3. I know that choice is what drives linux forward, but in some cases, especially in such difficult hardware-oriented cases, I would really like to have a maximum of 2 or 3 clear choices. No random ones like: “I run guidace, it calls something when I close the lid, dunno what, but it works, maybe not even guidance called it but the powersaved that runs in the background, or whoknowswhat, but it works”. Or it doesn’t and then you are in deeeeep shit.

PS: could someone please tell me what the /etc/acpi stuff is used for, and especially when is it used? I never ever ‘heard’ it being used, but, you know, the computer doesn’t tell me what it does… I thought that Linux was special because if I dug deep enough I always knew what was happening. Not with suspend!