Grub in Lenny won’t boot when the kernel is on disk 26 or more

Will hopefully get to report this tomorrow to the Grub folks and the Debian maintainer, but basically it looks like the grub in Lenny can’t cope with systems with lots of disks. We have two storage systems that we use software RAID on and seem to have hit a few problems with grub.

  1. grub-mkdevicelist only iterates over the first 16 SCSI drives, so if your boot partition is beyond /dev/sdp then you’ll get an error about it not being able to find the boot partition. This is hard coded into a loop in grub-mkdevicelist.c so you can tweak that up to 25 disks safely.
  2. if you have more than 25 drives (as we do on one system) you’ll hit the next problem as your devices start getting called /dev/sdaa, /dev/sdab, etc.. grub-mkdevicelist doesn’t handle that correctly. If you bump the number in that loop beyond 25 as it will start trying to find /dev/sd{ , /dev/sd| , etc, which it then rejects as they don’t exist. Again that’s fairly easy to work around with a conditional check in get_scsi_disk_name() to at least cope with the sd?? pattern (Reported as bug #514967). This then leads to the last problem of..
  3. Even having the correct device map when your boot device is on /dev/sdab1 still results in Grub in Lenny not being able to locate the boot partition, and we’ve not had time to chase that down any further (reported as bug #514976).

Comments of the type “serve you right for having too many disks” will be ignored.. 😉

btrfs for 2.6.29

This news from Chris Mason on the linux-btrfs mailing list:

Hello everyone,

Just a quick note that Linus merged the btrfs unstable repository into the mainline kernel. I’ll cut a new stable release of btrfs-progs on Monday to go with it (for now the unstable repo is the best choice).

I’d like to thank everyone who contributed to the code, tested, reviewed, documented, helped organize and otherwise helped Btrfs get as far as it has. It wouldn’t have been possible without you.

There is a lot of work to do before we can really declare Btrfs finished, but this is a huge step forward.

Yay! Congratulations Chris.. 🙂

For those who want to know more about btrfs, please check out its wiki page..

Echo suppression fix for Qt Extended 4.4.2 on OpenMoko Neo

I’d previously posted a patch for echo suppression for Qt Extended on the OpenMoko Neo, but it was completely bogus! 🙂

So I went back to the drawing board and changed it to use the AT%N0187 command to enable both noise reduction and echo suppression in one hit as I worry that the original method of using a command for each would result in the previous command being undone. I also added them to a couple of other places where
they looked like they’d be important such as on initialisation and on wake from suspend.

I’m using a slightly earlier version of the attached patch (only removed two comments and inserted some blank lines) on my Neo at the moment and it seems to be working fine – on a test call from a train I was told there was no echo (with the volume at max and mic gain right up) but that I “sounded like I was in a bathroom”, i.e. there was a bit of reverb. 🙂

I’m not convinced that it’s completely foolproof as I don’t know if it’ll remain enabled if I get two incoming calls without a suspend in between.

But it’s still a lot better than what I’ve been having to put up with since I got this going!

I’ve attached both the echo patch to this post and the compiled version of the Neo plugin that is running on my phone. To use it you will need to scp it onto your Neo and then:

root@om-gta02:~# cd /opt/Trolltech/Qtopia/plugins/phonevendors/
root@om-gta02:~# mv libneovendor.so libneovendor.so.orig
root@om-gta02:~# mv /home/root/libneovendor.so .

Once you’ve done that reboot the phone and you should be using the new version!

Attachments

btrfs RAID1 benchmark on Dell E4200 with 128GB SSD

Having previously posted some nice XFS Bonnie++ numbers on the work Dell E4200 I use I thought I’d redo these after having migrated to a RAID-1 configuration of the experimental btrfs filesystem. As SSD’s are not necessarily as reliable as spinning disk yet for data integrity I wanted a system that could spot this and correct for it, so I created two equal size partitions on the SSD and created the filesystem with mkfs.btrfs -d raid1 /dev/sda10 /dev/sda11 before mounting it with the ssd mount option.

Version 1.03c       ------Sequential Output------ --Sequential Input- --Random-
                    -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine        Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP  /sec %CP
sys26            2G           27458  23 21782  19           108478  39  3079  21

                    ------Sequential Create------ --------Random Create--------
                    -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
              files  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP  /sec %CP
                 16  7542  99 +++++ +++  5818  99  7232  99 +++++ +++  5638 100
sys26,2G,,,27458,23,21782,19,,,108478,39,3078.8,21,16,7542,99,+++++,+++,5818,99,
7232,99,+++++,+++,5638,100

real    3m30.808s
user    0m0.404s
sys     0m55.599s

Whilst the raw numbers are nowhere near as good you have to remember that this is doing checksumming of all the data and mirroring it across the two partitions I created for it and, if it finds a problem with the data, will try and recover using the data on the other partition. It’s also still in development!

Ubuntu Intrepid Packages for Digikam 0.10 (KDE4) (Updated)

Finally I’ve stumbled across packages of the KDE4 version of Digikam (0.10) which is currently in beta.

deb http://ppa.launchpad.net/digikam-experimental/ppa/ubuntu intrepid main

They’re part of the Digikam Experimental Personal Package Archive (PPA) and so track the latest development releases (0.10.0-rc1 as I write this) and work for me on Ubuntu Intrepid with KDE 4.2 (at the moment) – remember to install Marble!

Note

Many thanks to Maarten Fonville who previously provided packages that this story originally pointed to, and who commented with the above alternative archive.

Rogue CA – MD5 collisions for phun and profit

Now this is, umm, interesting..

We have identified a vulnerability in the Internet Public Key Infrastructure (PKI) used to issue digital certificates for secure websites. As a proof of concept we executed a practical attack scenario and successfully created a rogue Certification Authority (CA) certificate trusted by all common web browsers. This certificate allows us to impersonate any website on the Internet, including banking and e-commerce sites secured using the HTTPS protocol.

Trust no one..

(Via)

Australian Android Phone

Kogan, an Australian company who usually specialise in LCD’s, are making a mobile handset (the Agora) for Google Android (which uses the Linux kernel) with 3G, quad band GSM, GPS, wifi, Bluetooth, etc… It’s due to start shipping at the end of January and I’ve just pre-ordered mine to hopefully provide a more functional open source phone and let me hack more with my OpenMoko phone without having to worry about not having a working phone.

Kogan Agora Pro mobile phone