Skip navigation

Tag Archives: sylvania g

I previously posted about a problem with my Sylvania G netbook (original model GNET13001 with a VIA C7-M CPU, not the Meso) that I recently upgraded to a 32GB KingSpec 1.8″ ZIF SSD, where it would boot Windows XP just fine, but a Windows 7 installation on the same hard drive would do something extremely unusual: the system would not only fail to boot Windows 7 at all, but the BIOS would not even load and execute the MBR at all, skipping the hard drive ENTIRELY in the boot order.

I figured this out late last night, powered by coffee, Doritos with jalapeno cheddar dip, and lots of forum posts about polyphasic sleep to distract me periodically and break the monotony. The major difference between XP and Windows 7 is the partitioning and MBR code, and the Windows 7 MBR code boots up Windows XP just fine, leaving partition tables as the most likely culprit. I modified the MBR assembly code to output a message indicating that the MBR was loaded and executed, and then halt the system. This way I would be certain that the MBR was executing at all and wouldn’t wonder if the code was somehow tripping over something that caused it to kick right back out. With a partition spanning the full disk, my message showed up. That was expected; XP worked fine, and the partition table was set up in the same fashion that it was under XP. Then, to test and see if we had some sort of issue relating to the cylinder/head/sector geometry values in the raw partition table data, I tweaked the values in the table to be slightly different, and saw no change. Then, to see if we were dealing with a problem with the starting sector for partition 1 being 2048 under Windows 7 instead of 63 under XP, I gradually bumped the partition entry up; first to 64, then 100, 200, 400, 1000, 2000, 2047, and 2048. None of these partition starting sectors caused the boot process to fail. Then, I started trimming the ending of the partition. From 31.6GB to 15GB, then to 4GB. No change, it still tried to boot.

I changed the ending cylinder from near 1000 all the way down to 100 and it stopped booting. YES!

From there, it was simply some intelligent logical bisection of the numbers: 200 failed, but 400 worked. Since 256 is 2^8 (powers of two being very significant) I tried 250, 255, and 256, which also failed. A greater jump straight to 300 passed, though; it was at that point that I realized I was dancing around another important number in terms of computer memory: 2,097,152 KB (4,194,304 512-byte sectors) which is also a power of 2, and happened to be right between the sector counts of 256 and 300 cylinders (these equations are in C/H/S format, and I’m ignoring the first 2048 or so skipped sectors just to annoy you):

256*255*63 = 4,112,640 sectors
300*255*63 = 4,819,500 sectors

With this new information, I changed over to LBA (sector) entry instead, and made the TOTAL number of sectors in this partition 4,194,303. It failed to boot.

When I set the total number of sectors in the first partition to 4,194,304 sectors (exactly 2GB), the Sylvania G loaded and executed the MBR normally, where just one sector less would cause the entire hard drive to be skipped in the boot order.

This effectively means that a stock Windows 7 can never boot on this system without major trickery. I consider this a very severe and stupid BIOS bug. What I don’t understand is how it is possible that this check even exists in the first place. The computer would have to read the MBR from the hard drive into memory and intentionally check the first partition’s size for a minimum amount to make this bug happen, so someone either at VIA, Phoenix (it’s a Phoenix BIOS), or Sylvania (Digital Gadgets, Inc.) had to go out of their way to put this bug into place. Worse yet, there are absolutely no BIOS updates in existence for the Sylvania G, and never will be, so this bug is permanent. Fortunately, if your first partition is larger than 2GB in size, you can blissfully ignore this problem, which means that Linux installations using a compatible partitioning scheme, Windows XP, and Windows Vista all should run on the Sylvania G without hitting this problem at all. Windows 7 is effectively not an option, though. In the next few days, I plan to attempt to overcome this bug and get Windows 7 working on the Sylvania G anyway, as a personal challenge if nothing else.

I am left to ponder what other systems might be having this same issue. The BIOS has no business whatsoever attempting to “verify” my partition table of choice, in my opinion, and I want to know at what point and for what purpose this bug/misfeature was introduced. If anyone has a system that seems to skip the hard drive in the boot order with Windows 7, when Windows Vista or especially Windows XP would work just fine, please leave a comment below with your experiences and insights. I’d love to engage in a discussion with anyone else who feels they may have hit this type of bug.

UPDATE: I have verified that the problem boils down to one single check against the LBA “number of sectors” in partition 1 on the drive being equal to 0x400000 (4194304) or higher, and nothing more. I was able to get Windows 7 to boot normally by copying everything from partition 1 into partition 2, deleting partition 1, then using a hex editor to change byte 0x1CC to 0x40. Since all other parts of partition 1’s table entry are zeroed out, it isn’t seen as a valid partition on the disk, but the BIOS is only checking the DWORD value at 0x1CA-0x1CD to be 0x400000 or greater, so it simultaneously bypasses the bug/misfeature in the BIOS and doesn’t confuse the MBR nor Windows 7 at all, as the partition structure is completely valid. If I was adventurous, I’d shuffle the partition down to sector 2048 and reclaim the missing 100MB, but since I’d lose that space under Windows 7’s out-of-the-box partitioning scheme anyway, and it’s 0.1GB of a 31.6GB SSD, that kind of capacity loss isn’t significant at all.

Since the workaround is as simple as using a dummy entry where partition 1 is supposed to be, this trick should work for any operating system. Just start partitions at number 2 instead of 1, and apply the change 1 with a hex editor when you’re done, and you can have a tiny “first” partition without consequence! The only time you’ll ever need to redo the hack is if you run something that rewrites that portion of the partition table.

It’s official: something went severely wrong with the Sylvania G netbook I bought in October.  The keyboard AND POWER BUTTON will completely “lock up” at random and QUICKLY, yet the computer itself still runs in the background, and the hard drive developed a couple of bad sectors (which I remedied by doing a zero fill–more on that in another post).  It’s fairly unusable now, and it’s still within the warranty period, so I called up Sylvania’s support number for help.  The company that actually makes these netbooks is called Digital Gadgets, and it is them who I have dealt with.  So, how did it go?

I haven’t been this happy about a customer service experience EVER.

I explained to the tech that I bought the netbook in October 2008, that I run a computer service shop, and detailed heavily what was wrong and the evidence that I had gathered to make my judgment call that the netbook was screwed up.  Apparently the ink used for the serial number sticker is poor, because it had smudged off to the point that it was unreadable, which I made very clear early on in the call.  This is about where you would expect me to spew off about the run-around I was given and the stupid hoops I had to jump through to prove to the person that it was indeed screwed up, because 99.9% of service and support agents have almost no authority to help customers and are usually in the business of preventing warranty returns at any cost.

But that didn’t happen, not even a tiny little bit.  No run-around?  Surely I jest, right?  WRONG!

The tech support agent, named William Lee, promptly started the process of generating an RMA and took my shipping address to send a totally free return shipping box to.  About eight hours later (and after business hours, no less) I had an RMA number in my email inbox, with instructions on what to do when the box arrived.  As of this writing, the box hasn’t yet appeared, but that’s because I only called them a couple of days ago.

It is astonishingly refreshing to be able to deal with someone like William.  He did everything exactly right, without a single flaw in his procedure.  He LISTENED TO THE CUSTOMER’S PROBLEM, taking the time to ensure he understood exactly what was going on from my perspective.  He also BELIEVED THE CUSTOMER’S STORY AND EXHIBITED BELIEF IN THE CUSTOMER’S GOOD FAITH, which is the exact opposite of what most suppot agents do: showing a lack of faith and general distrust of the customer right off the bat.  Because he LISTENED and BELIEVED, this brought about the UNDERSTANDING  that there was a clear issue covered under the warranty which needed to be resolved quickly as possible.  Within a reasonable time frame, he PROVIDED A SPEEDY RESOLUTION TO THE CUSTOMER’S PROBLEM.

Let me explain exactly why I am writing in this fashion.  William’s example should be followed by all companies, and sadly it is almost nonexistent in the corporate customer service landscape of today.  The benefits to the customer (in this case, myself) are fairly obvious: the problem was resolved quickly and the customer’s precious time was not wasted to achieve that resolution.  But what about the benefits of William’s actions to the BUSINESS?

  1. William spent as little time as possible chatting it up on the telephone.  This left William free to service other customers, reducing overall load on the customer service department at Digital Gadgets.  It also made William a much more valuable asset to the company, because William is able to service more customers than an agent who is given no authority and is required by the company to simply  toss customers through hoops.
  2. On the flip side, William did not abbreviate our conversation.  He spent the time required to understand my situation, but did not ask me to perform senseless exercises when it was quite clear that the problem was hardware-related and not fixable over the phone.
  3. I was heard but not patronized, AND a SIMPLE solution was presented QUICKLY.  This greatly increases my faith in Digital Gadgets as one of their customers, increasing the chances that I will purchase from them in the future AND RECOMMEND THEIR PRODUCTS TO OTHERS  AS WELL.  Over time and across many customers who are similarly situated, this leads to MORE SALES, which can quickly and easily exceed the cost of a warranty repair on my one individual netbook.

William is doing it right.  Other businesses could take a few lessons from how he handled my situation.  I can’t wait to get my fixed toy back in good working order, and I’m very happy to have bought a computer from a company that treats me like a customer should be treated.

At Tritech, many things have changed since even just one month ago.  Here’s a spiffy list of such things.  By the way, my new favorite word is “terse.”  The magic of the word “terse” is that practically all of its synonyms not as terse as “terse.”  It’s a self-fulfilling definition!  ^_^  So, what’s been going on during my silence, you ask?  Read on!

  • My Sylvania G has an unusual issue with the custom Linux installs I’ve done on it where the keyboard and mouse touchpad stop working.  This didn’t happen while I had Windows XP on it whatsoever, nor the custom gOS that came with the computer, so I’m fairly sure it has something to do with a more generic (read: not G-specific) Linux distro running on the VIA CX700M2/C7-M platform.  I doubt it’s the hardware itself because of this.  The headphone jack worked on XP, but not on my custom Linux, which apparently is caused by an incorrect HD Audio pin mapping in the HD Audio drivers in the stock Linux kernel.  I’m not too concerned about it, though, since I haven’t needed to use it much at all lately.
  • I’m still working on the custom Tritech Service System.  It’s grown from a very humble project to simply give us basic remote access to a machine in a clean operating environment to a much more useful general service system.  Big secret: it’s a Linux-based project.  The entire “distro” is essentially built from scratch, however, and uses such classic tools as busybox to minimize space usage.  What really sets TSS apart from the Linux solutions we’re using now such as KNOPPIX (CD) and Slax (USB drive) is the fact that the entire system runs out of an initramfs, eliminating the need to find the rest of the system after booting has started.  This presents some extremely tough limitations, but solves the biggest problems I’ve run into with Linux live CD and Linux live USB distributions.  Sometimes the rest of the system can’t be located at boot-time, which on KNOPPIX in specific “crashes” to a “very minimal shell” in which you can essentially do nothing at all.  When a CD drive is old, dirty, or otherwise impaired, you can have these failures as well as major problems when the KNOPPIX cloop driver chokes on every little scratch in the disc surface.  Slax sucks because it constantly spews out OOPSes in the kernel log when you don’t use a “fresh mode” to boot, and since it doesn’t come with any of the specific tools we need (and the only way to properly add them is to make a squashfs thing I don’t feel like dealing with) it’s a huge pain in the rectum.  Enter the Tritech Service System: completely customized for our own exact needs, reliant only on the bootloader working as expected and not locking a CD drive or USB flash drive in the process, and EXTREMELY FAST to work with.  Plus I made a cool green-on-black splash screen to go with it.  The fact that it easily installs on any Windows XP machine as a boot menu option seals the deal.  NO OTHER COMPUTER SERVICE COMPANY HAS THIS POWERFUL TOOL.  Granted, any sufficiently skilled Linux nut could do what I’ve done, but most Linux nuts would rather deal with KNOPPIX forever than go to the trouble of making their own custom distro from scratch.  The lack of Linux-knowledgeable techs out there makes it impractical for a large company to even bother with.  Now all of you that thought my claim of being the only company that is capable of doing this was audacious can understand exactly why I can make that claim and support it.  We’re not to the point that I’m willing to release it to the public yet, but it’s been so much better than KNOPPIX or Slax on every system I can boot it on that I’ve fast-tracked my development on it and I’m making it a very high priority on my list of things to do.  Stay tuned.
  • We cleaned up the shop.  I’m not kidding: we REALLY CLEANED UP THE SHOP, big time.  One unfortunate problem with computer geeks is a complete lack of organization, particularly with a shop as busy as mine usually is.  We didn’t have many customers at all over the past week, so I took full advantage of the opportunity to give the place a brutal cleaning.  We’ve moved all the security camera equipment, run permanent wires that we’ve been using temps for for months now, purchased lots of additional storage bins and shelving and made excessive use of all of it, organized and better proceduralized the process of shuffling customer equipment in and out and keeping said equipment organized and together, tossed out an insane number of disintegrating cardboard boxes we REALLY didn’t need, built a central working “kiosk” at the front of the shop where we can print invoices and perform other administrative tasks (where previously all of this work was done on our own individual workstations in the back of the shop), optimized the table configuration for better access to existing power and network cables, completely cleared off the bird’s nest of wires that had formed on the front tables due to lots of working and no time to clean up after it, and a ton of other minor things I don’t even want to think about right now.
  • I mowed the lawn at my house.  Like an idiot, I did so at 4 PM instead of waiting until it started to get cooler in the evening.  Boy, push mowers SUCK.
  • Yes, the last item was comic relief.  So is this one.
  • I recently managed to use Linux to fully change XP HALs, rendering all of my disparate XP “clean system images” obsolete.  I’m actually looking at ways to get chntpw/reged to be easily scripted.  They’re the most useful and most underdeveloped Windows tools on Linux that I know of, and a reged that is inherently script-friendly (without using expect) would be a boon to the Tritech Service System, as well as frustrated sysadmins in general around the world.  With a fully scriptable reged/chntpw, I can write a simple package for TSS that replaces HALs on images without any additional effort, making life much easier for my technicians (and myself) in the long run!
  • We also created a custom HAL.INF file that opens up access to all the XP HALs from XP itself.  Reverting to “Standard PC” pre-imaging and then using this file in the images to allow changing to, say, “ACPI Multiprocessor PC” would be much easier than having six images per XP type (home retail/OEM, pro retail/OEM, MCE OEM) and would save TONS of disk space on the poor old server.
  • I’m also writing a custom Web-based Tritech administration system using PHP and MySQL (well duh), which will let me throw a bunch of crap out of my filing cabinet and go nearly paperless.  Invoice creation will also be much easier, because invoices, work orders, and inventory usage share huge amounts of information between them already, so invoice creation would essentially be a two-click thing for most jobs.
  • We raised our prices.  Let’s face it: we charge by the half-hour already, and $80 per hour is outrageously cheap for access to my skills and the skills of the technicians I contract work to and teach my ways to.  We may need to go up again, and I’d love some feedback on that.  I feel that we should because we’re selling a level of quality that Siler City, Pittsboro, Goldston, and all the other towns in Chatham County can’t get within an hour’s driving distance, but of course I fear pricing myself out of business at the same time.  Given the economic climate right now, I’m not keen on going up too fast, but we could use some capital SOON.  Plus, that pesky $65,000 in small business loans is still hanging over my head, sucking up essentially all of the “profits” and converting them to expenses.  The rest is used to buy what we need to keep serving customers in the future.  Even if we charged $100 per hour, our competitors’ bench fees and rates put them at or above that price tag on almost every job, and unfortunately Chatham County’s pre-existing computer service shops apparently have the worst customer service and/or technical skill you can imagine, considering we hear horrible anecdotes from multiple customers on a DAILY BASIS about who we’re supposedly “competiing with.”  I’d hardly call them competition at this point; we’ve had two separate laptops come in that I personally serviced where Siler City’s established computer shop I won’t name had charged $100 or more to look at each and came back with the answer that “it’s unfixable, you need to buy a new laptop.”  In both cases, I fixed the problem in less than five minutes.  One was a loose LCD data cable behind the laptop screen, the other was a RAM stick either making bad contact or the SODIMM socket going out (I moved the stick from one socket to the other.)  I’m so upset when these things happen, and I know I shouldn’t be, but I feel that these things tarnish the reputation of the industry as a whole and bring customers to my door wondering if I’m going to screw them over before they’ve even met anyone on my staff.  I digress a bit, though; should I raise prices from $40 per half hour to $50 per half hour?  What do you think?
  • We now have four technicians that come here to get jobs regularly, and all of them are awesome at what they do.  They really care about my customers, and that’s what I like!

That’s about it for now.  I have a repair job I’m working on that I must return to, so I have to wrap this post up.  A construction company owner and long-time client of mine got a HORRIBLE virus infection, and I have gone very far out of my way to personally see to it that he’s back up by 8 AM tomorrow (Monday) morning.  His system went down completely on Friday.  If you’re a client or potential client of my business, I want you to know that just like I’m doing for his business, I will bend over backwards and do whatever I must to make sure you’re taken care of.  I’ll post more anecdotes about how I do this later.  That’s all, folks.  Happy computing!

%d bloggers like this: