Monday February 18, 2008 By the end of this, I should know something about ZFS
After a couple of years of offering to speak locally about OpenSolaris/Solaris but having no takers, I am now signed up to give a bunch of talks. To avoid strains on my brain, I am keeping the topic to ZFS.
On February 27, I will be giving a talk at the monthly meeting of the Puget Sound Network Users Group. This is going to be in Bellevue, WA and my talk should start around 6:30pm. PSNUG has asked me to speak for a couple of hours and I will probably start with an introduction to OpenSolaris.
On March 6, I will be back out at Washington State University to give the ZFS talk that I was supposed to give on February 7. (I had the flu on the 7th and didn't want to give it everyone on the plane.) This will be a one hour talk with demos.
I have been asked to give a similar ZFS talk for the Tri-Cities Linux Users Group in the Tri-Cities on March 8. I have not yet committed to being there, but I probably will go.
I didn't know a lot about ZFS before I started doing these talks, but I know a lot more now!
This does confuse things a bit for the next Puget Sound OpenSolaris Users Group meeting. It should have been in January, but I delayed it to February because of the Pullman talks. Now, with the end of February, beginning of March activity, the PSOSUG meeting will be delayed until March, I guess. And what will the presentation be on? I am sure that I am gonna be sick of talking about ZFS.
( Feb 18 2008, 06:08:00 PM PST ) Permalink
Last weekend, my daughter and I ran the Thunderbird Rally. TBird is a "winter driving adventure" that this year started in Merritt, BC, had an overnight stay in Kamloops, BC and finished back in Merritt.
Despite the category of this blog entry, TBird is not a stage rally. It is a TSD or Time-Speed-Distance rally. In TSD rally, like stage rally, competitors are given a route book with timed sections and transit sections. However, unlike stage rally, instead of driving as fast as possible against the clock, competitors drive at fixed speeds. Drive 3.47km at 45 km/hr, drive 2.63km at 53 km/hr, and so on. Theoretically, the speeds are below the posted speed limits and, at least theoretically, the roads are open to non-rally traffic (more on this later).
The competitors are given the average speed and distance and have to determine the correct time to be at each location along the timed section (called a regularity). Unannounced checkpoints record the time that each car passes the checkpoint. Scoring is done by how many seconds the car is early or late passing the checkpoint and lowest score wins.
Competitors are classified by the equipment that they use to calculate when to be where during the regularity. There are rally computers that are essentially very accurate odometers that can be calibrated in to the odometer that the rally organizer used to determine the ideal times to pass the checkpoints. The average speed can be programmed into the computer and the computer can tell you whether you need to drive faster or slower. This class is called Unlimited.
My 15-year-old daughter and I ran in the class at the opposite end of the spectrum. We ran Paper class. In Paper class, you have to use the stock odometer in the car. Also, all calculations have to be on paper. No calculators or pre-calculated tables of useful values.
There are usually a lot of Unlimited class cars and not so many Paper class cars. This year was no exception. One Paper class competitor upgraded to Calculator class (Paper class with calculators and tables), so there were only two Paper class cars when the rally started.
The route of the rally is interesting. It goes between the southern BC towns and Merritt and Kamloops, a couple hours northeast from Vancouver. The route is mostly snow-covered gravel forest roads. The roads are plowed, but mostly one lane (maybe a lane-and-a-half) wide. Some spots are icy. Some spots are icy and downhill. Some spots are icy and downhill and the average speed that you need to maintain to stay on time is a little fast for the conditions. And, at least theoretically, you are sharing the road with non-rally traffic, though we didn't see much this year.
Fortunately, we were in a modern car (a VW R32) with all-wheel drive and new studless snow tires and traction control. We could concentrate on maintaining the correct speed and not worry as much about keeping the car on the road. The traction control system was a little too safe in hairpin turns, though.
A lot of the time, the average speed and the conditions meant that it was a very fun drive. I didn't have a lot of faith in studless snow tires before the rally and now I do. We kept catching the car that started one minute ahead of me (they were slow, we were on time), so, given how narrow the roads were, that kept things interesting as well.
My daughter worked out the system for staying on time and only asked me to do long division when it was needed. She did an excellent job and, as noted in the title, we finished first in class. Out of about 40 cars, we were 18th overall.
All in all, a good weekend.
( Feb 16 2008, 09:13:20 AM PST ) Permalink Comments [1]
Last Thursday, I presented an OpenSolaris talk at a meeting of the Palouse section of the IEEE at Washington State University in Pullman, WA. The topics of my talk were an Intro to OpenSolaris, DTrace and ZFS.
I didn't select the topics. Sun's campus coordinator, who made the arrangements for the talk, did.
The talk was interesting to prepare, because I had 60 minutes to present on three topics that each could have easily taken up a full hour (or more). I have done presentations on Solaris and OpenSolaris before, so that part was pretty easy. I use DTrace all of the time, so that part was easy to prepare as well. However, the ZFS part ... well ...
I didn't know a lot about ZFS. When I tried to set-up some Firewire disks to get familiar with ZFS, the scsa1394 driver panicked and I didn't get much beyond that. I researching ZFS and started to write a presentation, but I ran out of time and used Eric Kustarz' ZFS presentation.
As might be expected, the introduction to Solaris and OpenSolaris and DTrace portions of the talk went off well. The DTrace part would have been a little better with some demos, but time was short. However, the ZFS portion of a bit of a mess. I had gone through the slides and thought that I understood everything and could explain things, but realized that I couldn't as I was making the presentation and trying to answer questions. At least I got the key points about ZFS out there for the people who were unfamiliar with it.
Fortunately, I get a chance to make up for the botched ZFS presentation. I will be back in Pullman on February 7th to make a 40 minute presentation just on ZFS.
( Jan 21 2008, 02:20:07 PM PST ) Permalink
In the immortal words of David Hobbs (SpeedTV F1 commentator - sorry can't find a good link), Solaris on the MacBook went kablamo not once but twice this past week.
The first time was when I tried to add_drv(1M) the ndis wrappered version of driver for the Broadcom BCM4328, the wifi hardware in the newer MacBooks. Followed the instructions to build the new binaries based on the Windows driver. Installed the binaries in their proper location. Ran add_drv as directed by the instructions. And panic.
The stack track showed cominttrap, trap, die. Very repeatable.
Just what I need - another panic to figure out!
The second time was when I tried to mount a IEEE-1394 HD containing a Solaris Nevada workspace and the build environment. I tried to use format(1M) to figure out what controller number the IEEE-1394 HD was assigned and, in the process, the system panicked. I work on the IEEE-1394 drivers and had seen that panic for the first time a couple of says earlier on the same drive when trying to configure it for ZFS.
I was able to successfully write about 10G of Nevada source and object code as well as build tools to the drive on one system and read them off onto the MacBook, so the crash is odd. Something to figure out in the coming week. At least figuring this one out is part of my day job.
Things weren't all bad. I was able to get the build environment set-up and the workspace copied over. A Solaris build is running at the moment and no problems so far.
I have noticed one dumb thing about the MacBook. The edge of the outer shell of the notebook is rather sharp. The base of my palms rest one either side of the touchpad and my wrist hangs over that sharp edge. After using the MacBook for a while, it looks like I have been trying to cut my wrists (no jokes from the anti-Mac crowd, please).
That's it for now.
I hope to get some time to work on MythTV this week. One of the toys that I got for Christmas is a Hauppauge HVR-950 NTSC/ATSC USB tuner. It would be fun to make that work with OpenSolaris!
( Jan 06 2008, 11:52:26 PM PST ) Permalink
Updates on the MacBook and MythTV fronts
Well, the end of the holiday break is almost here and I figured that I would give an update to the ongoing OpenSolaris on MacBook and MythTV on OpenSolaris sagas.
OpenSolaris on MacBook
Well, it is mostly up and running.
I got the wired networking problem figured out. Added yet another PCI ID to postinstall script for the Yukon ethernet driver from Marvell (and patched up the checksums in the package so pkgadd wouldn't puke) and it worked. Having working networking makes installation of a lot of other things go much easier.
Don't have wifi working. Since they made my Mac Mini, Apple has switched to a Broadcom part, which is even harder to get a driver for than the Atheros wifi part in the Mac Mini. I don't need wifi working on the MacBook in the lab, but it would be nice to have when I give an OpenSolaris talk at WSU in a couple of weeks (A couple of weeks? Yikes!)
Audio is also not working. I installed OSS and it didn't even recognize that the system had audio hardware, even though the hdaudio driver was attached to it. After I removed the OSS package, the audio apps go through the motions of playing, but no sound comes from the speakers (or headphone jack). I guess I don't need audio for now.
One weird thing that happened after I installed build 80 was that the hald service was not enabled out of the box. After I enabled the service, everyone associated with it worked fine. Maybe as I start installing build 80 on the other systems in my lab, I might find that OpenSolaris has some new defaults as far as what services are enabled.
Tomorrow, I am gonna copy over an OpenSolaris build environment and workspace and trying building the system.
Just have to get used to only one mouse button!
MythTV on OpenSolaris
I am almost back to where I was months ago when I had all of the code compiled and was just starting to run and test it.
However, I really didn't want to be the guy responsible for a MythTV on OpenSolaris port. I just wanted to make a set-top box out of my Mac Mini. So, I kept putting the porting work off, hoping that someone would step forward to take my initial work and run with it. The problem was, no longer how long I waited, trying to convince myself that there was someone else out who really want to work on the port, no one else stepped forward. Since I had a bunch of people asking how the work was going, I decided to go ahead and finish the myself.
So, getting back to that "almost back to where I was" remark? Well, after meeting one of the Sun guys who works on the compilers and tools last spring, I decided to switch from building the code with GCC to using Sun Studio instead. Unfortunately, the MythTV codebase is full of gcc-isms.
After spending the last couple of weeks, making small changes in the code for the Sun Studio compiler (for example, unlike GCC, it doesn't like use of the ?: operator without the second argument). The big problem right now is that I am trying to resolve a conflict between a compiler setting that I think may correct a bunch of warnings that I am seeing and an incompatible setting in the version of the QT3 package that I got from blastwave. I am also trying to figure out how to convince the MythTV configure script mechanism to let the program building Makefiles that I want to link them with the Sun mlib library. If one enables mlib, the libraries get built presuming that mlib will be linked in, but the program Makefiles don't get the -lmlib linker argument.
So, that's where things are at. I'll posted another update in a week or so. I promise.
And I promise to keep this blog more up-to-date. Honest. It will happen this time.
( Jan 02 2008, 12:45:48 AM PST ) Permalink Comments [2]
Wasn't I doing this same thing a year ago?
Last year, I bought myself a Mac Mini was spending the winter break (Sun shuts down between the Christmas and New Year holidays) getting Solaris running on it. With some help from BootCamp, this mostly involved looking for drivers, writing drivers and porting applications.
Oh, and also spending hour upon hour trying to figure out how to set up dual-boot (Solaris and MacOS) in a manner that was reproducible and didn't depend on old data being left on the disk from a previous attempt to set it up.
This year, on the Thursday before the winter break, a new MacBook showed up on my doorstep and I found myself trying to get Solaris running on it.
So, was it any easier than a year ago?
Surprisingly, at least initially, it was not. I was trying to install Solaris Nevada build 76 on the MacBook. I found an updated blog by Paul Mitchell describing how he installed build 76 on a MacBook Pro. His work on this was based on a blog that I wrote describing the process that I came up with a year ago working with the Mac Mini. I figured that I was set.
However, it didn't work.
Before I found Paul's blog, I found another blog that described how to install Solaris on a Mac. If you plan on dual-booting the system, I would not recommend following the procedure describing in it, because it blew away the disk's GPT and I had to reinstall the MacBook from scratch.
Paul's instructions consist of creating a Solaris2 partition in the MBR, changing the tag on the EFI partition so that Solaris thinks that it is something else, applying the CR6413235 workaround and running the Solaris install program. When I did this, I still had issues, but it was less destructive than the first time through.
Instead of strictly doing as Paul indicated, I used BootCamp to repartition the disk. I did use his instructions to allocate the Solaris2 partition while preserving the unallocated space after the HFS+ partition. However, Solaris would always use the MBR partition table as the VTOC.
For some reason, I figured that I would download build 80 (not sure if that is available outside of Sun as I write this) and give that a try. I had no particular reason to believe that it would work any differently than build 76. It was just something to try. And it worked!
I booted build 80 and ran prtvtoc and it showed an empty VTOC, not the MBR partition table contents. I was encouraged. I ran format and was able to configure the VTOC as I had planned. I installed the CR6413235 workaround and restarted install-solaris and it ran to completion.
Actually, it seems as if build 80 would have worked as described in Paul's blog. I wonder if he was using a later build.
Now if I could only find a Marvell Yukon driver that works with the Ethernet part in my MacBook ...
( Dec 23 2007, 09:46:13 AM PST ) Permalink Comments [5]
I have been asked to make a couple of OpenSolaris presentations at Washington State University in Pullman, WA. One unfortunate consequence of this is that it will delay the next meeting of the PSOSUG, originally planned for January, until the end of February.
The first of these will be a talk at the January IEEE Palouse Regional Monthly Meeting on Janury 17, 2008. I have sixty minutes to talk about OpenSolaris, ZFS and Dtrace. It should be no problem fitting all three topics into sixty minutes, right?
The second talk will be a couple of weeks later, tentatively on Feb 7. The topic is still TBD, but I suspect that it will be a more in-depth technical discussion of ZFS or DTrace.
Maybe I will see you there.
( Dec 10 2007, 12:16:40 AM PST ) Permalink
Video from my big rally off last year
A few weeks ago, I was at the Volkswagen dealer picking up some parts for my car. I know one of the service writers there and, when I stopped by to say 'hi', he told me that he had seen me on TV. After probing some more, I figured out that it was coverage from the 2006 Prescott Rally.
That weekend, I had a one-off ride with Lisa Klassen and we were being followed around by an independent videographer (forget her name - doh!). She was putting together a piece about Lisa to air on current.
I don't remember that weekend because we had a video camera pointed at us all of the time. I remember it because it was there that I was involved in my biggest off (rally-speak for accident) ever.
What did it look like from the outside?

The title of this entry mentions video, so where is the video? Here is the video. Most of the segment is about Lisa, but the in-car from the accident starts at about 5:30.
Looks pretty bad, eh? Well, my injuries were limited to some cuts on my hands, lots of dirt in my eyes and undiagnosed neck injuries that I made worse by competing in rallies on the two consecutive weekends following the off. My neck finished finally completely healed over last summer.
What happened? Lisa wrote up the off on her web site. However, she doesn't quite get all of the facts straight. For example, I am not sure how she could have kicked open her door without lying across me and I would have remembered that!
Also, she didn't quite get the stage note right, but the notes in the book were basically correct, maybe a little tighter than noted. The sequence was a little tricky for faster cars and probably should have been cautioned because of an accident there at a previous running of the rally.
But Lisa was still going into it too fast for the sequence that I called. Unfortunately, by the time I realized she had gone in too fast, there was nothing that I could say to change the situation. The car went light and hit the ditch. The back end may have hit the bank hard and initiated the roll. As the car rolled, the front of the roof dug into the embankment and broke out the windscreen and this filled the car with dirt. The car stopped and we got out.
But why should I complain? I got on TV, right?
( Dec 04 2007, 02:36:54 AM PST ) Permalink
I haven't blogged about rally for some time, but I have still been doing it. This season I have continued co-driving for Gary Cavett. At the beginning of the year, I had announced that this would be my last season as a rally competitor.
I was going to retire this season, but Gary asked me to postpone my retirement a year. At the end of last season, the engine broke and Gary decided to rebuild it with a larger 2.5L block. The car was going to be very fast and he was going to make a serious run at the regional championship.
The first rally was Doo Wops in February. With the larger engine, the car was much faster for most of the first stage, then it lost a piston because of detonation because of insufficient fuel pump capacity. The car left an oil streak a half mile long.
The engine was rebuilt and we ran the Oregon Trail Rally in April. The car died on the first day of the rally because of a fuel pump issue. The fuel pump failure seemed to occur at the exact moment that I closed my door, so I think that something else was up as well, but what do I know? I am just the co-driver. We restarted the second day of the rally and the gearbox got stuck in third gear and we withdrew.
The gearbox was rebuilt and we ran the Olympus Rally in May. About halfway through the day, the clutch started to slip badly. There seemed little point in continuing, so we withdrew to allow additional time to replace the clutch. We restarted on the second day and blew the engine again with a failure similar to that which happened at Doo Wops.
Gary rebuilt the engine, installed higher flow fuel hardware and had all of the fuel injectors tested. Dyno tests showed that the engine was running well. We skipped the Wild West and Mt. Hood rallies and ran the Pacific Forest Rally last weekend. The engine died about 6km into the first stage, just like how it had died at Doo Wops and the Olympus Rally.
And that was the end of my co-driving career.
I will continue to work on the Rally America rulebook and bulletins and I will continue to help organize the Olympus Rally, but I won't be a co-driver anymore.
I am not sure how I feel about it. This past season has been so frustrating that I am happy that it is over. However, I enjoy co-driving and think that I am pretty good at it. When I watch the in-car on the WRC coverage, I want to be in a car co-driving. Also, not finishing a rally in the last year is not really how I wanted to end my career.
Who knows? Maybe I will be back in a car after I stop thinking about this season.
( Oct 23 2007, 12:46:23 PM PDT ) Permalink Comments [4]
The PSOSUG: Reaching the OpenSolaris community one person at a time
I just got home from the first meeting of the Puget Sound OpenSolaris User Group. Attendance was a bit lighter than expected. Only one other person showed up.
That isn't great for the OpenSolaris movement, but it was OK for me. I am still working on getting comfortable speaking in front of a crowd and one of the reasons that I am leading the PSOSUG is for experience speaking in front of crowds. But sometimes I think that I am not quite ready yet. Making the presentation to just one person was more like a conversation and easier for me to pull off. I can make the presentation to a larger crowd next time.
And I make get that chance sooner rather than later. Earlier in the day, I exchanged e-mail with someone at the Puget Sound Network User Group about giving an "Intro to OpenSolaris" presentation at one of their meetings.
In the meantime, I need to get ready for the next PSOSUG meeting in three months. At the request of my one attendee at tonight's meeting, the topic will be something about ZFS.
( Oct 22 2007, 08:45:10 PM PDT ) Permalink
Puget Sound OpenSolaris User Group to meet Oct 22
The first meeting of the Puget Sound OpenSolaris User Group will be held on Monday, October 22, starting at 5:30pm. The meeting will be held at the Sun office in Bellevue (BLV04, Mt. Baker conference room). The address is 15395 SE 30th Place, Suite 120.
The agenda is simple:
Attendees will receive copies of the OpenSolaris starter kit.
Since I have no idea how many people to expect at this meeting, please let me know if you intend on attending, so I can plan appropriately.
If you have any questions, let me know.
( Sep 21 2007, 08:32:12 AM PDT ) Permalink Comments [1]
The new and improved Puget Sound OpenSolaris User Group
The Seattle OpenSolaris User Group (seosug) is now the Puget Sound OpenSolaris User Group (PSOSUG). When I signed up to lead the local OpenSolaris User Group, someone gave it the name Seattle OpenSolaris User Group without consulting me.
The problem is that I don't live in Seattle; I live on Bainbridge Island, across Puget Sound from Seattle. And the local Sun office where my Mail Stop is located (as well as the location for the next PSOSUG meeting) is in Bellevue, across Lake Washington from Seattle.
Since a recent reorganization of the OpenSolaris User Groups forced me to make some changes to seosug's area at opensolaris.org, I decided to take the opportunity to change the name of the User Group as well to reflect the larger geographic scope of the group.
The Puget Sound OpenSolaris User Group is a now an OpenSolaris "project" (currently hidden, but it may be un-hidden by the time that you read this). More information about it can be found on the OpenSolaris website. The next meeting of the PSOSUG (the pSOS User Group? Uh oh.) will happen sometime in mid-October. Watch this space in the future for more info.
( Aug 29 2007, 10:48:29 PM PDT ) Permalink
The joys of cardbus 1394 and the 4-pin connector
A couple months ago, I discovered that 1394 Cardbus adapters just work with Solaris. Well, at least, the cards that I have work with the notebook computers that I have.
Thinking about it, this makes sense. Cardbus is basically a PCI slot in a PCMCIA form factor. And, like most 1394 host adapters, most 1394 Cardbus adapters are based on 1394 OHCI compliant silicon and Solaris has a 1394 OHCI driver, hci1394.
The odd and really unexpected thing is that, in my experience, these 1394 Cardbus adapters have turned out to be more reliable than the built-in 1394 hardware (and/or the 6-to-4 pin adapters that I use).
The problem is the 4-pin 1394 connector. All of the x86/x64 notebook computers in my lab have 4-pin 1394 connectors. It takes up less real estate than the 6-pin connector and it removes the hassle of dealing with implementation of the 1394 power provider/supplier rules, so I can see why company's use it.
However, the 4-pin connector has two big problems. One is that it provides no power for bus-powered devices like IIDC cameras and some hard drives, so one has to connect the device to the computer through something like a powered hub (or the adapter that I use which gets 1394 power from any available USB connector). The other problem is that the 4-pin connector has features that contribute to it being an unreliable connector, such as fingers inside the connector can fatigue and break off and a shape and size that makes it hard to insert the cable into the connector (which can lead to damaged connectors).
This is not to say that there aren't problems using the 6-pin connector. I have a six-port 1394 hub develop four dead ports over time, a three-port 1394 Cardbus adapter develop a dead port in the last month and every MacBook (Titanium) and iMac that has entered my lab left my lab with dead 1394 ports (some had dead ports coming in and others developed them here).
However, aside from the one dead port on my three-port 1394 Cardbus adapter, they have been remarkably dependable. If you are having problems using Solaris with your notebook, I suggest trying a 1394 Cardbus adapter.
( Aug 29 2007, 10:15:35 PM PDT ) Permalink
In a previous blog, I wrote about the demise of the Apple iSight camera and how that was the last consumer grade IIDC camera on the market. However, I was mistaken.
I forgot about the Unibrain Fire-i.
I am not sure why I forgot about it. I worked an IIDC medical camera a few years and we had a Unibrain camera that we used to check what IIDC registers a real device implements, so I knew about them.
Unfortunately, you can't just walk into a store and buy one. Fortunately, there are a lot of online sources.
( Jul 20 2007, 09:27:07 AM PDT ) Permalink
I have received multiple requests for updates on the status of my MythTV under OpenSolaris work since I presented on it last March in Berlin. Well, here it is ...
I have done nothing since Berlin. Good thing I wasn't planning on doing anything.
The plan all along was to shelf everything until June. This work is a side project and is subject to time availability issues that any side project is subject to. I have a lot of personal stuff that comes up in April and May, so I figured that it would be better to just sit on things until after then. In the meantime, I have been looking closely at the Apple TV to try and determine if I want to try to make OpenSolaris run on that.
( May 14 2007, 12:05:44 PM PDT ) Permalink