Morphex's blogologue (Life, technology, music, politics, business, mental health and more)

This is the blog of Morten W. Petersen, aka. morphex in various places. I blog about my life, and what I find interesting and/or important. This is a personal blog without any editor or a lot of oversight so treat it as such. :)

My email is

I am

An OGG/Vorbis player, implemented in Javascript.

My Kiva bragging page
My shared (open source) code on GitHub

Morphex's Blogodex

Me on Instagram

Zope hosting by Nidelven IT

Morten Petersen on Linkedin

Morten Petersen on Facebook

Morten Petersen on SoundCloud

Morten Petersen on MixCloud

Blogologue on Twitter

Older entries

Atom - Subscribe - Categories

Facebook icon Share on Facebook Google+ icon Share on Google+ Twitter icon Share on Twitter LinkedIn icon Share on LinkedIn

A Rasbperry Pi router

So, I've been playing around with different technologies the last couple of weeks. The one I've talked the most about is the Raspberry Pi, a small computing unit that's available for cheap.

Where I'm staying doesn't have wired internet, and the Wi-Fi that is available isn't any good. So I decided I should create a router based on the Raspberry Pi that makes some "smart" decisions about network traffic.

I've got two providers of mobile internet, one on my phone and one pure mobile broadband subscription. The former has a good latency but limited capacity, while the latter is the opposite.

So when I'm playing online games like Battlefield, where latency (ping) is very important, I'd like to have the router choose what the best thing to do is, based on my instructions. I also flip between Windows and Linux on the desktop, and having things just work without per-OS configurations would be nice.

This router should be flexible so I can connect to it using Ethernet or Wi-Fi, and the Ethernet USB-dongle I got for it kept crashing the Pi. I reported this bug to the kernel developers but it is an old (not updated in years) driver that's causing the crashes so I don't have my hopes up. I found a patch which fixes the crashing ( ), but I'm not sure that patch does the right thing, it's probably the network chip driver is the one that should be patched.

Anyway, today I was able to patch the Raspbian kernel, cross-compile it on my X64 Octo-core 3.4 Ghz (significantly faster than compiling it on the Raspberry itself), install it on an SD-card, modify the config.txt file and boot the Raspberry with usbnet.c patched. And that worked well, copying a large file using scp went painlessly.

I ordered a new Ethernet dongle today, one that supports 1 Gbp/s in addition to 10/100 mbit, as offering that option as well seems like the right thing to do.

The Raspberry has support up to high speed USB 2.0, which has a max bandwidth of 480 Mbit/s (in practice the bandwidth one can use will be significantly lower) and there is also some CPU overhead, so it will never fast enough to give full 1 Gbps access. But it will offer the option of 1 Gbps connectivity, which probably means the upper limit is a couple of hundred Mbps.

I think this was a fun and smart thing to start with, I've also got some other Raspberry Pi ideas lurking, but limitied time and energy to play around with things.

[Permalink] [By morphex] [Technology (Atom feed)] [02 Feb 23:05 Europe/Oslo]