Friday November 02, 2007 
James C. Liu's Weblog
Rear brakes on my venerable truck
Thought I'd do a car blog to celebrate the near passing of my
truck at the 200k mile mark. Here's a saga about my last brake job...
I took my venerable truck (1992 Toyota w/ 22RE engine) a couple months ago to the mechanics shop locally to do my rear brakes. Usually, I get my ASE certified buddy to work on my truck. But he had the week off so they let a newbie do the work.
I wanted the near 200K mile car to get new bearing seals along with the rear brakes, which were now shot due to all the grease that had oozed out from the seals which had failed like 5k miles ago. I left the truck overnight, and after a number of days without it due to mailordering the parts and scheduling the work with a machine shop to press the new bearings and seals into the axle tube, I was able to pick up my truck.
The first thing I noticed when I got home was that the rear hand brake was loose. I parked on a slight incline and it was too loose to hold the truck. I hate having to go back to the shop to get them to fix something that we know they screwed up on. So I tried to adjust the tension in the cable under the car but still it was no good. I then talked to a fellow tech guy I have lunch with often at work. He's a pro who does all his own work at home. He explained that the drums on the rear have automatic tensioners. If I keep pulling the brake lever up and down, it auto-tightens and sets the tension. Just give it time and usage, he told me.
I waited 3 more days and spent time yanking the hand brake lever 20 times extra at every chance to park. It didn't tighten. It only loosened. I finally got fed up and jacked up the car myself and pulled the wheel and drum cover off. I disassembled the brake and nearly took my knuckles with it trying to free the main tension spring holding the shoes together. It was a lot harder than I recall when I did my first rear brake job on this truck almost 10 years ago. Either I was a lot weaker in the arms or something was different.
There was a star-cam screw that is about 5 inches long and sits in the saddle between the two shoes. On the outside, the tension spring holds the shoes together. On the inside, between the shoes, this screws acts like a yoke with a star cog that turns to adjust the yoke width and therefore spreads the shoes so they just press up, but not quite to the inside of the drum. After looking at the rotation of the screw (it was right hand thread on the driver side rear wheel), I realized that this couldn't be the correct yoke. For it to auto-tighten, this would have to be a left-hand thread.
I went over to the passenger side and disassembled that brake, and nearly broke my wrists trying to remove the tension spring. I finally got it off, and removed the star-screw-yoke and as predicted, it was left-hand-threaded. So I swapped the yokes, AND also, after looking at the position of the spring hooks, I swapped those as well.
Re-assembly was now MUCH easier. The springs went right back on with much better alignment and less tension. And I hopped into the driver's seat and with just a half-dozen pulls, the rear brake tightened up auto-magically.
I called the shop and told them about this to report their errors. I also emailed corporate offices for this chain with feedback. I got a canned thank you.
Lesson learned. Emersonian self-reliance wins out again. November 02, 2007 11:52 AM PDT Permalink
Tried version 0.6 of the ath wifi driver?
I was playing around with installing Nevada b75a last night on my Toshiba Satellite M115-S1064. Yepp, that's the $449 Fry's laptop I got sometime around last Christmas which I mentioned has funky wireless last week in my blog about the lower cost wifi cards.

Most everything works on this laptop, and at 6lbs and wide screen, it's not the lightest, but it one of the cheapest and gets the job done. A problem since the summit that had been bugging me was to check for the latest and greatest atheros wifi drivers. I was checking the MadWifi website recently and swore I saw a table that said the new PCIe Atheros 5006 wifi chip was now working fine on Linux. I was wondering if that update had trickled in during the last few months in a beta driver on the OpenSolaris.org site. I was still running an older b70b Nevada on the M115 so I last night, I finally got around to kicking off a fresh install which completed, but struck out on the wifi. But I recalled something one of the Beijing engineers said in an email recently, which mentioned that the OpenSolaris site gets driver updates much more frequently than Nevada or Solaris 10. So I went and checked. And since the end of August, almost 2 months ago, the Sun China Wifi team contributed ath v0.6. And after uninstalling (pkgrm SUNWatheros) on my b75a, I pkgadd'ed the new SUNWatheros v0.6 and magically, the new chip is recognized, plumbs, and hooks up with WEP onto my home 802.11 network. Thanks guys/gals!
So those drivers in the formal distros might be bundled months after the actual beta driver has been posted and downloadable from OpenSolaris.ORG. I'm not sure how Project Indiana will merge the conflicts between beta drivers that give early access, and the formal distros that meet higher quality standards. And to make things worse, if you run "strings ath | grep -i ver" on the atheros driver binary, the formal one that ships with Nevada b75a said version 1.3. But if you run the same command on the OpenSolaris contributed and unbundled driver, you get version 0.6.
But I'm certain there's quite a lot of overlap in the QA/Testing suites for drivers that get contributed to OpenSolaris versus the ones that get bundled into Nevada and later S10. But clearly, even the contributed beta drivers seem to have been tested with many of the same suites that the official versions go through. So it's worth a try to keep checking.
But kudos again the Sun China wifi driver team. Wow! It's working beautifully. I'm hooked in now and writing this blog from that laptop using my home wifi net complete with WEP key support.
Also the Toshiba M115-S1064 had issues with strange noises coming from the HD audio codec. I'm not sure, but maybe they this was due to some host signal processing or "soft codec" being used with the ATI SB450 chipset. It does have a compliant Intel HD Audio "azalea" controller. I tried hacking around the opensolaris audiohd source, but only made the noise worse and louder when playing anything.
But Open Sound System (OSS) came to the rescue again. I'll mention it again that OSS is from 4front Technologies (www.opensound.com) and they've been doing cross Platform audio on UNIX for years. In fact, Dev Mazumdar, the head of OSS attended the Open Solaris summit in Santa Cruz. And he was in Menlo Park yesteday at Sun. I thought he lived in SoCal. Maybe he's finding shelter from the brutal fires and smoke down there. (Hope folks are breathing okay down there - this is always a bad time of year down in SoCal when the Santa Ana winds kick up and the dry summer has turned all the spring growth into kindling).
But I digress. The OSS download for Solaris is free and just requires renewal every 6 months. And it plays nice audio as well for this laptop where the shipping audiohd driver doesn't play properly.
October 24, 2007 09:27 AM PDT Permalink
When websites lose customers
Losing Me in a Flash
Had a great morning today, and will be getting $392 in a check coming in the mail real soon.
Why?
Well, I cancelled my Citicard Cash-back rewards credit card. Been a customer since 1998, and used to use their card quite often when shopping, online and offline. My wife and I never had any issues really, until about Fall of 2006.
Some time last year, Citicards.com, and only that affiliate of Citigroup, started putting some really annoying flash media content on their home page/login page. At first it was just -only- annoying. On IE, it might look okay, but on Mozilla/Firefox, the flash blocked a quarter to half the screen. We could still login and access our account to pay. But in the Spring of 2007, the web developers up'ed the ante. They created a "chase-me" popup flash bubble that whited-out the whole screen and put a single marketing bubble that advertised a 7.24% equity line of credit or something like that. My wife was still fond of her Linux system, but she couldn't close the bubble. She tried to click on the [x] and the bubble kept re-appearing somewhere else.
She was late paying that month because we waited until the last day, and she forgot about the glitch and by the time, a few days later, that she told me about the browser problem, we were past due. I was able to login using Solaris Nevada with latest Firefox and it successfully negotiated the Flash bubbles and shut them down. And I made a quick payment for the entire card balance on line and told my wife to stop shopping for now with the card, since with most cards, they charge a late fee plus 2 months interest on the balance. So I called and told the customer service folks about the technical issue to discuss the possible late charges and interest charges. And because this was February/March, and the billing month was short, they gave me a 5 day reprieve and so I didn't pay any penalties or interest. Still, the hassle of having to make the phone call was irritating. Just to be sure, I used the online contact form (in Solaris Nevada) and wrote to them about the issue.
A month later, when all was good, we decided to use the card again. And again, the next month, when my wife was trying to pay the bills online, we couldn't get access. Again, I had to login from work and pay the bill. I wrote Citibank via their email/webform again and explained this situation, but this time, I threatened plainly that I would cancel the card and go away. I was/am a 1998 customer, excluded by a company because of foolish use of non-compliant content.
My wife and I put the cards away and stopped using them. It just so happened that I picked up a Capital One rewards offer in the mail that week, and decided to go online, and sign up. It was relatively easy and I got my new card in just a week or so. My wife got her card a few days after mine. And we've had no issues paying bills online. Solaris or Linux. We stopped using the Citicard and took it out of our wallet and left it at home.
The lack of activity on the Citibank card spurred Citibank to send me a notice. They sent new cards too, with the wireless PayPass chip inside to replace the old ones and sent us a little marketing brochure listing all the benefits of using the Citicard Master-Card. I did activate it thinking I might eventually use their card again.
This morning, in my regular routine of changing my online banking passwords and userIDs (which I do a couple times a year), I logged back into the Citicards.com site, and was greeted with a white blank screen. It was Flash. I checked and I have the latest Firefox and have the latest Flash available for Solaris x86 and yet, I had a blank white screen with nothing to click. I tried to turn off Javascript at first and was able to nullify the Flash load and login, but then got redirected to a page where their system said their site requires Javascript to run. I can understand if their site needs cookies, and I've designed cryptographic cookies that run cross browser (and implement a fully encrypted database with encrypted cookies with my kids' elementary school PTA website - which I'm webIT volunteer). But to mandate the use of JavaScript as well as Flash... well... I thought I could be smart and simply disable the plugin.
To disable it, I just moved the Flash plugin files from the /usr/lib/firefox/plugins directory to a temporary location and restarted the browser. After that, I was able to login and do my change my password and userID. But the thought came to me that my wife wouldn't know what the heck was wrong. This wasn't something she could do, and neither Solaris nor Linux would help her now. And we're now cut over primarily to Solaris. She hasn't booted Linux in quite a few months.
So I called Citicards Customer Support to cancel the card permanently. They were friendly. I talked with a "specialist" who made me some offers to extend my cash-back-reward to 5% for a year if I stayed with them. I said simply that I couldn't take the hassle of not being able to pay bills online because their web developers weren't testing and supporting other Operating Systems and browsers. Afterall, I had contacted them before on multiple occasions and told them exactly what the technical problem was. And seriously, I've designed a lot of web applications and done lots of cross-platform coding in my days and it doesn't take more work. It just takes awareness and not to fall into the trap of automated webtools that generate platform specific webcode.
Anyway, the agent finally relented in the marketing pitch and promised to send me a check for my remaining cash back reward for $392. Not bad. I wasn't aware I had that much remaining. That's a lot of online orders over the last year or so. I told him if his developers ever got their priorities straight and fixed the site, I'd come back. That was a promise. And their main site, Citibank.com, AmericanExpress.com, and Citimortgage.COM are all fine. Even their affiliate site, HomeDepot's AccountOnline.COM are fine. Those sites do use some flash here and there, but it's not overbearing or buggy on any platform I've used, including older Mozilla 1.7.x. So it can be done.
For now, if someone asks: What's in my wallet? Short answer: Capital One. I just went blazing through 45 seconds and paid my balance in full for last months shopping. Wow. Way too much fishing tackle and Fry's Electronics stuff. The only web feature I might want want from them is a masking feature that let's me obfuscate a merchant name with some other phrase - e.g. "Fry's Electronics" -> becomes "Hardware Electronic Education Materials," or "Cabela's Outdoor Outfitters" -> becomes "Recreational Outdoors Non-profit Endowment Foundation." October 16, 2007 10:31 AM PDT Permalink
pre-OpenSolaris-Summit Santa Cruz Wharf Fishing
Got up early this Saturday morning to head south to attend the OpenSolaris Summit. It's being hosted at the UC Santa Cruz campus during this weekend which is a change over traditional schedules and venues that would eat into normal office time during the work week. Plus, it's a chance for Sun and a number of prominent OpenSolaris community members to talk about a the future of OpenSolaris.
The UCSC campus isn't very far from the Santa Cruz Wharf. One of my proposed sessions was to do some fishing. And this would be open to all participants since there is no license needed on public saltwater piers in California. My target was to get there around 6:30am and then move out along the pier towards the end to wet a line or two until about 8:30am when we'd need to head over to the campus to start the conference.
And from the picture above, it wasn't all skunk. We did catch a large variety of fish - Jack smelt, kingfish, staghorn sculpin, and shiner perch. I'm seriously thinking, as I sit in the conference about more fishing later this evening.
Topics Discussed Today
The Summit will cover today a State of the Nation for OpenSolaris and specifically, the Project called 'Indiana.' This is a proposal to produce a branded Solaris version that is based on Nevada but completely open source and has improved packaging, install, and support for more types of x86/x64 systems.
So far, there hasn't been any all out fighting one might expect in Open Source debate. On the contrary, we've covered a lot of packaging and installation concepts. Some are borrowed from ideas and concepts used in Linux already or other open source. The primary goals are to make packaging more intuitive, higher performance, and easier to use.
I can't say I disagree with any of the ideas. I'm sure they have value. But I also can't help but think that there are major issues with the missing application that clearly hinder adoption more (or lack thereof of those apps hinders adoption). But install/update and packaging are, in general, a lower priority for me. I don't believe that people are constantly updating their OS, especially in Solaris. My impression is that people update OS as security requires and as their IT shops require them to do so. Otherwise, they run oblivious to updates.
And from working with software vendors, many decide on an OS version and stick with it and support it. For us to focus too much on install/update isn't the most optimal use of resources, IMO. But I might be swayed otherwise if a valid argument is made.
I guess I'll learn more as the afternoon goes on. October 13, 2007 03:47 PM PDT Permalink
Lower cost wifi solutions for Solaris x86
Airlink 101 - AWLC 4130 and AWLC3026
I picked up a few cheapy Airlink 101 AWLC 4130 cards recently at Fry's on sale. Cardbus cards for laptops with a PCMCIA slot. They were only $14 each, limit 2 per person. Unfortunately a 1 day sale only.
But these were plug and play with Solaris Nevada. The AWLC4130 is advertised as a "Super G" with Atheros chipset. And indeed, when we plug it in, the PCI DevID confirms it's a AR 5212/5213 series chipset, which has been supported by the Solaris 'ath' driver for quite a while.
I also decided to look in my spare parts bin and pull out some older AWLC3026 pc cards. These are regular 802.11G. Back about a year ago, I picked them up for $9 ea at Fry's as well. But there was no driver for the Marvell/Libertas chipset. But on a whim, I decided to check the OpenSolaris.ORG website and found the 'malo' driver.
It's currently provided as a source distribution only, but it compiled just great, and after just a couple of issues with rebooting correctly a couple of times, I was able to get the driver to load and function quite well and fairly stably.
Most laptops do come with WiFi today, but the chipset may not have any drivers yet, or use an NDIS wrapper type driver that isn't stable. I'm using the AWLC4130 now on my el cheapo Toshiba M115 laptop with still unsupported Atheros 5006 mini-pcie WiFi. Not a bad deal for just $14, or even better, $9 for the regular G version AWLC3026.
I know Airlink 101 makes quite a few regular PCI adapters that turn workstations into wifi workstations. I'm waiting for a sale now to get a few to find out their chipset as well. I've been searching for some low cost cards to refurbish cheap PCs to give away to needy families with kids attending my elementary school who don't have broadband today but would want to leverage free city wide wireless that is now available in our neighbourhood.
October 13, 2007 10:26 AM PDT Permalink
A great life remembered - Professor Virgil E. Schrock - Dept. of Nuclear Engineering - UC Berkeley
A Great Man - A Great Mentor
As a kid, you grow up thinking to yourself what you want to be when you get older. I never really had much preferences until high school. I was a pretty happy-go-lucky guy who, sometime around high school, wanted to really get into Applied Physics, like maybe Nuclear Engineering. Well, I was fortunate enough to get accepted into the Nuclear Engineering Undergraduate Program at the University of California at Berkeley, where I got a pretty interdisciplinary regimen of all the standard courses in Mechanical, Civil, Electrical, CompSci, and of course, Physics.
Around my junior year, I found a part time job up at Lawrence Berkeley National Lab. A great workout since I often biked up the hill to work and biked back over Grizzly Peak in the evenings to Orinda to commute back home. It was in the course of working up there, writing Data acquistion software for the VAX which was hooked up to the Bevalac Particle accelerator that I bumped into my undergraduate advisor who was working on Polymorphous Silicon and enhancing the photo-electric effects (i.e. researching how to make a cheaper, better solar panel).
He wouldn't become my graduate adviser, but he did introduce me to an undergraduate Nuclear Engineering design contest hosted by the American Nuclear Society. The challenge that year was to analyze the feasibility of consolidated spent fuel rods in fission power plants. Simply, many older nuclear power plants today, have been storing their spent fuel rods in large, deep pools on-site. Utility companies have been charging into their base rate a decommissioning cost which includes spent fuel processing and burial costs. The US Gov't has been remiss in it's obligations to find a spent fuel storage facility in the last 40 years, although we've come close to selecting Yucca Mountain Nevada as a site. (But due to certain political obstacles and an uneducated public - there's been much opposition to the storage facility).
This political dilemma actually got me interested in looking at spent fuel consolidation. The problem looked simple at first. Utility companies wanted to know if it was okay to remove the spacing guides on the fuel pins, then bundle them closer together and therefore get more storage room out of their existing storage pools. This could extend the storage pool capacity for another decade or even two decades at most plants.
Prof. Virgil Schrock volunteered to sponsor any UC Berkeley bid into this design contest. His speciality was Nuclear Thermal Hydraulics - i.e. a fancy term for Heat Transfer and Fluid Mechanics in Reactor systems. I got together with a couple of classmates and we decided to look at this problem. We were against some stiff competition from some other big name schools from around the country, and from the get-go, Prof. Schrock was a no-nonsense guy and a tough taskmaster. He never gave us answers. Only questions. And to answer those questions required a lot of research. But I was good at this. I was resourceful and quick. Still, it took the better of our last year at Cal and early part of my summer to finish up the thesis and submit it to the judges. It was during that senior year and early in my involvement just to scope out the problem that I really found love of research and problem solving. So I decided I wanted to go to grad school. Prof. Schrock must have seen some potential in me and he helped me file for a Dept. of Energy Nuclear Engineering and Health Physics Fellowship - A free ride to grad school with full stipend. Plus -More- money than an NSF Fellowship. But only 4 - 7 of these would be granted in the US a year.
I did win one of these, and then the offers from MIT, U. of Wisconsin, Georgia Tech, etc. came rolling in. I took a few trips east, unfortunately in January, during a bitterly code winter, and I recall my face freezing upon exposure when I stepped out of my rental car in Madison. I decided then that East Coast cold or hot/muggy weather wasn't for me. I was going to stay at Cal and do my graduate work with Schrock. And not having gone much deeper into Nuclear Thermal Hydrualics, I thought at least the next few years couldn't be all that bad.
That was an interesting last semester senior year. I had quite a few more discussions one-on-one with Prof. Schrock. He clearly became my mentor. Tough, disciplined, thorough to every technical argument. I was the young, bright kid who could grasp new technical concepts fast, but I lacked focus and dedication. I was an officer in one too many student societies, throwing BBQs weekly, sometimes, 3 times per week for fellow Engineering students. I was thinking how I could make a comfortable life for myself as a grad student working for Schrock and partying with my fellow students. Schrock had bigger plans for me - he wanted to challenge me mentally and bring out the potential of whom I could be so that whatever the task, I could meet it head on and do a good job.
Certainly, my own father, a Ph.D. in Biochemistry from UC Davis was no academic or technical slouch. But as a Dad, he really has had no choice. He had to love me for being his son. And I never really disappointed him. I met every standard a Dad could really set. And while he did teach me how to labour hard doing physical chores like tilling soil/farming, fixing my own bikes and cars, and simple home improvement - all in the heat of the summer, he never forced me to reach deep and work at my true mental potential. Well, all that would change now that I had officially hooked up with Prof. Schrock.
I remember around June of my last semester as an undergrad when we'd already walked at commencement and effectively graduated, that I was finishing up the submission for the design contest. My two classmates had bailed on me and either gotten jobs for the summer or were taking time off back at home. I was on my own and Schrock's technical perfection really made me question why the heck I was doing this. He was critical on every point of analysis. He forced me to apply my software skills to develop a computer simulation of time-dependent two-phase flow for freshly spent fuel rods which would radiate more heat early after removal from a power-reactor. It was painful to get up at 6am, commute in on BART, then not get home until late at night, sometimes on the last train, then work at home to verify the code against hand analysis. I never imagined I would survive living on 6 hours of sleep a night for the nearly a month of constant analytical work I had to do. And all the while, I still kept my part time jobs as a dishwasher and a bike-shop mechanic.
I came up with quite a few terms for Schrock at the time. "Hard nose" and "Slave driver" were the more polite ones. I even had doubts sometimes if I wanted a graduate adviser this tough. But at the end of 4 weeks of "finalizing", the submission was truly something I was proud of. Schrock had indeed been tough, but always supportive. His criticisms were back breaking, but always constructive. When I was ready to give up, he would give me the idea to pursue that would bring the work to the next level of analysis. Now, with the final package bundled and ready to ship off to the judges, I was more proud than any of the hand-made fishing rods I used to craft starting in high school. We submitted the simulation software, the written analysis and results that showed for at least a pool similar to the one at PG & E's Diablo Canyon facility, spent fuel rod consolidation was feasible. I actually believed it was on par with anything in the industry. It was on par with any graduate work as well. And I remembered that Schrock was also proud of our work.
Suffice it to say, that we kicked butt that year and took 1st place in the undergraduate category. I made the presentation in Washington, D.C. and received the award for our team. Professors from other schools were there and very impressed with our work. The comments I received were that it was impressive work, good enough to win the graduate student category perhaps. And what really impressed me was when they asked me who my research sponsor was. I told them: Virgil Schrock, not even thinking it was someone they would know. But they all said, "Ahh! You're one of Virgil's kids..." as if award-winning work was a standard output for anyone working with Schrock. I realized then that working with Prof. Schrock would mean working at a wholly new world-class level. It would be tough, but it was something that I wanted to know if I could complete.
I graduated in 1993 from UC Berkeley with a Ph.D. in Nuclear Engineering. I was so privileged to have had the opportunity to work with a man who, over the years, shaped me mentally and disciplined me as a scientist. For a man who contributed so greatly to the understanding of science starting more than 5 decades ago, retiring and becoming emeritus before the Internet really became widespread, I am amazed at the number of hits Google provides when searching his name. Working with Virgil Schrock and graduating with distinction from Berkeley opened many doors for me. I did a Post-Doc in Turbulent Convection and heat transfer at Tokyo Tech, then found easy employment as a consultant deploying Trading Floors and Derivative Risk Management Systems for Tokyo Stock Exchange members. It gave me the skills to then easily come back to work at Sun Microsystems and do what seems like a completely different job than the what my degree prepared me to do. The truth, however, is that I still apply the same academic skills, discipline and tenacity that Virgil Schrock instilled in me starting nearly 2 decades ago.
Because of Prof. Schrock, I learned as much as I could and more; I experienced scientific understanding as deeply as I could and more; and I was able to contribute to man's body of technical knowledge as much as I could and more. No person could have had a better guide in life than I did.
January 22, 1926 - October 1, 2007

Above: Picture taken of myself (left), Virgil Schrock (mid), and my Dad (right) at Graduate commencement at Berkeley 1993. I still remember my Dad dressing up in his robes as well to accompany me. Prof. Schrock has just changed out of his robes. It was warm that day. My Mom took the picture. Prof. Schrock is survived by his Wife, Mrs. Ginny Schrock, and two children and quie a few grand children. My own son and daughter (7 and 5 years old) still sleep with the stuffed beanie baby Felix Cat and the Baby Bunny that I think Mrs. Schrock picked out and sent us when they were born. October 12, 2007 12:47 PM PDT Permalink
Intel D201GLY mini-ITX - a Low Cost Solaris Solution
Another Low-Cost, Small-Footprint - Home/Office Computer
Last week, in the midsts of rambling on about the issues in SXDE 9/07, I briefly mentioned that I had an Intel D201GLY mini-ITX board. The board has been around probably for a while. I think their may have been some OEM marketed version available to volume system builders earlier. But probably sometime in the first half of 2007, the Intel D201GLY became available online for folks like me who buy retail.

Fig. 1 Intel D201GLY mini-ITX motherboard.
For such a small form factor board, the retail price seems to vary between $60 - $80, which is a bargain, if you consider that this is for motherboard with audio, video and LAN, plus on-board CPU. Even the older VIA Epia 800 first generation mini-ITX system boards still cost around $95 - $120 online. But this Intel board has a power efficient Celeron M 215 at 1.3GHz, a single DDR2 533 slot, single IDE pin header, 2 sets of USB headers, 1 set of internal front audio pin headers, but no SATA jacks. However, while the board looks clean and well built by Intel, the chipset is the SiS662/964L combination with Mirage 1 graphics and SiS900 10/100 Fast ethernet.
I've spent the last week twiddling at home during spare time trying different cases to put this board into as well as measuring power and getting Solaris to work well on this. Below, I go through some of the configurations and settings on how I got this to work.
Picking Out A Case
Mini-ITX motherboards will fit Flex-ATX, Micro-ATX, XPC and ATX cases in general. But the real attraction is to be able to stick the board into a small, very appealing case that makes people go, "Wow! a tiny computer!" when they see your computer. The only concern with this Intel board is that the heat sink and fan over the CPU (which is soldered on BGA packaging) is the height. It's about 1.8 - 1.9 inches tall if I lay the mobo on a flat surface. That's taller than 1U, so a rackmount case like a 1U 1/2 width, short depth box could work if I could find a 40mm replacement copper heat sink and thin 40x40x10mm fan. However, with no changes to the motherboard/heat sink/fan, the board does fit nicely into both the Casetronic 2677 and 2699R mini-ITX cases. There's just about 3 - 4mm of clearance under the case covers, and if heat is a worry, I can always drill holes in the top cover in the area just over the cpu/fan.
I like the 2699R case better because it has front panel USB and audio jacks, which are supported by the pin headers on the motherboard. The 2677 also is problematic; as an older model, its ATX extension cable isn't long enough to reach across to the rear of the board where the power pins are. An inexpensive ATX extension cable is required. The cases sells for around $65-$75 online and include a big external brick-style AC adapter (like for a laptop) and a 12VDC converter daughter-board that then provides a 20 pin ATX connector to the motherboard. The daughter-board power supply has a big advantage in that it can be about 94 - 96% efficient at converting 12VDC into usable system power. Typical power supplies inside PCs are less than 70% efficient at full power, and when the board only draws 25 watts, the P/S may actually be sucking 50Watts or double the power.

Fig. 2. Casetronic 2699R mini ITX chassis.
If the price is a bit high, then it's still possible to find some places that sell the Englight 7396AM1 for just $20 plus shipping. It's a very high quality case at a budget price and it's bigger, but still smaller than most mini Tower cases.
Drives and Cables
Both my picks for cases, the Casetronic 2699R and the Enlight 7396AM1 have support for just a slim optical drive, one floppy or USB multi-function card reader, and a 3.5 inch hard drive. The NEC/Sony Opti-arc 8X DVD burner is a low-cost slim drive which runs around $50 - $60 online. There are NEC/Sony and Samsung versions of the CDRW/DVD combo slim drive which work similarly for around $40 - $45. Whichever one you chose, you'll need to get a short adapter that connects the IDE slim optical drive modular jack to a standard 40 pin IDE plus power. The unfortunate thing that Intel didn't do was to put SATA drive support. It would have reduced cable and connector crowding, especially with the Casetronic case. In addition, the optical drive bay butts closely to the cpu heatsink/fan. There isn't much room for the slim drive, the adapter and the 40 pin cable so the adapter must be pretty low-profile. (Note: I bought a half dozen on eBay from some vendor in Hong Kong - service was good, but the adapters were poorly made and the pin headers stick out the reverse side of the PCB and it's possible that during the screw tightening, the pins can touch and short the back of the drive chassis and destroy the drive. I recommend some metal clippers or diagonal cutters to find and cut the protruding points down. I also recommend using a piece of masking on the back edge of the slim drive to protect it from shorting out.
The 3.5 inch hard disk is just a standard IDE drive. I can shave about 3 - 5 more watts by going to a 2.5 inch laptop drive. This requires a 44-pin to 40-pin IDE adapter for the conversion. The Casetronic 2699R has pre-drilled holes to mount a small 2.5 inch hard drive, while the Enlight case does not. But the latter is much larger and includes a disk tray with rubber grommets which provide shock support for the drive.
Note: The Sony/NEC Opti-arc DVD burner appears to be set, in firmware to IDE high - meaning it wants to be the primary device on any cable. Because the board only has a single 40 pin IDE header, this means the NEC/Sony must be the primary, and the hard disk must be a slave drive on the same cable. The simplest solution is to use the cable-select jumper setting on the hard drive and make sure it's the 2nd IDE plug stuck into the drive on the ribbon cable, and the first IDE plug is in the slim DVD drive. Otherwise, it may be hard for the system to discover which drive is primary and which is secondary.
Note 2: The Enlight case is for a MicroATX motherboard. The mini-ITX is quite a bit smaller still and the USB front panel connector cables, as well as the standard IDE ribbon cables are a bit too short to reach over from the front of the case or the hard drive to the motherboard socket. I solved this problem by ordering internal USB pin header extension cable. This adds about 10 - 12 inches of reach to connect the front panel USB.
Solaris SXDE 9/07 installation
Installation wasn't too bad, except for the Xorg noise and streaks on the screen. As I found out, the installer is using the sis Xorg module. It works for the prevous SiS 661 Northbridge, but not here on the SiS662. Luckily, others have run into this problem on Linux and the recommendation there was to switch from using the sis module to the Vesa module in Xorg. The way to do this is to simply run, in Nevada, the xorgcfg graphical configuration utility, edit the properties for the graphics card and choose "vesa' for the module, then logout and log back in.
# /usr/X11/bin/xorgcfg
The LAN uses Murayama's free SiS fast ethernet (sfe) driver. Installation was quick and painless because I keep a CDROM disk with most of the free drivers for Solaris on it. But we could have put this on a USB jump drive as well.
Note: The default with SXDE 9/07 is to use Network AutoMagic. To set a static address, you can use the GUI tool in the Gnome SysAdmin menu. But that doesn't work if nwam is managing the interface. So I run:
# svcadm disable network/physical:nwamThen I can use the graphical network configuration tool.
# svcadm enable network/physical:default
And with audio, the onboard SiS AC'97 chip (pci1039,7012) isn't supported by the default Solaris drivers. Here, I use Juergen Keil's free Solaris audio drivers. Interestingly, I tried to pkgadd the wad of packages, but the actual drivers refused to be copied over for some reason. Instead, I ended up rebuilding the packages from source and using a manual make reallyinstall inside each pkg directory and installing from the command line. I was able to confirm the install put the driver into /platform/i86pc/kernel/drv/audioi810. The post-install was a bit more problematic. It tries to run add_drv with a list of hardware pci-Device-IDs. Some collide with other existing and supported AC'97 devices. I manually edited the add_drv command inside the Makefile and was then able to add_drv for just the audioi810 module for just the SiS 7012 audio controller.
Power Consumption and Usability and Final Thoughts
With a few more of my standard software pkgs installed, then a cheap laser printer hooked up, and security, IPfilters, backup scripts and cron jobs to manage the system, the small box is making a nice home/office workstation. It's great for word processing, spread sheets, light dig cam editing, web browsing and email. My wife liked it immediately because it had the latest browser fixes to JavaScript that eliminate a funny popup 2nd Mortgage offer bubbles she was seeing when accessing several Citibank websites to pay our bills.
I like the fact that the system with the small Casetronic case, only draws from 26 - 33 Watts. It's got fairly good performance for rendering pictures and processing scaling operations and ripping MP3 audio. It's quite a bit faster than the older VIA c3 systems like my Epia 800 box. Also, Intel has implemented some nice features such as temperature sensitive voltage control on the case fan 3-pin power plug. So the case fan isn't always noisy. Only when the case gets hot, or briefly, it gets loud just for a second during a reboot.
Relative to the older Epia 800, which uses between 13 - 22 Watts, the Intel d201gly isn't quite as efficient. But it is much faster and gives the newer VIA c7/cn700 systems some competition. I've tested FlexATX form-factor PCChips v21G, and in an efficient enclosure with DC power supply, that c7 mobo averages 24 - 35 Watts and it still feels like it's a tad faster, and it should be since its c7 cpu is usually clocked faster at 1.5 GHz. But this Intel board is still fairly green and a bit quieter for those folks who want Intel build quality. For my wife and I, we feel like we're splurging, using double the power.
Note: The same Intel d201gly board stuck inside the Enlight case with conventional TFX12V power supply draws 49 - 62 Watts! The difference is completely due to the inefficiency in the power supply. I've priced a small solid-state 80Watt tiny ATX DC power supply with AC brick-style adapter. A conversion kit may cost between $40 - $80 and this would put a 94% or better efficiency DC power supply into the same box. But could save about $40/yr in electricity if left on 24 hrs/day so it'll pay for itself in a year or two and reduce power consumption further.
Total cost was: $75 mobo + $80 case p/s + $40 hdd + $55 dvdrw + $39 1GBDDR2 + $15 cables = $304.
September 28, 2007 08:37 PM PDT Permalink
SXDE 9/07 Installfest and the Work Around
Release of SXDE 9/07 Edition is Immiment
Last week, I wrote about all the gory details about my recent salmon fishing trip up north in BC. I think I mentioned that I had also managed to bring along the latest Solaris Developer Express Release (SXDE 9/07) to upgrade a few machines while I was up there. In this edition of my blog, I thought it might be instructive to note some things I had to do with some platforms to get it working - not only for public consumption, but so that I'd remember what to check for in the next few revs of Nevada to see if those things changed.
Background on SXDE 9/07
For those of you who download and get Nevada regularly, this section is old stuff. But I find it instructive to give a broad picture, As I've seen it from the inside - on where SXDE came from. As far as I can recall, the existing SXDE release evolved from the original Solaris Express program. It's still basically the same thing, just re-branded Nevada (aka Solaris 11, aka Solaris Next, aka Open Solaris -sorta). The older Solaris Express was a roughly monthly or bi-monthly snapshot of stable bits for Solaris Nevada which is the next version of Solaris that is in development. Because of a typical 2-week build cycle for Nevada, the older Solaris Express was basically the most stable of each group of 3 - 4 builds that our volume developer program folks would push out for public download.
The SXDE rebranding did two things. First, it stretched out the interval to every 3 - 4 months for a developer release, which was more reasonable than every 6 - 8 weeks, since that's hardly enough time to evaluate the release itself and test compile a bunch of apps. The second thing SXDE did was to bundle developer tools installation into a new installation script that saves the end user from yet registering and downloading another wad of stuff with the compilers, NetBeans and all the other Sun Studio Tools.
Recently, some folks may have heard about Project Indiana - aka the new "Open Solaris." I'm stealing the "OpenSolaris" moniker in this blog just for the time being and I interchange it with Nevada - Solaris 11. But I should qualify for readers that the official "Open Solaris" will change and evolve as a new distribution under Project Indiana. The program is being run by in the Community and headed up by new Sun employee, and Former Debian Linux Guy, Ian Murdock. It's great to have Ian as the new project Team for "Open Solaris." His leadership in the Linux community in the early days gives him a perspective on the needs and wants of Linux users that many Enterprise Solaris Management folks don't have. I'm sure there are other blogs and message boards that Ian can personally respond about Project Indiana. But expect him to change and shape what is OpenSolaris now and take it to a more desirable place for endusers and developers alike. Also expect to have avenues of participation that can change the way Solaris gets distributed. This may be an opportunity to take a look-see at OpenSolaris.ORG.
Getting back to this next release of SXDE 9/07, we will find that it adds a few more features, fixes more bugs, and comes with a nice looking new GUI installer. It is based on Solaris Nevada build 70, but has undergone two more interations (build 70a and then finally build 70b) before getting the full product team endorsement to release.
InstallFest Imperative
Internally, before we release any version of Solaris, upper management likes to encourage all software engineers to download the pre-release bits and test it on presumably our own hardware. As part of our jobs, we already do quite a bit of sanity testing before the bits go out for every build. But being the engineers we are, most of us don't actually do the normal install that the regular users out there would use. Nope. We do the Big-Friggin' Update (aka BFU, aka Bonwick-Faulkner Update, aka Blindingly Fast Update). BFU is a process that basically flashes and clobbers the bits onto your running system (with some other cool technical details omitted) in just a few minutes.
Usually, BFUs are fast and friendly and before we know it, we've upgraded a system, making it ready for more Solaris development. And because we use BFU's, we probably don't do as much work on testing the actual installer our customers use and we avoid a lot of the idiosyncracies that exist only in the installer. So why not make this a standard? Well, BFUs aren't pretty when they don't complete safely or cleanly. Any good Solaris sysadmin worth his/her salt should be able to figure out how to recover. But for most users, this is probably an unexceptable risk/burden and so we do recommend using the actual installer, even though we don't use it ourselves. Just suffice it to say to, "Do as we say, not as we [Solaris engineering] do."
Upper Management aren't blind to this irony. Appropriately, they've tried to put their feet down and insisted that all internal engineers actually do an installation from optical media and file any bugs on the upcoming SXDE versions and fill out a feedback form. But this is high-tech corporate America. Management putting its foot down doesn't mean much in terms of threats; the stick simply doesn't work. Instead, they dangled a carrot of possible raffle for prizes to internal employees who complete an install and then fill out a survey. The carrot has been neither a sure-catch carrot (i.e. not everyone wins in a raffle), nor was it a fat carrot (i.e. the prizes weren't very expensive either). While I would have appreciated a new Sony TX-series ultra-portable notebook as a grand prize, the product team was giving away old junk, like an old Java tote-bag, or a whimpy 1XL tshirt from last year's trade show or maybe a baseball cap was all. Unbelievably, despite the dearth of good prizes, I found myself caught up in the Jackpot-Fever of the raffle even though I only fit 3XLT Tshirts!
For the first SXDE, I was announced the internal winner of the Most-Installfest-Submissions award. No gifts even got distributed (at least I never received any), except maybe I got a laser printable certificate in my emailbox, which I had to print out myself. Yeah, it's sort of hokey - but times are tough, and I'd rather keep the stock up from the days when it was just $3/share. But it shouldn't have been much of a surprise to folks that I would have the most. I have the most cheap x86 boxes of any engineer I know, except maybe for Brian Dowdy (i.e. think of us as "Hardware-Hos"). so, for this second* SXDE Installfest, I again came out on top with Most-submissions. (* We did have plans to do a second SXDE around the Nevada b64 timeframe, but decided to wait until b70.)
This time around, I did get some prizes. Like two XL Tshirts. I don't fit, but maybe in 10 years, my son will grow big enough, unless his younger sister out-eats and outgrows him. I also received a rich, corinthian leather notepad/portfolio thingy (say that with Ricardo Montalban's accent) which holds some paper and pens. I'm not sure what I would do with this since most everything I write these days goes through a keyboard. I didn't even use it to take notes on the installation issues I discovered. But if they gave me that tiny/mini Sony TX-series 2.7 lbs subnotebook w/ 2GB memory and 32GB of boot flash... maybe I'd double my efforts!
Installation Idiosyncratic
With any new version of Solaris, there's a debate as to whether to upgrade or do a fresh install. My testing philosophy is simply. I have spare disks around. For testing, I yank out the mission critical data, set that aside, stick a new disk inside probably with Solaris already on there, and then a) upgrade when I can, then b) after successful or unsuccessful upgrade, I reinstall from scratch.
Upgrade or Fresh Install?
For those folks that have done upgrades before, we know there are two major problems with upgrades. A) Not all things get upgraded. Some packages aren't removed and some files aren't replaced. Some new stuff doesn't get installed. There are ways to find out internally what the upgrade will clobber and add, but in essence, it gets complicated to find out what should have been upgraded but didn't. The only way to be safe is to do a fresh install. The other big problem is that B) the Upgrade is very slow. The installation console claims it may take 2 hrs or longer, but in reality, unless you have a honkingly-fast-storage and processor, the upgrade install takes as much as 6 hours or more to complete. Especially if you're trying to upgrade an older system. Typically, I can do a fresh install in just 40 minutes or less.
The solution I've come up with is to simply put all my data on partition slices which I'll preserve. Then do a fresh install on the root (/) slices. This helps save quite a bit of configuration and reinstallation of apps. In other words, I put most stuff on the /export and /opt slices and only clobber the root (/). The only problem though is that SXDE needs to clobber the devtools in /opt, and it clobbers the package tracking for all the extra value freeware I've added, so we can't really use the packaging mechanism to remove a package any longer. To re-install and configure all that stuff takes time again. I live with this solution since I don't usually remove freeware packages, and many I compile from scratch and don't install by pkgadd(1M). But this might be a dilemma for some. In which case, the upgrade path might be better. Regardless, I recommend keeping home-directory data on a separate slice and to preserve it.
This new SXDE presents some issues with upgrade or fresh install that folks should be aware of. A) the new GUI makes it easy to install from scratch, but before you realize you've clicked all the buttons, you may have skipped the steps needed to preserve partitions on your disk. If you'd like to take more time, and not use the new Dwarf Caiman installer, you may want to simply use the older installer (i.e. option 2: Solaris Express). B) The new SXDE installation has issues with older disk slicing and number and may not be able to upgrade you. This was supposedly fixed in build 70b, but you may still encounter this issue that the disk partitioning can't be upgraded and the GUI may only allow you to do a fresh install with fresh partitioning that will wipe your disk. The unsavoury solution is to rsync your data to another disk somewhere, do a fresh install, then rsync back. I have about 25 GB of data for myself and my wife at home. It takes about 1 episode of Stargate SG-1 to move that data off the install disk. This is still faster than doing an upgrade, and I've got scripts that restore my data and some server and network configuration too. Another option is to stick 2 disks in the box and mount it later. But I don't like the extra cost of 7Watts to power another drive. A single drive, and better yet, a single notebook drive, is what I prefer on my home system for improved acoustics and thermal power dissipation. Not to mention, I pay less for electricity with my systems always on.
Graphics Not Working for VIA Unichrome/CastleRock
SXDE and Solaris in general use Xorg. We're following the distro fairly closely these days and that's added support for more and more graphics adapters. But it's also dropped support. One area of support is for the older VIA CastleRock/Unichrome (CLE266 chipset and prior generations) onboard graphics. When I tell people internally that I actually use the onboard graphics, some scoff at me. They suggest I actually blow another 20+ Watts and get a cheap ATI Radeon S7000 or nVidia card (some which suck another 50+Watts by themselves). And maybe that would work. But there is a bug filed against this problem internally for VIA embedded graphics. I used to have a workaround for the VIA unichrome issue, which was to take the buggy S10u1 SUNWgraphics-ddx package and unbundle it, and just extract out the via_drv.so file and copy it into /usr/X11/lib/modules/drives/ and clobber the existing module. This worked through Nevada build60-something. But since build 63 or 65, that no longer has ABI compatibility. I now get core dumps. This is true even with S10 8/07. Luckily, there are cheap VIA c7/cn700 chipset boards these days that have Unichrome Pro graphics which are supported extremely well. I can't say that about the SiS Mirage graphics. I have an older SiS 741 chipset with Mirage graphics which worked okay with Xorg, around Nevada build 55 time frame (SXDE 1), but with the latest Xorg, the pixel quality at native resolution is really blurry, and on my Intel D201GLY mini-ITX board, the graphics are unusable beyond 800x600 pixels. However, with Fedora Core Linux and Windows, they've seemed to have solved both the VIA and SiS graphics issue in their version of X distro. My solution for now, is that these are relegated for headless/server use and not for home use. But for SXDE2, the GUI installer requires the graphics. Otherwise, you're back to booting option 2 - the old Solaris Express installer, which will fail or be unacceptable, at which time, I'd recommend just installing using the text console.
Network Automagic
Many of us have been trying the new NWAM (NetWork Auto-Magic) feature. It's controlled through the SMF. You svcadm disable network/physical:default and enable the network/physical:nwam. This works well, I hear, from a number of folks. They all pretty much have a single primary ethernet wired interface and it's on a laptop that uses DHCP. This is where NWAM works now. But it seems like since build 60-something of Nevada, the folks support the standard DHCP for ethernet interfaces have fixed some long standing bugs. For years now, many of us inside guys have been complaining and filing RFEs against the ifconfig(1M) command in Solaris. Simply, it was moronic to ignore the standard DHCP fields for DNS under most conditions. Instead, we focused on getting DHCP to work inside our Sun-centric NIS environment. DHCP would work most of the time and plumb /etc/resolv.conf file and alter the /etc/nsswitch.conf files under the right NIS network conditions. But for some reason, it would rarely work when doing DHCP over a standard connection. Well, since b60-something, this appears to have been fixed. I'm not sure if the NWAM guys had a hand in this, but thanks to whomever. There are some outstanding issues still when it's a WiFi interface. For some reason, it may be a GUI interaction with the free inetmenu application folks are using and download from OpenSolaris.ORG. Not sure. But it used to work and plumb the routes on WiFi connections, but it may not with SXDE. If it isn't working, I've usually helped many folks get up and running for a session by a) check the routing using netstat -rn and seeing if there is a defaultroute. Next, I check to see if the /etc/nsswitch.conf file has hosts: and ipnodes: using the DNS nameserver. There should be a "dns" following "files" in the nsswitch.conf file. If not, you should be able to append to those lines and get it working. Please file a bug at the SXDE community site.
VIA c3 Panic on Shmem pagesize and re-init()
Okay, for those of you who love VIA c3 and enjoy running servers at 13 Watts total power with Solaris, well, better stick to S10 update 4 (8/07) or Nevada b65 and prior. We put something in around the b68 or b69 timeframe that I think, does some kind of dynamic shared memory page size and inquires with the system to set this. If I recall the bug report, the VIA c3 doesn't support this, so it panics. This was supposedly fixed and putback into build 72 of Nevada, but it seems to only work for newer Nehemiah based systems. If I run the latest SXDE on Samuel or Ezra cores, the panic is now fixed, but the init() crashes on fatal signal 9 and restarts a gazillion times for my epia 800 system. I've added comments to the internal bug about this where they claim b72 had the fix and I tried it and it was still no go. But hopefully, it won't be long before we have that available. But for your SXDE users with older Epia systems with VIA c3/non Nehemiah, please refrain from upgrading.
Older Intel 815 graphics - Newer ICH9 945 Graphics
I've tested SXDE on both an older Compaq box with 1GHz P3 and embedded 815 graphics. I used to have to stick an nVidia Riva TNT graphics board in there. (I got a half dozen of these older 16 and 32 MB AGP 2X cards, some low-pro for some AMD Geode bookpc systems I have) for just $5 from Compuvest.com. But they do add to the power profile of the box. So I try to remove the card and see if it works. Amazingly, it appears to now work with Intel 815 graphics, and I can save another 6 -10 watts steady state. I haven't tested the 815 graphics support on the older Intel OEM D815EEA and D815EEA2 boards, which I have a small stash of from other boxes, although, I did try around b69 time frame at it was still broken.
I have some older Intel Bearlake test systems for the ICH9 chipsets that have onboard 945 graphics as well, and SXDE works flawlessly. I have some older Dell 2001FP LCD monitors that can't handle true 60Hz refresh at 1600x1200 24-bit. I've either had to lower the bit depth to 16-bit or lower the resolution to non-native. The latest SXDE is pretty good and syncs up to 50Hz refresh at 24-bit native. This collaboration with Intel is going great as we're seeing more and more support for native Intel chipsets on our platforms.
Network Settings/IPfilters/IPSEC Upgrade from S10 and early Nevada
If you run SXDE1 (build 55b) or Solaris 10 update 4 (August/07) and you upgrade to SXDE 9/07, there is a pretty high change, if you were running IPSEC security, like Punchin, or you were using IPFilters, that the upgrade will hose your settings. Two things have changed. The IKE (internet Key Encryption) service as set by SMF requires a few configuration changes. If you were using IPSEC Punchin, which we use internally at Sun for tele-commuting access into Sun's internel networks, like I'm doing now, then this requires a bunch of changes. Most of the installation handles it for you, but the PunchIn packages we use must be upgraded to v 2.x and the certs need some upgrading to the latest. I had to pkgrm the old SUNWpunchin and affiliate certificate pkgs and reinstall the new ones. Before uninstalling, it's useful to run a /usr/local/bin/client_backup to back up the local certs. Luckily, the new service supports the older legacy backup, so a client_restore against the older certificate backup, will re-install and sync the keys up correctly. I usually test the punchin again, and if everything is kosher, I run client_backup again and save the new format of the cert-wad-of-stuff.
One issue folks may have with upgrading from S10 u4 or early is that for some reason, the /etc/ipf/pfil.ap file gets blown away sometimes. And without the presence of this file, the new SXDE gives all sorts of SMF start-up errors. They're basically harmless, but if you're like me and run your machines both for local access and for tunneled access, I run IPFilters and TCP Wrappers on all systems, even my laptop. The SMF warnings are disconcerting and even more worrisome if your filters aren't active. It's like streaking around in public inviting any evil spirit to give you an STD. Anyway, the simply solution is to login to some other Solaris box and copy over the /etc/ipf/pfil.ap file and reconfigure for your interface and reboot. The nasty messages go away, and hopefully, your ipfilters will report they are up and enabled, and your log file (if you log attempts at incursion) should show you that packets are being denied access.
Oh, and one more cool utility in SXDE 9/07 is the latest Network setting GUI in the administration tools for the Gnome Desktop. The only problem is that it doesn't properly set the /etc/nsswitch.conf file either. So no DNS, even though the GUI has a DNS server tab. Solution is the hand-edit the /etc/nsswitch.conf file again and put in dns for hosts: and ipnodes: then it should work.
Post Install - Post Login Setup
If rev'ving from an old version of Nevada or S10 and the home directory hasn't changed, the first time a user logs in, SXDE will actually spend a good minute perusing all the gnome files and what not and try to re-instate the old Gnome config you had, with the latest SXDE version of Gnome. Clearly, if you were using S10 Mozilla, and now you've got stuff in Firefox, that won't carry over quite correctly. Thurderbird will try to import settings over. But overall, the process can take upwards of 2 minutes while the screen sits there black and there's a small progress bar thingy that swings back and forth and doesn't actually tell you what the progress is. But I have yet to have the process fail. It can just take a hell of a long time - long enough to maybe go take a coffee or bathroom break, head into the garage to get a sledge-hammer, comeback, think about taking a sledge hammer to the machine. But don't do it. It will complete and hopefully, you'll be a more patient person for it. The next login isn't too bad. Of course, if you're on a QUAD core box with two sockets, this probably will never be a problem, since either, it'll happen very quickly, or you'll be running headless as a server anyways. But if you're like me and run older, slower, low-power boxes, then it can be a test of patience.
Brother HL-2040 Printer Installation
In SXDE 1, I had to do all sorts of tricks and installed CUPS freeware to finally getting printing to work. This was really disappointing because I saw that killer sale for the Brother HL-2040 again for $59 after rebate and couldn't help myself. I had my buddy buy one also for a grand total of 3 laser printers. 22 ppm monochrome, with a 1500 page cartidge is, well, dirt cheap.
Not with SXDE 9/07. I have finally retired the last Linux print server/internal backup server box in my house. I have one last box to retire and Linux will no longer run anything internally. That;s because I took the USB cable out of my laser printer, plugged it in, and while logged into Gnome, I got a pop-up notifying me that the printer was up and available and enabled. I opened the browser, went to a home page, and sent out a print job. Seconds later, the printer just works. This is now working with the USB subsystems for VIA, Intel, SiS and nVidia MCP chipsets on all my systems. Only issue is that I heard there's a Parallel port bug that prevents the OS from seeing any ECP/EPP ports. That's being addressed, maybe in b74 timeframe. But that's one old printer if you're still using Parallel. Even my old Epson 880 has USB. But it just ran out of ink, so I haven't tested it on Solaris. I'm just stoked that my Brother Laser printer is finally working and it does so transparently. So props to the Solaris printing folks upstairs for all their hard work. I still need to test my battery of Epson printers, but that will come in due spare time.
I sure there are lots more things open to improvement. I'll continue to re-install the next versions and keep testing. I'm still not quite over trauma of the 700+MB requirement for Solaris graphical install. But with memory and motherboards so cheap, I'm having a good retail therapy shopping for more hardware. Only what do I do with the old stuff? Everytime I look at my pile of old stuff, it's hard to say goodbye to some good friends that have served me well, and could still handle lots of tasks. I'd like to donate the stuff maybe, or perhaps try to work on a custom distro with small footprint and installer that uses less than 250MBs and uses XFCE or something like that. Or maybe in the future, that might be a goal of the new OpenSolaris distribution.
September 21, 2007 12:33 PM PDT Permalink
Awesome BC Salmon Fishing
It's been a while since I had time and inclination to blog. But it's a relatively quiet Friday, so I thought I'd share some fishing stories from my fishing exploits last month up near Vancouver, British Columbia.
During the end of July and first half of August, in the midst of a couple of major bug escalations on some NIC drivers, I took 3 weeks off and headed up the B.C. to do my annual salmon fishing pilgrimage. Of course, my excuse was that I had to take the kids during this time period since they have school the rest of the year, so it's now or not until next year. In reality, the timing of the trip could have been a few weeks shifted either way. I chose those particular weeks due to a culmination of research gathered over the last 7 years on the annual salmon run. Specifically, the end of July and first half of August are when the fishing heats up and salmon can be caught from shore - which is just a 30 second walk from our home up there.
I've always debated internally whether this was good practice - to take work along on a vacation. Some folks like to unplug completely. Others prefer to always stay connected. I'm more of the latter kind of person, since the work really doesn't go away. It just piles up while we're gone and I'd rather return to work and hit the ground running rather than spending yet another week dequeuing the hoards of emails and requests I've gotten while I was out. I also love my job - tinkering with hardware and software - and to get paid for it is a bonus. And secretly, I use long vacations like this sort of to test the possibility of working remotely for extended periods, not that I'd ask my manager about right away.

The picture above should provide a small clue that the fishing was a blast. And the scenery was gorgeous. I was fortunate to catch many species of fish. Notable were the rock sole, which are really tasty steamed, and fresh sea cucumbers, which are a Chinese delicacy when used in stews. But the real big catch were the salmon. And they run during a select time of the year. I'm now referring to the end of July and first of August when the first large schools of pink and chinook salmon moved in close to shore.
Our vacation home is on the edge of a salt water estuary, and the salmon come back annually and use these waters as their last feeding source. From May through October, schools of salmon migrate through the estuary and then up river to spawn. There are 5 species. Chinook, pink, coho, sockey and chum. There are millions of fish and over the summer months, many will stop briefly and then move past our shoreline. Some remain and spawn in our creek, waiting for the next big rain that will provide them sufficient water levels to migrate upstream to the waters from where they hatched. Once salmon enter freshwater, they stop eating. Many still hit a lure, but it's primarily for instintive or defensive reasons and not hunger. The end of July and first half of August signals the Pink salmon run. Most salmon live 3 - 5 years and then return to spawn. However, Pink salmon live only 2 years before returning. Due to accidents and rockslides on key rivers back in 1952 or some even numbered year in the 50's, most of the even-numbered-year Pink salmon were wiped out. 50 years later, due to conservation efforts and some human efforts to restore pink salmon runs, we now have some pink returning in even number years. But this is 2007, an odd-numbered year. And that meant some massive pink salmon runs.
I remember July 30th. The pinks had been showing up in small numbers since the 25th. But a massive slug of them arrived on July 29th right on queue the same as two years ago. They were abundant to catch, and I was releasing almost all of the fish, since the limit was just 2 pinks, in a total of 4 salmon bag limit per day of all species, with 8 fish total in possession at any time cumulative. On that Thursday evening, July 30th, the pinks settled in at high tide inside the cove adjacent to our homes. I walked out to the shore and sat down on a big log at 5pm . I met up with 3 other neighbours who had all decided to wet a line. The cove, which was less than 6 ft deep at high tide, was thick with jumping salmon. Many fish were in just 1 ft of water chasing food. And from 5 pm - 8:30 pm, I counted personally, 39 salmon caught, landed and released. Regulations required us to use barbless hooks, but these can be treble hooks which have 3 points. After the sixth fish, it was taking too long to release the fish, so I switched to a single-point Siwash-style hook. I did lose a few more fish due to the hook, but the salmon were everywhere. Most times, there were at least two of us that had fish on simultaneously. We even had 4 fish on briefly at the same time. Two of my neighbours - Larry and Mauritzio joined me on that big log that had washed onto shore in previous weeks during a high tide. As the tide moved in, the big log started to float up. I sensibly got off and moved back a little onto some rocks and kept hooking more fish. But Mo and Larry lost track of the time and remained on the log, hooking ever more salmon. We were all whooping and shouting out, "Fish On!" nonstop while the log slowly floated up and out to the middle of the cove with Mo and Larry still on the log.
Larry then went silent for quite a few minutes as he struggled to haul something in. After 12 minutes perched on one end of the floating log, a big black and silver flash surfaced and started jumping. It was a massive Chinook. As Larry tried to work it closer to the log, the fish suddenly turned around and started swimming toward him. The fish dove under, went behind and around, then jumped up and over the massive trunk of this log. Larry's line was now wrapped around and there was just too much friction on the line and move the fish. A break off was imminent. Larry instinctively opened the bail and let the line loose, preventing a break-off and so the salmon continued to struggle. Meanwhile, Larry looked over at Maurice who had brought a small landing net. Larry shouted over Maurice for help with landing his fish. Mo seemed clumsier than usual as he knelt down and tried to swat the net at the fish. It was beyond being bad technique. It almost seemed like a comical attempt to intentionally knock the fish off the hook. And as I watched thinking about Maurice's bad form, the fish appeared to have swam up to the log and rubbed its mouth against the trunk. One of the points of Larry's treble must have embedded itself into the log. Since the points were barbless, this must have allowed the big fish to twist and back off the hook. And POP! The fish was free. But it quietly laid on the surface of the water for a moment before it made a small splash and disappeared! "Ahhhhhhhhhh!!!" came the cries from both Mo and Larry and they looked dumbfounded first at the water then at each other. But that only lasted about 30 seconds before they were both casting again and hooking their next salmon. Eventually, another neighbour came out in a canoe and ferried each man, one at a time in two trips, back to shore.
My elbows were seriously injured by the onslaught of fish. Mind you, these weren't smally dinky trout. Even the smallest pinks are full fledged salmon weighing 4 lbs and upto 9lb with enough fight for a fish that can swim 100 miles up river to spawn. Occasionally, we would hook up with some chinook salmon which get much bigger. One fish stripped me of more than 70 yds of lin in about 7 seconds, and then headed into deep waters where it dove then cut the line cleanly probably on the sharp rocky ledge about 40 yards from shore. With such powerful fish, a typical fight lasted for at 3 - 5 minutes, and we were averaging about 1 fish every 3 casts with our metal lures. By the time the 20th fish had been caught and released, I switched rod types and tried to switch from right-arm holding the rod, left hand cranking, to left hand holding the rod and right hand cranking. It helped a little during that evening, but next morning, the tendons near boths elbows were paying a painful price.
The fishing was great for the kids too. Because the fish were that plentiful, it wasn't hard to head out, walk to the shoreline, make a couple of casts, hook the fish, then hand the rod over to my son or daughter to then fight and land the fish. And if they had a lapse in technique where they left slack in the line and the barbless hook fell out, well, not much of a problem. I would hook up soon after and give them a second chance and a third or a fourth, until they got too tired.
Speaking of kids, while we were up there, we invited the family of one of our son's classmates to stay over for the weekend and fish. Mark and Tracy have two boys, Jake and Kyle who both attend the same elementary school here in Sunnyvale. We've known them now, for about 2.5 yrs. Mark is an avid fishermen. He claims Tracy lets him head out on some pretty good fishing trips, like long range boats out of San Diego, or offshore tuna trips around the world. I'm not a big boat fishing guy, but that sounds like he's got a good arrangement. Tracy teaches at the school, and doesn't really fish much. But she's a Vancouver native with relatives still there. So she visits them often. Naturally, when I mentioned we'd have a great salmon run this year and we could just catch them from shore, they made plans to be up there around the same time and meet up to fish (well, at least Mark made arrangements with me via email).
The Friday afternoon that Mark arrived with the family, we were just on the way out the door to pick up my wife's sister at Vancouver airport (YVR). The sis-in-law was stopping by to visit from Alaska. The drive to YVR, by my guess, was going to take more than 2 hours due to weekend traffic and Highway 99 construction for the upcoming winter Olympics. So as I was leaving, I gave Mark a quick tour of the garage, the rods/reels and the tackle. I also showed him key shoreline fishing spots. Then we left them alone with a house key if they needed to get in or out.
We did successfully pickup my sis-in-law at YVR, but we decided on dinner first before heading back. It wasn't until after 8pm when we got home, after which time, Mark, Tracy and the boys were not to be found. It wasn't long before they came back and we found out that Mark and his 2 boys had gone out fishing just after we left. In just 1/2 an hour, he hooked and Jake landed a 12 lb Chinook, and he hooked and Kyle landed a 9 lb pink. They remained in an ice chest in the garage awaiting instructions from me on how to fillet them. At that point, I think Mark turned to me and said this was the best shore line fishing he's ever experienced. Then he turned back to Tracy with a grin and said, half seriously, that they should buy a place up here. Tracy responded, with a negative; they'd simply just come up and stay at our house, to which we all laughed.
Because of the all the folks with licenses and valid salmon stamps, I ended being able to keep quite a few salmon in the freezer. But that presented a problem because there wasn't room in our small frige/freezer. The solution was to head to the new Home Depot in Squamish and pick up a new chest freezer (aka "Trophy Case" in Alaska said my sis-in-law). But after accumulating that much salmon, I ended up getting buying a smoker as well, after which we bought a vacuum packing system for the smoked filets. I found out that our next door neighbour's wife, Yelena, makes salmon roe caviar that is just blanched in modestly hot brine, and separates out the eggs from the sack material using a badminton racquet.
It was tough coming back after that kind of vacation, but I had to save my arms. If I had stayed up there, I'd probably been needing surgery and multiple cortisone shots into my elbows. Even with all the swelling on the last day, I took some some Aleve in the morning and then headed out to fish. It wasn't more than 6 or 7 casts before I hooked a very nice chinook which I landed and released. Then not long after, I hooked and released 3 more pink salmon. I had to head back in after that to really save my arms. But before leaving, I was able to test install the new Solaris Developer Express release on 4 machines and provide feedback to the Nevada team. That wasn't painful at all. September 14, 2007 03:47 PM PDT Permalink
Getting Solaris x86 Graphics, NIC and Audio working on the ECS GeForce 6100SM-M
There was a recent sale at Fry's on CPU+ mobo combo. This was for an Athlon 64 x2 3800+ 65W AA processor retail kit with an ECS GeForce6100SM-M motherboard - all for $139 before tax. The motherboard is based on the nVidia MCP61 (nForce 405) chipset with socket 939, PCI-express x16 and x1 slots, DDR2 800 memory slots, the standard I/O for disks and floppy and USB, onboard nVidia GeForce 6100 graphics, built-in nVidia 10/100 Fast Ethernet and High-Def Audio with a ALC 660 Codec.
Getting Solaris to run well on this system wasn't the easiest thing. While GeForce 6100 is a supported graphics chip, the version on this board wasn't recognized by the bundled 'nv' driver which we collaborate closely with nVidia to get done with the most recently drop dated January 2007, just weeks ago. The on-board NIC was a strange device with what looked like a 10/100/1000 capable PHY part but a chip (pci10de,3ef) only capable of 10/100 Fast Ethernet speeds. And the audio was another hybrid of sorts that used the MCP61 HD Audio controller coupled with a Realtek ALC660 codec. The controller seems to function to the Intel HD Audio spec and therefore similar to all the other nVidia Azalia (codename for HD Audio) controller. But the codec was a cheaper version of 5.1 audio, as opposed to the standard 7.1 Surround Audio for most HD Audio Codecs (such as the ALC880, 882, 885, etc.). And as expected, the back audio I/O ports included only a single column of 3 jacks for Line In, Mic, and Line Out.
Using the VESA graphics driver with 16 bits.
The GeForce 6100 graphics wasn't suffering the usual errors and exit issues that'd I'd expect from a unsupported card. Instead, it was starting and the system thought it was starting, but my 20 inch flat panel was complaining that the signal was at a mode unsupported by the monitor and the monitor would blank at that point. To get the Graphics working, I examined the /var/log/Xorg.0.log file and found that the actual startup of graphics fell through the 'nv' driver due to errors caused by missing modules for GLX and, instead, loaded the VESA module. Even though the BIOS was set to share 64MB of memory with Graphics, I couldn't get the VESA driver to display the native 1600x1200 resolution of my 20 inch flat panel. The command line options are in the Xorg.0.log file but I had assumed everything was kosher.
I managed to keep the system in command-line mode and manually fired up Xorg by typing: /usr/X11/bin/Xorg, and suddenly, X came up in a standard grey, houndstooth style screen. But if I executed /usr/X11/bin/X (which is a script that sets up the Xserver that then calls Xorg) then it fails. I put a "set -x" line into the /usr/X11/bin/X script and observed how it started and discovered quite a bit of initial checking to discover the default bit-depth of the screen. Without any environment settings, the system defaults to 24-bits per pixel and formats a command-line with a number of options that includes the bit depth. This is then passed to Xorg. so the difference between calling Xorg with no args and X was the set of options. Using the process of elimination, I then determined that without -depth 24, the X script also can start the Xorg server and does so using a default 16 bpp for 1600x1200 resolution. I could actually get the VESA driver to do 24 bpp with 1280x1024, but that was far more blurry and not the native resolution. So I decided to correct the /usr/X11/bin/X script and add a line prior to the initialization of the Xserver setting the DefaultDepth to 16bpp. This allowed the GUI to come up in native resolution with 32k colours. This is good enough for most uses, but application popup menus are colored incorrectly when overlapping another window under 16 bpp. It's tolerable and still works, but I'd prefer 24 bpp and 1600x1200 resolution support.
HD Audio modifications
We have some minimalist HD audio support currently shipping with Solaris 10 update 3 and Open Solaris. The driver actually supports a growing list of Codecs from Realtek, Analog Devices and Sigmatel. The architecture of HD audio is different from the old AC'97. Both specs are from Intel, but the newer HD Audio spec isn't designed as a superset of AC'97 features. It is a new device architecture that separates controller from codec. So the MCP61 controller appeared to be much like all the previous nVidia Azalia controllers. In fact, by adding the line: "audiohd "pci10de,3f0" to the /etc/driver_aliases file, and the running "update_drv audiohd" and "devfsadm" then rebooting, the audiohd module in Solaris does load and almost attaches. It errors out however because inside the driver module, there is a codec initialization routine that fails because the codec isn't recognized.
The funny thing about this ALC660 codec is that it has 5.1 channels, as opposed to 7.1 for most HD Audio codecs. It's a short cut that removes some of the audio output pins. I thought perhaps that this was probably very similar to ALC880 and ACL882 codecs and I could probably tickle the same pins using the same code. Only, there'd be one fewer pair of pins. While the risk of frying the part can exist if you configure it incorrectly in a driver, the chance of that really happening was slim and something I guessed was worth it, if I could even get the system to play just a noise.
Within the codec initialization in the Solaris audiohd.c code are a number of switch/case blocks that do the work. I started by modifying the audiohd_impl.h header file and added a new AUDIOHD_VID_ALC660 entry which corresponds to a pci10ec,0660 device ID. This actually is attached to the PCI-express bus. Next, I opened the audiohd.c file and added entries in a few dozen places wherever I saw ALC880/882. Rebuilding the 32- and 64-bit drivers, and adding them to the /kernel/drv and /kernel/drv/amd64 directories, I rebooted then enabled the audio to play.
Open source nVidia Ethernet driver
The later Nevada builds and Solaris 10 update 3 all support the nVidia onboard GigE device (nge), but the MCP61 networking chip has an unrecognized device ID (pci10de,3ef). I tried to add this also to the /etc/driver_aliases, and run my update commands and reboot, but while the module loaded, it did not attach to the device and I couldn't get it to plumb. Seaching on the web, I encountered Murayama's Free Solaris NIC drivers and an alpha version of the nfo-2.4.1 driver. It does support a number of nVidia on-board fast ethernet chips, but none with the same ID. I attempted to try and attach it anyway, and the message logs told me that the driver attempted to attach but it failed to find it in the nfo NIC table. I looked at the nfo_gem.c file and found an array declaration for the nfo_nictbl[] that had a list of 15 devices supported so far, then cloned the last entry and added a 16th with the new device ID supporting 64-bit and JUMBO frames. I wasn't sure if that was the case, but I recompiled and copied these back into their respective /kernel/drv and /kernel/drv/amd64 and magically the interface came up when I rebooted and manually did an "ifconfig nfo0 plumb".
The next step was to access the network and bringover about 15 GB of files and sample audio which came over quickly and without any issues. This was to do further testing on the audio driver as well, which continued to play just fine.
All in all, not the most straight forward of installs, and not hands free, but it was relatively painless and largely made easy because of the community and open source. February 06, 2007 05:51 PM PST Permalink
Giving USB the boot - install
A sale on 4 GB USB jumpdrives ended yesterday at Fry's. It wasn't a huge savings, but for $49, there was a USB flash drive from PQI that seemed fairly decent and I bought one. I wasn't sure what I was going to do with it, but I was thinking along the lines of using it to burn Solaris Nevada b55 onto so I could carry it with me always and install other systems that support boot from USB. It's big enough afterall.
There's been lots of news from India about the Belenix folks on the Solaris-runnable Flash archive on the 1GB stick. It's very cool and the person -Anil Gulecha- who did the runnable flash stick image has been getting lots of praise. I thought I'd join in, since I leveraged a lot of things he was doing in his usbdump.sh to create a bootable Solaris Nevada b55 image onto that USB drive (on sale!).
Overview of Steps
Basically, the process is fairly straightforward, except the commands aren't always known or easy to remember.
- Format the USB drive and create a UFS filesystem on it.
- Copy over the files verbatim from the install DVD
- Install GRUB to make it bootable
- Boot a System to Install with the USB drive
As I discovered, the contents of the install DVD aren't quite amenable to a straightforward installation. There are definite dependencies for example, the path where the DVD install scripts expect the media to be (i.e. /cdrom). And this doesn't make life easy unless you know the workarounds. But as I discovered, the USB drive installation is about 30% faster than standard DVD install when it all works, and it's a lot quieter than a spinning optical drive. It also works when the system doesn't support PXEboot net-install, or the driver for the network isn't by default in the x86.miniroot for the installation OS. The flash drive, being a disk, makes it easy to include additional software like driver source files, the Studio 11 compiler packages, and optional freeware.
Formatting a USB flash drive for Solaris
This was shamelessly reverse engineered from Anil's usbdump.sh script and it seems to work pretty well. For those that don't want to extract out the relevant shell script lines to make their own script, basically, this is what I did to format my jump drive.
- stop volfs on your current Solaris 10 or Nevada box by typing the command: # svcadm disable volfs
- plug the USB flash drive in, wait several seconds
- run the command # rmformat -l to lists the removable media devices and find the Connected device which says something to the order of a Generic USB flash disk, and note the line which says: Logical Node: /dev/rdsk/c3t0d0p0 or something like that. I'll call the /dev/rdsk/c3t0d0s0 the [usbnode] going forward. You'll need to know yours later.
- # fdisk -B [usbnode] (where [usbnode] is from previous step)
- # fdisk -W - [usbnode] (need the extra hyphen for stdout - note the output
- Now, look at output from previous step and find max MB (MAXSIZE) of usable storage. You do this by multiplying bytes/sector (usually 512 at the top) with num sectors at the bottom of output (in my case, a 4 GB drive had roughly 7.9Million sections or so) divide by (1024*1024) to yield MB (should be 3900 MB or so for a 4GB flash stick.
- setup your partition table file (a text file I'll call slices.txt, just plain
white space between words and letters where it appears (remove dashed lines - eval {$MAXSIZE - x} expressions and replace with number with no brackets (e.g. 3897MB)
slices: 0 = 2MB, {$MAXSIZE-3}MB, "wm", "root" : 1 = 0, 1MB, "wu", "boot" : 2 = 0, {$MAXSIZE - 1}MB, "wm", "backup" - # rmformat -s ./path/to/slices.txt [usbnode]
- now run: # devfsadm; devfsadm -C
- Create a UFS on the flash drive by runing: # newfs /dev/rdsk/[usbslice] (slice means replace p0 with s0 in the [usbnode] path)
- wait for a minute to write, and now it's done.
- You can restart the volfs by running # svcadm enable volfs but you may want to hold if you plan to proceed to the next step immediately.
Loading the Install Media onto Flash drive
For the time it takes to burn a DVD with the Solaris install media, it's almost possible to copy the files onto disk using Solaris' loopback mount filesystem capability. The utility is lofiadm(1M) and is really useful for mounting ISO images already present on the filesystem and saves the hassle of burning media only to insert the finished DVD and remount it. Steps are the following to mount the Solaris install media ISO and copy them to the flash:
- # lofiadm -a /absolute/path/to/solarisdvd.iso (this should create a node /dev/lofi/1 which is reported on the command line)
- created a directory, e.g. # mkdir /mnt/solmedia and then run # mount -F hsfs -o ro /dev/lofi/1 /mnt/solmedia (you can change directories into /mnt/solmedia and check to see that the media is indeed there.
- disable the volfs again by running svcadm disable volfs if you re-enabled it after the prior task of formatting the flash drive.
- Insert the USB flash drive then wait a second and run the rmformat -l to list the logical node. You might want to create a directory mount point (e.g. # mkdir /mnt/usbdrive) and then run:
# mount -o nologging,noatime [usbslice] /mnt/usbdrive
Remember that the [usbslice] is the same as the logical [usbnode] but we created slice0 on that flash drive so we swat the p0 with s0 (e.g. /dev/dsk/c3t0d0p0 -> /dev/dsk/c3t0d0s0). - now simply change directories to /mnt/solmedia and copy everything over. I've used the command # cd /mnt/solmedia; cp -rP@ .??* * /mnt/usbdrive. And once complete, should put all the media onto the USB drive.
Note that with some flash drives, including this PQI, I had data errors. At least if the error occurs, Solaris will usually tell me and then I note the error in the package and try to re-copy it later. What's more insidious is if the drive doesn't report errors initially but then encounters a few errors during the install and fails to install, say some of the Xorg components or fails to run the post-install on the fonts and then your windowing won't be able to come up. More details below.
Booting and Installing with the flash drive
On one IBM/Lenovo laptop we tried, we inserted the jump drive and the system BIOS knew to boot from the USB drive immediately. On an Acer Ferrari 3400, I like others who've reported the same thing, had to go into BIOS and set the boot order to be from a Hard Disk. Not a USB zip, USB floppy, or other USB drive. And on a PCChips V21G system, I pressed F11 to get into the boot menu and then found the Generic USB boot drive under the +Harddisk boot sub-menu.
Once booted, it looks just like the DVD/CDROM install. Only, the install scripts for this media all are expecting the installation content to be mounted under /cdrom. And so the boot will proceed partially, and then exit to a #sh prompt when it can't proceed with the installation. The solution I found was to mount the flash filesystem under /cdrom. But finding the logical [usbslice] to mount is a bit tougher. The rmformat utility isn't in the installers x86.miniroot so that utility isn't available. The next best thing is to look in /dev/usb/ and do a full listing (ls -l mass-storage*) and observe the path. You should see one or more entries that should point to the physical path in the /devices/ tree. Note the exact path, which can be tedious, but if we back out directories to ../dsk/ and then do a full listing, we should see a similar slice. We want to mount the path for slice0. This usually ends up being /dev/dsk/c1t0d0s0, /dev/dsk/c0t0d0s0 or /dev/dsk/c2t0d0s0. If you aren't sure, just give those 3 entries a try using this command as an example: # mount -o ro /dev/dsk/c1t0d0s0 /cdrom.
To continue with the install, I think folks are recommending /sbin/install-solaris. But since we haven't gotten to the initial questions about hostname, networking, locale, etc., I've been using the /sbin/install-begin script. I hope someone reading this in the install group knows how to kicks this off again, and corrects me if this isn't the preferred way.
Notes
I was able to install on a couple of systems, and they booted, but Xorg failed to come up and I think it had something to do with corruption on a couple of font packages and Xorg drivers. Also, on a triple boot laptop, I was also having some issues getting the installer to go into Upgrade mode. It couldn't see the slice for Solaris, but it worked fine for a double-boot and . There's still bugs I guess, and some may be related to data corruption on these flash drives, which seem buggy. But it's not a bad start to get things to boot and come up. So that's progress. The next step is to look at adding some support into the script for install_media=[a local filesystem path] if someone hasn't done it already, and also to see if I can use a USB portable hard drive to see if this eliminates the data corruption errors.
In addition, the current Solaris install is fragile because it hard codes support (and therefore limits it) to /cdrom and nfs mount paths currently. I guess with access to the x86.miniroot for the installer, anyone might potentially add some support for USB drive mounting and installation off of that media with the right amount of clever scripting. That's probably a project requiring a whole weekend though, unless somebody's already done it.
Gotta run and pickup my new 2007 California fishing license and go fishing. Probably not something to hack this weekend.
January 05, 2007 04:37 PM PST Permalink
Swapping drives between Solaris machines
AMD Geode NX and motherboard combo deals
In the constant search for more low-power, home system deals, another processor I've had good success with is the AMD Geode NX. The Geode is a line of x86-compatible 32-bit processors AMD offers for various embedded applications, usually in extremely low-power, space-constrained applications. I'm not sure what the roots are of the Geode line, but at the higher end of the spectrum is the Geode NX and from what folks are saying on the web, it looks like these have roots from the Athlon XP line and might actually be the cream-of-the-crop CPUs that are down-clocked and can run stably at 1.2V (rather than the usual 1.6V) so as to reduce power. I've only seen Geode NX 1750 1.4 GHz cpus sold on combos with motherboards retail but AMD advertises multiple speed versions of the Geode NX, probably for volume OEMs.
About two months ago, there was a sale at Newegg.com on a particular Geode NX/Motherboard combo. The price on the combo was $69.99. This deal was for a PCChips M863G(v7.0) micro-ATX socket-A board with SiS 741GX/964L chipset and integrated graphics, AC'97 audio and SiS900 fast ethernet. The combo included a factory mounted, Geode NX 1750 idling which supposedly idles at 14 Watts going up to 20 Watts. The combo included a generous heat sink and super loud 70x15mm fan that ate 7.3Watts by itself! (Fan and H/S replaced with much quieter CoolerMaster unit running at 7V and 2200 rpm). Rev 7.0 of this board does support a 1.2V core cpu voltage setting that lets the Geode NX achieve its low power status. Newegg seems to be sold out of this combo, but they get more once in a while. (Picture courtesy of Newegg.com).

Fig. 1. PCChips M863G board with bundled AMD Geode NX 1750 CPU from Newegg.COM
Directron.com is also sold-out on a similar combo with a Biostar M7VIG 400 board with all-in-one VIA KM266 Pro chipset. The Biostar board should have been the better board and I actually bought this board first, paying a few bucks more because I knew the chipset better and thought it was well supported. But after buying it, I wasn't fully happy because the board revision and BIOS didn't support the Geode NX's low-voltage mode. So while the cpu could run cooler and with the same clock rate, 1.4V was the lowest voltage it could drop to, so basically, I was sort of running the equivalent of an Athlon XP at 30 - 35 Watts, when the cpu should be able to operate at 14 - 20 Watts. I also had some issues with Xorg on the Unichrome graphics which I was able to work around, but it wasn't a clean install. The Xorg workaround will be explained a little further down.
So with the Biostar-VIA board not being as low-power as I thought, and Newegg having the similar combo with SiS chipset, I didn't hesistate; I bought one. As luck would have it, not 10 days after I received the first board, Newegg had the $10 rebate offer that would save more on the same item, so I had to take advantage of that deal too and get a second combo to score on the rebate. I did this pretty much not having checked if the SiS graphics, network and audio would work - the deal was just too good to pass up.
Sad days; Retirement of two old friends coming soon.
The goal of buying those Geode NX combos was to begin the process of retiring a pair of 8 year old boxes that have served me well over the years. These were proprietary BookPCs I bought back in 1998 with a tiny Super Socket 7 mobo, special 95 Watt power supply, and were short depth. These had the VIA Apollo MVP3 chipset with ECC SDRAM support and I maxed each one out with 512 MB of branded ECC memory and AMD K6-2 450 MHz. These were tough boxes and the weight alone on these small but heavy units was definitely old school manufacturing. They had Davicom 9102 NICs and I only put a disk drive into each, removing optical drive and FDD after the installation for reduced cabling and improved airflow. I've upgraded these boxes over the years. First 6.4GB IDE drives in both, then 40 GB Ultra quiet drives. Today, one runs Linux kernel 2.4 still and the other runs Solaris Nevada. Both have run so long that the power supply and CPU fans have clogged up from dust and seized up and the power supplies (which are very hard to find) have blown. I spent a couple of days back in 2001 relearning basic circuit analysis again and researching power supplies. After a couple of trips to Halted Supply Co. (HSC) near Lawrence Expressway and Central in Santa Clara, I finally got a bag of high frequency switching capacitors in various sizes at about $0.35/each. So for about $1.50 per power supply plus $7 for a new fan, I had some quiet and good-as-new power supplies and was back up. Since 2001, I take the servers down at least every 100 days or more often during Spring and Summer to dust off the systems, replace fans that are noisy, etc. I still have a spare set of capacitors out there for one more repair.
It's amazing how much dust can accumulate inside a server box when you run it at home. With humans shedding skin flakes, pollen and dust from outside in the garden, those servers were actually like air filters for the house. After cleaning, I was shocked at how warm the side of the case was; and then it hit me that the dust build up had been preventing heat from radiating out the sides of the case too, and that sent more heat out the back through the power supply. So almost every 2 to 3 months, the servers get taken down on a Saturday evening, at 1 am or so, and the cases are cracked open and the units go outside to the patio where I try to stay barefoot and grounded and then blow on the boards with some type of compressed air. Some stubborn soot gets caught between pins or in nooks and crannies like on the cpu heat sink and I use a soft tooth brush with Swiffer dust cloths to clean and wipe. The units go back inside and get tested to see if cpu, case and P/S fans are noisy or wobbling after service. I stock 50mm, 60mm and 80mm fans in 10mm and 15mm thickness (and other size fans too) for this purpose. They get swapped if noisy and I usually switch pin order to bias the fans at 7V versus 12V so as to reduce noise. Not all fans and motherboards support this, so you need to make sure the ones you get aren't smoking or failing to start doing this. Then the systems get closed up and put back into service.
It'll be sad retiring these old friends, since they handle email, web, Java servlets and JSPs, firewalling and database for close to 10 domains and do it without any real performance issues so far. But each consumes about 44 Watts in power when I have other servers that are 1.5 times faster at 19 Watts, which could tremendously improve battery life on the two 1500VA UPS units I own and allow me to consolidate all the switches and routers onto a shared UPS rather than adding separate smaller UPS units for those. With newer, even faster chips using about the same or less power, I may even be able to use just one box for all services and consolidate completely and really saving money, power, the environment, and all that good stuff.
Installation Dilemma - Slim Drive or No Drive?
Ever since Sun produced the Netra X1 line of products, I've loved the low 1U, shallow 13 inch depth case. Those boxes sort of epitomize the whole idea what a small, cool looking, but industrial server should look like. I wished someone made an affordable case in a similar form factor that was a bit quieter, and equally attractive. About the closest thing I can find today is a SuperMicro SC513 or SC512 1U chassis. But at close to $180 for the case, it's not cheap. And to add cost, it requires expensive slim optical and floppy drives. It's certainly too rich for my tastes and I've never investigated the acoustics. Those old Netra's though were pretty quiet, if I recall.
A compromise of sorts is to go with a BookPC form factor chassis. The first gen of these cases were like the ones I described above; they came with small proprietary boards and power supplies and actually were the size of a large telephone book. The whole barebones kits could be gotten for under $100 + shipping. A good feature was they did take standard-sized optical and floppy drives, usually over the motherboard, but it got cramped inside pretty fast. Back in the late 1990's, not all DIMMs were low-profile. Some were 1.4 inches tall and too tall to allow sufficient clearance between drive bracket above and cabling that went over the DIMMs situated underneath or partially below the drive bays. Subsequent revisions of BookPC cases have gotten longer and deeper so the board is entirely clear of the drive bays. Prices have also gotten longer and deeper and they start around $60 and go up to $100 or $200 for some sleek all-aluminum cases. (If I'm gonna pay $200 for an all-aluminum case, it better protect the board from EMP from the next nuclear detonation in my neighbourhood! LOL!)
And the peeve I've had with cheaper BookPC cases are they're really noisy due to all the cheap small fans because the makers know that there will be folks out there who think they can save a few bucks and get a small case for that Quad Core/Quad GPU gaming system. So, yes, that's why they have a bunch of fans and they're noisy. And that's why I focus on finding low-power processors and motherboards to reduce volumetric heat generation on these small boxes. (Note: Before video games, kid brothers would watch their 2nd grade sisters use a Hasbro Easy Bake Oven with the 100 Watt light bulb heat source - it bakes -real- cookies. Understanding the heat generated by a little box might be something to bring back into 2nd grade education so big boys don't grow up and try to shove a 200Watt heat source into a small case. Note2: We could educate the manufacturers too... only, most aren't socialized in America with Easy Bake Ovens - they're just putting in noisy fans to cover themselves and their distributors against too many RMAs on melted chasses).
For all my complaining, the compact BookPC size and shape does appeal to my sense of aesthetics, and with some re-wiring and soldering skills, I can usually lower the voltage on case and power supply fans to make them slower and quieter, yet still sufficent to cool a lower-power system. And that's what I did to a couple Enlight 7396AM1 low-pro cases. These have a high quality, sound insulated chassis, front USB, comes with a fairly quiet power supply and Directron.com has them on clearance for $19.99 with $13.99 shipping, which gets cheaper if you buy more than one case. (See figure below - courtesy of Directron.COM):

Fig. 2. Enlight 7396AM1 micro-ATX case for $19.99 + S/H at Directron.COM
I bought two of these last month, and then realized that the drive bays take a normal floppy, but -slim- CD/DVD drive. I was sort of in a dilemma. I didn't want to shell out $75 each for 2 slim DVD burners when I had perfectly good regular NEC 3550As in stock. It would sort of defeat the whole idea of buying these cases for $19.99 + shipping. Then I asked myself the question if I really needed an optical drive or even floppy on the box, since the reason for these systems were to replace those two 8-year old AMD K6-2 450 MHz bookpc servers. Neither have any optical or floppy drives in them; they were removed after OS installation, leaving just the hard drive.
Chicken or Egg Solaris Install? How about transplants?
So I don't have slim optical drives to do the Solaris install using the small Enlight cases. In addition, the PCChips M863G with SiS chipset boards support Novell IPX Netware Boot but not PXE, so a DHCP boot of the system isn't going to be easy to implement. And even if the board supported PXE boot, the default Solaris install doesn't have the SiS900 network driver. I guess if we had PXE, I could disassemble the x86miniroot in Jumpstart to add Murayama's sfe driver (Howto provided in a previous Blog) and that would give us an active network interface to complete the Jumpstart install. But the boards don't have PXE, only IPX Netware boot so thinking about PXE boot without a PXE boot capable NIC would be moot. I checked my inventory of Intel and 3COM ethernet cards and none had the optional PXE boot ROM. And the only one with the PXE boot option ROM I have in stock is a PCI-e Intel e1000g. Great. More shopping, but that would take a bit of time and I wanted to install the systems, there and then.
So the best solution I initially thought of was to temporarily attach a standard DVD-ROM drive and have it perched outside the propped-open case and do the install once on each disk. That'd expose the system for just an hour or two and we could then close them up. But that's still an hour or 2 or more. Plus the whole hokey setup with cable/ribbon hanging out and a bare drive setting there spinning loudly for 2 hours while I'm trying to watch a remake of Van Helsing with Hugh Jackman, isn't what I had in mind. And looking over my desk, I had a bunch of IDE Seagate Barracuda IV ST380021A drives, in clear plastic clam shells, just sitting there, recently swapped out of a couple of test boxes with Solaris Nevada b52, which got newer SATA drives.
A conversation with a colleague earlier in the Spring of this year came to mind. We were all sitting outside the Sun Santa Clara Auditorium after a Silicon Valley Open Solaris Users Group (SVOSUG) meeting and a bunch of folks were going over to Denny's or IHOP for a late bite. Dan Price had just given an S10 Next Gen Overview and he covered a lot of things. And our SATA team had given a talk on the new SATA framework. And one of my colleagues who works on x86 boot and ACPI was there. I think we were waiting for a couple of guys still inside and probably cleaning up, and I asked my colleague about why if I switch disks from one box to another, I can't get Solaris to boot, except for Safeboot.
My colleague gave me that funny look, like, "Why would anyone wanna do that?" I explained that from a customer support perspective, it'd be cool to flash a Solaris image to disk, then ship it and let it boot up and do self-config. He countered that, no, this isn't a big feature demand for Solaris and asked rhetorically how many folks would ever use that feature anyway? Well, I wasn't sure. But on Linux, I do this all the time - preflash a disk and when I need to do a quick build, I slap the drive in there, Kudzu kicks in, and voila... system is configured in a couple of minutes. Solaris gets stuck in reboot-hell if we try this. So after some debate, which went nowhere, I brought up the Jerry Seinfeld episode that got me to start watching that sitcom. And this was the first episode I ever chanced upon where Seinfeld has his little comedy clips at the open and close of each episode. He's standing there talking about the black box.
"Ya know, when a plane crashes... the only thing that survives is the BLACK BOX... Ever wonder why they don't just make the WHOLE plane.... out of THE black box???" (laughter).
In all seriousness, we know that Solaris safeboot has the hooks to rebuild the boot-archive and device trees, and the installer figures out the devices and puts a permanent map of that onto the filesystem somewhere. So why can't we put those same hooks into the regular Solaris boot or multi-boot? That's what I asked my colleague.
He gave me that, 'James, you're naive and uninformed about Solaris x86 boot'-look and just told me that it's not a widely used feature, and that's not what multi-boot does, and started down the path of how the GRUB works with multi-boot and the whole secondary boot blah, blah, blah, blah. Which I took as obfuscating the issue with detailed specs that don't matter to end users. Anyways, to make a long story short, I was miffed and decided against Denny's, and went home to eat cold supper made by my wife, who's always been a lot warmer and at least seems more understanding.
Fast forward 9 or 10 months and here, I have two perfectly good disks, almost new, and pre-installed. I searched the web and managed to find a few Sun FAQ/Developer discussion board topics. It was clear that at least a couple other folks wanted to do the exact thing and actually had the gumption to ask us how. One guy got pretty far in the boot but still didn't get it going. Our standard answer was to boot the kernel in debug mode and look at the output. That's fine if you're a Sun Engineer and know how to look at the messages and hex scrolling off the console. But to for most folks, it's nonsense and just shows a lack of empathy on our part.
But within the various tips, I put together the various tips and gave it a try; magically, 5 minutes later, it was all working on the new SiS chipset motherboard. Here are my steps:
- Boot into Solaris Safeboot mode. You can get access at the Grub menu, usually the 2nd option.
- Mount the found Solaris partition on /a Safeboot will usually find the slice on the disk with Solaris and ask if you want it to mount on /a. Select Yes.
- Move /a/dev, /a/devices, and /a/etc/path_to_inst to another name (I just append .orig) and then create new directories, (mkdir) /a/dev and /a/devices, and touch /a/etc/path_to_inst.
- Run "devfsadm -r /a" to rebuild the device tree
- Edit /a/boot/solaris/bootenv.rc and modify the line with "setprop bootpath '/pci@0,0....' to match the path you'll find mounted for /a (i.e. run a 'df -k' command, and you should see /a mounted from /dev/dsk/c1d0s0 or something, then run 'ls -l /dev/dsk/c1d0s0' or whatever your device listed was, and you should see the actual link point to ../../devices/pci@0,0/...) The path to bootpath you want should be the hard disk which is mounted as /a and you just need to find the expanded /devices/pci@0,0/... path and put that in the bootenv.rc file on the Solaris root filesystem on the hard disk (sans the /devices/ prefix of course).
- Now run "bootadm update-archive -v -R /a" to rebuild the boot-archive on /a
- run a 'touch /a/reconfigure'
- Run "cd /; sync; sync; sync; umount /a"
- and finally reboot.
There may still be issues if you have changed the IDE priority (master/slave) of the hard drive or moved it to a different SATA socket. In these cases, you probably will successfully boot but run into problems with mounting filesystems not found, in which case, boot into safeboot again, and edit /a/etc/vfstab to correct.
Once the system boots, it does retain its legacy settings for network and naming service which may be totally bogus, in which case, I check for any missing drivers (like an SiS900 Fast Ethernet module) and either transfer the source/binaries for the modules via CD/DVD media or USB which usually will work. I'll then delete any /etc/hostname.[NIC#] files and run a sys-unconfig on the system, and reboot again.
Yes, not the most elegant of solutions, but it could be scripted and one of my colleagues down the hallway thought we could do our customers right but putting that script into the safeboot and documenting that we put it there. For now, I hope the instructions help others who might be in the same boat. It takes about 5 - 10 minutes to swap the drive and reboot and reconfigure the system if you know what you're doing. That's a lot better than an hour or two re-installing or upgrading and it also means I can keep pre-flashed drives just sitting around to save time on installs and testing.
BTW, Solaris b52 runs well on the PCChips M863G motherboard with AMD Geode NX 1750. The SiS 741GX/964L chipset functions normally, and Xorg even finds and configures the SiS onboard graphics with no work required. The graphics support on the SiS chipset, while supported in Solaris, is really grainy. And the graininess is particularly worse on one of the systems than on the other. I guess I could stick an AGP card into in the slot (and I did try an older ATI Radeon unit and it looked beautiful), but it eats more wattage with the optional graphics card. And since my plan is to mainly run these headless, I really shouldn't care. But this isn't the first time I've had graininess issues with Integrated graphics, especially on these small form factor boards. I suspect it has something to do with the number of layers in the board (usually cheap boards use fewer layers) and the integrity of the analog/vga signal that goes through the motherboard where there may be a lot of RF interference to get to the back I/O plate. I've used the same graphics chip and software driver on different boards and sometimes the image is crystal clear. And of course, with an optional AGP card in the slot, the board is raised and separate from the board and less likely to have interference due to wires too close in proximity. I get similar graininess with the VIA mini-ITX systems, but it's not as bad as on the SIS chipset on this particular board, plus an older celeron system I used to have with an SiS chipset and SiS Mirage graphics looked great, so it isn't the chipset.
The goal is to run them as network servers, so I plan to disable the graphical login and run only in text mode anyway. Next, I compiled and installed the sfe-2.2.0 gldv3-nemo driver from Masayuki Murayama's Free Solaris NIC collection and it just works. Honto ni, arigatou gozaimasu, Murayama-sama! (someone send this guy a case of Sapporo Nama Biru and Pizza Hut vouchers or a free Shinkansen Ticket to Sapporo where he can pig out at the beer factory at the "Ghengis Khan" Mongolian BBQ Tabe/Nomihoudai [all-you-can-eat and drink] !)
Note about Xorg on older Unichrome (not Pro) Graphics
I mentioned above I had an issue with graphics installing Solaris on the VIA Unichrome graphics. This was on the Biostar M7VIG 400 board. Back in Nevada b30-something timeframe, more than a year ago, I was having some graphics issues on my EPIA mini-ITX boxes which only impacted the graphical installer, and the VGA text modes. But Xorg, itself, worked fine. Only, if you selected Text Console as the login option, you'd get a dark and illegible screen or sometimes a pastel screen. But the version of Xorg did work and very stably if you always used the graphics. We had a few talks with some of the VIA folks who tried to reproduce this on newer mini-ITX boards and they didn't see the same problem. The funny thing was we knew this was partly a problem with the Solaris driver and partly in hardware rev, because in going from an older rev of a PCChips M789CG v2 to a newer rev, v3, both with VIA Unichrome graphics, suddenly the problems went away in the same build of Solaris and all the modes: the VGA text, console login and X graphics worked fine - no driver changes. A friend mentioned also that a 1.3 MHz Nehemiah on CN400 chipset with Unichrome worked fine, but I saw weird pastels or garbelled text consoles on my older EPIA ME6000, M10000, and EPIA 800 systems.
Some time around the build 48 time frame, I was going through and upgrading a bunch of my systems when suddenly, all of my VIA Unichrome systems would power-up in blanked out graphics mode (i.e. there was no VGA signal coming from the graphics port and the monitor would blank with a yellow blinking standby-mode light). The behaviour was very peculiar. And nothing was showing up in the logs. I tried to log in, and yes, it was as if X was thinking that it was running because I could see the disk spinning as if I succeeded in logging in, and ssh'ing from another machine showed that I had active Shell processes on the console, even though the console was blanked (like someone turned off graphics or blanked the screen in low-power mode or something like that).
Back in the old XFree86-to-Xorg transition days of Linux, I used to run a bunch of Biostar M6VLR boxes with the old Trident Cyberblade graphics embedded as part of the VIA PLE133T chipset. Fedora Core 1 and 2 had fits with the Trident Cyberblade. And even FC3 still had some issues. A more stable driver binary was available and the trick was to use it to replace the default driver module used by the Xserver. Using the same trick, I loaded a Solaris DVD from a previous build and found the ./Solaris_11/Product/SUNWxorg-graphics-ddx package and copied the ./archive/none.bz2archive to /tmp and unpacked it using:
# bzcat none.bz2 | cpio -C 512 -idukm
This created /tmp/X11 and inside /tmp/X11/lib/modules/drivers/ was the via_drv.so file.
I copied the old VIA graphics driver in /usr/X11/lib/modules/drivers to via_drv.so.orig and then copied the one unpacked in /tmp/X11/lib over to /usr/X11/lib, clobbering the old version. Because the sizes differ slightly with each build of Solaris, I couldn't tell which was the same or different. So I methodically went back checking each build of Solaris until about build 42 or 43 before I found a version of via_drv.so that worked with the graphics and didn't blank the screen. But it did cause the Biostar board with Geode NX cpu to revert back to bad console text. So at least it seems that the Biostar boards were old versions of the VIA Unichrome hardware (reaffirming my disappointment with that first Geode NX/Biostar combo). But I had a work around to get X graphics working.
I know build 53 put back some big changes to graphics, and improves AGPgart. I don't know if it fixes other graphics issues; but it's worth a try. And b54 just got posted internally. Unfortunately, that Geode NX box is up near Vancouver, Canada right now and in a powered-off state with no LOM (lights-out management). I'll be up there for Christmas in a couple of weeks and then I'll give it a try, unless the weather warms up a bit to let me get out there and go fishing for some winter steelhead. I'm usually more worry free in winter while fishing. The black bears are hibernating and not likely to be up stalking me while fishing. I'll save that for another blog.
December 06, 2006 05:12 PM PST Permalink
Solaris x86 Desktop Hardware Shopping
I'm not sure if it's the Christmas holiday coming up soon, or if it's just coincidence, but the 3rd person this week emailed me this week asking for recommendations on a Solaris x86 box. Two were asking about low cost laptops for kids that will dual boot, and the other was for a home server. There's also been this interesting internal discussion on small form factor Solaris x86 boxes that's garnered a lot of enthusiasm and suggestions for small appliance systems.
I'm by no means the expert on hardware, especially the high end. I know you can buy that premium stuff online at the Sun shop which has a new look and feel. Surprisingly, I needed to do a double take when I just looked at this site, just now, because while I sometimes have a disdain for big-iron workstations, a dual core Opteron workstation starting at $995 from Sun has to be a printing error, right? It's missing an extra digit somewhere. No, it actually looks like a real price, and it looks like it comes with 1 yr hardware support too. That's pretty hard to believe coming from Sun. We're actually selling them cheap. I'll need to look further into the shop to see what other stuff we sell. But back to the really low-end do-it-urself boxes and shopping for Hardware.
I've been known to have a weakness for big sales (except ones requiring rebates), and I have a hoarding instinct for this computer stuff. Some folks refer to this as a disease. And yes, admittedly, I've got some variation of the illness. But I reassure myself that I'm not the worst. I do have lots of spare parts, but it's all well organized into bins and boxed and bagged properly in anti-static bags. And I tend not to carry anything expensive or power-hungry. For example, the fastest CPU I keep in stock is maybe an Athlon-64 3000+, and I only have one of these. And the biggest graphics card is maybe a 128MB AGP8x unit. The rest is slower, really cheap, but extremely usable and great for fixing computers and great for building Solaris boxes. I'm referring here to my home inventory; not my work, where we get to play sometimes with some bigger, enterprise type systems.
And my stockpile of stuff has come in handy on occasion, like when my nephew's budget "educational software" (i.e. gaming) system died recently due to a bad power supply that then led to a fried motherboard. I had both a compatible micro-ATX motherboard in stock, plus a newer, quiet power supply too and he was back up and running; Or when my Dad's box suffered back-to-back power outages during a recent late summer rain storm that shorted out the power supply, I had a surge protector and new special TFX12V power supply in stock, and still have another in stock just in case. Or if my psychic powers are right, I predict my Bro-in-law will have paging issues with a particular PC game that is memory hog and that extra stick of 512MB DDR333 will be the salvation he will be looking for... just mark my words. I've got it in stock and people will need it!
If you stockpile more than 5 boxed motherboards, or 5 new cases, or more than 5 separate power-supplies, then probably you fall into the class of electronics junky known as a "Hardware 'Ho". The etymology, I'm told, is not from anything related to the "Ho, Ho, Ho..." from a cheerful Santa at Christmas, but from the slang term for "Whore" implying, you'll pay anything to get close to computer hardware. I suffer similar issues with being a Fishing Tackle 'Ho, and I'm also a recovering Bicycle Gear 'Ho. But that said, there are ways to live with being a HW Ho and not break the bank. For example, one way is to focus your energies on low-cost, low-power stuff that works well with Solaris x86. That's how I channel the urge spend all available money on hardware on the biggest, baddest and most power-hungry systems into a contest of who can achieve the best price/power/performance. So, for example, instead of say, blowing $650 on a graphics card to get better frame rates on Quake 4, I simply evaluate 3 integrated graphics motherboards under $50 and experiment with which one has the best graphics performance for the dollar. Another part of my therapy is to go to Fry's for lunch (their small cafe inside the store has surprisingly decent sandwiches) and buy no hardware. The goal is to resist the urge to spend money frivolously while being tempted by a store full of stuff ready to buy. Becoming a discriminating shopper for Solaris-compatible stuff is a good way to curb that urge to waste money, and we'll go more in-depth below.
Step 1: Solaris End-User Requirements
As far as I know, Solaris isn't really an OS for gaming, at least not yet. It's possible to dual boot a Solaris box with Windows so that you can have an awesome PC gaming system, but get real work and do real Solaris development using the same box. But as a home-user, I use it for word processing, spread sheets, some digital photo stuff, email client, web browser client, playing and ripping audio, as a file/web/email server and firewall. I also VPN into work from home using IPSec and I burn a lot of CD and DVD iso images. I find these were most of the things I used to do with Linux, but less and less because on Solaris, the software now performs as well if not better than Linux, and has pretty solid stability even across kernel versions. I can tell that it won't be long before, at least in our household, Linux won't be active, although, I plan to always keep a current copy of a popular free distro around to play with.
More than just software and performance requirements, I also have environmental requirements. My living room and bedroom are places where these systems will stay. People coexist here and must endure the noise. People living in a place also stirs up air and dust too, and the PCs need to behave stably with lots of dust fouling during hot summers and cold winters.
If your requirements are like mine, nothing there really needs a lot of big-honkin' iron processing. Some of the audio ripping and conversion, or editing photo images does take some CPU and memory, but for the most part, any Pentium-3 class machine with more than 600MHz and 512MB of PC133 SDRAM is almost adequate for Solaris. Anything much faster, will be spent idling, or burning more Watts which costs money if folks actually stopped to think of the costs to power and cool a system. In addtion, it could shorten the life of the system because that extra power requirement goes into more fans to suck more air in to cool the system, depositing more dust that can foul and burn out power supplies and overheat capacitors on the motherboard causing failure. Some of my colleagues refer to their home racks as "air filters" for the home, since they suck up so much air and deposit soot inside the case.
This doesn't mean we should just stop buying newer, high speed hardware. In fact, quite the opposite. While the CPU and memory might have achieved performance adequacy 5 years ago for home users, some newer systems may provide even better power economy while running faster, as well as support newer, faster chipsets, graphics and monitors, faster networking and USB peripherals, and are likely to be more available in stores at a lower price, than having to try to find it on some auction site because the original part is no longer made. Sellers rarely make overt offers for low-power, high-value hardware; you need to look for these deals.
Step 2: What works with Solaris x86
To find out the official list of hardware items that work with Solaris, there's an official site called the BigAdmin HCL. On that page, you'll get a list of servers, desktops, motherboards and laptops that are certified or reported to work with official Solaris 10 and Solaris Express. The HCL allows companies and individuals to buy a Support Contract from Sun for an annual fee. Using the OS is still free. Folks can also download the Hardware Compatibility Test Suite (HCTS) from Sun and run this on their hardware and submit their entries. Version 3.0 of HCTS recently went public and it runs for about 12 hours and tests the filesystems, cpu, memory and network pretty intensely during that time. It requires two machines (a system-under-test SUT, and a Test Manager/Server) hooked up back-to-back, or through a seperate switch on a private network to run the fully networked test. The Solaris Marketing folks used to have a Tshirt Give-away for anyone who registered, downloaded the HCTS and tried to run it, then made a Report-To-Work submission or certification. I made a bunch of submissions, but found out later than Sun employees were forbidden to participate in that contest, and anyway, they didn't have 3XLT tshirts to fit me. Bummer.
Unofficially, Solaris x86, especially, the latest build of Open Solaris, supports a lot more hardware. In general, Solaris will run on most major CPUs (AMD, Intel, VIA) and motherboard bridges and north/southbridge chipsets that support Intel's x86 instruction set or the AMD64 instructions (or variant, such as Intel's version - EM64T). This includes standard I/O like IDE/ATAPI interfaces, any SATA interfaces that support IDE legacy mode, systems with PCI, PCI-X, and PCIe bus, older ISA bus support for PS/2 keyboards, mouse, peripherals and Serial and Parallel I/O, most on-board USB, and systems with an AGP slot. Typically, Solaris can be install in console mode on any x86 system with about 128MB of memory, some type of ATAPI optical drive and some type of supported hard disk with at least 5GB of free space. But if you want something usable, 512MB or more RAM is good, and 80 GB disk might be a start. By default Solaris x86 auto-senses 32-bit or 64-bit architecture and boots the OS as appropriate. And yes, the 64-bit version of OS is fully compatible with 32-bit user applications.
Where Solaris doesn't work out-of-the-box is for certain on-board and common peripheral devices like new native SATA and RAID controllers, Wireless 802.11, some ethernet chips, some new graphics cards, or and with some types of high-definition (HD) audio devices. Solaris also lacks software and drivers with proprietary peripherals, like Point-of-Sale scanners, printers, card-swipes, kiosks, etc. Many network, audio, and storage controller drivers are available from third parties, and in the open source space and there are companies that sell proprietary drivers solutions that run on Solaris as well. There are a few drivers in the GNU GPL space that Solaris might be better off having, but those are getting fewer as hardware vendors are coming over to Solaris and we apply more engineering resources for porting. For the time being, it still pays to stick with what we know.
Step 2a: Motherboard Selection
With some experience, we find that most chipsets work with Solaris and it isn't really a particular maker or brand that causes incompatibilities, but it's an onboard peripheral bundled with that particular chipset that may not have a supported driver. When that is a native-only storage controller or NIC or Graphics port, then immediately the Solaris install is more difficult. So the trick isn't so much choosing the maker or the chipset, but knowing what peripherals come with a particular board or chipset-bundle. In some cases, the behaviour of a peripheral, like a native SATA controller, can be adjusted to set to use legacy-mode only, in which case, the board works fine with Solaris.
I like the low-end and all-in-one chipsets because this category provides excellent price/performance and low-cost to buy and own. Counter to what others tell me, I actually think the cheapest and most mass market motherboards are some of the most abused and tested board on the market, and therefore, manufacturers tend to make them more robust to human abuse than on server boards that cost 10 times as much, but have a much smaller marketshare. Certainly, the margins are much greater on server hardware (yeah, we at Sun should talk... we're in that business). But the whole ideal of achieving volume Solaris for the Proletariat means (a) making it cheap to get the OS, and (b) having it install and run well on a damn cheap box!
Rather than go through each chipset and what works, it's probably easier to say what is not likely to work. Since most CPUs, bridges, buses, and standard I/O controllers to memory and disk have to be somewhat compatible with Windows/x86 instructions and memory flow, for the most part, Solaris just works and recognizes and uses that hardware like any other x86 operating system. Standard drivers are in place for the usual ISA legacy devices like serial, parallel, ps/2 mouse and keyboard. Also supported for the most part and standard USB devices and USB storage, and ATAPI drives like IDE disks and CD/DVD ROM and Burner drives and any SATA drives that are running in Legacy IDE mode.
Step 2b: Graphics Selection
What might NOT be fully supported in the install media are the graphics, NICs, audio devices, and WiFi networking chips. These don't necessarily mean that all is hopeless. Some drivers can be downloaded from the web if another system is available and networked and you have something, like a USB jump drive to copy drivers after the initial install for configuration. In other cases, there may be no support for the onboard device, but you might be able to install an add-on card that works with the board you have. Graphics is a good example. Up until build 53 of Solaris Nevada, the AGPgart driver didn't support the onboard VIA Unichrome Pro graphics on any of my newer VIA systems. But those systems all had optional AGP4x/8x slot or PCIe and it was possible to buy a very inexpensive ($15 - $20 online) ATI- or nVidia-based AGP card from a previous chipset line (e.g. ATI Radeon 7000 or nVidia MX-4000). Laptops are different story when it comes to graphics - pretty much, you're stuck with what you get. In these cases, Solaris supports the slightly higher end embedded graphics chips like the ATI Radeon Xpress 200M or the nVidia GeForce 6100/6150. Solaris has lots of issues with Intel embedded graphics, even among chipset variants and vendor implementations that should be supported by the Xorg Intel embedded graphics drivers. I often have the same graphics non-compliance issues with Linux, and luckily, it's been getting less frequent with both Linux and Solaris, as it should since both leverage the Xorg source. But I try to avoid embedded Intel graphics on a system for running Solaris graphics mode. But ATI and nVidia seem like well support brands these days. We even support the newer nVidia Quadro line in Solaris.
Step 2c: NIC selection
With NICs, the problem is less difficult. There are many free drivers out there for Solaris. Murayama-san puts out a bunch of open source, free Solaris NIC drivers. So the installation may not find any drivers for the ethernet devices onboard, but if you have a VIA, SiS, Tulip, Davicom, or other mass market embedded NIC, then most likely, there's a driver for it. What folks may want to avoid are the newer embedded PCI-Express GigE NICs. The drivers may actually use the same core logic, but the PCIe bus signals and handles interrupts differently over PCI. We do support most high-end PCIe server NICs, but each has a specific initialization and so this is device specific and our driver requires some amount of code to correctly initialize each variant of that MAC. So it isn't as easy as trying to stick that vendor/device ID into the /etc/driver_aliases file and run devfsadm to initialize one of these PCIe embedded NICs. It may work, but usually not. Luckily, if you need a NIC and this isn't some laptop where you have no choice, then you can get a Realtek 8139-based Fast 10/100BT PCI card for about $0.99 on sale (sometimes $0.49), and I've purchased 3 Realtek 8169 10/100/1000 GigE PCI cards which I paid $4.99 for each. This is brand new. Not used.
Step 2d: Audio Selection
Solaris 10 and later supports most Intel Spec AC'97 audio, VIA 823x Audio, and some legacy Sound Blaster stuff. That covers about half of all the audio on most boards these days. There are still a few boards with AC'97 audio which the Solaris included install media won't recognize, and there is the new class of High Definition or HD Audio chips. For folks with an unknown AC'97 type of audio controller/codec combination (read your spec sheet or prtconf -pv and find the PCI vendor and device ID and web search that device to find out what it supports), most likely, you have a good chance if you download Jurgen Keil's audio drivers and install them. Jurgen supplies his own versions of VIA and AC97 Intel audio drivers. These have different module names and will not clobber the existing drivers, and his installation package does a good job of pruning and transferring PCI vendor and device IDs to his driver control where both the Sun drivers collide with his drivers. Jurgen's drivers are especially useful with some AC97 codecs that have a non-standard sample rate conversion hardware. Where the Sun audio810 driver fails, or takes a huge performance hit going with a software sample rate converter (am_src module), Jurgen's driver allows one to compute the proper sample rate and set it as a configurable in the /platform/i86pc/kernel/drv/audioi810.conf which usually gets the driver to play audio at the proper speed. The information on how to do this is actually in the .conf file itself and has come in handy on a Compaq motherboard with Intel 815 chipset and AC97 audio. Jurgen's VIA drivers eat a bit more memory for buffer space, but lower the interrupt rate dramatically, eliminating almost any hiccups on some very slow first-gen EPIA 500 fanless C3 mini-ITX systems and allow those to play flawless audio.
As of Nevada build 44, Minskey Guo and the Beijing team did a put back of a quick High Definition compatible audiohd driver implementation. Minskey says he was "helping" me, but actually, he did most of the heavy lifting on the all-nighter coding and testing. I ought to send this guy a case of quality beer and certificates for Pizza Hut in Beijing. I wonder if they deliver like in Tokyo?
HD audio comes from a 2004 Intel spec and is pretty much different and not meant to be compatible with AC97. First of all, the spec which is available from Intel's site separates the combined AC97 controller/codec into separate HD audio controller interface and compliant codec. Capabilities are for much higher bit rate (upto 192kbps for 8 channel - 7.1 audio) versus the old AC97 (48kbps for 6 channel - 5.1 audio). This allows motherboard vendors more performance and choice in selecting the codec and implementing rich audio support for multiple devices, playing different streams simultaneously. At the same time, if the driver is implemented with good support for codec discovery, it's possible to implement a universal audio driver that can ideally parse and initialize any codec. All communications between audio applications to the device are through the controller and through defined kernel DMA structures. This eliminates applications ever needing to hold onto pesky base address register values once the memory segments, driver and codec initialization are complete. The only problem is that support for codec discovery isn't trivial and can take time to test and properly debug. Also, we learn in the hardware business that every codec isn't quite the same and there's always some errata on either the controller or the analog pinouts the codec is hooked up to, such that the discovery may not provide correct information. It's quite a bit easier and faster if the register specs are available to simply check for codec device and do the initialization in the driver code or to use an external configuration file that enumerates name=value pairs of properties that specify where the standard pins for that codec are. It makes it easy for vendors to ship audio codec initialization files too as properties. But that all depends on if vendors are willing to give out the specs on their codecs. Which is really the crux of the problem, since that's been somewhat hard to get except for the Realtek, which have just been excellent Solaris partners. So far, the Nevada audiohd driver can support most Realtek HD audio codes like the 260, 880, 883, and 885 and others. And this supports stereo audio playback and recording. But the number of tested HD Audio controllers isn't great. But if you have a Realtek codec or think you may have one, you may still be able to get the driver to work by editing the /etc/driver_aliases file, and searching for "audiohd". Then add an entry in the same format for a new device. For example, on my MSI K8NGM2 motherboard system with MCP51 chipset and HD Audio controller, the PCI device node blocks me from seeing the codec directly, but a "prtconf -pv" shows the controller as "pci10de,26c" which I added to the list, then ran devfsadm -i audiohd, reboot and suddenly, the audiohd driver works great. The driver may work for quite a few other audiohd controllers that are back-ended using Realtek HD Audio codecs. But we didn't have too many systems at this point to play around with, although a number of laptops are now coming out with HD Audio standard. Many don't use a Realtek HD audio codec, but some other brand, like a SigmaTel.
Support is unlikely until we get specs, or if we have time to work out a really good parsing algorithm for codec discovery. But for the time being, you're not all shot on Solaris if you have HD Audio. In fact, there may be a version of OSS (Open Sound System) from 4Front Technologies that works on Solaris x86. 4Front has been doing high quality commercial audio drivers for UNIX for years. And their latest stuff is free for personal use and has a 6 month license that is renewable for free every 6 months, or can be purchased perpetually for just $49 to end the hassle of re-submitting for that license key. I've tried the OSS stuff and it does work with the ATI SB450 HD Audio controller and codec underneath on my new bargain Toshiba M115-S1064 laptop. The audio worked fine out of the box, but had some issues with standard Solaris audio support devices (like the Gnome volume control) not responding on the laptop (since there is a manual dial for audio volume), but otherwise it sounded good. I have some poorly ripped Enrique Iglesias and Led Zepplin tracks that had lots of Cymbals and high pitch audio that got a bit over saturated and tinny in this driver. But I peeked at the hdaudio.conf driver (no collisions in the name space again) and I downgraded the quality of the input audio stream the driver was expecting to medium (instead of the default - high) and suddenly, the tinniness went away and I was hearing great audio again. It pays to try different settings in the driver if it has a .conf file. Hopefully, between the existing drivers, Jurgen's drivers, and OSS drivers, most audio chips will just work with Solaris.
Step 2e: WiFi Selection
I used to think selecting a WiFi chip was specific to laptops. But recently, in Sunnyvale, the Mtn.View based company: MetroFi Wireless, has installed a bunch of WiFi base stations. These are advertising supported services, but it's changed my outlook on how to help the families of kids at my local elementary get online using broadband. Instead of deploying a donated and refurbished Linux Box with some semi-expensive and rare controller-based modem for a cheap dialup service, the PTA might be able to collect donations and get some cheap PCI WiFi cards, install them into these systems, and then use wifi to get on the network with no monthly or annual dialup fees. We wouldn't be limited to Linux and its LinModem support, which is mercurial at best with the plethora of Host-signal processing (i.e. controller-less) modems. We could go stock 802.11g and with the right booster antennas, users should could get good WiFi signal.
That's motivated me to look more closely at WiFi support and not just on laptops, but at built-in, cardbus, and PCI card WiFi NICs. A big list of WiFi drivers recently got into build 53 of Nevada. These support PCI, mini-PCI and cardbus versions of popular 802.11b/g chipsets including the Intel Pro Wireless 2100 and 2200bg/2915abg, the Prism/Orinoco chipsets, the Atheros 52xx series, the Ralink Technologies RT2500 series chipsets, the Realtek 802.11b wireless chipset and the Cisco Airnet chipsets. The Atheros driver works with most of the previous mini-PCI laptop ABG cards. It doesn't quite work yet with the newer AR5006 PCI express line which is starting to become more prominent with laptops. The same story goes for the Intel ipw3945 which is also a PCIe device showing up in lots of laptops, and latestly, the Broadcom BCM4306 line of WiFi chips fills in the remainder. So none of the newer Wifi chips are supported... yet. But my bet is on the AR5006 since it's already available in the MADwifi driver on Linux so it shouldn't be too long. I don't have too much public news about the ipw3945 or the bcm4306 except that we don't have the specs to write the driver, but some reports claim that the NDIS wrapper can provide a usable and stable driver for either device on most laptops.
But besides laptops, what's interesting is the availability of WPA on top of a lot of PCI-bus WiFi-BG cards. To my surprise, a lot of the cheapest (e.g. Airlink 101) PCI WiFi cards are based either on the Atheros (Super g) 5212 chip, or the RaLink RT2500 chipset (regular G). These are cards that show up frequently on sale for under $20 at stores like Fry's. And the RT2500 version have been down as low as $7 for the card (limit 2 per customer) which is why I have two at home. For folks that don't want to rewire their homes with Cat 5e/6 cabling, and have noise already on the PowerLine and can't get more than 6Mbps/sec throughput on PowerLine accessories, then 54 Mbps is a refreshing increase and it only takes switching to wireless. So Solaris users can simply go out and get a cheap card for their desktops too and enable WiFi without shelling out a lot of money to go wireless. Not bad at all, I'd say.
Step 3: Where to buy this stuff?
I shop for most of my stuff at these sites:
- www.newegg.com - probably where I spend the most money. Awesome website, great customer product reviews, and awesome prices. Once you New Egg...
- www.ewiz.com - less selection than newegg, 5% cheaper on boards than newegg in a lot of cases and a local Bay Area company with insanely fast service - order it and get it in 24 hours!
- San Jose Mercury News - click on the [Newspaper Ads Online] link and see daily Fry's ads. If I see something cheap, a quick trip at lunch with 3 other colleagues in a carpool is the usual menu/venue. And you can order a decent lunch at good prices at the Fry's coffee shop inside the store.
- www.directron.com Another low cost online retailer. Houston, Texas-based. No sales tax to CA and good service. I get a lot of quiet-PC gear, adapter, fans, and cases from them.
- Starmicro.Net A Bay Area company with fast service and some really cheap prices on older memory and cpu.
- www.compuvest.com A Washington-state based company with a long history of low prices and good mail order service. They carry a large variety of older technology and new stuff at competitive prices and out-of-state means no sales tax either.
This is by no means an exhaustive list. Sometimes TigerDirect.COM has a good deal if you're into waiting for Rebates (I'm not), or SurplusComputers.COM will have some good deals too which are online-only and not available if you go to the store for pick-up, which is a bummer, since I live pretty close to those guys. There's also www.axiontech.com, another Texas-based company that caries some good motherboard prices, just to name a few.
I tend not to shop eBay that much. There used to be deals in the past, but most sellers have jacked up the price on shipping and handling to the point where the prices are ridiculous. Often, with computer gear, the shipping and handling are more expensive than the item. Who in modern history would pay $25 per disk for a -USED- IDE 40GB drive? But that's exactly what it comes to with these online auctions and the bidding wars in the last few minutes of every auction close. The going rate for disk storage is about $0.40 per Gig and that's out-the-door prices after tax and shipping on a -NEW- disk drive retail. I usually wait for a sale on some Seagate 5 year warranty SATA or IDE drives and get storage at close to $0.25/Gig. Folks are paying upwards of $0.60/Gig for used stuff and that's just stupid and buying from some kid with a 97.9% rating. For that amount of shipping and handling, I'd expect a 110% rating if it existed. But again, eBay does serve its purpose for those desparate and in search of something the other vendors don't carry any longer. I picked up a couple of Intel D815EEA boards for $16/each with shipping recently to build a couple more Solaris boxes to go with a couple of Intel PIII 733 MHz cpus I bought for $8 each at Compuvest.
My Top Pick for Solaris System Right Now
Clearly, there are a lot of choices that anyone could make right now about what parts to throw into a Solaris box for home use. And it's a lot of fun to build and install systems, especially if in the end, they go to help families get low-cost broadband. But I do have a favourite box for at least I think this is the best deal and the one, right now, I wish I had in my home. It appeals to all my personal criteria for the right blend of a) price, b) performance, c) quietness, d) power consumption, e) Solaris support and f) aesthetics. It starts with the PCChips V21G flex-ATX motherboard with soldered-on VIA c7 processor at 1.5GHz. It has a new CN700 chipset that supports IDE and SATA and has integrated VIA Unichrome Pro graphics, VIA rhine Fast Ethernet, and DDR2 support. The motherboard and cpu all-in-one is just $68 at ewiz.com and installs Build 53 of Nevada without any real issues. I'd stick a 120GB Maxtor SATA drive with 8MB buffer which was on sale at Fry's for $49 recently, and then a 1GB stick of DDR2-533 Kingston memory for $95, and put that inside an Antec Minuet 300 Case w/ 300 Watt P/S for $79 with a silver bezel NEC 3550A or 7170A-0S DVD burner for $30 and a Multi-format, Silver bezel USB 2.0 flash reader for floppy drive bay install for $14. Total cost would run upwards of $380 when all shipping and handling was done. Not the cheapest build possible, but a very usable system that's small and relatively quiet. If I were going for a true budget server system and forego a DVD burner and get a cheap case, I'd probably use an Enlight 7396AM1 BookPC case with 180W P/S and save $50 on the case, $44 on optical drive and flash reader. I'd also get a stick of 512MB DDR2 for half the price and save $50 since most of the time, I would run this without X. That'd save a considerable amount of memory more than ample for a simple httpd/j2ee server and mail server. That'd make a box for about $250 that could serve up a lot of services.
How would you install a box without a working network interface (yet) or an Optical drive?
I'll talk about options for that in the next blog.
December 05, 2006 03:23 AM PST Permalink
Solaris Install Experts - the New Chic
Quite a few years ago, I met up with this big guy at Tokyo University. His name was Ohno-san. He had a similar build like me. Big, round, husky. He road a big Motorcycle that really ate gas - sort of a status symbol as big Honcho for being one of the early contributor's to Japan's WIDE network. I remember his greeting to me - the once over stare and then grin and a modest handshake. Not a limp-fish, and somewhat out of character for a Japanese person. He said immediately that he could tell I was a techie/geek and I must know my UNIX systems, since most of us are pretty big guys with similar builds that look like we exercised our forearms lifting slices of cold pizza for most of our lives. But I lacked the facial hair and bad hair. Oh well for stereotyping folks like us. But I don't mind the status and any implied chic other folks -think- I may possess.
There seems to be a revival of that UNIX chic these days. It's not just inside the company. I see it with some vendor/partners and some of the academic/EDU folks. Solaris is cool again, and folks who can install it and fix other folks computers have a certain chic. Granted, we're a couple levels below the God-hood of a kernel developer, but we interface at a higher level with desparate folks in management and marketing who want to try out Solaris but haven't got a clue how to install it properly on their system.
Pepboys (Geek version): Computers Like Us - Colleagues Love Us
Solaris installation is a lot like car maintenance. Almost anyone could probably pick it up if they had the inclination to research a little bit and try to exercise some Emersonian Self-Reliance. The argument against everybody doing this (within a company or outside even) is the notion of Comparative Advantage. This idea says that everyone has their personal strengths and contributes in their own way. Folks have proven mathematically that Comparative Advantage allows multiple parties to optimize their productivity so all sides can benefit. And hence, we all specialize in our particular fields. And it's just my long-winded explanation of why there's a Chic associated with being able to install Solaris. Simply because folks like us are in demand. And so the ones who are less self-reliant will want to schmooze with us to defrag their laptops and partition a slice to install Solaris on it.
But it's still a lot like car maintenance. And a cornerstone in the mechanics trade has been that customers go back to the mechanics they trust, and with an evolving relationship, customers grow to respect the journeymen with lots of experience. Solaris installation ain't much different than doing tune ups. The more systems we get to work on, the more tips and tricks we learn. One of the things we pick up is what to buy, what works well, and what has good price-performance. Yes, it applies to names like Toyota and Honda too, but we're talking systems, and it isn't always the high-end chipsets that are well supported by Solaris.
In-Flight Across the Chasm
And whether that compatibility is a result of more community users hammering on the platform, or that the platform is more compatible and therefore more people are using it, it's clear that Solaris's recent popularity is coming from the x86 side. Sure, it runs on SPARC and we try to insure that out-of-the-box, Solaris just runs well and tuned on SPARC. But our SPARC customers just expect that and depend on it. The Solaris x86 side has been more mercurial. Instead of specifying specific supported hardware (which we Sell), we've had to provide an OS with broad support for many 3rd party devices. Linux has done a great job crossing this chasm of device driver support. Many vendors are providing drivers up front now for Linux. But the Linux kernel and headers are GNU GPL'd and the license can be somewhat severe for enterprises that have trade secrets. Some vendors have tried to play a risky game using shim layers in their device driver to insulate themselves from the GPL. But if they do it right, they end up with massive build environments for Linux because to support compatibility with the ABI, they need to maintain copies of kernel source, headers, and compilers. If they do it wrong, like a couple of embedded switch companies in Europe recently, then they may be forced to open source all their proprietary software on the device which also leverages GPL code or face a massive recall of all sold network appliances in the last several years.
The problem isn't so bad with GPL applications living outside the kernel. Applications are fairly safe if they only link to high-level libraries. But device drivers are kernel modules and live in the same process space that the kernel lives in and rely on GPL headers to compile. To get around GPL, shim layers of GPL code that then link to standalone proprietary object binary code seems to be the standard these days. But compiling a kernel module such that it has no errors in loading (e.g. the kernel taint statement), doesn't work well. The solution, if done right, is to compile a target object binary driver module for that explicit kernel with that explicit distro of Linux with that specific version of compiler, just as an added safe measure. But this grows into a support nightmare for vendors pretty quick. I support at least a couple of partners who support several popular distros each keep about 29 GB and 40 GB respectively in build environment (yes, Gig as in Billion). All this to prevent the taint message from showing up during modload. So it's not surprising that from where my group sits, more and more vendors are actually trying to contact us about driver porting to Solaris x86. There Solaris driver build environments are just a couple to several megs. Mostly documentation and make stuff. Not actual code.
And so, Solaris is trying to cross that chasm today. Fortunately, I can see the other side, and as Joerg Schilling predicted about 1.5 years ago, he said if we kept working on x86 at this rate, we'd cross that chasm pretty soon. Thanks Joerg for believing in us. We're not there yet and so we're still working really hard. But it won't be long now. Along the way, some of us have picked up some useful ways to get Solaris up and running on our systems.
Installation Tips and Tricks - a Summary
It's not all about the drivers. There some other pre-requisites to installing Solaris that should be covered. I'll be blogging more about the tips and tricks of trying to install Solaris in later blogs. But it starts with hardware choice and what not to spend money on. I'm into frugality, and it's often the cheapest, all-in-one motherboards and hardware that have support these days. It's more about selecting the right chipsets on a motherboard. I'm not a big-time gamer, so I don't go after the super high-end market. Plus, if I'm running Solaris, most likely, I'm doing simple home stuff - like audio, some digital camera stuff, some word processing, running some web sites and mail servers, firewalling the rest of my house network, etc. I make it a point not to spend more than $50 on a motherboard. If it's on sale, even better. And if it's a combo with all-in-one graphics, audio, LAN for under $75, even better.
It seems like the Optical media install is the de facto standard by which we judge usability. But more and more, I use network installs. It's amazing how many motherboards support PXE boot these days, and from a previous BigAdmin article, myself and a colleague tried to put a quick cheat sheet on how to set up a network install server and add more drivers to the netinstall image. But did folks know that they can pre-flash disk drives with Solaris on them and then re-configure them? I have a couple of servers at home and in the office that don't have an optical drive and don't have PXE boot bios extensions. I installed Solaris on a disk stuck in an install machine that flashed a netboot image onto the disk. And then I stuck it into the server box with no optical drive. There are issues of course with the boot-archive, the old device tree, etc. Linux does really well in this area with their Kudzu and admittedly, I wish Solaris were better. But installation isn't something most folks do that often. And so if instead of a single utility doing it for us, someone just had a complete set of instructions on how the darn boot-archive, path-to-inst and device tree worked together, then we might be able to reconfig the drive to the new hardware in say, less than a couple of minutes, it might not be so bad. Better yet, would be to script the process and have it as a command in the safeboot image. That's not there now, but something some of us are suggesting go in there in the future.
Lastly, once the system is installed, there's all the standard software that folks should stick on their system that isn't on there by default. There's the standard pathing for user shells that we should setup so commands are easily found too. There are also some nagging problems with devices that don't work well or at all. They don't impact the core Solaris kernel, but they may make the system unusuable (e.g. graphics is incorrectly sized, sound doesn't play, or some devices not functioning. Sometimes, an existing driver might actually work, only the vendor and device ID were not recognized in the OS database. Other times, the driver may be available as a free or commercial 3rd party just not on the install media. But their are quick ways to find basic drivers for network, audio, wifi and other components. These and other subjects will be topics in the next couple of blogs as I have time.
Looking back on the past couple of years and my experience with Solaris x86, I've gone through about 4 or 5 cycles where I've attempted to install latest current OS onto all my home and office boxes. At first, it was with mixed success, implying that a good fraction of the drivers were missing or so poor in performance and reliability that it made it unusable on the system. But lately, that's changed. Many do work for the low-end, budget systems in fact. Moreover, lately, the installations have been relatively easy. So it may not actually be so hard to achieve that high-level of fashion and popularity that being a Solaris install wiz, at least for a short while; most folks will still think installing Solaris is hard. But it's not something you need to share with everyone. And maybe you don't need to sit around all day eating cold pizza slices doing it to become a master at it. So you can have the sysadmin chic and still maintain the "girlish figure." The key is to enjoy this upcoming new year with Solaris, and sandbag a little when friends and colleague beg and grovel to have you install their laptop systems. Tell them you have a backlog and need more time. That might be true sometimes, but most of the time, I'd just take the fishing pole out and go fish a few hours while the install completes in about 30 minutes. I brought in a new custom fishing rod into the office recently. It's up on top of my locking bookshelf unit. Colleagues think it's just ornamental to go along with my fishing pic on the door. Hah! November 29, 2006 06:09 PM PST Permalink
What? Solaris Life Style?
Fishing Vacation Recap
Okay, so I haven't had time to blog in a while. Or fish for that matter. The exception was a short vacation back not too long ago to Vancouver to install a couple of new workstations in the vacation home up there, put in a second security camera and to figure out what was eating and extra 2kW-hrs/day in electricity besides the frige. I did manage to get some fishing in there, and a little scientific method of observing when the fish arrive relative to the tide, yielded big results. Here's a 10+kg salmon caught from shore just outside the house. Yeah, that's me in the picture. Took me 20 minutes to land the fish and two boats anchored just off shore to watch me bring it in. I wish I had a net with me, but I rarely bring one for fear of "Murphy's" Corollary - which states: If you bring a big net, you won't need it. But the fish looks like a Chinook on the outside. Black mouth, massive size, fiesty. And I got a kick cleaning it in the driveway. More than several of my neighbours (who own boats) drove by, hit the brakes, then backed up and lowered their passenger side power windows. "Ooooooh. N-I-C-E fish!" they all said, licking their chops. Amazingly, this salmon had no pink flesh. It's known as a "White Chinook" or "Ivory King." And up in B.C., there appear to be anywhere from 1% to several percent of the Chinook population that have the same genetic mutation where they lack the enzyme to breakdown and absorb beta-carotene. Hence, their flesh isn't pink. The flavour also is very sweet and mild, like a trout or char, and hardly like regular salmon. A delicacy in my book, for sure.

The two workstations I installed up there were systems for each bedroom. I found this killer store in Richmond, B.C., just off Bridgeport Rd., not to far west of the Home Depot/IKEA. It's called CanComputer and they have some good prices that compare well with the US. I may have mentioned some series of shops along the Bridgeport ICBC row (the section of Road where lots of auto-body repair shops are). Most are hole-in-the-wall shops with small store fronts, little retail display space, but large back rooms with inventory. CanComputer is like one of those shops, just a little fancier and cleaner. But they're all more mail order fulfillment businesses as opposed to Best Buy (which moved in last year, next door to the Future Shop at Landesdown Mall), which is over-priced anyway. Plus, the folks at CanComputer seem to know there specs a bit better on parts than the Future Shop or BestBuy folks. At least I was impressed that a sales person at CanComputer actually knew the difference in form factor for a x16 lane PCI-express slot versus AGP slot on an AMD socket 939 board and quiet power supplies with 20+4 versus 24+4 pins power rails. But neither BestBuy nor Future shop sell many computer parts - rather, they sell whole finished systems, so they aren't the kind of shops you'd expect true geeks/nerds to frequent.
I also had the privilege to bump into Nick Harrison at the Richmond, B.C. Costco. I was doing a run for DVD videos and on the lookout for Season 9 of Stargate SG-1, and met a semi-tall, medium build guy in the same video section looking at Sci-Fi serials. For folks who don't know, Nick Harrison is the guy who plays the Dark Knight in some of the Arthurian episode in last year's Stargate SG-1. He played roles as Jaffa in previous seasons as well. But it's just a kick to meet up with folks from popular Sci-Fi shows who are nice people and approachable. And with all the movies and TV shows they make up in Vancouver, that's another bonus for going up there. BTW, Season 9 of SG1 is out on DVD now. In the US, it's $32 at Costco.
Solaris Life Style?
So what's to do during those lazy late summer/early fall evenings in the great North? Well, for one thing, you can sit around and rip CD audio into mp3s to stuff them on a new, cheap, no-name MP3 player. I picked one up for fishing and roadtrips in California for around $50. It's a Truly MP310 in lime green with FM radio, colour display and 512MB of flash memory. I saw a recent sale at Fry's down in California on the same unit for about the same base price but $35 after rebate (curse short profanity to self...should've waited!) My sister always recommends waiting for these cheap electronic gizmos. "They'll get so cheap, you'll get 'em free with a Happy Meal in a year," she says.
Usually, I carry a trusty laptop with Linux on it, but as you all know, upgrading is a crap shoot, and sometimes, in the middle of an upgrade to a new kernel version, the Linux ABI story ain't the best and something go wrong. So my triple boot laptop has been booting Solaris x86-only in recent weeks/months. And it'll stay that way until I find some time to fix the install without hosing all my data on the existing slice. Well, I thought it was a bummer that I didn't have Linux with me, since, for things like CD-ripping and burning, it's been very handy and relatively easy to use. In fact, I believe the ability to rip and burn audio and mp3 CDs (as well as hook up digital cameras and other device support), has been critical to Linux's success. Without those utilities, there wouldn't have been the widespread adoption of Linux in the enterprise. In essence, Linux offered the Geeks something other Unices couldn't - LIFESTYLE.
Getting the powers-that-be who direct Solaris to view Multi-media support on Solaris, has been a long struggle for a lot of folks inside, and for many years. Senior/Upper management got the need for an Office Suite pretty quick. And Open Office/Star Office is just an awesome product. But office productivity doesn't equate to LIFESTYLE. A word processor isn't fun. You use it when a paper is due and you gotta get the darn thing out. You use a presentation package when customers are gonna show up the next day and you need to make something look pretty to sell them on some product or idea. And a spreadsheet... well, it's useful when creating PTA invoices to submit for reimbursement.
I thought Solaris was a long way from offering any Lifestyle, but I was wrong.
Stuck without operational Linux, I gave Solaris a try. And reading the man page on the cdrw(1) command, I quickly found out that it's possible to rip audio tracks and quite easily. For example, if you want to rip the 7th audio track off of any audio CD to a .wav file, then just do this:
% /bin/cdrw -x -T wav 7 myaudiotrack.wav
So imagine what any shell scripter or Java programmer could do with a command line this simple... well, yes, it was easy enough to script this and rip and re-title every single song off of a CD and it's pretty fast too - probably less than 4 minutes to rip an hour of music into .wav format.
Once in .wav format, to convert it to .mp3, we can use any program. My preference is for Lame. And getting any version 3.9.x or later compiles cleanly and easily on Solaris x86 and runs fairly quickly, ripping at close to 6x playing speed for 128kbps bitrate. Usage is also straightforward. My ears aren't finicky so I don't need a higher bit rate. And if your cheap mp3 player is only 512 MB, the files are smaller than ripping using a higher bitrate.
% /usr/local/bin/lame -h -b 128 --ta "Artist" --tt "Title" myaudiotrack.wav myaudiotrack.mp3
You may want to keep the .wav files around if you ever plan to burn a backup of your CD. But I usually delete them and just keep the .mp3 files. Some folks don't like the fact that .mp3s are lossy and noticeably lossy at 128kbps, so you can rip at a higher rate and store them which is still much smaller than the .wav files. I convert the .mp3 back to .wav files using mpg123 which is available freeware, and included on the Solaris 10 update 1 companion software distribution. If you've installed the companion software, then you'll find it in /opt/sfw/bin/mpg123. The command to convert songs back to .wav is:
% /opt/sfw/bin/mpg123 --wav myaudiotrack.wav myaudiotrack.mp3
When you have all the tracks you want in .wav format, burning the audio CD is straightforward. Just use:
% cdrw -a [track1.wav] track2.wav ....] trackN.wav]
So all this playing around with audio clips made me reconsider if Solaris can yield some semblance of LIFESTYLE. Yes. I think it can. The real question though is whether it could load songs onto the el cheapo MP3 player which is supposedly a usb-storage device. Funny thing is that the manufacturer claims that one can use Linux 2.2 and later with this player. But some users have had issues with kernel 2.6 and the usb port with this device. I had some issues with Fedora Core 3 at home, which has been upgraded a few times. There appeared to be an "Error USB Port 1" on Linux in the log files. I didn't expect much on Open Solaris Nevada build 48 if Linux couldn't even see this.
So on to Solaris. And as expected, nothing happened. Well there was some output in the /var/adm/message file on Solaris, but the usb-storage didn't mount. Yes, I was a little disappointed, until I got an idea to contact some of our Beijing driver folks working on USB. I got my hands on an early version of USB driver and after installing, I tried plugging the device in and, WOW! The device mounted and was found in /media. I found out that the MP3 player only supports USB 1.1, so it's a slow dog to upload songs. But after a couple of hours of chugging along, I managed to load up some oldies and goodies for my exceptional entertainment-on-the-go. I've checked recently with build 51 of Solaris Nevada, and yes, the new USB is in there, so soak up the Lifestyle folks. And if you have some cool scripts or Java GUI front end for the command line utils to rip and process audio clips, let me know. I would upload mine to Java.NET, except they're pretty embarrassing right now. Maybe later after code clean-up.
[disclaimer: Please use information here only to create -legal- archives of music you own. Don't be a spoil-sport and steal music. Support your favourite musicians and their labels]. November 16, 2006 05:08 PM PST Permalink


