Tuesday, March 31, 2009

Some useful MegaCli commands/quick debian howto

MegaCli and MegaCli64 are the LSI utility used for Dell Perc 5 and other adapters isn't well documented. Here's some commands:

MegaCli -AdpEventLog -GetEvents -f logfile -aALL
What it does: Dump all events from the adapters event log to a file named logfile

MegaCli -PDList -aAll | less
What it does: Dump information about all Phsyical Disks (hence the PD), paged with less

MegaCli -LDInfo -LAll -aAll | less
What it does: Dump information about all Logical Disks on all adapters, paged with less

MegaCli -LdPdInfo -aAll | less
What it does: Dump information of all logical and physical disks on all known adapters

Currently these can be obtained from LSI at http://www.lsi.com/DistributionSystem/AssetDocument/support/downloads/megaraid/miscellaneous/linux/1.01.39_Linux_Cli.zip

You don't need to actually install the packages, both the MegaCli and MegaCli64 (64 bit build) are statically linked within. In order to access them in a non RPM environment, you can extract the files with the following command:
rpm2cpio MegaCli-1.01.39-0.i386.rpm | cpio -idmv
This will extra the MegaCli and MegaCli64 executables.
Alternately, you can try to convert the rpm to a .deb via alien.

Sunday, March 29, 2009

Video of morse code blinking

I modified a bike blinker to blink in morse code. Video of it in action is
here

Source is here.

Tuesday, March 10, 2009

One cause of "Fatal error: Exception thrown without a stack frame in Unknown on line 0"

"Fatal error: Exception thrown without a stack frame in Unknown on line 0" can be quite hard to debug.

php -r '
register_shutdown_function("a");
function a() {
$b = new DateTime("02/40/2009");
} '

Results in:
Fatal error: Exception thrown without a stack frame in Unknown on line 0

The problem is that PHP does not allow exceptions to be thrown in a shutdown function or anything called by a shutdown function. Initializing a DateTime object with an invalid date throws an exception, leading issues similar to above.