My goal this week was to set up my Beagleboard as a RAID server. I have had a Dell system with 2 external USB disk drives set up as RAID 1 as my server for the past few years and it has served me well but I don’t like the idea of leaving it powered on all the time as I am pretty anal about watching my power usage. I decided to set up the Beagleboard as my server for two reason: 1. less power – the entire system with disks is less than 10 watts. 2. I will soon be getting a Raspberry Pi and the Beagleboard will no longer be of interest as a development platform.
Well, this week turned into a massively frustrating exerience with the Beagleboard trying to get Linux running. I continue to see errors with the MMC card no matter what I do. I am trying to use a Ubuntu arm build and if I use either the curent 11.10 or 11.04 releases I see a boat load of these errors:
[ 181.645996] mmcblk0: error -84 transferring data, sector 4603160, nr 32, cmd response 0x900, card status 0xb00 [ 181.735992] mmcblk0: error -84 transferring data, sector 4604216, nr 136, cmd response 0x900, card status 0xb00
If I go back to 10.10, I see a similar boat, but it is full of these errors:
[ 20.931884] end_request: I/O error, dev mtdblock2, sector 8 [ 20.944763] uncorrectable error : [ 20.948272] end_request: I/O error, dev mtdblock2, sector 128 [ 20.961456] uncorrectable error :
I have tried several different SD cards and it acts the same so I am guessing there is some issue with the MMC drivers in the linux kernel for ARM. The lack of people complaining about this when I google it gives me a bit of suspicion about this but the fact that it acts differently under different Linux kernels make me think that there is something fishy going on.
So here is my plan. I am going to spend another week on this project. First I will try the Ångström distribution for the Beagleboard and see if the MMC errors persist. If not, great, I can get the RAID services running and perhaps take on my next project. If the errors persist, I’ll dig into the kernel sources and see if I can do anything about it. I don’t have access to an ARM emulator, so I will just be able to look at the code and MMC specs to see if I can determine what is going on and fix it. I plan to either have this working by next Sunday, or I simply give up and buy an extra Raspberry Pi board for the server. Even if this turns into a two week failure, I’ll have learned some stuff about the Linux kernel and MMC protocols.
I also started my oximeter project. I took apart a commercial oximeter that I bought to see what makes it tick. I’ll post pictures as I dig into the project more.
Also, I got a pad lock open that I don’t know the combination to using a coke can (look here).