More hacking

So I'm still trying to figure out exactly where it says 'hacker' on my job description, but ah well.

We now have most definitively the best graphics card detection kung fu in the Linux world. Boastful? Well, maybe. =) But the NVIDIA, ATI, Intel and Unichrome card detection in current Cooker is basically up to date with just about everything imaginable, after I've spent a fun filled few days trekking through the official pci.ids, ATI and NVIDIA driver documentation, and occasionally through random bits of source code looking for PCI IDs.

I also further rationalized the conventions for detecting and describing cards. Now, in XFdrake, ATI, NVIDIA and Intel all work the same way: by groups of cards / chips that use the same driver settings. So you have ATI pre-Radeon cards, ATI Radeon 9250 and earlier, ATI Radeon 9500 to X850, and ATI Radeon X1300 to X1950; NVIDIA Riva 128, NVIDIA TNT to GeForce 2, NVIDIA GeForce 3 to GeForce 4, and NVIDIA GeForce FX and later; and Intel 810 / 815 and Intel 830 and later. This is consistent and easy to understand. Only drawback really is that the naming scheme doesn't cover ATI's and NVIDIA's professional card lines (FireGL and Quadro), but these should pretty much all be autodetected in the correct category anyway. I will try and think of a way to incorporate them into the names of the categories for 2008.0.

I have also been cheerfully cutting a swathe through the decade old cards that no-one uses any more. In current XFdrake there are individual entries for all sorts of massively obsolete cards which no-one has used for many years, and most of which map back to the same three drivers anyway. So I've just implemented generic categories for each main driver and got rid of the specific definitions for massively obsolete cards. So to anyone out there still using an ACX-based ISA graphics card...pick the generic VGA driver.

Or just treat yourself to a nice spanking new Rage64 or something. :)

During this I submitted a few patches to upstream pci.ids to provide extra information on NVIDIA devices and also a couple of new definitions for NVIDIA onboard sound I came across, so I've been doing my bit for the community.

I added support (as in, driver mapping) for several NVIDIA, Realtek and Intel onboard sound devices that were previously 'unknown', so in 2007.1, at least the correct driver will get loaded for these. Some will still not work correctly with the stock kernel because it's only going to have ALSA 1.0.12 at time of release, unfortunately, but it will likely get updated to 1.0.14 in a post-release update, and kernel-tmb and kernel-linus will both have ALSA 1.0.14 at time of release.

Besides that, I updated the experimental packages we have for X server 1.3 and Intel driver 2.0 (with modesetting and randr 1.2 support, as I blogged about before) to today's git status, which fixed 3D acceleration, updated the avant-window-navigator package to the latest SVN, and filed a few bugs on beryl for not working perfectly with gimmie. And I helped (or rather, commentated noisily) while Thierry attempted to add support for sdhci and tifm-based SD card readers to harddrake, although this doesn't appear to be quite working yet.

Didn't write a new newsletter yet because there's sod all to write about until RC1 comes out.

That's another fine mess...

So TV committed my patches to ATI and NVIDIA driver detection, and another couple of patches I did for Intel. This should mean that in 2007.1 RC1 (and of course final), quite a few more cards will be automatically detected (the world's three remaining Intel 752 owners can rejoice!), and the choices for the most commonly used drivers are simpler and shorter.

Today I get to work on merging all the meticulous separate definitions for ten year old hardware that no-one cares about, so you'll be able to see the wood for the trees in XFdrake. Oh, joy.

Worky worky

Productive day today!

First I finished updating the experimental X server 1.3 / xrandr / modesetting packages in contrib to the RC1 that was released overnight. Updated the tasks package. Then, instigated by Thierry's comment on bug 28682, I did some work on ldetect-lst. ldetect-lst is the Big List Of Recognised Hardware. First I fixed the ATI definitions for the new version of fglrx, so cards no longer supported by fglrx will use the open source driver by default, and some newer cards that are now supported by fglrx will default to that.

But hey, I was just getting warmed up! I was reminded while poking through this file that our NVIDIA definitions are, well, a bit of mess. During installation or running XFdrake there are about twenty different types of NVIDIA card defined. It's cluttered. Also, there's so many, people assume that we actually handle every single type of NVIDIA card differently, worry that they can't find their exact model of card in the list, so maybe it's not working right, and start tweaking, and breaking things...

In actual fact there's exactly six types of NVIDIA cards starting from the year dot. There's one very old weird card that only works with the 'vga' driver. Then there's the generation through Riva TNT, which isn't supported by any proprietary driver, only by the open 'nv' driver. Then there's the Riva TNT through GeForce 2 generation, which is supported by 'nv' and by the 71xx version of the proprietary driver. Then there's the GeForce 3 through GeForce 4 generation, which is supported by 'nv' and by the 96xx version of the proprietary driver. As an aside there's the oddball version of the GeForce 3 in the XBox, which needs special handling. And finally, there's the GeForce FX through 'present' generation, which is supported by 'nv' and by the 97xx version of the proprietary driver.

That's all the distinction you need to make between different types of NVIDIA cards. So - I fixed it. I dumped all the various old definitions and refactored them all into these six categories, then dropped a patch in Bugzilla.

But hey, while I was doing that, I noticed there's actually quite a lot of cards listed in ldetect-lst (which is partly autogenerated from upstream lists provided by the kernel and xorg projects) which have the definition 'unknown' - meaning we don't know what driver to use for them - but which are from the description, manufacturer and PCI ID clearly NVIDIA or ATI graphics cards. So I made another couple of patches to define the correct driver for those cards.

All this stuff taken together, assuming it all gets accepted, will noticeably improve the user experience in XFdrake, and the accuracy of the autodetection of NVIDIA and ATI cards.

So...yay for that. :)

And, of course, beside that, I did my usual round of the forums and Club support mails...

Bugs:

28682 - fixes definitions for new version of fglrx 29183 - cleans up NVIDIA definitions 29187 - adds several NVIDIA definitions 29188 - adds several ATI definitions

Packaging

So some idiot (Andreas) let me loose with a maintainer account...

So far I fixed Exaile not to depend on GTK+ 1.2 any more, and added avant-window-navigator (a shiny composited Dock-like thingy for GNOME) and tracker (one of the more interesting of the pile of metadata search engines showing up lately). I don't think I blew up anyone's machine yet, but it ain't for lack of trying!

2007.1 beta 2 is out. David asked me to keep this one a bit quiet, as it's his first ever attempt to roll a release. So again, watch out for explosions. :)

That's it ;)

I'd like to thank the author of the Ubuntu review I linked to for leaving his thoughts on my thoughts ;), and apologize for the bits of my post where - through authorial laziness - I criticised his post and / or his creative faculties. This really wasn't my intention, but I tend to write as if I'm writing to myself and consequently take mental shortcuts. The true point of my post was the bit I got to at the end, and the earlier part was more me circling in on my target than anything else. I've sent a more detailed response by email, but I don't think it'd profit by going public, we've both made our basic points in our respective articles and I think they're all very useful.

What is it?

Another of those bizarre raves about Ubuntu.

It's a perfect example of the genre, really. The guy installs the distro, installs some updates, runs Firefox, reboots, and concludes it's the best thing he's ever seen.

Why?

This has been bugging me for a while. The easy conclusion is "they're all idiots", but hey, that's a lot of idiots giving Canonical all the press time and 'market' share. So whether they're idiots or not, someone has got to figure out what it really is about Ubuntu that gives such a great first impression to so many people. Because, make no mistake about it, there's absolutely no substance to this review. Every distro uses the same font rendering engine - freetype. Every distro includes Firefox. There's nothing special about the Ubuntu installer (the One installer is as good or better, if a bit less polished; other distros have similar features). The sound thing is just regular Distribution Hardware Randomness - note how he compares Ubuntu to 'earlier' distros, likely any distro of the same kernel vintage would work.

The only conclusion I've come to yet is that what people say impresses them about Ubuntu is not what actually impresses them about Ubuntu. What impresses them is something else that they don't manage to actually write down.

What impresses me about Ubuntu every time I install it in a VM is the fundamental - to use a controversial term - GNOMEness of everything. It's very definitely the GNOME of distros, where SUSE and Mandriva are the KDE. You don't get a lot of choices. Everything is very streamlined, very efficient, and very well designed. There are little bits of this experience hiding in this review trying to get out, like the smooth way the Ubuntu update process works (using a very well designed updater and judicious use of the notification system).

To me Ubuntu is, and I mean this in the nicest possible way, a triumph of style over substance - it's not that it doesn't have substance, but it doesn't have any more substance than anyone else (it really has less); it just uses style to give the impression that it does. I'm not suggesting this is lame or cheap, I'm suggesting it's something others could learn from.

The process of installing Mandriva or SUSE is utterly different. In many ways it's better; you get more stuff and more choices for what to do with it. But it's an experience no-one exactly enjoys, it's more a task you slog through and then arrive at the end thinking 'well, I'm glad THAT'S over'. Installing Ubuntu, by contrast, feels kind of...cool. Sure, if you want to do something the installer doesn't want you to do, you're up a creek without a paddle, but the feeling is important. This applies even to the One installation, which is much more streamlined than DrakX. It's still slightly inelegant. It still asks you more questions than you quite feel comfortable answering. It still feels, basically, like looking after the neighbour's kids. Installing Ubuntu feels like the other neighbour's extremely cool university student offspring taking you to all the best clubs in town. It's glitzy and shiny and makes you feel a bit like a rock star. I think that's the feeling all these Ubuntu reviews try (and fail) to pin down.

I still believe MDV is a far better distro than Ubuntu. (I also think SUSE is.) You can, ultimately, do a lot more stuff a lot better. But it doesn't make you feel like a rock star. I think we (and our erstwhile colleagues / competitors at Novell) need to work on that a bit.

Audio revisited

So a while back I wrote about audio:

http://www.happyassassin.net/2006/10/05/audio/

Just an update - everything is fixed. :)

I just tested Rhythmbox, and with 0.9.8 (may have gone in earlier and I just didn't notice), on-the-fly transcoding and transfer to DAPs seems to work fine. I plugged in my phone, dragged a file from the library to it, and it was correctly (according to the HAL info) transcoded to MP3 and transferred to the right place on the device. And the patch to add this support to Banshee got merged in a recent version too.

HAL finally merged my V360 / w800 patch too, so there's a little blow for more device support.

Honestly - if we can get all the right info for DAPs, PMPs, audio phones etc into HAL, and get the word out, people are going to realize what a great little thing this is. It's just as nice as iTunes / iPod integration, and beats the pants off the way most other audio player makers do things. Great job by the HAL, rhythmbox and banshee guys.

What with this and PulseAudio and gimmie, my desktop is rocking more than ever these days.

gimmie gimmie gimmie

Reading this story on Avant Window Navigator finally prompted me to look into some of the cutting-edge panel replacement projects for GNOME. I got Avant built and working no problem, but it's really just eye candy, it's not really usable as a functional panel replacement yet IMHO. So I went for Gimmie instead. The 'stable' 0.2.3 in Cooker appears to crash every time you mouse over anything, but I built current SVN instead and that works beautifully (after replacing the gaim plugin with an older revision, since the new one is broken code). I am very, very impressed with it - in fact, after using it for fifteen minutes I can't imagine going back to gnome-panel. I hope after some (a lot :>) of polishing, it can be the default for GNOME - it'd be nice to finally break the dull old Win95-style panel paradigm.

The first obvious "wouldn't that be cool" that has popped into my head: it'd be great to be able to put Firefox or Epiphany bookmarks into the 'Library' section - I don't work on any specific local documents regularly enough to put them here, but I'd love to put a few of the websites I'm always going to in there.

And of course, since I have a widescreen display, it'd be nice to be able to move it to the side instead of the bottom. That may be possible, though, and I just didn't figure it out yet.

Swap

Lazyweb, oh lazyweb...

I still don't really understand how Linux handles swap space. One thing in particular irritates the hell out of me. I have 1.5GB of RAM, but I still occasionally manage to wind up using it all, just for a brief time while I'm running a lot of stuff, and then things start to swap.

This is fine.

What I DON'T understand is why, when I quit a bunch of apps and bring conventional RAM usage down to comfortably below maximum, this swap space is STILL used. And I still hear the telltale hard drive clicking which tells me stuff is still swapping.

I mean, look at my htop right now:

Mem[|||||||||||||||||||1044/1510MB] Swp[|||||||||||| 435/1153MB]

There's 450MB of system RAM sitting there doing nothing. Why is there still 435MB of swap space being used?

I just don't get this. Can someone smart please explain it to me? :)

Mailing lists fixed, old subscription lists

The Mandriva mailing lists are working again. However, we had to restore the subscriber lists from a backup, and...it's quite an old backup (around a year old). If you subscribed to any Mandriva mailing lists in the last year, you will probably need to re-subscribe. You can check your subscriptions from the web interface, or just use the information on the wiki for the Cooker-related lists.

Some people who unsubscribed in the last year have been re-subscribed because of this problem. We're really sorry about that!