Archive for technology

Recovering a bricked Crucial M4 SSD

I own a pair of Crucial M4 256 GB SSDs.  One of them, my boot drive, has caused me no end of trouble recently!  Sometimes, after rebooting, the SSD isn’t detected by the BIOS. This seems to be linked to the 010G firmware, which has caused a lot of complaints!

So far, I have found two ways to recover from this lockup.

Route 1: the official reset way
  1. Disconnect the SATA cable from your SSD, but leave it connected to power
  2. Power your system on and let it sit in BIOS for 20 minutes
  3. Power your system off and disconnect the power cable from the SSD
  4. Wait 30 seconds
  5. Reconnect the power cable
  6. Power your system on again, repeating steps 2, 3 and 4
  7. Reconnect both the power and SATA cables
  8. Power your system back on – it should work now

This apparently does some sort of internal reset. The timings don’t seem to need to be exact – I’ve done it with 30 minutes on power each time before and it worked.

Route 2: the other way
  1. Power your system on and go to the BIOS config screen
  2. Wait for at least 5 minutes
  3. Press the reset button on your computer
  4. Watch in awe as your SSD is detected again

Sometimes the SSD is just slow to be detected by the controller. After a few minutes, though, it’s ready. By restarting the computer without interrupting the power (which is what the reset button does) we’re able to get the SSD online and also have it available before the controller times out. Magic!

Route 3: Update the firmware

There’s new firmware out now that should solve this issue once and for all. Once I’ve finished backing up my computer I will update to 040H and see if it works. I’ll let you know!

Comments

Stuck on “reading file 901.ROM” – why EeePC 901 BIOS EZ-Flash isn’t working for you, and how to fix it

I had some fun last night flashing my EeePC 901′s BIOS up to the latest version.    I got the firmware from here and followed this guide.

My Eee sat there displaying “reading file 901.ROM” for about five minutes until I gave up and turned it off.

After a bit of Googling and a bit of thinking, I found the answer: the 4GB pen drive I was using was too big.  I’d formatted it in FAT 16 as required, and allocated a tiny 20MB partition so it wasn’t over the size limit.  Even so, EZ-Flash wasn’t able to read from it.  The limit seems to be 2GB, but I haven’t tested this – luckily I had an old 64MB pen drive lying around from 2003!  Even better, it was already formatted in FAT 16! :D

I’m documenting this here to help anyone who has this problem in the future.  Good luck!

Comments (3)

If you’re going to write an init script, do it properly

“How do I make my Linux process auto-start?” is a fairly common question.  The answer is fairly simple, thank goodness.  Write a shell script, put it in /etc/init.d and run <code>update-rc.d myScriptName defaults</code>.  And you’re done.

Except you’re not, probably.  If you haven’t written your script correctly, you might well hang the boot process.

Init.d and all those rc.d folders are part of the Unix System V init process.  Unlike modern replacement Upstart, init starts processes in series, never in parallel.  If your startup script doesn’t exit, then init won’t either.  If you’re written a really lazy script that doesn’t detatch after starting a process, then you’re screwed :-)

Another thing to watch our for is how your script is called.  Init will pass either “start” or “stop” to the script depending on what the process should be doing.  If you don’t handle the difference between these (in a case statement, say) and instead just execute the same code whenever the script is run, you’re going to have a really fun time when you try to shutdown or restart your server.  Especially if your script doesn’t detatch and hangs init.  Because then you’re not going to be able to shut down your server cleanly.

It’s been a fun week for my test VMs!

Here’s a little bonus for you.  If you want to start several processes in a specific sequence, you can do this by writing your startup scripts so they don’t exit until each process is ready.  Init allows you to determine the order in which you start processes within a runlevel (that’s what the numbers in the symlink filenames mean) and you know from the above that you can prevent init from processing the next script in it’s queue.  Use this knowledge wisely.

Comments

Running a program as administrator

Windows Vista and Windows 7 have a feature called UAC, which stands for User Account Control. It’s a good idea – programs can’t touch certain files or take certain actions unless you, the user, explicitly grant them administrative privileges. Sounds useful!

To get to the point of this article, as much as UAC is a good idea, it can be very annoying sometimes. Say you want to edit a config file in C:\Program Files\MyApp with Notepad++, your favourite text editor. Normally you’d right click on the file and click “Edit Notepad++” in the context menu. This won’t work in Program Files, though, as it’s a restricted folder. You need to launch Notepad++ with admin rights before you can open your file. (You might be able to read the file without admin rights, but you certainly won’t be able to save your changes!)

Or say you want to do something nifty from the command prompt. In Linux, you’d preface your command with sudo and enter your password when prompted. In Windows, you can’t do that. You need to launch your command prompt with elevated privileges, like so:

That’s: Start -> type “cmd” -> right click -> Run as administrator. Easy.

There’s an obvious downside to this, of course. In Linux you can elevate a single command and then return to being a limited user, all from the same shell. In Windows, though, your command prompt has to be elevated from start to finish. It’s the product of two different cultures. In the Linux world, the command line is king. Everything can be done from it, and it’s usually the best way of doing things. Windows expects you to work with the GUI, though, only dipping into command line mode when you absolutely have to. The GUI has almost everything you need, and you only use the command line for brief periods of time to do obscure things, generally. From that point of view, it makes sense to not have added the ability to elevate commands from within cmd, because you’re not expected to work like that. Completely understandable, but still a shame. Not to mention the source of a lot of nerdrage ;-)

Comments

Why is Windows 7 bluescreening?

After upgrading from Windows XP to Windows 7, I never thought I’d see the old blue screen of death again. Wishful thinking in action :(

About a month ago my Windows 7 Ultimate computer started crashing with a blue screen of death whenever I connected a USB drive. The short-term solution was simple – find other ways to transfer files around. Long term, though, that was no good. I needed to find a real solution.

I noticed that whenever Windows crashed, it was outputting what it called a “minidump” in C:\Windows\Minidump. I didn’t have anything installed that could open the dump files, though, and the Microsoft Debugging Tools webpage seemed to suggest that you needed an MSDN subscription to get the tools for Windows 7. Luckily, it was just misleading/plain old wrong – the link for “Windows Vista or Previous Versions” is equally valid for Windows 7.

You can download WinDbg, the tool we’re going to use, here: http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8279 Click the download button, run the program once it’s downloaded and then select the Debugging Tools option under Common Utilities.

Once you’ve got that installed, we want to make it easy to load. From an elevated command prompt (Start -> type “cmd” -> right click on the “cmd” entry and click “Run as administrator”):
cd C:\Program Files\Debugging Tools for Windows
windbg.exe -IA
WinDbg is now set to open when you double click on a .dmp file.

Now, we need to copy the crashdump out of C:\Windows\Minidump and into a folder where you don’t need admin right to read from it. Then double click on it and let’s see what WinDbg has to say.

Aha! It’s PDFsFilter.sys, a driver (surprise, surprise). A quick Google search later and I’ve found the perp – Raxco PerfectDisk, which I installed just before the crashed started, come to think of it. I uninstalled it and now I can mount USB drives again. Horray!

Comments

HP Touchpad – surprisingly nice to type on

I managed to get an HP Touchpad in the end-of-line firesale a few months ago. It’s subtly integrated itself into my life in many ways since then. What I want to talk about today, though, is the keyboard.

I hate touchscreen keyboards with a passion. My current phone is the Motorola Milestone 2, which has a full hardware qwerty keyboard. My previous phone was the Android G1, which also has a full hardware qwerty keyboard. I don’t enjoy typing on touchscreens, I find the buttons too small, I find it hard to type at a decent speed on them and they just annoy me.

The HP Touchpad keyboard is different, though. Taking up half of the tablet’s screen by default, it’s a nice size. My hands rest nicely on it and I can touch type at a decent speed without making too many mistakes. The virtual keys fall exactly where my fingers expect them to. It’s nice.

The only problem with it is that it lacks arrow keys. Moving to an exact place in the text is awkward without the ability to step one character to the left or right. Shame there’s not a vi mode for it ;-)

Comments

Eclipse debugger tips – the “Display” view

Window -> Show View -> Display.

Type some code into this view, highlight it and then press the “J” button in the top right of the frame.  This will execute the code and return the results.

I’ve been using Eclipse for over three years and I only found about this feature the other day.  Oh well, we live and learn.

Comments (2)

SquirrelMail filters

Do you use SquirrelMail as your webmail client?  I do.  Recently I signed up to a mailing list that generates about a hundred e-mails a day.  Tired of having to manually clean my inbox, I decided to set up a mail filter to do it for me.  Here’s how to do it.

Firstly, you need to log into your Mailbox Manager.  This is seperate from the SquirrelMail site, and, for Dreamhost account, can be found at mailboxes.yourdomain.com.  The SquirrelMail login page links to it for me, but your milage may vary.

Once in the Mailbox Manager, you need to set up two mail filters.  Why two, you ask?  Simple.  One rule to move the messages to where you want them and a second rule to delete the messages from your inbox.  Wait, wait – move and then delete?  For some reason, SquirrelMail treats “move” as “copy”.  When you add a new rule you can choose the “Move it to folder” option.  Back in the Mailbox Manager this rule appears as “copy emails”, though, which I didn’t pick up on for a few days.  No wonder it didn’t work!

Oh, and your first rule needs to be set as “execute and continue” and your second one as “execute and stop.”  The first rule needs to be set like that to ensure that the second rule is actually run after copying the e-mails.  The second rule has to be set like that – you aren’t allowed to delete and e-mail and then carry on running filters on it :)

One final thing – when you specify the folder to move the e-mail to you don’t need to give the full path if it’s a subfolder of inbox.  E.g, if your target is Inbox->MyFolder, then just write “MyFolder”.  If your target is Inbox->MyFolder->MyOtherFolder, then you need to write “MyFolder.MyOtherFolder”.  Entering “Inbox.MyFolder” will create a folder with the path Inbox->Inbox->MyFolder.

The Mailbox Manager tells you that the folder needs to exist before the filters can move messages to it, but the existence of Inbox->Inbox->MyFolder on my system rather proves that wrong…

Comments

Bring to front

Have you ever “lost” a window?  You click on it on the taskbar but it won’t reappear.  You have no choice but to kill the program, losing anything that you hadn’t saved.

Well, here’s a tip for you – bring up the Task Manager (press ctrl+shift+esc, right click on the taskbar and click “Task Manager” or press ctrl+alt+del followed by t), navigate to the Applications tab, right click on the program that you can’t bring up and click “Bring To Front.” No more losing a half-written email before you save it!  No more losing your work. I hope that this saves you some time and frustration. Sorted!

From my experience, this problem generally happens when you minimise a window just before it pops up a dialog box.  Using the task bar won’t restore the application as it can’t change its window state until you’ve responded to the dialog.  Shame you can’t actually see the dialog box…

Comments (4)

First post from my T-Mobile G1

It’s all in the title, really. I now have a G1.

I’ll write more about it once I’ve got a bit more used to it.

Comments

« Previous entries Next Page » Next Page »