Under Desk Rack Mount Switch

There are not enough network ports in my office. There are ten home runs to my house’s backbone switch.
With all the network enabled devices I’ve built and computers, I’ve maxed these out.

I have this Cisco switch in storage, but it is big and awkward. This kind of switch is meant for a telecom closet with a rack. To solve this, I purchased some cut rack rails and mounted them on 2×4’s that are screwed under the work table. The switch is recessed far enough that the cable’s won’t exceed the depth of the table.

rack mount switch

Crypto Currency Mining on Raspberry Pi 2

I got my Raspberry Pi 2 a week ago from Amazon. I got tired of waiting for MCM/Element 14 to lower their ridiculous shipping costs.

The rpi2 is much snappier. I’ve never been a big fan of anything but the price point. I like the pcduino series for actual use.

I installed cpuminer (the trick is to install it from the GitHub download; do not clone the repo). The Rpi2 produces about 1.5 khashes/second. The chipset does get very warm to the touch. I’ve seen anecdotal comments that the original Pi could hash less than 0.5 khashes/second.

 

IMG_0523.JPG

AMD 5350 APU in a Cooler Master HAF XB EVO case

I recently put together a very affordable system to run crashplan and perform secondary NAS duties. I chose an AMD 5350 system on chip (SoC). I have used many Intel Atom boxes, and they chips are great, but always found the motherboards lacking in I/O. The 5350 APU series is socketed; you can choose your own motherboard. I paired it with a ASUS AM1M-A motherboards. This was one of the few motherboards I could find that had two extra PCI-Express 1x slots. The motherboard has two on-board SATA3 connectors. I installed on IO Crest SATA 4 Port SATA controller to provide four more ports. the trick to this configuration is that the PCIe 1x slots can not provide more than ~500mb/s of bandwidth. A SATA controller will quickly become saturated using more than SSD. The bandwidth is more than enough for multiple mechanical disks.

I also chose a Cooler Master HAF XB EVO case. This has four internal 3.5″ bays and four external 3.5″ bays. I’m using brackets to pack two SSD’s per 3.5″ bay.

All the hardware listed here works flawlessly with Ubuntu server. No extra drivers required.

Samba transfer rates are about 130mb/s with the SSD and 110mb/s with the mechanical disk. 130mb/s is not real as this exceeds one gigabport ethernet port speed. Crashplan transfers about 25mbit/s.

_DSC0973

_DSC0974

_DSC0975

Raspberry PI and clock stretching

I started playing with i2c (or two-wire) on the Rpi. I quickly found problems when talking to i2c slaves that are usually some sort of embedded processor (mostly AVR’s). The problem is that the current i2c driver in Raspbian “wheezy” has a hard coded timeout flag. I2C is facilitated by a Broadcom 2835 chip that has multiple types of I/O. There is a drive for this chip that maps the different types of I/O to /dev/ devices.

I’ve had this problem with blinkm’s and Sparkfun’s 7 segment serial/i2c board (both use AVR’s). I also tried smbus and quick2wire. What makes this problem maddening is that the timeout is problem very close to the actual timing and will fail sometimes but not others.

Back to the problem: if the i2c slave does not ACK a command within a certain number of rpi clock cycles, then the driver returns errno 5. On the i2c slave side, the AVR (or other processor) may be do work in response to a command. If the slaves waits to long, the timeout gets exceeded and the Linux driver returns that pesky error. Until this is fixed at the driver level, people are going to have to live this annoyance. Edit: Reading from smarter people: this is a really a chip set issue. The best solution is to use an I2C chip set that handles this in hardware. Fixing it in software (at the driver) level is just kludge.

To me this is more than an annoyance, it’s pesky and makes the i2c nearly unusable. There are a few work arounds:

  1. Reduce (or changed) the i2c bus frequency
  2. Rewrite the firmware on the i2c slave to immediately return the ACK
  3. Catch the errno 5 and repeat until success

Raspberry pi Model A with Edimax

I got my Model A Raspberry pi working with the Edimax EW-7811 USB wifi adapter and no additional network connectivity. I used a cheap USB hub and could power the mouse, keyboard, and wifi with no external power.

There are a few tricks: the first is to use the most recent version Raspbian.

The second trick is to edit the /etc/wpa_supplicant/wpa_supplicant.conf file and manually join to an SSID:


ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

network={
ssid="luben"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
group=CCMP
psk="*password*"
}

The /etc/network/interfaces file looks like this,


auto lo

iface lo inet loopback
iface eth0 inet dhcp

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Raspberry pi model A versus B

Received my first raspberry pi. I’ve been looking for a use for one of these for a while and finally found it. Come to find out there are three different types of pi’s on the market: Model A, Model B Rev 1 and Model B Rev 2. The Model A has no ethernet. To get connectivity, you must use a USB adaptor. Model B Rev 1 has wired ethernet whereas Rev 2 is the same, but with an extra 256mb RAM (512 total).

Raspberry Pi’s are now starting to show up on Amazon Prime, but the price is a bit higher than ordering from Sparkfun or Adafruit, but it will appeal the instant gratification crowd.

Hurricane canless air

We started using these Hurricane canless air tool to replace the cans of air we purchase. Canned air has additional chemicals in it that are not good for the environment, and you pay a lot for compressed air. The Hurricane is a high speed air pump with a nozzle. Its power source is rechargeable battery.

We use the ESD-safe model (a bit more expensive) to blow the dust out of computers. The air output is not quite as focused or as high a velocity as a traditional can of air. This tool is also noisy. It has a high pitched shriek. Across the office it sounds like a dentist drill. Even through these shortcomings, it is a cheaper and greener solution than canned air.

The crap KVM’s being sold on the market

About two years ago I used a Belkin F1DP108G KVM. This unit boasted remote access over IP. Turns out the system uses ActiveX controls that only work under XP. Frustration level was high with Belkin. They refused to support our units when IE start getting upgraded. This was when I started noticing that bad reviews were being systematically pulled from websites such as CDW and PC Connection.

Today, Tripp Lite sells the exact same models–rebranded of couse. We even popped open the dongles to find the exact same circuit boards–and yes–the dongles work with both units. Tripp Lite seems to have current licensing to the firmware, ensuring their units work with Windows 7. Of course, even Tripp Lite’s units come with old firmware, and must be upgraded upon receipt.

What is sad about this, is that Belkin still sells their antique F1DP108G to unsuspecting customers who can’t find good or bad reviews anywhere on the internet.

Software RAID 5 with SSD’s and IOPS performance

In an effort to eek more life out of my workstation, I decided to switch from a single mechanical disk to some on-sale Mushkin SSD’s. They were so cheap I decided to get three instead of one, and try software RAID. I’ve had previous experience with software RAID on Ubuntu, and been reasonable pleased with it.

For this upgrade I used three 120gb Mushkin Chronos units. I configured these on a Dell Precision T3500 (which despite its size, is hard to fit three drives into). This precision has a four core Xeon and 24gb RAM. It is old enough to only support sata 2. I installed Ubuntu 12.04 (alternate) and configured the three drives with software RAID 5.

Now the benchmarking: with iostat the previous 500gb WD mechanical drive would provide 70 to 100 IOPS depending on the size and duration of test. The new configuration provides 800 to 1000 IOPS at 4k size with random reads and writes. I do not have enough time to try with only RAID 0 or RAID 1, so treat this data anecdotal.