Easton's blog

Nimrod language

 I have recently discovered the Nimrod programming language. I usually don't branch out on languages because, well, stuff you don't know can be scary. I'm surprised how easy it is to get going though, it reminds me quite a bit of Python. I put up a test project on Github that fetches the weather for a given location.

SnackLinux evolution

 SnackLinux finally has a domain, snacklinux.org! The source is still on Github and all the ISO images have moved as well.

Building a distro that almost works

 For the most part, SnackLinux works. I've been having problems with Busybox, so I've made packages for coreutils, binutils, sed, grep and gawk. When compiling anything, I get:

segfault at 0 ip    (null) sp bfdb1cbc error 4 in busybox[8048000+e8000]

or something along the lines of that. I used the newest Buildroot, 2013.11, to create a new toolchain and cross compile uClibc 0.9.33 for SnackLinux. I have yet to recompile Busybox yet, but I'm working on getting gcc natively working on SnackLinux. Once that is completed, I should be able to compile SnackLinux from within SnackLinux.

Getting a terminal IBM Model M to work with PS/2

 I recently bought another IBM Model M (1395660) on eBay the other day, not thinking that it is actually a terminal keyboard. I thought it has a detachable SDL cable like my current Model M (1391401). I was wrong. Turns out it has a non-removable RJ-45 plug instead, thus being a terminal keyboard. Well, aftering some researching, some were able to get it to work by using an ATMega. I was able to find a pinout of the RJ45 plug on the keyboard, and simply just wire it up to a PS/2 cable. Though apparently, the colour of wire for PS/2 is not standardized, which led to testing each pin to see what it does. I cannibalized an old Microsoft keyboard for the cable and was able to hook the wires up straight to each other.

SnackLinux update

 Four months later and I finally updated SnackLinux. I changed  SnackLinux from a ramdisk to initramfs, updated the Linux 3.10.1 and cleaned up how things build. The full project is available on my Bitbucket and ISOs are available to download here.

SnackLinux, an intro to building your own distro

 I've spent the last week or two working on SnackLinux, a small Linux distro. I managed to get uClibc in there, as well as tcc, which makes it somewhat useful. The source of it all is there, so you can compile the distro yourself (sans the packages). There are also ISOs which you can download here and fire them up in a virtual machine.

Raspberry Pi as a thin client

 The processor on the Raspberry Pi isn't all that fast, so why not offload it? I have a HP ML350 that is mostly idling, except when I need to use PostgreSQL, so I thought to set it up as a desktop server for my Pi.

 

I set up a RDP server since it works well with Linux and also Windows. First thing's first, install xrdp and all other dependencies:

 

apt-get install build-essential libpam0g-dev libssl-dev x11vnc vncviewer fakeroot checkinstall x11vnc xrdp rdesktop

 

Then, install your desktop of choice. I chose XFCE since it's pretty lightweight

apt-get install xfce4

NES controller on the Raspberry Pi

Because I wanted the full experience, I wanted to hook up my NES controller to my Raspberry Pi and play NES games. I looked around and didn't find anything that fit my needs.

I wrote a script, that's up on Github now, that converts button presses on the NES controller to keyboard presses. So for example, by pressing the A button it registers as pressing the Z key on a keyboard. How to set it up is all right here.

I spliced the wires on the NES controller (thanks to this diagram) and used a breadboard to connect the appropriate wires to ground, +5V, the data, latch, and clock pin. Now I can play Mario in retroarch with a NES controller!

SNES emulator on the Raspberry Pi

 I won a Raspberry Pi for getting 3rd place in the Open 7400 Logic Competition, of which HubCityLabs donated the Raspberry Pi. My initial project idea for it was to set up a wall mounted weather station. For the time being I thought I'd mess around with it and get somehwhat familiar on what I'm dealing with.

 

I downloaded the Rasbian image and wrote it to an SD card. It's recommended that the SD card is a minimum of class 4.

Everything is supported 'out of the box' with Rasbian so there's no fiddling around. After purchasing a HDMI cable and connecting it to the Pi, it still output video via the RCA jack instead. I opened up /boot/config.txt and set hdmi_safe=1 and voila, HDMI worked!

Update: iStat on pfSense

 

pfSense 2.x runs on FreeBSD 8, instead of the previous 7. I wanted to get istatd working on my router, so I fetch'd libxml2 from here and the istatd binary (version 0.5.7) compiled against FreeBSD 7 from my previous blog post, here. For this to work, you'll also need the iOS app. When running istatd, it complained about some libraries. I simply created symlinks from the old library to the new one and everything worked fine, see below.

ln -s /lib/libz.so.5 /lib/libz.so.4
ln -s /lib/libkvm.so.5 /lib/libkvm.so.4

You can get a template for the configuration file here and put it in a nice place, like /etc/istat.conf 

Create your user, group and socket file and you're good to go:

pw user add -n istat
pw useradd istat -G istat
touch /tmp/istatd.sock

Then, you can run the istatd daemon with just

istatd -d -c /etc/istat.conf

 Now, you'll be able to monitor your pfSense box with iStat!

 

 

Syndicate content