<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6556570756580888640</id><updated>2012-01-13T16:57:35.587-07:00</updated><category term='linux'/><category term='facebook'/><category term='h340'/><category term='snippets'/><category term='lessons'/><category term='S134'/><category term='bugs'/><category term='vmware'/><category term='insyde'/><category term='S130/S190'/><category term='sqlite'/><category term='IRPG'/><category term='diaspora'/><category term='NAS'/><category term='ICS'/><category term='EON'/><category term='FreeNAS'/><category term='bios'/><category term='stupidity'/><category term='firefox'/><category term='scraping'/><category term='SATA'/><category term='shell'/><category term='deadlines'/><category term='flac'/><category term='ahci'/><category term='work capacity test'/><category term='email'/><category term='mp3'/><category term='efi'/><category term='opensolaris'/><category term='myspace'/><category term='in flames'/><category term='LCES'/><category term='acer'/><category term='Intel'/><category term='scripts'/><category term='rant'/><category term='whining'/><category term='web design'/><category term='kludge'/><category term='google'/><category term='int13'/><category term='OSOL'/><title type='text'>~sstahlman/</title><subtitle type='html'>Seth Stahlman's musing on various errata.&lt;br&gt;
- eternity gets a bit long, especially towards the end -</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sstahlman.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sstahlman.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Seth Stahlman</name><uri>http://www.blogger.com/profile/16904131485109317609</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://3.bp.blogspot.com/_06GYNYPUdWM/S_RD12SR0NI/AAAAAAAAAA0/KKks3nCwkLk/S220/ForMyspace_Me-07.03.2001_05.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>10</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6556570756580888640.post-595430692638647451</id><published>2011-02-08T05:18:00.002-07:00</published><updated>2011-02-09T03:41:15.513-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='OSOL'/><category scheme='http://www.blogger.com/atom/ns#' term='FreeNAS'/><category scheme='http://www.blogger.com/atom/ns#' term='lessons'/><category scheme='http://www.blogger.com/atom/ns#' term='NAS'/><category scheme='http://www.blogger.com/atom/ns#' term='whining'/><category scheme='http://www.blogger.com/atom/ns#' term='h340'/><category scheme='http://www.blogger.com/atom/ns#' term='acer'/><category scheme='http://www.blogger.com/atom/ns#' term='opensolaris'/><category scheme='http://www.blogger.com/atom/ns#' term='EON'/><category scheme='http://www.blogger.com/atom/ns#' term='stupidity'/><title type='text'>Acer easyStore H340: Using EON to Fool It Into Being Less of a Piece of Trash</title><content type='html'>Initially, I planned on using FreeNAS on the H340; I downloaded the images (both the 0.7 and the 0.8 beta) and then tried to piece together enough from the scattered bits of advice on the interwebs to make it work.&lt;br /&gt;&lt;br /&gt;I was unsuccessful.&lt;br /&gt;&lt;br /&gt;While some very helpful tutorials exist (specifically, &lt;a href="http://happybison.com/reviews/installing-freenas-on-acer-aspire-easystore-h340-6/"&gt;HappyBison's&lt;/a&gt;) and FreeNAS users tend to be friendly and knowledgeable, it seems there is little interest (from what I was able to see) from the actual developer(s) of FreeNAS in having it used on consumer devices such as the easyStore.&lt;br /&gt;&lt;br /&gt;As an example of this, the only post in the FreeNAS forum with instructions specific to actually loading it on the H340 was banished to a final obscure demise in the 'scripts' forum. (Rather than, say, something silly like the "Install" forum, where it was originally posted, and then moved from by an admin.)&lt;br /&gt;&lt;br /&gt;Combined with what appears to be a large increase in size of the .08 version, it became apparent to me trying to continue with FreeNAS was likely less than ideal: I guess the company now maintaining it has hardware to sell? &amp;nbsp;Whatever the case, I did try multiple USB sticks with different versions, blindly, on the H340, with no success. When I was finally able to see output, both releases (stable and beta) were crapping themselves in different places. &amp;nbsp;Both worked just fine booting in a VM.&lt;br /&gt;&lt;br /&gt;Regarding output: In my vanity and do-it-yourself zeal, I had attempted to follow the schematics for building a custom 'debug' cable: I now have a 17" LCD with a sadly frayed pigtail as a lasting testament to my ineptitude at doing so. (It was already somewhat trashed: No, really, it was, before I touched it!) (I also have spare terminals and those little plastic doodads. &amp;nbsp;Note to self: Software people should stick to software and stay away from the scary electronics stuff.)&lt;br /&gt;&lt;br /&gt;Ranting:&lt;br /&gt;After my utter fail at making my own debug cable, I gave in and just bought the Zotac from Newegg: not because it's perfect for the job (it's not) or because it's really very good (it's not), but because it was the cheapest pcie x1 gfx card I could find. Note here: I'm not a fan of the H340. The design is ... lacking in many ways. I realize it's consumer level. I realize the stated audience for it (running Windows Home Server) is unlikely to have much interest in tearing it apart. &amp;nbsp;I realize if they didn't make it so braindead, people would just enjoy having a small form factor [insert need here] computer, and then they wouldn't buy the more expensive, just as craptastic, Acer products. &amp;nbsp;Still: even though I got it for under $300 on Black Friday, I regret not having pulled the trigger on the Intel SS2400 instead. &amp;nbsp;Or, for that matter, hindsight being what it is, just spending a little extra and building a nice NAS with quality parts; any monetary savings on this long ago evaporated with the timesink of it.&lt;br /&gt;&lt;br /&gt;Why the need for the video card in the first place? &amp;nbsp;Because... just taking out the hard drive isn't enough to get it to boot off a usb device. &amp;nbsp;By the time I got to the point of testing booting off a hard drive with an image, I was sick of screwing with it (I just bought the damn gfx card.) However, it likely would have worked. &lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_06GYNYPUdWM/TVEomBc4lFI/AAAAAAAAACw/sYioxxwZqi8/s1600/Acer_easyStore_H340_with_keyboard_and_monitor.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_06GYNYPUdWM/TVEomBc4lFI/AAAAAAAAACw/sYioxxwZqi8/s1600/Acer_easyStore_H340_with_keyboard_and_monitor.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;H340 with Zotac Card&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;What didn't work was booting from PXE or off anything usb: floppy, cdrom, or flash. &amp;nbsp;My educated guess why not: With the default boot order, the internal flash gets first priority, which naturally has the Windows Home Server recovery; only after using the gfx card was I able to watch the WHS "recovery server" defecate all over itself on every boot.&lt;br /&gt;&lt;br /&gt;For the brave folks wandering here, and maybe trying to save themselves $65, you can try the following blindly (and let me know if it works for you):&lt;br /&gt;(Note: this is with no hard drives attached, no network cable, and a flash drive hooked up. YMMV.)&lt;br /&gt;Enable debug jumper.&lt;br /&gt;Plug in USB keyboard.&lt;br /&gt;Turn on H340. Wait until numlock on keyboard comes on. Hit&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt; F2&lt;/span&gt;.&lt;br /&gt;You should now be on the BIOS setup screen - try the following Konami codes:&lt;br /&gt;To change "After Power Failure: [Last State]" to off:&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; → &lt;/span&gt;(from Information to Main)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; → &lt;/span&gt;(from Main to Advanced)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; ↓&lt;/span&gt;&amp;nbsp;(from Hardware Monitor to Advanced Chipset Control)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; ↓&lt;/span&gt;&amp;nbsp;(from Advanced Chipset Control to After Power Failure:)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Enter&lt;/span&gt; (select menu - is at Last State)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; ↑ &lt;/span&gt;(select "Stay Off")&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Enter&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;F10 &lt;/span&gt;(Save And Exit)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Enter&lt;/span&gt; ("Yes" should be selected in the "Do you really want to save and exit?" prompt)&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_06GYNYPUdWM/TVEoaA9JCjI/AAAAAAAAACs/S4W1Qanf9L4/s1600/Acer_easyStore_H340_Default_Boot_Order.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_06GYNYPUdWM/TVEoaA9JCjI/AAAAAAAAACs/S4W1Qanf9L4/s1600/Acer_easyStore_H340_Default_Boot_Order.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;H340 Default Boot Order&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Change Boot Order: (This should make your boot order: PCI BEV, USB CDROM, USB Key, USB HDD (this is the SMI)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; → &lt;/span&gt;(Info to Main)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; → &lt;/span&gt;(Main to Advanced)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; → &lt;/span&gt;(Advanced to Boot)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;3&lt;/span&gt;&amp;nbsp;("Loads default boot sequence" Options 1-4)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;F10&lt;/span&gt; (Save and Exit)&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;Enter&lt;/span&gt; ("Yes")&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_06GYNYPUdWM/TVEoRr5DP2I/AAAAAAAAACo/keH1jZTYxOA/s1600/Acer_easyStore_H340_F12_Bootmenu.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_06GYNYPUdWM/TVEoRr5DP2I/AAAAAAAAACo/keH1jZTYxOA/s1600/Acer_easyStore_H340_F12_Bootmenu.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;F12 Boot Menu&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Accessing Boot Menu: Turn on H340. Wait until numlock blinks twice. Hit&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt; F12&lt;/span&gt;. (see picture...)&lt;br /&gt;&lt;br /&gt;So, after setting the BIOS to boot off a thumb drive, EON NAS booted without a hitch to its prompt. &amp;nbsp;At this point, it should be possible to SSH in, and, here's the really really hard part to get EON installed on the SMI drive:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New', Courier, monospace;"&gt;install.sh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Yup. &amp;nbsp;Just that.&lt;br /&gt;&lt;br /&gt;Backtracking slightly, when FreeNAS wasn't booting (blindly) I looked for another option, and found EON. I hadn't heard anything about it before, but it seemed like what I needed: Small, maintained, with documentation AND the proper driver for the Marvell (yukon) NIC already integrated. &amp;nbsp;The only drawback being it's Solaris, which was completely alien to me. &amp;nbsp;After a bit of mucking about with it, thought, I found it's similar enough to linux and bsd that the learning curve for basic usage was quite short.&lt;br /&gt;&lt;br /&gt;Unfortunately, I didn't do enough research (R'ingTFM) beforehand, so, note: Get the CIFS version. I got the Samba version. &amp;nbsp;To me, it seemed like the same thing, and the difference wasn't elaborated on (at least, anywhere I'd seen). &amp;nbsp;So, what's the difference? CIFS has kernel support and seems to be easier to tie in with ZFS, with perhaps a small performance boost.&lt;br /&gt;&lt;br /&gt;Samba is just what you're likely used to: a smb.conf file and all the usual Samba options you've become accustomed to. While it was simple setting it up (I just used most of what I already had on my main system) most of the instructions for sharing with OpenSolaris seem to be targetted towards CIFS installs. &amp;nbsp;While getting a share going with the Samba version is cake, it feels as though the 'right' way would have been to have used the CIFS version.&lt;br /&gt;&lt;br /&gt;Regardless, here's how I got to the point of having EON booting on the H340:&lt;br /&gt;Downloaded &lt;a href="http://eonstorage.blogspot.com/2010/04/eon-zfs-storage-0600-based-on-snv-130.html"&gt;EON 64-bit x86 Samba ISO Image Version 0.60.0&lt;/a&gt;&lt;br /&gt;Mounted in VMware&lt;br /&gt;Booted&lt;br /&gt;Install.sh to usb flash drive in vm.&lt;br /&gt;Move flash drive to H340.&lt;br /&gt;Boot.&lt;br /&gt;Log in.&lt;br /&gt;Run install.sh.&lt;br /&gt;Fin!&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_06GYNYPUdWM/TVEp54mKzaI/AAAAAAAAAC0/sfXDsi3-ELs/s1600/Acer_easyStore_H340_installing_to_SMI.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_06GYNYPUdWM/TVEp54mKzaI/AAAAAAAAAC0/sfXDsi3-ELs/s1600/Acer_easyStore_H340_installing_to_SMI.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Installing EON to SMI flash&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Further notes:&lt;br /&gt;Just in case I ever need it (perhaps I'm feeling like hurting myself and don't have anything sharp, so need a dull, blunt pain?):&lt;br /&gt;(Make sure you used a flash drive with plenty of space)&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New', Courier, monospace;"&gt;dd if=/dev/dsk/c1t0d0p0 of=/mnt/eon0/WHS_Firwmare_Backup.bin bs=512&lt;/span&gt;&lt;br /&gt;This should be done before doing install.sh; now you can abuse the internal flash without quite the same cold dread.&lt;br /&gt;&lt;br /&gt;Setting up EON is pretty simple: EON's creator (&lt;a href="http://eonstorage.blogspot.com/"&gt;Andre Lue&lt;/a&gt;) has pretty comprehensive documentation on his site. &amp;nbsp;As an aside, before I broke down and ordered the gfx card, I still thought I was screwing up something with copying the images to my flash drives, and emailed Andre with obviously n00b questions: despite the unorthodox pestering (he seems to usually provide support via his blog and the OSOL forums) I got responses with much helpful advice; most of it already available had I bothered reading his blog in the first place. (For example, dealing with the issue of booting in a VM (-B disable-pcieb=true). &amp;nbsp;The other reasons notwithstanding, I can wholeheartedly recommend EON simply because of the caliber and character of its creator.&lt;br /&gt;&lt;br /&gt;Some random notes/gotchas:&lt;br /&gt;/mnt/eon0/boot/x86.eon is what grub actually uses. &amp;nbsp;x86.eon.oem is the backup. &amp;nbsp;If you're sure your current boot works, you can get rid of the .oem one. &amp;nbsp;To get rid of the e1000g0 driver, if you boot in a VM initially, you'll likely need to remove the net file manually.&lt;br /&gt;&lt;br /&gt;smartctl: initially, was causing the crappy WD green drives to get stuck in a spin (and report the temperature at over &lt;span class="Apple-style-span" style="color: red;"&gt;450°c&lt;/span&gt;, heh!). &amp;nbsp;I hadn't bothered to process the FAQ, where the proper syntax is listed. &amp;nbsp;The problem? It needs _12_ byte commands not 16 byte commands. &amp;nbsp;So, this works fine:&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New', Courier, monospace;"&gt;# smartctl -d sat,12 -A /dev/rdsk/c1t0d0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;smartctl version 5.38 [i386-pc-solaris2.11] Copyright (C) 2002-8 Bruce Allen&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;Home page is http://smartmontools.sourceforge.net/&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;=== START OF READ SMART DATA SECTION ===&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;SMART Attributes Data Structure revision number: 16&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;Vendor Specific SMART Attributes with Thresholds:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;ID# ATTRIBUTE_NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;FLAG &amp;nbsp; &amp;nbsp; VALUE WORST THRESH TYPE &amp;nbsp; &amp;nbsp; &amp;nbsp;UPDATED &amp;nbsp;WHEN_FAILED RAW_VALUE&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp;&amp;nbsp;1 Raw_Read_Error_Rate &amp;nbsp; &amp;nbsp; 0x002f &amp;nbsp; 200 &amp;nbsp; 200 &amp;nbsp; 051 &amp;nbsp; &amp;nbsp;Pre-fail &amp;nbsp;Always &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp;&amp;nbsp;3 Spin_Up_Time &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0027 &amp;nbsp; 170 &amp;nbsp; 154 &amp;nbsp; 021 &amp;nbsp; &amp;nbsp;Pre-fail &amp;nbsp;Always &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp; &amp;nbsp; &amp;nbsp; 8475&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp;&amp;nbsp;4 Start_Stop_Count &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0032 &amp;nbsp; 100 &amp;nbsp; 100 &amp;nbsp; 000 &amp;nbsp; &amp;nbsp;Old_age &amp;nbsp; Always &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp; &amp;nbsp; &amp;nbsp; 43&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp;&amp;nbsp;5 Reallocated_Sector_Ct &amp;nbsp; 0x0033 &amp;nbsp; 200 &amp;nbsp; 200 &amp;nbsp; 140 &amp;nbsp; &amp;nbsp;Pre-fail &amp;nbsp;Always &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp;&amp;nbsp;7 Seek_Error_Rate &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x002e &amp;nbsp; 100 &amp;nbsp; 253 &amp;nbsp; 000 &amp;nbsp; &amp;nbsp;Old_age &amp;nbsp; Always &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp;&amp;nbsp;9 Power_On_Hours &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0032 &amp;nbsp; 100 &amp;nbsp; 100 &amp;nbsp; 000 &amp;nbsp; &amp;nbsp;Old_age &amp;nbsp; Always &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp; &amp;nbsp; &amp;nbsp; 26&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp;10 Spin_Retry_Count &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0032 &amp;nbsp; 100 &amp;nbsp; 253 &amp;nbsp; 000 &amp;nbsp; &amp;nbsp;Old_age &amp;nbsp; Always &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp;11 Calibration_Retry_Count 0x0032 &amp;nbsp; 100 &amp;nbsp; 253 &amp;nbsp; 000 &amp;nbsp; &amp;nbsp;Old_age &amp;nbsp; Always &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;&amp;nbsp;12 Power_Cycle_Count &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x0032 &amp;nbsp; 100 &amp;nbsp; 100 &amp;nbsp; 000 &amp;nbsp; &amp;nbsp;Old_age &amp;nbsp; Always &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp; &amp;nbsp; &amp;nbsp; 31&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;192 Power-Off_Retract_Count 0x0032 &amp;nbsp; 200 &amp;nbsp; 200 &amp;nbsp; 000 &amp;nbsp; &amp;nbsp;Old_age &amp;nbsp; Always &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp; &amp;nbsp; &amp;nbsp; 25&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;193 Load_Cycle_Count &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0032 &amp;nbsp; 200 &amp;nbsp; 200 &amp;nbsp; 000 &amp;nbsp; &amp;nbsp;Old_age &amp;nbsp; Always &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp; &amp;nbsp; &amp;nbsp; 122&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;194 Temperature_Celsius &amp;nbsp; &amp;nbsp; 0x0022 &amp;nbsp; 109 &amp;nbsp; 105 &amp;nbsp; 000 &amp;nbsp; &amp;nbsp;Old_age &amp;nbsp; Always &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp; &amp;nbsp; &amp;nbsp; 43&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;196 Reallocated_Event_Count 0x0032 &amp;nbsp; 200 &amp;nbsp; 200 &amp;nbsp; 000 &amp;nbsp; &amp;nbsp;Old_age &amp;nbsp; Always &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;197 Current_Pending_Sector &amp;nbsp;0x0032 &amp;nbsp; 200 &amp;nbsp; 200 &amp;nbsp; 000 &amp;nbsp; &amp;nbsp;Old_age &amp;nbsp; Always &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp; &amp;nbsp; &amp;nbsp; 4&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;198 Offline_Uncorrectable &amp;nbsp; 0x0030 &amp;nbsp; 200 &amp;nbsp; 200 &amp;nbsp; 000 &amp;nbsp; &amp;nbsp;Old_age &amp;nbsp; Offline &amp;nbsp; &amp;nbsp; &amp;nbsp;- &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;199 UDMA_CRC_Error_Count &amp;nbsp; &amp;nbsp;0x0032 &amp;nbsp; 200 &amp;nbsp; 200 &amp;nbsp; 000 &amp;nbsp; &amp;nbsp;Old_age &amp;nbsp; Always &amp;nbsp; &amp;nbsp; &amp;nbsp; - &amp;nbsp; &amp;nbsp; &amp;nbsp; 165&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: purple; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"&gt;200 Multi_Zone_Error_Rate &amp;nbsp; 0x0008 &amp;nbsp; 200 &amp;nbsp; 200 &amp;nbsp; 000 &amp;nbsp; &amp;nbsp;Old_age &amp;nbsp; Offline &amp;nbsp; &amp;nbsp; &amp;nbsp;- &amp;nbsp; &amp;nbsp; &amp;nbsp; 0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(Output above is the drive that came with the H340.) &amp;nbsp;I've yet to figure out what (if anything) to do about the lack of TLER support, but I did use&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New', Courier, monospace;"&gt; wdidle3 /d&lt;/span&gt; (via a flash drive boot) to turn off the stupid 8 second head parking; the Load Cycle Count hasn't grown much since. Also, I added the following to my power.conf to compensate (and yes, I could have set &lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New', Courier, monospace;"&gt;wdidle3 /s300&lt;/span&gt;, but this way, it's in OSOL's hands and not WDs...):&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;device-thresholds &amp;nbsp; &amp;nbsp; &amp;nbsp; /dev/dsk/c1t0d0 5m&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;device-thresholds &amp;nbsp; &amp;nbsp; &amp;nbsp; /dev/dsk/c1t1d0 5m&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;device-thresholds &amp;nbsp; &amp;nbsp; &amp;nbsp; /dev/dsk/c1t2d0 5m&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;device-thresholds &amp;nbsp; &amp;nbsp; &amp;nbsp; /dev/dsk/c1t3d0 5m&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Notes about getting the binary kit installed; Andre's instructions are clear for it, but there aren't really any decent instructions on actually making IPS 'do stuff' --- so, attempting to install the man pages for OpenSolaris:&lt;br /&gt;/pool/pkg-toolkit-sunos-i386/pkg/bin/pkg install -v SUNWman&lt;br /&gt;(and SUNWdoc...)&lt;br /&gt;and trying to use /usr/bincatman -w (to create the windex file), never gave me working manpages: Not essential, but somewhat annoying for an OSOL newb. I managed to stop myself just short of trying to get gcc on the h340; at some point, one recognizes it's JUST for sharing files and stops messing with it. &lt;br /&gt;&lt;br /&gt;Speaking of sharing, one small hiccup: nmbd isn't enabled by default. (It's installed, just not started.) &amp;nbsp;So, for folks wanting the H340 to advertise itself, you need this:&lt;br /&gt;&lt;a href="http://wikis.sun.com/display/BigAdmin/Enabling+Browsing+with+Samba+in+Solaris+10+Update+4"&gt;http://wikis.sun.com/display/BigAdmin/Enabling+Browsing+with+Samba+in+Solaris+10+Update+4&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Unresolved stuff:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;- The stupid blinking 'i'; possible to fix by using the freebsd driver posted in the WHS forums and porting to OSOL? Not a huge issue, since it's in a closet.&lt;/li&gt;&lt;li&gt;- Temperature: drives run _hot_. &amp;nbsp;Is this just WD braindeadedness, or the crappy design of the H340? (Samsungs in a ReadyNAS stay around 32°C-35°C with load...4x 2TB WD Caviar Greens idle at 44°C-49°C).&amp;nbsp;&lt;/li&gt;&lt;li&gt;- Upgrading version of ZFS... comes with version 22, current is 31?&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;References and Resources:&lt;br /&gt;&lt;a href="http://sites.google.com/site/eonstorage/"&gt;EON ZFS Storage&lt;/a&gt;&lt;br /&gt;&lt;a href="http://breden.org.uk/2009/05/10/home-fileserver-zfs-file-systems/"&gt;Home Fileserver: ZFS File Systems&lt;/a&gt;&lt;br /&gt;&lt;a href="http://docs.huihoo.com/opensolaris/solaris-zfs-administration-guide/html/index.html"&gt;Solaris ZFS Administration Guide&lt;/a&gt;&lt;br /&gt;&lt;a href="http://lildude.co.uk/zfs-cheatsheet"&gt;ZFS Cheatsheet&lt;/a&gt;&lt;br /&gt;&lt;a href="http://download.oracle.com/docs/cd/E19253-01/index.html"&gt;Oracle Solaris 10 Docs&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.sun.com/bigadmin/content/selfheal/smf-quickstart.jsp"&gt;Solaris Service Management Facility Quickstart Guide&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wiki.genunix.org/wiki/index.php/OpenSolaris_New_User_FAQ"&gt;OpenSolaris New User FAQ&lt;/a&gt;&lt;br /&gt;&lt;a href="http://initialprogramload.blogspot.com/2008/07/how-solaris-disk-device-names-work.html"&gt;How Solaris Disk Device Names Work&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.unix.com/man-page/opensolaris/1/man/"&gt;Searchable Solaris Manpages&lt;/a&gt;&lt;br /&gt;&lt;a href="http://blog.agdunn.net/?p=208"&gt;Blog post about WDTLER&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wdc.custhelp.com/app/answers/detail/a_id/3263"&gt;WD's craptastic page on parking issue&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.mediasmartserver.net/forums/viewtopic.php?t=7720"&gt;Linux LED driver for H340&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6556570756580888640-595430692638647451?l=sstahlman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sstahlman.blogspot.com/feeds/595430692638647451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sstahlman.blogspot.com/2011/02/acer-easystore-h340-using-eon-to-fool.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/595430692638647451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/595430692638647451'/><link rel='alternate' type='text/html' href='http://sstahlman.blogspot.com/2011/02/acer-easystore-h340-using-eon-to-fool.html' title='Acer easyStore H340: Using EON to Fool It Into Being Less of a Piece of Trash'/><author><name>Seth Stahlman</name><uri>http://www.blogger.com/profile/16904131485109317609</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://3.bp.blogspot.com/_06GYNYPUdWM/S_RD12SR0NI/AAAAAAAAAA0/KKks3nCwkLk/S220/ForMyspace_Me-07.03.2001_05.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_06GYNYPUdWM/TVEomBc4lFI/AAAAAAAAACw/sYioxxwZqi8/s72-c/Acer_easyStore_H340_with_keyboard_and_monitor.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6556570756580888640.post-6300898425584204009</id><published>2010-12-25T12:25:00.422-07:00</published><updated>2010-12-27T02:09:24.103-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bugs'/><category scheme='http://www.blogger.com/atom/ns#' term='int13'/><category scheme='http://www.blogger.com/atom/ns#' term='efi'/><category scheme='http://www.blogger.com/atom/ns#' term='insyde'/><category scheme='http://www.blogger.com/atom/ns#' term='bios'/><category scheme='http://www.blogger.com/atom/ns#' term='acer'/><category scheme='http://www.blogger.com/atom/ns#' term='SATA'/><category scheme='http://www.blogger.com/atom/ns#' term='ahci'/><category scheme='http://www.blogger.com/atom/ns#' term='Intel'/><title type='text'>... In Which It Is Revealed How An AHCI Bug Makes One's Insyde(s) Freeze</title><content type='html'>I found this code in Intel's AHCI Option ROM from the Insyde BIOS. It appears to be code to build the Translated Device Parameter Table (which is a slightly different&lt;sup&gt;1&lt;/sup&gt; implementation than the one documented in the &lt;a href="http://www.t13.org/documents/UploadedDocuments/project/d1226r7-Enhanced-BIOS.pdf"&gt;Enhanced Working T13 Draft 1126DT&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Psuedo code&amp;nbsp;&amp;nbsp;(version:&amp;nbsp;Serial ATA AHCI BIOS, Version iSrc 1.20_E.0019 07092009):&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;Function Create TDPT for drive&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Read partition table with INT13 0x201&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;If read fails, or 0xAA55 signature isn't present, goto Calculate&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Get head,sectors from FIRST Partition table entry, Ending CHS values&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;heads = head+1 &amp;nbsp;(because of 255 limit in partition table)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;For each partition entry&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;If BOOTABLE (entry[0] == 0x80) goto UsePartition&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;EndFor&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;For each partition entry&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if (entry[0] == 0) and (entry[4] != 0) goto UsePartition&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;EndFor&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;Calculate&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Call CalculateCHS - using DPT and physical size&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if no need for translation, return GOOD&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Goto CreateTDPT with cylinders, heads, sectors&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;UsePartition:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;Read first sector of partition with INT13 0x4200&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;If the word at offset 0x1A is less than 0x100,&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;and the word at offset 0x18 is less than 0x40&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;then&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set heads to the byte at offset 0x1A&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;set sectors to the byte at offset 0x18&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;fi&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;tracksize = heads * sectors&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if tracksize == 0, Goto Calculate&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;DWORD size = (DPT[heads]*DPT[sectors])*DPT[cylinders]&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;b&gt;WORD cylinders = size / tracksize &amp;lt;--- Bad!&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;-- if the result is greater than 65536, a divide overflow occurs&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;-- which isn't handled by the BIOSes&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (cylinders &amp;gt; 1024) cylinders = 1024&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;if ((heads == DPT[heads]) &amp;amp;&amp;amp; (sectors == DPT[sectors])) return GOOD&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;CreateTDPT:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;WORD at DPT[8] &amp;nbsp;= DPT[0] - Save original cylinders&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BYTE at DPT[10] = DPT[2] - Save original heads&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BYTE at DPT[7] &amp;nbsp;= DPT[3] - Save original sectors&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;WORD at DPT[0] &amp;nbsp;= cylinders&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BYTE at DPT[2] &amp;nbsp;= heads&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BYTE at DPT[3] &amp;nbsp;= sectors&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BYTE at DPT[5] &amp;nbsp;= 8 if heads greater than 8, otherwise 0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BYTE at DPT[4] &amp;nbsp;= 0xA0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BYTE at DPT[15] = SUM( DPT[0] .. DPT[14] )&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, what goes wrong? When it breaks, it starts with bad values from the partition table, and tries to fix it with values from the boot parameter block, if it finds "valid" numbers there for heads and sectors (that is, less than or equal to 0xFF and 0x3F, respectively). When these values aren't right, &amp;nbsp;due to full disk encryption, an operating system other than Microsoft Windows, or malicious intent:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;It uses the ending head/sector of the first partition to size the translation layer.&lt;/li&gt;&lt;li&gt;Windows 7 with 100MB partition results in unexpected values for INT13, FUNCTION=8 (eg, 0x13 heads).&lt;/li&gt;&lt;li&gt;It stores those values into the Translated Device Parameter Table.. &amp;nbsp;and then some other code comes along and uses those values. While I can't find where those values are causing the exception, anything doing C/H/S translation will be unhappy.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Looking back at version Serial ATA AHCI BIOS, Version iSrc 1.20E&amp;nbsp;(Gigabyte Desktop Motherboard), I found that it doesn't read from the BPB at all. &amp;nbsp;I speculate the extra read of the NTFS boot-sector was to workaround a&amp;nbsp;problem on Insyde BIOS. &amp;nbsp; This version can be crashed if the two bytes in the partition table are small enough and will hang with&lt;span id="goog_613714769"&gt;&lt;/span&gt; &lt;a href="http://forums.tweaktown.com/gigabyte/24883-welcome-gigabyte-technical-support-74.html"&gt;error code &lt;span id="goog_613714764"&gt;&lt;/span&gt;23&lt;/a&gt;&lt;span id="goog_613714770"&gt;&lt;/span&gt;&lt;a href="http://www.blogger.com/"&gt;&lt;span id="goog_613714765"&gt;&lt;/span&gt;&lt;/a&gt;. Award BIOS will function OK with the other unexpected values, but Insyde BIOS will still crash if it sees them.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Finally, one HP system with an Insyde BIOS has the latest(?) 'fixed' version (Serial ATA AHCI BIOS, Version iSrc 1.20_E.0024 12212009), which reads from both the partition table and the BPB, also adding &amp;nbsp;still more checks. Unfortunately, it seems as though someone messed up and added a further bug, as it doesn't actually use any of the values it reads, but rather discards them all.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;New and improved UsePartition (Serial ATA AHCI BIOS, Version iSrc 1.20_E.0024 12212009):&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;Read first sector of partition with INT13 0x4200&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;if the word at offset 0x1FE is not equal 0xAA55&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; and the byte at offset 0 is not equal 0xEB&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; and the word at offset 0x1A is less than 0x100&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;then&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;set heads to the byte at offset 0x1A&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;fi&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;if (tracks == 0) or ((sectors &amp;amp; 0x3F) == 0)&amp;nbsp;Goto Calculate&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;-- New bug: Since sectors can be at most 0x3F from partition table&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;-- the newer version ALWAYS goes off to Calculate the CHS&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;if (sectors &amp;amp; 0xC0) == 0)&amp;nbsp;&amp;nbsp;Goto Calculate&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;tracksize = heads * sectors&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;if tracksize == 0, Goto Calculate&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;DWORD size = (DPT[heads]*DPT[sectors])*DPT[cylinders]&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&lt;b&gt;WORD cylinders = size / tracksize &amp;lt;&lt;/b&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;-- Uber dangerous&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;-- if the result is greater than 65536, a divide overflow occurs&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;-- which isn't handled by the BIOSes.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;if (cylinders &amp;gt; 1024) cylinders = 1024&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;if ((heads == DPT[heads]) &amp;amp;&amp;amp; (sectors == DPT[sectors])) return GOOD&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;Goto CreateTDPT&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A year later and neither Acer nor Gigabyte are providing fixed BIOSes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;sup&gt;1&lt;/sup&gt;Expected Final TDPT Values from a 60GB SSD:&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;WORD Logical Cylinders &amp;nbsp; 0x400&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BYTE Heads &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0xFF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BYTE Sectors &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x3F&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BYTE Signature &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0xA0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BYTE HeadsAbove8Flag &amp;nbsp; &amp;nbsp; 0x08&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BYTE Ignored &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x00&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BYTE Physical Sectors &amp;nbsp; &amp;nbsp;0x3F&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;WORD Physical Cylinders &amp;nbsp;0x3FFF&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BYTE Physical Heads &amp;nbsp; &amp;nbsp; &amp;nbsp;0x10&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BYTE Ignored[4] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x0&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #351c75; font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;BYTE Checksum &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x89&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6556570756580888640-6300898425584204009?l=sstahlman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sstahlman.blogspot.com/feeds/6300898425584204009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sstahlman.blogspot.com/2010/12/in-which-it-is-revealed-how-ahci-bug.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/6300898425584204009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/6300898425584204009'/><link rel='alternate' type='text/html' href='http://sstahlman.blogspot.com/2010/12/in-which-it-is-revealed-how-ahci-bug.html' title='... In Which It Is Revealed How An AHCI Bug Makes One&apos;s Insyde(s) Freeze'/><author><name>Seth Stahlman</name><uri>http://www.blogger.com/profile/16904131485109317609</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://3.bp.blogspot.com/_06GYNYPUdWM/S_RD12SR0NI/AAAAAAAAAA0/KKks3nCwkLk/S220/ForMyspace_Me-07.03.2001_05.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6556570756580888640.post-8602016855935454441</id><published>2010-12-24T02:40:00.054-07:00</published><updated>2010-12-25T02:50:08.590-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='efi'/><category scheme='http://www.blogger.com/atom/ns#' term='insyde'/><category scheme='http://www.blogger.com/atom/ns#' term='bios'/><category scheme='http://www.blogger.com/atom/ns#' term='acer'/><title type='text'>Acer 5810tz's "Secret" (Shhhhh!) BIOS Menu</title><content type='html'>&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;As described in&amp;nbsp;&lt;a href="http://marcansoft.com/blog/2009/06/enabling-intel-vt-on-the-aspire-8930g/"&gt;http://marcansoft.com/blog/2009/06/enabling-intel-vt-on-the-aspire-8930g/&lt;/a&gt;&amp;nbsp;and on &lt;a href="http://forum.notebookreview.com/acer/513877-acer-aspire-5740g-bios-hacking-switchable-graphics-not-yet.html"&gt;NotebookReview's Forum&lt;/a&gt;, there are hidden menus in Insyde's Acer &amp;nbsp;BIOS. &amp;nbsp;Some folks modify their BIOSes to enable them; however, &amp;nbsp;on the Acer 5810, it's possible to enable some of these menus with just a setup change, which is, of course, safer than having to flash your whole BIOS just to modify a single boolean.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To do so, you need:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;a DOS-bootable USB stick&lt;/li&gt;&lt;li&gt;the flashit.exe binary from the BIOS update&lt;/li&gt;&lt;li&gt;grdb from &lt;a href="http://ladsoft.tripod.com/grdb.htm"&gt;http://ladsoft.tripod.com/grdb.htm&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;Copy the utilities to the usb disk and create a batchfile (ex. modify.bat) and add the following:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #783f04; font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;flashit Setup A04A27F4-DF00-4D42-B552-39511302113D /rb:setup&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #783f04; font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;grdb setup&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #783f04; font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;flashit Setup A04A27F4-DF00-4D42-B552-39511302113D /wb:setup&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Reboot to DOS on the USB stick, run the batchfile and in GRDB type:&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #783f04; font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;e 31a 1&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #783f04; font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;w&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #783f04; font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;q&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;When you reboot, you should have an extra menu "Intel" below "D2D Recovery"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The "hidden setup" is usually located immediately after the "D2D recovery" variable. &amp;nbsp;If you wish to locate it on a different version of Acer Insyde bios, you can write out the setup variable ( the /RB command-line) with and without D2D recovery enabled. &amp;nbsp;The location one past that will be what you need.&amp;nbsp;For example:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #783f04; font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;fc /b setup1 setup2&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #783f04; font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;Comparing files SETUP1 and SETUP2&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #783f04; font-family: 'Courier New', Courier, monospace; font-size: large;"&gt;00000219: 00 01&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;Which is 21A (or 31a if you are using GRDB, because GRDB pretends it's a .COM file )&lt;br /&gt;&lt;br /&gt;Although its unlikely that messing up the setup variables will cause the laptop to not boot, prudence would be to know how to use the FN-ESC "Crisis Recovery mode" and know what the filename is for your particular laptop. &amp;nbsp;(Mine is JM41X64.fd)&lt;/div&gt;&lt;div&gt;&lt;div&gt;Possibly Useful Reference:&lt;/div&gt;&lt;div&gt;&lt;a href="http://forums.lenovo.com/t5/tkb/articleprintpage/tkb-id/Hello%40tkb/article-id/19"&gt;Post On Lenovo Forum With FlashIt Parameters&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Pictures:&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_06GYNYPUdWM/TRW6VjHZORI/AAAAAAAAACQ/luEK14GxRq0/s1600/Acer_Insyde_Intel_01.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="343" src="http://2.bp.blogspot.com/_06GYNYPUdWM/TRW6VjHZORI/AAAAAAAAACQ/luEK14GxRq0/s400/Acer_Insyde_Intel_01.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;"Secret" menu available.&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_06GYNYPUdWM/TRW6WU3NPbI/AAAAAAAAACU/fOEHuLtT0bE/s1600/Acer_Insyde_Intel_02.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="330" src="http://2.bp.blogspot.com/_06GYNYPUdWM/TRW6WU3NPbI/AAAAAAAAACU/fOEHuLtT0bE/s400/Acer_Insyde_Intel_02.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Intel-&amp;gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_06GYNYPUdWM/TRW6YMVUqyI/AAAAAAAAACY/_kYWA5GvlzI/s1600/Acer_Insyde_Intel_03.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="232" src="http://3.bp.blogspot.com/_06GYNYPUdWM/TRW6YMVUqyI/AAAAAAAAACY/_kYWA5GvlzI/s400/Acer_Insyde_Intel_03.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Intel-&amp;gt;Power&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_06GYNYPUdWM/TRW6ZdGW7nI/AAAAAAAAACc/PI0gkgozGDM/s1600/Acer_Insyde_Intel_04.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="221" src="http://4.bp.blogspot.com/_06GYNYPUdWM/TRW6ZdGW7nI/AAAAAAAAACc/PI0gkgozGDM/s400/Acer_Insyde_Intel_04.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Intel-&amp;gt;Advanced&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_06GYNYPUdWM/TRW6ago4DfI/AAAAAAAAACg/j0e8e0hfcAA/s1600/Acer_Insyde_Intel_05.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="231" src="http://4.bp.blogspot.com/_06GYNYPUdWM/TRW6ago4DfI/AAAAAAAAACg/j0e8e0hfcAA/s400/Acer_Insyde_Intel_05.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Intel-&amp;gt;Advanced-&amp;gt;Boot&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6556570756580888640-8602016855935454441?l=sstahlman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sstahlman.blogspot.com/feeds/8602016855935454441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sstahlman.blogspot.com/2010/12/acer-5810tzs-secret-shhhhh-bios-menu.html#comment-form' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/8602016855935454441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/8602016855935454441'/><link rel='alternate' type='text/html' href='http://sstahlman.blogspot.com/2010/12/acer-5810tzs-secret-shhhhh-bios-menu.html' title='Acer 5810tz&apos;s &quot;Secret&quot; (Shhhhh!) BIOS Menu'/><author><name>Seth Stahlman</name><uri>http://www.blogger.com/profile/16904131485109317609</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://3.bp.blogspot.com/_06GYNYPUdWM/S_RD12SR0NI/AAAAAAAAAA0/KKks3nCwkLk/S220/ForMyspace_Me-07.03.2001_05.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_06GYNYPUdWM/TRW6VjHZORI/AAAAAAAAACQ/luEK14GxRq0/s72-c/Acer_Insyde_Intel_01.png' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6556570756580888640.post-1551604246847613062</id><published>2010-12-22T23:05:00.001-07:00</published><updated>2010-12-22T23:06:25.598-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='efi'/><category scheme='http://www.blogger.com/atom/ns#' term='insyde'/><category scheme='http://www.blogger.com/atom/ns#' term='bios'/><category scheme='http://www.blogger.com/atom/ns#' term='ahci'/><title type='text'>The Byte That Bit Me Insyde</title><content type='html'>Since Insyde doesn't seem interested in patching its BIOS, I thought I'd share a neat way to make a laptop with an Insyde BIOS hang on boot by changing a single byte.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #990000; font-size: large;"&gt;Caution:&lt;/span&gt;&lt;/b&gt; &lt;b&gt;&lt;span class="Apple-style-span" style="color: #660000;"&gt;Back up any important data, if you're silly enough to do this on a live system; while this shouldn't mangle any of your bits, it's certainly possible it could.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Also, if you're not terribly fond of grasping naked sectors and pushing values into unfilled gaps, you might want to bail out now.&lt;br /&gt;&lt;br /&gt;The Prerequisites:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Laptop with buggy Insyde EFI BIOS.&lt;/li&gt;&lt;li&gt;SSD or HDD (physical medium unimportant)&lt;/li&gt;&lt;li&gt;Two or more partitions (which is the default Windows 7 configuration, and tends to be the default Linux installation as well).&lt;/li&gt;&lt;li&gt;The SATA port configured as AHCI in BIOS.&lt;/li&gt;&lt;/ul&gt;My hardware configuration:&lt;br /&gt;Acer 5810tz Timeline Notebook, with InsydeBIOS Release 1.35.&lt;br /&gt;&lt;br /&gt;Now, with your personal favorite disk editor of choice (I'm using the very excellent, free and portable &lt;a href="http://mh-nexus.de/en/hxd/"&gt;HxD&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_06GYNYPUdWM/TRLhKrhvpHI/AAAAAAAAACE/xtRacc9YdIQ/s1600/HxD_Sector_2048_Windows_7_Red_Arrow.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="240" src="http://2.bp.blogspot.com/_06GYNYPUdWM/TRLhKrhvpHI/AAAAAAAAACE/xtRacc9YdIQ/s400/HxD_Sector_2048_Windows_7_Red_Arrow.jpg" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;HxD with Physical Disk 1&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_06GYNYPUdWM/TRLhNWUVikI/AAAAAAAAACI/3jJmcf2x0IE/s1600/HxD_Offset_Of_Byte_To_Change.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="51" src="http://2.bp.blogspot.com/_06GYNYPUdWM/TRLhNWUVikI/AAAAAAAAACI/3jJmcf2x0IE/s640/HxD_Offset_Of_Byte_To_Change.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The Byte To Change&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;ul&gt;&lt;li&gt;Select the first partition of your first physical disk (labelled Physical Drive 1 in HxD).&lt;/li&gt;&lt;li&gt;Go to sector 2048. &amp;nbsp; &amp;nbsp;&lt;/li&gt;&lt;li&gt;Go to offset 0x19 (25 decimal) and change from 0 to any value.&lt;/li&gt;&lt;li&gt;Reboot&lt;/li&gt;&lt;li&gt;Watch your laptop with an Insyde BIOS freeze.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: #38761d; font-size: large;"&gt;Don't panic!&lt;/span&gt;&lt;/b&gt; &amp;nbsp;Simply:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;disconnect the laptop drive,&lt;/li&gt;&lt;li&gt;&amp;nbsp;bop into BIOS (F2)&lt;/li&gt;&lt;li&gt;&amp;nbsp;change the SATA mode from AHCI to IDE.&lt;/li&gt;&lt;li&gt;&amp;nbsp;Reconnect your hard drive, and boot. &lt;span class="Apple-style-span" style="font-size: x-small;"&gt;&amp;nbsp;You'll hit the usual Windows BSOD complaining about you trying to boot with the wrong set of disk drivers; boot into the 32 bit recovery console (since many utilities don't yet have 64bit equivalents and the WOW64 subsystem probably won't be available (especially if you're booting a mini-xp environment off a thumb drive instead))&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&amp;nbsp;Run your sector editor, and change byte at offset 0x19 back to 0.&lt;/li&gt;&lt;li&gt;&amp;nbsp;Reboot normally.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;So, what's going on here?&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Sector 2048's where Windows 7 puts the start of its first partition. &amp;nbsp;From the &lt;a href="http://www.ntfs.com/ntfs-partition-boot-sector.htm"&gt;partition boot sector layout&lt;/a&gt; we can see the particular byte is part of the boot parameter block, specifically the high byte of the Sectors Per Track word, which happens to be ignored by Windows 7.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;What's a BIOS doing, caring about this?&lt;br /&gt;&lt;br /&gt;Near as I can tell, this could be an attempt at an AHCI optimization, and the BIOS code simply fails to do a sanity check on the range.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Q.&lt;/b&gt; Except for the occasional black hat looking for a chuckle, who'd want to hang their laptop?&lt;/div&gt;&lt;div&gt;&lt;b&gt;A.&lt;/b&gt;&amp;nbsp;Anyone installing Linux, BSD, or full disk encryption such as Truecrypt and PGPwde.&lt;br /&gt;&lt;br /&gt;These, as part of their normal operation, can change that special byte, giving much excitement and hair pulling to the lucky person whose BIOS, in an effort to be a most helpful puppy, manages to decorate the newspaper with excrement after having a chew with it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'm so glad EFI has led us away from incompabitle, buggy BIOSes!&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Tools mentioned:&lt;/div&gt;&lt;a href="http://mh-nexus.de/en/hxd/"&gt;HxD Hex Editor (used for sector editing)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;a href="http://www.insydesw.com/"&gt;Homepage of Insyde&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Others probably running into this specific issue:&lt;br /&gt;&lt;a href="http://forums.truecrypt.org/viewtopic.php?t=19081&amp;amp;postdays=0&amp;amp;postorder=asc"&gt;Seen on HPs, blamed on encryption&lt;/a&gt;&lt;br /&gt;&lt;a href="http://forum.lenovo.com/t5/Lenovo-3000-and-Value-line/Stuck-at-start-up-after-TrueScript-caused-a-restart-on-G560/m-p/255255"&gt;And Lenovos, blamed on Truecrypt.&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.aaronmbrown.net/blog/2010/10/a505-gets-stuck-on-boot/trackback/"&gt;Seen again, attributed to AHCI+Truecrypt conflict.&lt;/a&gt;&lt;br /&gt;&lt;a href="http://forums.pcbsd.org/showthread.php?t=13363"&gt;Even with BSD!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6556570756580888640-1551604246847613062?l=sstahlman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sstahlman.blogspot.com/feeds/1551604246847613062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sstahlman.blogspot.com/2010/12/byte-that-bit-me-insyde.html#comment-form' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/1551604246847613062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/1551604246847613062'/><link rel='alternate' type='text/html' href='http://sstahlman.blogspot.com/2010/12/byte-that-bit-me-insyde.html' title='The Byte That Bit Me Insyde'/><author><name>Seth Stahlman</name><uri>http://www.blogger.com/profile/16904131485109317609</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://3.bp.blogspot.com/_06GYNYPUdWM/S_RD12SR0NI/AAAAAAAAAA0/KKks3nCwkLk/S220/ForMyspace_Me-07.03.2001_05.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_06GYNYPUdWM/TRLhKrhvpHI/AAAAAAAAACE/xtRacc9YdIQ/s72-c/HxD_Sector_2048_Windows_7_Red_Arrow.jpg' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6556570756580888640.post-8852295440183251024</id><published>2010-09-08T01:53:00.095-06:00</published><updated>2010-10-17T02:44:45.584-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rant'/><category scheme='http://www.blogger.com/atom/ns#' term='diaspora'/><category scheme='http://www.blogger.com/atom/ns#' term='whining'/><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='stupidity'/><title type='text'>Facebook: Can't See MySpace In The Tar Pit.</title><content type='html'>Social networks can be amusing. &amp;nbsp;I have a Facebook account, and as of this blog entry, 7 friends. &amp;nbsp;Actual friends, that I either know irl, or have known virtually for over a decade... all good folks. &amp;nbsp;The posts on my wall tend to be either interesting links, or random pictures, or other interesting sort of things. &amp;nbsp;I can post links to my wall that I find interesting, to share. &amp;nbsp;It's all quite ordinary, really, and not much worth commenting on.&lt;br /&gt;&lt;br /&gt;Except, of course, on August 28, 2010, when I went to log in, and wasn't able to, instead being greeted with this:&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Confirm Your Identity&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;To continue, we need you to provide your phone number. This quick security check helps keep Facebook a community of real people who connect and share using their real identities.&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;i&gt;Confirm your identity by adding a mobile number to your account&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The only option on this screen was "Add Your Phone". ... no 'Cancel' or any option for another authentication method.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since I live far beyond the range of any cell tower, and don't own a mobile phone, using one to confirm my identity with poses something of a problem; especially if I'm not of a mind to drive almost an hour and buy one just to use Facebook! &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However, I do have a Google Voice account, which can accept SMS messages (or, at least, so I thought... turns out it's not compatible with Facebook), so I went through the Add Phone, chose Provider Not Listed, entered the number, and... waited. &amp;nbsp;And waited. &amp;nbsp;And Google'd, and found a FAQ stating Google Voice couldn't accept Facebook SMS messages.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Long story short, I found myself in a loop; going to Add Phone no longer allowed entering a number, but just allowed choosing a provider. &amp;nbsp;I'd get a popup where I could select "Never Got Your Confirmation", which would redirect to a login dialog, which upon log in, would go back to the "Confirm Your Identity" message.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Somewhat bemused and more than slightly annoyed, I searched through Facebook's help forum; there weren't any similar cases. I did, however, find a strange web forum, where others were having the same issue as me, starting at the same time. It seems that Facebook decided folks without a mobile phone number really needed to provide one (data mining, anyone?) and flagged accounts without one listed in need of identity confirming.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(As a tangent, the forum, linked at the end of the email, is the first I've stumbled across where people with the exact same issue are demanded to create one thread per person, resulting in about 50 different threads with people saying they were bumping into this issue, and if anyone replied in any of those threads that they, too, were having this issue, the moderator went into hysterics, telling them to create their own thread... very odd!)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Today, after around 13 bug submissions to various Facebook emails, a support staffer, without mentioning what the problem was, told me to try logging in again, at which time I was able to select "Use a different verification method" (which had appeared a couple days ago, and simply looped back to the Confirm Your Identity screen) and enter my Google Voice number... which then got an automated message with a PIN, that let me confirm that I actually exist. &amp;nbsp;Well, as much as any of us do, here in Universe v. ???.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Since my Facebook usage is so scarce, my only real concern was someone sending me a message and feeling as though I was ignoring them when I didn't respond; I wasn't terribly put out about not being able to log in. &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Still, such an obvious bug existing for almost two weeks, affecting multiple users, and with incredibly half-arsed code on the public-facing end of a large website, speaks volumes about Facebook's view of their 'customers' (read: eyeballs on ads). &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It appears Facebook didn't learn from the happily sinking fad that was MySpace: people'll switch the second there's something that sucks just slightly less than your service. &amp;nbsp;Facebook isn't as God-awful terrible as Myspace, but it's working on it (want to feed my llama? C'mon!). &amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The good news, and the non-ten-ton-heavy-thing light at the end of the tunnel, seems to be Diaspora: social networking 'done right', as it were. &amp;nbsp;Obviously, the attention-whores who use Facebook to try to draw as much attention as they possibly can to their existence ("Hiccup, I'm drinking, and I don't know why I'm sharing that, except I want everyone to ask me why I'm drinking right now, and what I'm drinking, because NOTICE ME, NOTICE ME, NOTICE ME!! Over here!! Look at me!!!) aren't going to be moving any time soon, but the REST of us (is there any irony when someone typing a blog accuses everyone else of being attention whores? :-) ) likely will jump ship as soon as Diaspora's usable.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To clarify, that'd be the people who share links, and their thoughts, and pictures of their dogs and sunsets, and all the sort of stuff that connects us, but not the people who share the approximate growth of their third toe's toenail in the last 5 minutes and 20 seconds. &amp;nbsp;Interestingly enough, Facebook's unlikely to muck about with the accounts of people in the latter category any time soon: Not, of course, that it matters. &amp;nbsp;The tar pit's deep, and there's plenty of room there towards the bottom.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;References:&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.thefacebookforum.net/disabled-accounts-mobile-verification-f9/"&gt;Facebook Forum&lt;/a&gt;&amp;nbsp;- Forum not affiliated with Facebook with moderators giving to throwing hissy fits unless you create lots and lots of threads. (There was a forum created JUST for this issue "Disabled Accounts (Mobile Verification)"&lt;/div&gt;&lt;div&gt;&lt;a href="http://www.joindiaspora.com/index.html"&gt;Diaspora&lt;/a&gt;&amp;nbsp;- Social Networking site that might not completely suck: open source, allows control over one's content and privacy.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6556570756580888640-8852295440183251024?l=sstahlman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sstahlman.blogspot.com/feeds/8852295440183251024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sstahlman.blogspot.com/2010/09/facebook-cant-see-myspace-in-tar-pit.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/8852295440183251024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/8852295440183251024'/><link rel='alternate' type='text/html' href='http://sstahlman.blogspot.com/2010/09/facebook-cant-see-myspace-in-tar-pit.html' title='Facebook: Can&apos;t See MySpace In The Tar Pit.'/><author><name>Seth Stahlman</name><uri>http://www.blogger.com/profile/16904131485109317609</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://3.bp.blogspot.com/_06GYNYPUdWM/S_RD12SR0NI/AAAAAAAAAA0/KKks3nCwkLk/S220/ForMyspace_Me-07.03.2001_05.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6556570756580888640.post-1547800345315511644</id><published>2010-08-08T20:44:00.000-06:00</published><updated>2010-08-08T20:44:34.892-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='mp3'/><category scheme='http://www.blogger.com/atom/ns#' term='flac'/><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><title type='text'>Splitting a single flac file into mp3s.</title><content type='html'>I might need to stop avoiding .flac files, as now I found how easy it is to do something with them; historically, I've just been lazy and ripped my CDs to mp3s.&lt;br /&gt;&lt;br /&gt;However, it might be prudent for me to start converting to flac, and have lossless audio I can just extract the specific tracks I want for a given rotation.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/p/split2flac/"&gt;Split2flac - A beautiful shell script&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;&lt;a href="https://bbs.archlinux.org/viewtopic.php?id=90278"&gt;https://bbs.archlinux.org/viewtopic.php?id=90278&lt;/a&gt;&lt;br /&gt;&lt;a href="http://stillstup.blogspot.com/2008/07/split-lossless-audio-ape-flac-wv-wav-by.html"&gt;http://stillstup.blogspot.com/2008/07/split-lossless-audio-ape-flac-wv-wav-by.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6556570756580888640-1547800345315511644?l=sstahlman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sstahlman.blogspot.com/feeds/1547800345315511644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sstahlman.blogspot.com/2010/08/splitting-single-flac-file-into-mp3s.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/1547800345315511644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/1547800345315511644'/><link rel='alternate' type='text/html' href='http://sstahlman.blogspot.com/2010/08/splitting-single-flac-file-into-mp3s.html' title='Splitting a single flac file into mp3s.'/><author><name>Seth Stahlman</name><uri>http://www.blogger.com/profile/16904131485109317609</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://3.bp.blogspot.com/_06GYNYPUdWM/S_RD12SR0NI/AAAAAAAAAA0/KKks3nCwkLk/S220/ForMyspace_Me-07.03.2001_05.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6556570756580888640.post-969240770708409479</id><published>2010-07-30T18:20:00.003-06:00</published><updated>2010-07-30T18:29:40.921-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='snippets'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bios'/><category scheme='http://www.blogger.com/atom/ns#' term='vmware'/><title type='text'>Linux VMWare BIOS Extraction</title><content type='html'>More of a note to self than a blog...&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;objcopy /usr/lib/vmware/bin/vmware-vmx -O binary -j bios440 --set-section-flags bios440=a b.z&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="color: #0b5394;"&gt;perl -e 'use Compress::Zlib; my $v; read STDIN, $v, 217218; $v = uncompress($v); print $v;' &amp;lt; b.z &amp;gt; bios440_mod.rom&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="color: #351c75;"&gt;cp oembios440.rom /srv/projects/vm/nýttkjöt/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="color: #351c75;"&gt;echo "bios440.filename = \"oembios440.rom\"" &amp;gt;&amp;gt; /srv/projects/vm/nýttkjöt/nýjar_vm.vmx&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Reference:&lt;br /&gt;&lt;a href="http://communities.vmware.com/thread/28149"&gt;VMware BIOS modification - for Linux users&lt;/a&gt;&lt;br /&gt;&lt;a href="http://bart.motd.be/modifying-vmware-bios"&gt;Modifying The VMware BIOS&lt;/a&gt;&lt;br /&gt;&lt;a href="http://phrack.org/issues.html?issue=66&amp;amp;id=7#article"&gt;Persistent BIOS Infection&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6556570756580888640-969240770708409479?l=sstahlman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sstahlman.blogspot.com/feeds/969240770708409479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sstahlman.blogspot.com/2010/07/xubuntu-vmware-bios-extraction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/969240770708409479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/969240770708409479'/><link rel='alternate' type='text/html' href='http://sstahlman.blogspot.com/2010/07/xubuntu-vmware-bios-extraction.html' title='Linux VMWare BIOS Extraction'/><author><name>Seth Stahlman</name><uri>http://www.blogger.com/profile/16904131485109317609</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://3.bp.blogspot.com/_06GYNYPUdWM/S_RD12SR0NI/AAAAAAAAAA0/KKks3nCwkLk/S220/ForMyspace_Me-07.03.2001_05.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6556570756580888640.post-3942893696416360322</id><published>2010-05-21T16:08:00.029-06:00</published><updated>2010-05-28T19:06:34.413-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='scraping'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='kludge'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='sqlite'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><category scheme='http://www.blogger.com/atom/ns#' term='myspace'/><title type='text'>Exporting Email From Myspace With Google Gears in Firefox on Linux</title><content type='html'>Myspace doesn't appear to have a way of natively allowing exporting messages. &amp;nbsp;What follows is a proof-of-concept kludged script to do so.&lt;br /&gt;&lt;br /&gt;I desired to retrieve 50 email messages from my now defunct Myspace inbox.&lt;br /&gt;&lt;br /&gt;I didn't have any messages in sub folders, nor did I care for the single message I had in my 'sent' folder.&lt;br /&gt;&lt;br /&gt;For whatever reason, it doesn't appear that Sent messages are being saved in the Gears database, though it ought parse those in sub folders.&lt;br /&gt;&lt;br /&gt;I make no effort to parse and scrape user images; however, doing so appears as though it would be trivial.&lt;br /&gt;&lt;br /&gt;Of further note: for a user that has an account number of 12345678, a user id of jdoe, and a display name as "Johnny D0e LOLZ!!!!", Myspace appears to store another display name ("John Doe") that it shows under a user's picture in email; this name is not accessible via the Gears database, as far as I can tell. &amp;nbsp;(The example above is based on an actual Myspace 'friend')&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Regarding Myspace's formatting, I found the Firefox add-on&amp;nbsp;&lt;a href="http://code.google.com/p/sqlite-manager/"&gt;"SQLite Manager"&lt;/a&gt;&amp;nbsp;exceptionally useful for advancing my understanding of how Myspace was saving the messages; just using sqlite's .dump function didn't make things like rowid clear for a sql-language amateur such as myself; &amp;nbsp;anyone attempting to perhaps pursue the creation of a real parser would likely benefit from the use of sqlite manager.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Please note, the CreatedData appears to have milliseconds tacked on; hence the weirdness I do with trimming. &amp;nbsp;My timezone is MDT; please adjust the +/- for hour accordingly.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This all is done in Firefox on Xubuntu, as Google Gears was not available for Google Chrome on Linux.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Steps:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Install Google Gears:&amp;nbsp;&lt;a href="http://gears.google.com/?platform=linux"&gt;Google Gears&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Log in to Myspace and go to your inbox; obviously, give Gears permission to sync. &amp;nbsp;Wait until messages are saved to hdd.&lt;/li&gt;&lt;li&gt;Created a directory under your home directory, perhaps "myspace_emails" or similar would be sensible.&lt;/li&gt;&lt;li&gt;With your editor of choice (or cat &amp;gt;&amp;gt; scrapemyspace.sh for the lazy/efficient) create file and copy/paste my script below into it. Give it +x.&lt;/li&gt;&lt;li&gt;Now simply run script (sh name_you_used.sh); if you wish to have all emails in ONE file, in addition to the separate ones created, do: script.sh &amp;gt;&amp;gt; allmyspaceemails.txt or whatever; this was what I needed, and why I used tee. &amp;nbsp;The dump to the sqlite3 file is for debugging, and contains the sql commands to rebuild the database (for example, in mysql...). Comment out if not required.&lt;/li&gt;&lt;li&gt;Done!&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;If the location where your Gears data is stored changes, simply change the path variables at the top; also useful if you want to test, by copying the local database to your home directory.&lt;br /&gt;&lt;br /&gt;The *.default may need to be changed (~/.mozilla/firefox/profiles.ini) for multiple users.&lt;br /&gt;&lt;br /&gt;There is NO error checking in my script: if this makes you uneasy, please feel free to add some.&lt;br /&gt;&lt;br /&gt;You may use this script however you wish, as long as you give me attribution, but the following disclaimer also applies:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="font-size: x-small;"&gt;This script is provided "AS IS", without warranty of any kind, stated or implied, including without limitation the warranties of merchantability, fitness for a particular purpose and non-infringement. The entire risk as to the quality and performance of this script is borne by you. Should the script prove defective, you and not me assume the entire cost of any service and repair. etc. etc. (If you don't understand what this script does, please find someone who does, and ask them if it's okay for you to run it, instead of trusting a random person on the intrawebs.)&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Final disclaimer: I know less about bash scripting than I do about SQL. Beware.&lt;br /&gt;&lt;br /&gt;That said, enjoy!&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;# Script to parse Google Gear sqlite3 db with Myspace Emails&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;# Copyright (C) 2010, Seth Stahlman. All rights reserved&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;dbpath=~/.mozilla/firefox/*.default/Google*/messaging.myspace.com/http_80/&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;dbfile='myspace.messaging.database\#database'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;db="${dbpath}${dbfile}"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;cut='cut -d, -s'&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;sqlite3 $db ".dump" &amp;gt;&amp;gt; myspace_email.sqlite3.sql&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;authors=`sqlite3 -csv $db "select rowid, * from AuthorData_content;"`&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;echo "$authors" |&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;while read a&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;do&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;uid=`echo $a | $cut -f1`&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;dn=`echo $a | $cut -f2`&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;un=`echo $a | $cut -f3`&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;echo "Messages from $dn ($un) (Account ID: $uid)\n" | tee -a "${uid}_${un}"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;msgids=`sqlite3 -list -separator , $db "select MessageId, \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;datetime(substr(CreatedDate, 1, 10), 'unixepoch', '+1 hour') as date from MessageMetaData where AuthorId = $uid;"`&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;echo "$msgids" |&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;while read m&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;do&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;messageid=`echo $m | $cut -f1`&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;messagedate=`echo $m | $cut -f2`&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;subject=`sqlite3 -list $db "select c0Subject from MessageData_Content where rowid = $messageid;"`&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;body=`sqlite3 -list $db "select c1Body from MessageData_Content where rowid = $messageid;"`&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;echo "Message ID: $messageid\nDate: $messagedate\nSubject: $subject\n\n$body\n" | tee -a "${uid}_${un}"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;done&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;done&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6556570756580888640-3942893696416360322?l=sstahlman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sstahlman.blogspot.com/feeds/3942893696416360322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sstahlman.blogspot.com/2010/05/exporting-email-from-myspace-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/3942893696416360322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/3942893696416360322'/><link rel='alternate' type='text/html' href='http://sstahlman.blogspot.com/2010/05/exporting-email-from-myspace-with.html' title='Exporting Email From Myspace With Google Gears in Firefox on Linux'/><author><name>Seth Stahlman</name><uri>http://www.blogger.com/profile/16904131485109317609</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://3.bp.blogspot.com/_06GYNYPUdWM/S_RD12SR0NI/AAAAAAAAAA0/KKks3nCwkLk/S220/ForMyspace_Me-07.03.2001_05.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6556570756580888640.post-334273675443688076</id><published>2010-02-06T23:41:00.001-07:00</published><updated>2010-05-15T20:46:22.752-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='IRPG'/><category scheme='http://www.blogger.com/atom/ns#' term='in flames'/><category scheme='http://www.blogger.com/atom/ns#' term='whining'/><category scheme='http://www.blogger.com/atom/ns#' term='S134'/><category scheme='http://www.blogger.com/atom/ns#' term='LCES'/><category scheme='http://www.blogger.com/atom/ns#' term='work capacity test'/><category scheme='http://www.blogger.com/atom/ns#' term='ICS'/><category scheme='http://www.blogger.com/atom/ns#' term='S130/S190'/><title type='text'>Lookouts, Communications, Escape Routes, Safety Zones (LCES)</title><content type='html'>Today was our S130/190 refresher, and then the S134 class.&lt;br /&gt;&lt;br /&gt;I think many of the watch out conditions in the &lt;a href="http://www.nwcg.gov/pms/pubs/nfes1077/nfes1077.pdf" title="Incident Response Pocket Guide"&gt;IRPG&lt;/a&gt;&amp;nbsp;must have been bought with a few  deaths; at least, the movie we watched seems to indicate it: "3 of the  men survived by reaching the ridge, but the rest..." and "It could have  been avoided, if only..."&lt;br /&gt;&lt;br /&gt;Naturally, half the examples  were old Colorado fires.  Nothing like having a little pride in your  state...&lt;br /&gt;&lt;br /&gt;The most fun part of the class, of course, was where we got  to do the scenario as the Feds.&lt;br /&gt;&lt;br /&gt;"Helicopter? Suuuuure, we'll take it!  Let  the taxpayers pay for it!  Give us a slurry, too!  Oh, we've got a  bulldozer coming? Send it to the north side!  Wait, wait, ... what do you mean our  update says we've got strong SW winds now?! How the hell did that happen?! The local department needs  radios? Sure, give them some; we're USFS, by golly! Are we not merciful? Hold on, hold on, what do you  mean the local department's fireline's not .... wait, wait, WHAT? Why is  their tender moving over there?! The IC didn't... HEY! Who the hell  came up with this scenario?!"&lt;br /&gt;&lt;br /&gt;Add some six sided dice, a dragon, and some confiscated controlled substances, and you've got a game everyone can play!&lt;br /&gt;&lt;br /&gt;I was sort of lost  throughout most the rest of the class, though... I fell asleep somewhere around  L.A.D.D.E.R... (advanced listening... teehee!)  Deployment zones are  safety zones, right? &amp;nbsp;And you're supposed to stay out of the black? Just kidding...&lt;br /&gt;&lt;br /&gt;The movie we watched did have some trippy rainbow colors for the safety zone part though; the convenience  of mushrooms, without the trudging.&lt;br /&gt;&lt;br /&gt;Speaking of the trudging.   If 7+ hours of rapid classroom exercises and dungeon master-esque fire games wasn't just the most fun, the  pack test at the end certainly was.&lt;br /&gt;&lt;br /&gt;As I'm overweight, out of shape, and,  best of all, an ex-smoker, the last time I walked 3 miles was... well, actually, I'm not  sure I ever have. &amp;nbsp;Going for an arduous rating would seem to be, ahem, "ill advised". Or, for the coarser description: batshit insane.&lt;br /&gt;&lt;br /&gt;Granted, for CTSP, fitness is 'None  Required', but where's the fun in that?&lt;br /&gt;&lt;br /&gt;For those not  familiar with the criteria for the various levels of performance, they  are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Arduous Pack Test - 3 mile hike with 45lb  pack in 45 minutes.&lt;/li&gt;&lt;li&gt;Moderate Field Test - 2 mile hike with 25lb pack in 30 minutes.&lt;/li&gt;&lt;li&gt;Light Walk Test - 1 mile hike with no pack in 16 minutes.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;My pack was 47lbs - tire chains and water jugs, plus fire  shelter. &amp;nbsp;It bounced. A lot. &amp;nbsp;Interestingly enough, about halfway  through, the rather brisk 35ºF day felt glorious. &lt;br /&gt;&lt;br /&gt;My time was 43:56.&lt;br /&gt;&lt;br /&gt;This, despite having only a passing acquaintance with exercise, way too many pounds, and a complete lack of anything resembling lung capacity.&lt;br /&gt;&lt;br /&gt;My secret?&lt;br /&gt;&lt;br /&gt;In Flames.  &lt;br /&gt;&lt;br /&gt;It's quite astounding, really, how one can do death metal growls with only labored exhalations. &lt;br /&gt;&lt;br /&gt;Not in tune, of course, but in the key of "I'd hurl if I wasn't too exhausted to expel the contents of my stomach".&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I told myself, "It'll  all be worth it, too, the next time I flash my red card and they look  at me, and back at the (A), and wonder, 'How in the hell did this guy ever pass an arduous pack test?!'"&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6556570756580888640-334273675443688076?l=sstahlman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sstahlman.blogspot.com/feeds/334273675443688076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://sstahlman.blogspot.com/2010/02/lookouts-communications-escape-routes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/334273675443688076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/334273675443688076'/><link rel='alternate' type='text/html' href='http://sstahlman.blogspot.com/2010/02/lookouts-communications-escape-routes.html' title='Lookouts, Communications, Escape Routes, Safety Zones (LCES)'/><author><name>Seth Stahlman</name><uri>http://www.blogger.com/profile/16904131485109317609</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://3.bp.blogspot.com/_06GYNYPUdWM/S_RD12SR0NI/AAAAAAAAAA0/KKks3nCwkLk/S220/ForMyspace_Me-07.03.2001_05.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6556570756580888640.post-3230047018878207549</id><published>2010-01-28T14:53:00.001-07:00</published><updated>2010-05-15T21:19:36.797-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><category scheme='http://www.blogger.com/atom/ns#' term='lessons'/><category scheme='http://www.blogger.com/atom/ns#' term='deadlines'/><title type='text'>Lessons In Web Design: Be Weary of Careless Utterances!</title><content type='html'>Recently, I tossed up a temporary website for an author friend.&lt;br /&gt;&lt;br /&gt;It's my idea of an '&lt;i&gt;Under Construction&lt;/i&gt;' sign, though many people would consider it a complete website - just a standard middle of the screen, 'fits all resolutions' box site, with a picture, some menu items, a couple of recent books listed, and upcoming events. I knocked out the design back end in only a few days, and had it done except the content, which I put in last.&lt;br /&gt;&lt;br /&gt;But my friend, who had provided me with the content as a single .docx, wasn't happy with the '&lt;i&gt;About&lt;/i&gt;' section.&lt;br /&gt;&lt;br /&gt;So, being the slow thinking nitwit I am, I said, "Oh, we can change that really easily now; it's just cut and paste; I can get any changes you send up nearly instantaneously."&lt;br /&gt;&lt;br /&gt;Doh.&lt;br /&gt;&lt;br /&gt;The next morning, I had four times worth of '&lt;i&gt;About&lt;/i&gt;' text waiting for me when I woke up, which, of course, destroyed the formatting (the end of the text now 2 1/2 pages below the last menu item) that I'd set up.&lt;br /&gt;&lt;br /&gt;After some head scratching, and ruling out elegant solutions, like some javascript to switch the visibility of my DIVs (what with this site being simply a 'good enough' while I work on the 'real' one) I settled on simply creating 2 more '&lt;i&gt;About&lt;/i&gt;' pages.&lt;br /&gt;&lt;br /&gt;Easy, except, now, I had modify the anchor attributes to match the '&lt;i&gt;About&lt;/i&gt;' DIV container, and add &lt;i&gt;Next&lt;/i&gt; and &lt;i&gt;Previous&lt;/i&gt; navigation, and change the title of the pages, and, oh, some of the words were with the trademark mark after them. After googling up the proper code (it's been awhile...) I realized I also needed to make the book titles bold, in addition to being italic, which meant redefining EM for the div container, and... etc.&lt;br /&gt;&lt;br /&gt;What should have taken all of a minute to paste some text in between [P]s ended up taking about an hour; I'd made the mis-assumption that my friend would understand that this was a "replace 1/4 cup of butter with 1/4 cup of margarine if so desired" situation and it'd be blatantly obvious you can't cram 4 times as much text into the same place and have it look right.&lt;br /&gt;&lt;br /&gt;The lessons, then, are:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Don't assume the presence of common sense; it's in short supply in the general populace. Making the assumption a truth which is blatantly obvious to you will be for someone else will almost certainly lead to despair and, at the very least, a lot of effort. &amp;nbsp;&lt;/li&gt;&lt;li&gt;Don't try to explain why it can't work; figure out how to fix it instead.&lt;/li&gt;&lt;li&gt;Don't trivialize what you do; at least, not to your client, or your friends. &amp;nbsp;I'm very guilty of this with computer repair, as well, and it just keeps biting me in the butt. &amp;nbsp;Don't share the details of what you're doing, or how &lt;i&gt;easy&lt;/i&gt; it is. It gives the wrong impression, and leads them to the conclusion you can do miracles, or, perhaps, simply disregard the laws of physics and reality in delivering their desired outcome.&lt;/li&gt;&lt;li&gt;Don't give time estimates. Adding on to the last rule, if it takes less time than you think it will, great: your &amp;nbsp;client, or your friends, will be impressed. &amp;nbsp;If it takes longer than expected, since you didn't set any expectations in the first place, you won't find yourself struggling to explain how the pesky deadline whizzed by when you weren't looking.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6556570756580888640-3230047018878207549?l=sstahlman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/3230047018878207549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6556570756580888640/posts/default/3230047018878207549'/><link rel='alternate' type='text/html' href='http://sstahlman.blogspot.com/2010/01/lessons-in-web-design-be-weary-of.html' title='Lessons In Web Design: Be Weary of Careless Utterances!'/><author><name>Seth Stahlman</name><uri>http://www.blogger.com/profile/16904131485109317609</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='26' src='http://3.bp.blogspot.com/_06GYNYPUdWM/S_RD12SR0NI/AAAAAAAAAA0/KKks3nCwkLk/S220/ForMyspace_Me-07.03.2001_05.jpg'/></author></entry></feed>
