Showing posts with label linux. Show all posts
Showing posts with label linux. Show all posts

Wednesday, June 01, 2011

LAVA Project Changes

If you take a look at http://launchpad.net/lava you'll see some structural changes are afoot:
LAVA is now a project group
lava-server - the core server components
lava-dashboard - the results dashboard (was launch-control)
lava-scheduler - the lava scheduler
lava-dispatcher - the dispatcher
lava-tool - the core pieces of the command line interface
lava-test - (coming soon) the test execution framework

All the Linaro validation tools are now going to be consolidated under the LAVA project group in launchpad. If you are already deploying and experimenting with LAVA, don't worry, there will be some instructions coming soon (and packages too) for installing the latest versions. This is laying the groundwork for the development that will take place over the next few months. More on that later. :)

Monday, March 14, 2011

Max partitions on mmc

One thing my team has been working on recently is a test automation framework for ARM systems running Linaro images. Since Linaro is also now looking at providing Android based images, the scope increased slightly, and we need a way to cover those as well. My original though for doing this was to have what we call a "master image", basically the first 2 partitions on the SD card which would house a boot and rootfs partition for a stable image, followed by a testboot and testroot partition that could be reformatted and reinstalled at will. This works pretty nicely for Linaro images, but our android images require several more partitions. So... rethinking this, we should be able to accommodate both:
mmcblk0p1 - boot
mmcblk0p2 - root
mmcblk0p3 - androidsystem
mmcblk0p4 [extended]
mmcblk0p5 - androidcache
mmcblk0p6 - androiddata
mmcblk0p7 - androidsdcard / testrootfs (this could be the bulk of remaining space used by both, depending on which image type we are booting)
mmcblk0p8 - testboot

When I actually tried to implement this, I hit a wall at the 8th partition. Only the first 7 show up under /dev. A little digging in the mmc driver reveals that MMC_BLOCK_MINORS is set to default of 8 (1 for the whole device + 7 partitions). So without changing this, by default we can only have 7 partitions on an sd card.

We could probably push this change in the Linaro kernels, but why is it set so low to begin with? Furthermore, will changing it help at all. If uboot does't like it (haven't checked yet) then it doesn't really matter.

Long term, I think the approach will be different. However this requires special hardware. We've been talking about a new approach that would allow us to have a dual mmc interface. The board would boot from the first mmc, load an initramfs, then switch over to the other mmc card. This would be the master image boot, and since we would be running from a ramfs, we could have full access to the second mmc to repartition and destroy it however we like. Then boot into a test image on the second mmc. I think this is where we want to be eventually, but is a ways off still. Now we need to find a way around this silly partition limitation if we want to support android in the short term.

Wednesday, June 23, 2010

Automated Testing Frameworks

A good friend of mine asked me today, how many test harnesses, or automated testing frameworks I've either written, or participated in the creation of now. Honestly, I had never really stopped to think about it, but it's been more than a few. I've had a lot of people suggest over the years that it shouldn't be necessary to start over and create a new one, when there are lots of good ones already out there. There's some common sense in that, however in reality it doesn't necessarily work out that way.

The question "How many testing frameworks have you built?", to me, seems a bit like asking "how many different pairs of shoes have you worn?" I'm not big on shoes or anything, but I do have different ones for different purposes. I have tennis shoes that I typically wear, dress shoes for church or other occasions where sneakers would be too informal, and motorcycle boots. They each have a very different purpose, and for the most part, need to be completely different. Sure, in theory someone could design a dressy, tough, boot that's comfortable to run in. I'll give you a second to try to picture that... Ok, I think you get my point now.

Testing frameworks are kinda like that too. They are often built with a specific purpose in mind, because the existing solutions don't quite do what they wanted, or don't do it in a way that they like. So, rather than try to force themselves upon an existing project, which was created with different goals in mind, developers often start over. This allows both projects the freedom to explore what they want to do, in the way they want to do it, without interfering with one another. Some would call this fragmentation, but I look at it as specialization with opportunities later for collaboration where it makes sense to do so!

Wednesday, January 28, 2009

SystemTap Redpaper

I participated in an IBM Redbook assignment recently with a small team (3 of us). The paper is called: SystemTap: Instrumenting the Linux Kernel for Analyzing Performance and Functional Problems. If you are interested, check it out at: http://www.redbooks.ibm.com/abstracts/redp4469.html. I was really impressed with the Redbook process and this was a very enjoyable experience for me to work with two guys from Brazil on this. As with anything, it always seems like time is too short and so much more I wanted to do, but I guess that's just my personality.

Thursday, October 16, 2008

Migrating Thunderbird/Lightning when reinstalling

I recently migrated one of my systems from FC9 to Ubuntu 8.04 (Hardy) and ran into some minor annoyances with Mozilla Thunderbird and the Lightning extension. I eventually found the answer after some digging, but thought I might post it in case anyone else runs into this. Or more likely, so that I can remind myself next time I hit this problem! :)

It seemed simple enough, I did an apt-get install thunderbird and left my old .thunderbird directory in place from the FC9 install. When I brought up Thunderbird though, it was as if it was coming up for the first time.

Problem 1 - Thunderbird did not see the old .thunderbird directory
Fix - This was the easy one to spot, apparently the Thunderbird under Ubuntu looks for a .mozilla-thunderbird directory. A quick rename fixed the problem

Next though, I noticed that my calendar didn't work AT ALL. All I saw was the shell of what it would should be, no days were even displayed, no calendars, not even an option to create a new calendar. The calendar info is stored under your profile dir in the .mozilla-thunderbird dir, in a file called storage.sdb. I renamed my storage.sdb file to preserve it, removed the addon for lightning, and reinstalled the addons from the latest .9 version of lightning from http://addons.mozilla.org. After restarting Thunderbird though, I still didn't see a calendar. I didn't want to use the version that shipped with Ubuntu since it was version .7, but it looks like that one works fine. So if you don't care to be using the latest version, then this is a viable workaround, but not the fix I was looking for. As it turns out, the lightning extension I downloaded relies on an older version of libstdc++.

Problem 2 - Empty and non-functional lightning .9
Fix 2:
  1. apt-get install libstdc++5
  2. Uninstall the lightning addon
  3. reinstall the lightning addon downloaded from http://addons.mozilla.org
  4. replace storage.sdb file with your old, saved copy
It all works great now.