Sunday, November 30, 2008

How a Mandriva Upgrade led to me installing OpenSUSE

The Setup

I've been so busy for the last six months I've been waiting for some free time to upgrade europa, who's been running Mandriva 2008.1 Power Pack. That free time came during the Thanksgiving break. I've been quite happy with Mandriva 2008.1. The only reason to upgrade is because Mandriva 2009.0 Power Pack is the new hotness, which makes 2008.1 the old, busted hotness. And so I pulled the 2009.0 DVD ISO and burned a copy, then hit the reboot and waited for the system to upgrade from the DVD.

The Act

Running the Mandriva update from the DVD was flawless. 2009.0 found the 2008.1 installation, updated the necessary packages, and otherwise prepped europa to boot into the new hotness. And so after 2009.0 Upgrade had finished it's labors I removed the DVD and waited for first boot into 2009.0.

The Results

While there are certainly worse things that can happen to you in life, watching a perfectly good system fail to boot after what appears to be a flawless upgrade is going to leave a cold dead weight in the pit of your stomach. It didn't take long to find out what happened, and I'm still perplexed why Mandriva 2009.0 did what it did.

But first, a little background. Europa has three hard drives; hda, hdb, and sda.
  • hda - A 120 GB Western Digital PATA drive that contains Windows XP. It has always been recognized as the first drive.
  • hdb - A 160 GB Western Digital PATA drive that contains Linux. It has always been recognized as the second drive.
  • sda - A 250 GB Western Digital SATA drive. It has been formated as a single ext3 drive on which all my work under Linux is done. It was added in January of this year when the price dropped to $89 at a local Circuit City. My motherboard is old enough that it's SATA 1, not SATA 3.
Since grub couldn't find its location (/boot) and supporting files I tried to first rescue grub, then in desperation tried to reset the MBR to at least get Windows to boot stand-alone. Nothing worked. That's when I started to pay attention to how Mandriva 2009 was labeling the drives. And here's what I discovered:
  • sda -> sda -> first boot device (was third device under 2008.1)
  • hda -> sdb -> second device (was first device under 2008.1)
  • hdb -> sdc -> third device (was second device under 2008.1)
I discovered this ordering when I booted the 2009.0 DVD and elected to begin an install. I then looked at how it wanted to partition all the drives. Why Mandriva 2009.1 elected to scramble the order of my drives is a mystery. As is the final failure to boot after an update. I think I have an inkling, but I need a bit of time to dig a little deeper.

A Solution (But Not the One I Expected)

I already had OpenSUSE 11.1 RC on CD, so I figured "why not?" I dropped the CD into the drive, booted into the live desktop, and started an install. It has been some time since I installed OpenSUSE, let alone worked with it. I wasn't sure what to expect, but the experience turned out to be pretty straightforward and fast. In particular I found that the OpenSUSE installer wanted to view my drives and partitions in the same order that Mandriva 2008.1 (and everything else up to that point) had seen them. The only difference being that the hda/hdb labels were replaced with sda/sdb, and the older sda SATA drive was now sdc.

So I configured my drives and partitions and then just let OpenSUSE install itself. In very little time at all it was finished and I was going through first boot. After finishing the installation of first boot, I rebooted to see if I could boot into Windows. I could; everything was back to normal.

At this point it's usually de rigueur in some quarters to spin out a rant against the 'lame' and 'stupid' Mandriva. After all, OpenSUSE 11.1 installed properly, didn't it? The problem with that argument is the realization that europa hardware is pushing a good five years of age. In this industry that's a very long time. The motherboard, based on an old nForce 2 chipset, is so old it has a SATA 1 chipset. You can't buy a new motherboard today (that I'm aware of) that has PATA drive support on the motherboard the way my motherboard has it. While it's technically wrong, I can see where the Mandriva installer saw the SATA drive and automatically assumed it was the primary boot device instead of paying strict attention to the BIOS. As much as I like this machine, it probably is time for me to head back over to Newegg and build a more current system.

Running under OpenSUSE - Again

So, is OpenSUSE 11.1 going to replace Mandriva 2009? Let's answer that in stages.

OpenSUSE 11.1 Live CD does not have all the codecs and multimedia features that Mandriva 2009.1 One Live CD has. In fact, the One was able to play back QuickTime and other content, while I'm going to have to go and hunt down all the necessary codecs (and libdvdcss, but then libdvdcss is also a hunt-down-and-add-on for Mandriva) in order to get equivalent functionality. So, for decent multimedia support from the get-go, Mandriva is your choice.

But OpenSUSE does install cleanly and quickly, and it does boot up with sound and video working at its best. Flash is not part of the OpenSUSE Live CD (nor on the One) so I had to fetch Adobe's Flash plugin from here and then install it via Konsole before Flash sites, such as CNN, would play. But the installation was simple and once installed multimedia Flash sites streamed just fine. So yes, it took an extra step in that regard, but it required no arcane configuration steps, and as an added bonus sound worked just fine. It's little different from what I always do under Windows XP.

Then there are the other little extras. For example, there are all the great KDE 4 wallpapers (no, really) that were released a year ago. They're stock on Mandriva 2009.0 One, but they're not a part of OpenSUSE 11.1 RC Live CD. I wanted to use "Fields of Peace" but it wasn't installed. A minor annoyance but no problem. Normally I'd go look in Yast and load the package. Except the software repositories had not yet been enabled. You find this out by opening the YaST Control Center and then opening Software Management. To solve that minor annoyance you have to open "Configured Software Repositories" and enable the first three entries. Well I say the first three. The first is for updates, and after enabling it and then getting the update notices I'm not so sure.

Once I had the repositories enabled I was able to find the package for the KDE 4 wallpapers (kdebase4-wallpapers) and install them. While I was there I also installed GCC (along with Ada and G++). I went looking for Java and found that the latest version in the repositories was version 1.6.0 update 7. I currently use update 10 on every system I touch, so I wasn't interested in the repository version.


And voilà! It's a nice, simple, subtle desktop (at least to my eyes). And it's Green.

During configuration and update of packages, something triggered smolt and it popped up on the desktop. I've read of smolt, and I used it to upload my systems hardware configuration. While smolt may serve a useful purpose, it's UI leaves something to be desired.


One nice feature found on Gnome but seemingly missing on KDE desktops is the ability to trigger a screen capture via the Print Screen key. I'm sure there's a manual way to set up a key binding to trigger KSnapshot, but why put someone to that much trouble? I finally found where Printscreen is bound (in System Settings | Keyboard & Mouse | Keyboard Shortcuts, under KDE Daemon!?!), but it's linked to KDE Deamon, which I assume is the intermediary between pressing the Printscreen key and invoking KSnapshot. Not exactly the most intuitive implementation I've ever seen.

When I went to "save as" the screen shot I noticed that on the Save As dialog, where you would expect to type in the file name, the text box's label is "Location", not Name or "File Name". Most peculiar.


The Situation So Far

I've installed gcc and I've downloaded and dropped on my system Java 6 Update 10 from Sun. I've already got Eclipse installed in the same area where I keep Java, and I'll talk more about how I use and develop with Java later. But right now external Java from Sun runs just fine on OpenSUSE 11.1. This was the deal breaker for me with OpenSUSE when upgrading from 10.2 to 10.3. That's why I switched, first to Ubuntu, then to Mandriva. This time everyone is playing nice together.

I'm going to continue to add the bits as I need them, such as the latest AMD/ATI drivers for my video card. They're not in there right now (Mandriva One has them and will install them), and I can't find any fglrx packages in the current repository set. That's probably another reason to upgrade hardware; Stream Processing from ATI/AMD. I checked on Newegg and you can pick up a 4850 with 300 Stream Processing Units for about $160. Not bad for cheap parallel processing. Of course, you can't get such hardware without a new system; europa only support AGP.

I'll see what happens in the mean time with OpenSUSE. I'm going to be running some builds with the latest gcc/g++, and I'm also going to be doing some Java cross-testing and development. It might not play all the latest in multimedia, but if it's a decent development platform (read: rock solid and nothing screwy in the libraries) then that's all that really matter sometimes.

I will more than likely go back to Mandriva (especially on newer hardware). Or I may just do something as simple as pull the plug on the SATA drive on europa before I attempt another Mandriva 2009 install. I've certainly done far worse in the past when installing other distributions and even vaunted Windows. Nobody's perfect. But in the mean time I will work with OpenSUSE and see how it runs.

7 comments:

  1. I'm not quite sure I understand the problem - maybe I'm being dumb. Um. How can Mandriva affect the boot device order? Selection of the boot device is handled by the BIOS; you set a boot device order in the BIOS and it initiates whatever it finds in the MBR of the selected device. There's no possible way Mandriva can affect this, as the operating system does nothing at all *until* the boot device has been selected - by the BIOS. I just can't see how the operating system can affect the boot device ordering. By the time the operating system shows up, the boot device has already been chosen, it can't be otherwise. Can you explain a bit more so I can understand what went wrong, exactly? Thanks.

    The change from hd* to sd* names is an upstream kernel change (which is why it happened in both MDV and SUSE) - the new libata drivers for PATA controllers name the drives sd* rather than hd*. I'm not quite sure of the rationale behind that decision.

    ReplyDelete
  2. As for not fully understanding the problem, well, that makes two of us. That's why I need some more time to look at the problem. I am beginning to believe that europa's somewhat peculiar drive setup has triggered a corner-case bug in the MDV kernel. The Yast entry for the SUSE-specific kernel sources describes it with "many fixes and improvements." SUSE's kernel version is 2.6.27.7-4. I'm trying to get the two distribution's kernel source trees set up so I can do a diff between the trees.

    As for clarification, the best way I can sum it up is that *something* within MDV re-ordered my drives such that the SATA drive, which is normally third in the sequence, wound up first, bumping the other two PATA drives down a notch. And that seemed to play hob with how grub was eventually configured and installed under MDV. That's why I believe that something as simple as disconnecting the SATA drive before installation of MDV would at least get it installed properly. Then I would re-connect the SATA drive and attempt to hand-configure its entry in MDV's /etc/fstab.

    Besides, have pity. I'm beginning to go through MDV withdrawal. I want my, I want my M*D*V...

    ReplyDelete
  3. OK, what I don't get is what you mean by 'the sequence' in this part:

    "As for clarification, the best way I can sum it up is that *something* within MDV re-ordered my drives such that the SATA drive, which is normally third in the sequence, wound up first, bumping the other two PATA drives down a notch."

    What 'sequence', exactly, are we talking about here? Thanks!

    ReplyDelete
  4. I don't know how to describe it any other way, coming from the old CP/M and MSDOS days, where drives/partitions were lettered (sequenced) on how they were enumerated by the BIOS. Perhaps 'enumerated' (under /dev) is the better term. All I will say is that Mandriva enumerates my drives as sda-sdc, where sda is the SATA drive. OpenSUSE, on the other hand, enumerates the drives such that the SATA drive is sdc. Under a fully booted UNIX/Linux it shouldn't matter. And this may be a red herring; I just can't say for certain at this time. But it is the only obvious visual clue at this time. And as I said, I will attempt another Mandriva 2009.0 installation without the SATA plugged in to see what happens.

    ReplyDelete
  5. Bill

    Thanks for telling us you will point out how you install Java, Javabeans, and I hope Eclipse that causes you problems. I get some of these on 64 bit openSuSE but have generally been rescued by the 32bit compatibility libraries.

    However us deeply embedded types have different cares than a middleware developmer. And yes I've been in the embedded industry as long as you have been in the IT industry but have built enterprise scale Java Applications on Red Hat Linux in the 90's. Eclipse is now all over embedded, pcschematic capture and pc layout. Many issues are found on linux with the plugins so people like code sourcery create "installers" to confuse the issue.

    I'm in the same boat as Doug Abott on this one doing embedded eclipse on ARM.

    Cheers John

    ReplyDelete
  6. Ahh, I see, you're just talking about the udev enumeration. I'm not sure why the order would be different on SUSE and Mandriva (it probably depends in which order the drive controller drivers are loaded), but it shouldn't actually matter much; mounting in Mandriva is done on a UUID basis by default these days.

    If you can access the MDV filesystem from your SUSE install or from a live CD, can you post the bootloader config file, and /etc/fstab ? Thanks!

    ReplyDelete
  7. I've done some embedded work. My first taste of embedded programming was with Digital Communications Associates in Atlanta, Ga, during the very early 80's. The processors were Z80s, 68000s, and 6502s. I was a junior engineer doing the bidding of others and I didn't get to do much in that arena until I had spent a year as a CE in the field. There were some really sharp folks I worked for and with at DCA, and I often wonder what happened to them. As I said, I was the junior guy and my work was insignificant compared to what they produced, but I learned a lot from them.

    Later, in the late 80's and early 90's I did more extensive embedded work with the 65C02/802/816, 8052, 80C196, and MicroSPARC running VXWorks on VME. Since then my embedded work has been with ARM-based systems, such as the GumStix running Linux on ARM.

    I have never run Java on an embedded system, preferring, over the years, to use various assemblers or C to write my code. To me building embedded systems is a lot of fun.

    ReplyDelete

All comments are checked. Comment SPAM will be blocked and deleted.

Note: Only a member of this blog may post a comment.