Nat Friedman's dirty little secret

Come on, Nat, don't be ashamed, it's not so hard to say...

We know you're professionally obliged to support SUSE Linux and all its chameleonic goodness. But we know the truth. Var Business magazine gave it away...

Say it, Nat! You're a Mandriva One user. There, that wasn't so hard, was it? :)

(In case someone doesn't get this post - take a close look at the cube in Nat's hand).


An excellent post from Jono Bacon (the Ubuntu community manager). Should be required reading for anyone in a position like ours (working for a company in a role where your responsibilities include representing the user community).


Y'know, I've tried to like Windows. Really. I have. I'm willing to overlook its little foibles...its big foibles...and hell, even some downright blunders, but I just keep running up against things that put me into a cheerfully homicidal rage.

Latest - Windows does not support multiple partitions on a USB storage device.

Not even Windows VISTA supports multiple partitions on a USB storage device.

Hello? Microsoft? Anybody home? Why in the name of hell would you DO this? How hard could it be to support? What does NOT supporting it accomplish?

I was playing around with LUKS encryption today to test a fix for a 2007 bug and it struck me that it would be quite neat to carry around a USB storage device with some of my stuff on it, so I planned to split a 128MB SD card I have lying around into a 32MB partition with the FreeOTFE software on it (the Windows app for accessing LUKS devices) and a 96MB LUKS-encrypted partition with all my sekrit data on it. That way I could just stick it in a Windows machine (SD card readers are invariably USB-based), run FreeOTFE off the first partition to mount the encrypted second partition, and bingo, there's my data, all nice and safe.

But no. No. I'm only allowed one partition.

£(^)£^_("%_£^*ing Microsoft. Sheesh. Five years and they couldn't fix this?

User registrations fixed

Sorry to anyone who tried to register for an account on here lately - I just realized the other day that I didn't set up postfix when I moved the server to a VM, so the mails haven't been going out. Registering should now work. If you registered an account but never got the password mailed, poke me on one of my email addresses and I'll reset the password for you.


Ladies and Gentlemen;

I humbly post this notice for the benefit of those of you who today were expecting me to:

Write a newsletter Make you truffles Call you Answer your calls Pay attention to you at all Rescue you from a burning building

You may all address your complaints to Red Octane, makers of that most diverting of musician simulation computer entertainment products, Guitar Hero 2.

Yours &c,

Adam Williamson


So I spent the last couple of days working on the 2007 Errata. It was a lot of work but I'm quite proud of the result. It's pretty exhaustive and I've got it almost perfectly in sync with official updates and Bugzilla: everything for which we've issued or are working on an update is listed, almost everything that's listed is linked to a Bugzilla entry, and everything is carefully cross-linked between Bugzilla, the Errata, and the update advisories page. I am fairly confident in saying that our Errata now knock the stuffing out of Ubuntu's Known Issues page for Edgy, and Fedora's Common Bugs page for FC6. I can't even find any kind of Errata for SUSE 10.1. As if that weren't good enough, I also got the links to the Release Notes and Errata restored to the default home page, too.

I have to go on record and say I'm deeply jealous of the FC6 release notes, though. Our 2007 release notes are fine, but that's just a hell of an effort. Kudos to whoever put it together.

Lenovo 3000 v100 Mandriva Linux 2007 - full status report

So I worked some more on the laptop and I think I can now give a pretty comprehensive overview of everything.

To recap from my first post, this is for a Lenovo 3000 V100 C5U. The stuff that works out of the box on Mandriva Linux 2007 (any version, don't need commercial stuff) with no fiddling:

X, through the internal display, at native resolution of 1280x800 Sound USB Optical drive Wired network Power management (battery power is correctly monitored, throttling works, display is dimmed when I unplug the AC) Startup / shutdown

Stuff I didn't test:

Firewire Modem XpressCard slot

Stuff I had trouble with:

Wireless network External display at 1680x1050 Suspend / resume

I was able to fix all the stuff I had trouble with.

The wireless network chip is a Broadcom 4312. It works with ndiswrapper with the driver supplied by Lenovo, but with ndiswrapper 1.21 - as supplied with MDV 2007 - I discovered I have to 'install' the Windows driver again with drakconnect or 'ndiswrapper -i' every time I boot up, or else it just doesn't come up properly. However, with ndiswrapper 1.28 (built from source), it works fine at every boot with no need to 'install' the Windows driver again. The native bcm43xx driver supplied with 2007 does not currently support this chip.

The external display required the use of the 'modesetting' branch of the i810 video driver, from the development git repository. I mostly followed this HOWTO, obviously ignoring the Ubuntu specific bits. With an xorg.conf generated by XFdrake (set the monitor to 1680x1050 generic flat panel), this works with no problems. I had much more difficulty trying to get the external display to work with the mainline i810 driver, and even when it did work, there were fuzzy patches on the output.

Unfortunately the modesetting branch does not currently play well with the internal panel, so I have to use the mainline branch for that. To switch between the two displays I must copy the appropriate version of the i810 driver as /usr/lib/xorg/modules/drivers/ and reboot (the same xorg.conf works for both). Hopefully future improvements to the modesetting branch, and Keith Packard's new randr 1.2 branch in xorg-server, will allow on-the-fly switching between the two displays with automatic desktop resizing. I plan to follow this area of development in future.

I worked out in the end that my issues with suspending and resuming appear to be caused either by a USB hub I have or one of the devices plugged into it (or possibly by having the external monitor connected). I have a USB hub on my desk with a USB A -> B cable (usually not connected to anything), my mouse and (at the time of the tests) the Turtle Beach USB sound card I bought plugged into it. When I'm using the system as my desktop, I plug this in (it's basically acting as a docking station). In my previous suspending tests, this was always connected. Today I decided to test suspending with the machine in the 'laptop' configuration, as that's how I actually intend to use it. With this USB hub and the external monitor disconnected, suspending and resuming, both to RAM and to hard disk, work perfectly, with no special configuration required (note that I use GNOME, which uses gnome-power-manager to handle suspending, which in turn uses pmsuspend; in Mandriva 2007, if you use KDE and suspend via klaptop, it does not go via pmsuspend, so you may not get the same result. If you're a KDE user I recommend you set up a desktop launcher which runs the command 'pmsuspend memory' , and use that to suspend to RAM). I could do more testing to isolate the cause of the previous failures, but since I'll only ever actually want to suspend with the system in 'portable' mode, the current situation is good enough for me.

If anyone has any questions or problems running Linux on this model of laptop, do feel free to get in touch. It's a great little system.

Laptop update

So, today's update on the laptop:

I solved wireless. It seems with ndiswrapper 1.21 the trick is that you have to 'install' the Windows driver on every boot. This was clearly far too much effort, so I just built and installed ndiswrapper 1.28 instead. It seems to be fine, though it does take about a minute to actually bring the wireless up.

I bought some stuff. I got a Logitech LX7 wireless optical mouse: perfect for notebook usage, it's quite small and the wireless receiver is also small and unobtrusive. I got a Turtle Beach Audio Advantage USB sound card with optical digital output (it has a single 3.5mm output jack and comes with a little doodad that converts it to an optical digital output). And I got a $6 PS/2 -> USB adapter cable which is clearly as generic as you can possibly get and says right on the box that it works with Linux, this for plugging my much-loved IBM Model M 'clicky' keyboard into the laptop (since it has no PS/2 ports).

Two of these were plug and play. One just flat out won't work. I bet you'd never guess which.

Yup, the slightly fancy mouse and the very fancy USB sound adapter work right out of the box with absolutely zero messing about. Even the optical output on the sound adapter. I opened the box, plugged the doodad into the adapter, plugged the adapter into the laptop, connected the adapter to the DAC, picked the USB device as the active output in Audacious, hit play, and heard sweet, sweet music. It was really that simple. I'm flat out amazed. Didn't even have to touch a single mixer setting.

The mouse...put batteries in the mouse, plugged the adapter into the laptop, wiggled the mouse about...yup, it works.

Dead simple PS/2 -> USB adapter which uses generic USB HID and says on the packet that it works with Linux - not a bloody sausage. Works fine connected to a Windows computer, but not to this laptop or any of my other Linux computers.


I'm going to go buy another one tomorrow, since they're really too cheap to bother fixing. If that one doesn't work either, I'll have a look and see if I can actually figure out what's wrong. Everything LOOKS right - usbhid and usbkbd are loaded, they notice the adapter being plugged in and even seem to create a /dev/input node, but I can't actually TYPE anything.

Still on my todo list are super-smooth display / resolution switching (which is complicated and needs an experimental branch of xorg-xserver which may land in 7.2 if I'm lucky but will probably be 7.3) and suspend / resume, which I hope might be simple. I discovered today by trying suspend to hard disk that the problem seems to be display related. If I suspend either to disk or to RAM, the suspend process goes correctly, then the display (both internal and external) is powered off. When I power the machine up again I hear it doing stuff, but the display never gets turned on. However, what I discovered today is that I can suspend to disk, phsyically remove the battery from the machine, plug it back in, turn the machine on, and it resumes perfectly.

So, yeah. Something to do with powering off the display. I'm hoping I can sort it out with wltool. Will report back.

Laptop reportage

So, here's the inevitable 'setting up the new system' post!

Just as a reminder (and for Google), this is about my new Lenovo 3000 V100 laptop on Linux, more specifically Mandriva Linux 2007.0. It's the C5U submodel (this is important as the wireless chipset and CPU differ between submodels).

The good stuff - most things work. Heh. Mandriva gets the config for the internal display exactly right (just make sure you run through the video configuration section at the summary screen during install, even though it all looks right, or the display won't work: you have to actually go through the monitor configuration section and get it to detect the panel). Sound is fine, USB is peachy, the keyboard and trackpad are both set up and external keyboards and mice are plug and play. The wired networking is fine.

The bad stuff - well, it's this that's been kicking my ass all day...

The wireless doesn't really work right. It's a Broadcom chipset (and a fairly new, sketchily supported one at that: a 4312 (going by the PCI ID, as is the standard way to differentiate the Broadcom chips). Occasionally, ndiswrapper works. Most of the time, it looks like it's working and seems to be able to talk to the AP but just won't get an IP address. I am going to poke at this tomorrow.

Getting the video system to do anything much beyond the internal panel was something of an arduous exercise.

The system seems, like many with the Intel chipset, to have been saddled with a terrible video BIOS. It doesn't list any widescreen modes, making it hard to convince the i810 driver that these modes actually exist and the system is capable of displaying them. It also seems to have dodgy DDC info suggesting the adapter isn't capable of some modes it actually is capable of.

All this meant getting it to talk to my new 20" 1680x1050 LCD display was a bit tough.

In the end I managed to get it working with the current stock i810 driver by installing i915resolution, editing its configuration file so it replaced the 1600x1200 mode in the video BIOS with the 1680x1050 mode (the default is to replace some other mode, which doesn't seem to work) and a lot of hacking at xorg.conf, including disabling DDC. This worked, finally, but didn't seem quite perfect (there were bands of fuzziness on the monitor).

So in the end I stumbled across the much better solution - the 'modesetting' branch of the i810 driver. This is a fairly significant alternate version of the i810 driver that bypasses the video BIOS entirely and detects / sets the available modes (and displays) by itself. This one is far better behaved with this buggy-BIOSed system, and is capable of displaying 1680x1050 perfectly on my external monitor with no hassles at all. It also by default clones the display to the internal panel - even if I booted with the external panel connected, and the BIOS therefore turned off the internal one - and I can disconnect and reconnect the external panel at will.

The only remaining stumbling block is switching between the two, which at the moment still requires either an X restart or a reboot (depending on which panels were connected when I booted up). Ideally, I would like the system to automatically turn off the internal panel and use the external one whenever it's connected, at the correct resolution, expanding the desktop if appropriate. Whenever the external panel is disconnected, it should use the internal panel at the correct resolution, shrinking the desktop if appropriate. This apparently is all theoretically possible with this branch of the driver (and would rock totally), but doesn't quite seem to be working yet. I'm monitoring developments with alacrity, though.

Anyway, on with the bad stuff. The SD card reader doesn't work. The sdhci module is supposed to support it, and does do something with it, but never seems to be able to read any media in it. Apparently the driver was substantially overhauled in kernel 2.6.18, though, so when Cooker moves to that, I'll see if it works any better.

Suspending works fine, but resuming seems to kill the display totally. It's a bit hard to figure out what else is working, obviously. I've only tried this with the external panel connected, it may go better with just the internal one; will test tomorrow. Also have to test hibernation.

Still, the system is now mostly usable for what I want (wireless is the major stumbling block, but I do have hopes of sorting that out). Onwards and upwards we go!

More new!

So to go with the new laptop (and to really finish off the rest of my savings...), I picked up a new monitor. I've been working on an LG T710BH 17" CRT for a while now. As 17" CRTs go it's a nice display, but it's still just a 17" CRT. Like laptops, displays have become (compared to what I'm used to) ridiculously cheap lately, so I picked up an Acer AL2016W 20" widescreen LCD for the princely sum of CAN$300. I remember the 19" curve screen CRT I used back in the U.K. cost more than that. LCD displays have come along in quality amazingly lately; I remember I held off buying one all the way up till last year because I still didn't think the quality was quite up to scratch, but this is a really extremely nice looking display, and it's not even a high-end LCD. I'm very happy with it, and the extra real estate is lovely.

It was pleasingly simple to install on Mandriva as well. Disconnect the old monitor, shut down X, run XFdrake, tell it to detect the new monitor via plug 'n' play, set the resolution to the panel's native 1680x1050 and restart X. Done. I remember a few years ago trying to get Linux to use a widescreen monitor was a nightmare, nowadays it barely merits a second thought, except on those Intel chipset laptops with bad BIOSes that need 915resolution...