Flash LSI 2308 to IT-mode on a SuperMicro X10SL7-F mainboard

For a new SSD-only Ceph deployment I got my hands on a couple of SuperMicro SYS-1018D-73MTF 1U server with 8 Intel SSDs.

Great machines, but by default SuperMicro ships them with the IR (Integrated RAID) firmware and I wanted to use the IT (JBOD) firmware.

The X10SL7 mainboard has a UEFI bios, so flashing the controller was rather easy.

First, download the latest firmware for the LSI 2308 controller from SuperMicro. At this moment it is the PH19-IT firmware.

Now we have to create a small disk image with a FAT32 filesystem to use as a virtual drive for the IPMI.

I run Ubuntu on my desktops and laptops, so this is how I created that small disk image:

NOTE: You can generate the ISO with the steps below, or download it directly.

mkfs.msdos -C ipmi.iso 2880
sudo mkdir /media/ipmi/
sudo mount -o loop ipmi.iso /media/ipmi/
wget ftp://ftp.supermicro.com/Driver/SAS/LSI/2308/Firmware/IT/PH19-IT.zip
sudo unzip PH19-IT.zip UEFI/* -d /media/ipmi/
sudo umount /media/ipmi/

Now open your IPMI and attach ipmi.iso to your server.

Reboot the machine and hit the F11 key to open a boot menu and start the build in UEFI shell.

When in the UEFI shell enter these commands:


At some point it will ask for the 9 remaining digits of the SAS address. Simply enter 000000000 (9 zeros) and you’re fine.

Reboot the system and the controller should now be in IT mode

Cisco 887VA with VDSL2 vectoring on XS4All/KPN

Note: This post is in Dutch since it’s targeted towards a Dutch audience.

Vandaag werd op kantoor onze VDSL2 verbinding van 50Mbit (non-vectoring) naar 65Mbit (vectoring) geupgrade door XS4All. Dat liep niet helemaal lekker. Onze Cisco 887VA router/modem kon daar niet goed mee overweg.

Na wat zoeken (uren) kwam ik er achter dat er een andere firmware nodig is, te weten VA_A_38k1_B_38h_24g1.bin

Om iedereen de moeite te besparen, deze firmware is hier te downloaden. (Hekel aan dat Cisco alles achter logins plaatst!)

Plaats vervolgens de firmware in de router door middel van TFTP of een HTTP-copy en dan is het slechts dit stukje configuratie:

controller VDSL 0
 firmware filename flash:VA_A_38k1_B_38h_24g1.bin

Als ik nu in de Cisco kijk zie ik dit:

firewall#show controllers VDSL 0
Controller VDSL 0 is UP

Daemon Status:		 Up 

			XTU-R (DS)		XTU-C (US)
Chip Vendor ID:		'BDCM'			 'BDCM'
Chip Vendor Specific:   0x0000			 0xA45F
Chip Vendor Country:    0xB500			 0xB500
Modem Vendor ID:	'CSCO'			 '    '
Modem Vendor Specific:  0x4602			 0x0000
Modem Vendor Country:   0xB500			 0x0000
Serial Number Near:    FCZ162390P2 887VA-SE 15.3(3)   
Serial Number Far:     AA1250FE43S-05
Modem Version Near:    15.3(3)
Modem Version Far:     0xa45f

Modem Status:		 TC Sync (Showtime!) 
DSL Config Mode:	 AUTO 
Trained Mode:		 G.993.2 (VDSL2) Profile 17a
TC Mode:		 PTM 
Selftest Result:	 0x00 
DELT configuration:	 disabled 
DELT state:		 not running 
Trellis:		 ON			  ON
SRA: 			 disabled			 disabled
 SRA count: 		 0			 0
Bit swap: 		 enabled			 enabled
 Bit swap count:	 1710			 5
Line Attenuation:	  0.0 dB		  0.0 dB
Signal Attenuation:	  0.0 dB		  0.0 dB
Noise Margin:		 12.1 dB		 26.2 dB
Attainable Rate:	90384 kbits/s		 36750 kbits/s
Actual Power:		 12.4 dBm		 - 1.2 dBm
Per Band Status:       	D1 	D2 	D3 	U0 	U1 	U2 	U3
Line Attenuation(dB):   11.7	28.0	44.0	4.0	21.5	33.8	N/A	
Signal Attenuation(dB): 16.3	27.6	44.0	4.0	20.8	33.3	N/A	
Noise Margin(dB):       12.2	12.2	12.1	26.2	26.1	26.2	N/A	
Total FECC:		54			 0
Total ES:		0			 0
Total SES:		0			 0
Total LOSS:		0			 0
Total UAS:		78			 78
Total LPRS:		0			 0
Total LOFS:		0			 0
Total LOLS:		0			 0

Full inits:		1
Failed full inits:	0
Short inits:		0
Failed short inits:	0

Firmware	Source		File Name (version)
--------	------		-------------------
VDSL		user config	flash:VA_A_38k1_B_38h_24g1.bin (10)

Modem FW  Version:	130208_1314-4.02L.03.A2pv6C038k1.d24g1
Modem PHY Version:	A2pv6C038k1.d24g1
Vendor Version:		Ap6v38k1.24g1 68

 		  DS Channel1	  DS Channel0	US Channel1	  US Channel0
Speed (kbps):	          0	       83997	         0	        8399
SRA Previous Speed:       0	           0	         0	           0
Previous Speed:	          0	           0	         0	           0
Reed-Solomon EC:          0	          54	         0	           0
CRC Errors:	          0	           0	         0	           0
Header Errors:	          0	           0	         0	           0
Interleave (ms):       3.00	        0.00	      0.00	        0.00
Actual INP:	       4.00	       55.00	      4.00	       55.00

Training Log :	Stopped
Training Log Filename :	flash:vdsllog.bin


USB boot issues on a Soekris net6501-70

After 5 years of great service it was time to replace my Soekris net5501-70 by a new net6501-70.

I tried to install Ubuntu 14.04 via USB, but the Soekris wouldn’t boot from my Kingston Datatraveler USB stick.

It seems the Soekris is rather picky on the USB stick. This is what you don’t want to see:

comBIOS ver. 1.41c  20121115  Copyright (C) 2000-2011 Soekris Engineering.


2048 Mbyte Memory                        CPU Atom E6xx 1600 Mhz 

SATA AHCI BIOS ver. 0.61 20121115  Copyright (C) 2003-2011 Intel Corporation

Controller Bus#02, Device#06, Function#00: 02 Ports, 02 Devices
  Port-00: Hard Disk, INTEL SSDMCEAC060B3            
  Port-01: Hard Disk, WDC WD10JPVX-80JC3T0           

Soekris USB Expansion ROM ver. 1.01  20111203

82: USB 01                          Xlt -2-32   Mbyte

At 82 you see the USB stick isn’t properly discovered. This is what it should look like:

Soekris USB Expansion ROM ver. 1.01  20111203

82: USB 01  General UDisk           Xlt 994-255-63  7988 Mbyte

That shows t he USB stick is detected properly and you can now install Ubuntu! Simply dd a ISO to the USB stick.

Calculating RADOS objects for RBD images

Ceph’s RBD (RADOS Block Device) is just a thin wrapper on top of RADOS, the object store of Ceph.

It stripes (by default) over 4MB objects in RADOS. It’s very simple to calculate which RADOS object corresponds with which sector on your RBD image/block device.

First you have to find out the block device’s object prefix name and the stripe size:

ceph@daisy:~$ sudo rbd info test
rbd image 'test':
	size 128 MB in 32 objects
	order 22 (4096 KB objects)
	block_name_prefix: rb.0.1066.2ae8944a
	format: 1

In this case the stripe size is 4MB (order 2^22) and the object name prefix is rb.0.1066.2ae8944a

With one line of Perl we can calculate the object name in RADOS:

perl -e 'printf "BLOCK_NAME_PREFIX.%012x\n", ((SECTOR_OFFSET * 512) / (4 * 1024 * 1024))'

Let’s say that we want the object for sector 1 of our block device:

perl -e 'printf "rb.0.1066.2ae8944a.%012x\n", ((0 * 512) / (4 * 1024 * 1024))'

This tells us that we need to fetch object rb.0.1066.2ae8944a.000000000000 from RADOS. This can be done using the ‘rados’ command:

sudo rados -p rbd get rb.0.1066.2ae8944a.000000000000 rb.0.1066.2ae8944a.000000000000

Voila, you just fetched 4MB of your drive. Might be useful if you want to do some data recovery or such.

Filesystems on USB devices for Tesla Model S

I’ve seen various posts from users on forums asking how you should format your USB devices for usage in your Tesla Model S.

It all depends on the filesystem you are using. This is what I found out:

Working filesystems:

Not Working filesystems:

The Model S is running a modified version of Linux and it seem that it supports all the filesystems which are supported by the Linux kernel natively. I haven’t tested all filesystems, but it probably supports most filesystems available in the kernel.

For large USB devices I recommend using EXT4 and you can access EXT filesystems under Windows using Ext2Fsd.

Installing the socket of my Open EVSE

While the shed in my backyard is still under constructing I started installing the Type 2 socket on the outer wall on the side of my parking spot.

For my EVSE I’m using the Open EVSE project. Although we use a different connector in Europe, the signaling is the same as with the J1772 connector. One other advantage is that the European connector has support for 3-phase power.

My shed has a outer and inner wall with the main supports in between them, I’m trying to run most cabling inside the wall for the aesthetics. For the socket it was also the easiest way.

A couple of pictures of what I did so far (still took me 5 hours though! Those stiff cables don’t make it any easier!).




This is the Type 2 socket for installation in a wall. This picture is without the interlocking actuator. The actuator is used for locking the connector in the socket while charging. It’s to prevent you from taking out a connector which might be carrying 22kW of power, that would give some fireworks!








This is the socket with the actuator installed on top of it. It’s a very simple 12V motor which pushes a pin into the socket and locking the connector in place.

I haven’t found a way yet to control this with the Open EVSE project, but I’m positive I’ll find a way to do so.

Locking is done by putting 12V on it for 300ms and unlocking is done by simply reversing the poles. Any suggestions how to do this with Open EVSE are welcome!




This now had to be installed in the outer wall of my shed. This wall is 11mm thick while the connector is build for 9mm at max. It took some power tools to get about 4mm off that wall!




This is how it looks on the outer wall after installation. You can see the actual socket still lying there, but the outer cap has been installed.

The socket itself is very well build by Mennekes. Rubbers everywhere to prevent water from coming in, but it also has water drainage output on the bottom. Should somebody plug in a connector full of water the excess water can flow out of the socket.

It’s a pretty expensive socket (EUR 300,00) but they did their job of creating a descent one!




This picture shows the installed socket from the back with the main power lines connected.

WARNING: These cables are NOT energized! The power flow is controlled by the EVSE with a relais. Take note of that should you consider installing your own EVSE!

The PP (Proximity Pilot) and CP (Control Pilot) pins are not connected yet, you however see the CAT6 cable already there. I’m using that cable for the CP and PP pins as well as for controlling the actuator.

The power cable is a 5G6 cable. This means 5 wires of 6mm2 each. My goal is to have this EVSE installation be able to deliver 3-phase 32A (22kW). 4mm2 cabling would maybe have done the job, but safety first! It also means less voltage drop, so more kW to the car!

The flexible PVC hose at the bottom is water drainage from the socket, should water enter the socket it can flow out of the socket through there.





This is how it all looks after installation with the actuator installed.

One PVC pipe carries the the main power cable while the other carries the CAT6 cable for controlling the actuator and connecting the PP and CP pin.

The pipes run through the structure towards the main power panel (yet to be installed) where I’ll also install the Open EVSE.

Between the outer and inner wall there will be insulation, but I have to prevent this from making contact with the socket. I still have build something for that around the socket, I want to make sure the insulation doesn’t catch fire for some reason. (Although I don’t know if it actually burns).

It’s better to be safe then sorry in this case. 22kW of power will flow through here, that is something not to be taken lightly, that is some serious amount of power!




If you want to order this socket yourself contact EV-Box (Netherlands), they can help you with that.

These are the parts I ordered (Mennekes part numbers):

  • 30012: Fixing ring with hinged lid IP44
  • 31016: Type 2 socket 32A with actuator
  • 30019: Actuator connector with 3 wires of 1m each

When I finish my EVSE I’ll post a full list of components I used.

Now it’s back to my shed for doing some more installation of other electronics like lighting.

Building my own EVSE


While I’m waiting for my Tesla Model S I also bought a new house. In December 6th 2011 I received the keys and ever since I’ve been working on the electrical infrastructure to prepare everything for the 3-phase charging station (EVSE) which should go into the garage.

I modified my fistribution panel to have a dedicated 3x32A connection to my garage where I can install my EVSE. The purpose is not only to charge the future Model S, but also the Roadster of my colleague and other EV’s which might visit me.

But then, which EVSE do you buy? I’ve been looking around and a EVSE capable of 3x32A costs about EUR 2000,00! It’s nothing more then a CFGI, a fuse and a controller, so I figured that could be done for less.

After some searching I found the Open EVSE project. I was sold right away! What’s cooler then building your own EVSE with Open Source software!?

I ordered the Open EVSE kit with the Advanced Power Supply and got it last week. Right now I’m waiting for my 63A relais (I like it beefy) and some other components like the Type 2 socket for in the outer-wall of my garage.



The Model S won’t fit in the garage, so I’m going to install the Type 2 socket in the outer-wall of the garage. All the EVSE components can be inside, that will make it very clean. Just a Type 2 socket where you plug in your EV and it starts charging! Couldn’t be easier.







To my garage I’m running a 5G6 cable. That’s five wires of 6mm2 each. This cable will be capable of doing 3x32A which should recharge the 85kWh battery in a little bit over 4 hours.

My main fuses are 40A, so when I’m charging with 3x32A I can’t turn on my oven or use my electrical cooking. Open EVSE however supports dynamically changing the current.

In my distribution panel I have a kWh meter with a M-Bus exit over which I can read out the current going through my main fuses. I’ve made a nice web page where I display this information, but the main goal is to have the EVSE read out this data and adjust the current based on what other appliances in my house are using.

This way I’ll never blow my main fuses and I’ll still be able to use 32A at the EVSE when available. Something like my little smart grid!

As I’m still waiting for a couple of components I’m not going to post anything yet about which I’m using. I promise, I’ll add a Wiki on the Open EVSE page about how I build my 3-phase EVSE with Open EVSE!

That’s it for now, keep tuned for more information!

Now it’s back to waiting… Not only for the components, but also for the Model S!

Magento one page checkout keeps redirecting back to the shopping cart

A few friends of mine run a Magento webshop (1.3) and they had the problem that customers would be redirected back to the shopping cart after filling in their personal information.

I tried the same, but my order would go through. I was kind of lost, why did it always work for me but it wouldn’t for other customers?

After some hours of searching I tried to enter my Gmail address instead of my personal address and that failed. I got redirected back as well.

A report showed up in var/report with a warning from the Zend Framework core saying that the gmail address could not be validated.

Some Googling brought me to the magento forums.

The bug is indeed in lib/Zend/Validate/Hostname.php on line 329


if (Zend_Loader::isReadable($classFile)) { 


if (file_exists($classFile) && Zend_Loader::isReadable($classFile)) { 

And you should be up and running again!

I haven’t debugged this further to find out what the root cause is, but I’d thought I’d share my solution.

My first post

This is just another personal blog on the big, big, big internet! I work as CTO at PCextreme B.V. and i will be posting a lot about my daily work.

Just like any other system administrator i run into problems i have to fix or some really undocumented software. Just like all other sysadmins i get a lot of information from various blogposts, so i thought, why not help other people by posting my information?

I’ll try to post as much as i can in english, but sometimes when the post is for dutch people only, i’ll make a post in dutch.

But most of my posts will be about Ubuntu Linux, KVM (Kernel Virtual Machine), iSCSI, DRBD, Apache, etc, etc. I’ll not try to post any information that can be found in a howto or documentation.

I hope i’ll be able to help some sysadmins in trouble!