Embedded Linux Development

I work for a company that is currently utilising Linux on an embedded platform, now I am a big fan of Linux, and I do really like embedded systems… so the natural progression was to go and learn about embedded Linux development. I managed to find a really good book called the Embedded Linux Primer: A Practical Real-World Approach which really is very good. So, as a kind of training exercise, I will be attempting to build my own customer miniture linux distribution (borrowing some things from other projects) for an embedded system. The board I have chosen is the BifferBoard which is available from http://www.bifferboard.com and is a very cheap x86 based system with a lot of handy features such as UART, JTAG, GPIO, Ethernet, really good board and again, really cheap, I paid around €30 for mine…

I do have a few goals that I intend to accheive in the proccess of doing this project and a few additional tools will be imported from other projects… the main requirements that I have are…

  • Very small footprint.
  • Custom compiled kernel that has the bare essentials to support all of the hardware on the board natively, no KLM’s allowed.
  • A working shell environment, Busybox is my target at present.
  • A port of UCI which is extensively used throughout OpenWRT, that really is an awesome configuration utility.
  • A port of the LUCI framwork, again, used extensively throughout OpenWRT.
    • LUCI is a MVC based framework written in LUA that provides superb interaction with the UCI configuration tool.
  • A method of automatically ‘provisioning’ a unit with a set of configuration files
    • Most likely the provisioning will be handled on a back end server somewhere (read: webserver) where the unit it’s self simply checks the server on first boot and will grab the config files if they exist.
  • Support for V4L and webcams. This provides the potential to take a cheap webcam, and a cheap board, and have a cheap IP camera.

More will be added to this list as some of the items are checked off or as a need arises for them. One thing that I cant think of, and I have never been very good at it, is a name for the project. Any ideas? Please do let me know in the comments, one idea I heard was ic-linux…

Since committing to doing this I have built a small development area for myself using my Laptop and some other equipment I had that would be useful, USB hub, old router with DHCP disabled as I dont have a small switch, various tools, memory sticks etc… unfortunately I was doing some work on my room and ended up making a mess of it all so its not exactly picture worthy at the minute, but I will get some put up soon.

Anyway, thats enough rambling on for now…

Share this post...
  • Print
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Fark
  • HackerNews
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati
  • Twitter

Getting Manhunt to run in Windows Vista

RockStar Manhunt

Many people have tried to run Manhunt on Windows Vista but without any luck, through a fair ammount of Googling in the past, I came across this fix…

Step 1:
Download XVI32 from http://www.chmaas.handshake.de/delphi/freeware/xvi32/xvi32.htm

Step 2:
Back up your manhunt.exe file

Step 3:
Open manhunt.exe in XVI32

Step 4:
From the addreess tab at the top, select “Goto”
Select the hexedecimal option and set the go mode to “Absolute”

Step 5:
In the Goto box, enter in 08DE

Step 6:
If all above went well, you should see a box highlighted containing 6A,
modify this so that it says 2A.

Step 7:
Save the file and exit the editor.

Step 8:
Play.

Thanks to Sonnilivo for the great information relating to this!

Share this post...
  • Print
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Fark
  • HackerNews
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati
  • Twitter

New project…

Being constant tinkerer that I am, I have a new (old) project in the pipelines! Im actually revisiting an older project of mine that fell by the way-side to make room for constant gaming and neglect of wanting to actually do anything. It all started when I ordered some books from a site that I like and actually read them instead of leaving them sitting on my shelf for a change. And so it begins, in an effort to prove to myself that I can read a book and really learn from what it has to say, BuildFunStuff v2 is in the works. The project is going to consist of the following milestone goals…

  • Designing a custom theme for wordpress that is HTML 4.01 Strict compliant.
  • Writing a full, comprehensive legal disclaimer
  • Writing an accessibility statement
  • Writing a number of fun projects you can build at home with minimal tools
  • Integrating wordpress with Google Adsense
  • Integrating wordpress with Twitter
  • Making a few short video’s to advertise the site and its projects

Of course, not all of these milestones are going to be in the order they are listed in here, in fact the disclaimer has been drafted and is awaiting review. Even the accessability statement is a work in progress, of course the statement cant be finalised until the theme is comlete because who knows what type of whacky accessability stuff I’m going to integrate into it. The theme is most likely going to be based off the 160gs CSS system as I think that would be a useful learning exercise. The projects can all be done in the background as Im working on the rest of the bits and pieces, all in all at present, I’d say I have around 10% of the total work drafted… which really means around 0% of it done since its all going to have to be re-visited… but hey, you have to start somewhere dont you?

Anyway, thats enough jibber jabber for now…

Share this post...
  • Print
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Fark
  • HackerNews
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati
  • Twitter

Roll your Own: Wide Area Network (WAN) pt.2

Ok, so there hasn’t been all that much movement on this project as of yet, but I do have a lot of ideas for it and I am in the proccess of aquiring parts. At the minute, I have the following embedded boards to use,

  • PC Engines Alix .3C
  • PC Engines Wrap .1D
  • PC Engines Wrap .2C
  • PC Engines Wrap .1C
  • RB-532 (Routerboard running MicroTik firmware)
  • RB-564 (Routerboard Expansion Module)

For storage, I have 5x 128mb CF cards and 1x 2GB CF card. I also have 3x PoE injectors (the quick and dirty kind), 3x CM9 radio cards, and 1x 27dBi omni-directional antenna for 2.4GHz (which by the way, is awesome)

For servers, I still have PhoneBox, a 1.6GHz Intel Atom mini-ITX machine, I am working on getting a new, shiny rackmount dual core 1.6GHz machine too so that will be two servers for a start. I have also managed to aquire a racking case thats 600mm deep and has the capacity for around 12u, although it is missing its front bezel rails – I’m fairly confident I can find them somewhere in work. Im working on getting a new (2nd hand) patch pannel to keep everything neat and tidy too. Next on my list of things to do is to get a PSU built that can run all of this equipment with UPS functionality, I do have a 3A power plex box here that I also got from FWI, however it is not working at the moment, I beleive it is the power FET thats gone and it should be a simple chop & change replacement. Failing that, I will design a SLA charging circuit and feed the 12v supply from the transformer, and the 12v supply from the SLA bank into a comparator for fast switching on a power cut. I would like to have a UPS that can maintin the routing infrastructure during an outage for 16-24 hours. As the (soon to be) two Mini-ITX servers also run off 12v, I would like to have these included in the UPS scheme for a few reasons,

  1. A transformer at max-efficiency can only be around 85%, less transformers (power blocks etc…) means less power lost and a smaller electricity bill.
  2. The servers will be running Linux, which in some (lots of) cases, it doesnt like just having its power yanked.
  3. Everthing will be in a centralised location (at least at my station) so it will mean less wiring.
  4. Everything can then be rackmounted, and there would only be a single mains feed.

I am currently trying to draw a sufficient network topology plan including wiring and subnetting for my station to allow for easy management & high security. This also involves selecting what services will be provided on the network here – more on this later.

Share this post...
  • Print
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Fark
  • HackerNews
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati
  • Twitter

Roll your Own: Wide Area Network (WAN)

Thanks to my friends over at Fast Wireless Internet, I now have my own ISP grade wireless equipment. I will be using this (hopefully) to build a wireless link from my house in Dublin, to my parents (and my mates) house in Laois. this is a wireless link of over 50km so proper preparation is paramount. The main idea is to have two directional antennae on each site, one for TX and one for RX, coupled with this will be a standard (high gain) omni-directional for spread coverage of the surrounding area.

The main equipment that is going to be used is RouterBoards running the Micro-Tik (Linux based) operating system, 5.8Ghz Wireless cards and some high gain, narrow beam (~7°) dish style antennae. The house in Dublin will have an extended mounting post fixed to the roof, while the house in Laois already has access to a nice big shiny mast (and a wind turbine)

I’m also in the middle of working on some security features for this, y’know wireless isn’t all that secure… so I will be using MAC filtering, WPA2, Radius and possibly passive IDS & Network monitoring. The Micro-Tik will take care of the first two, but I’ll be implementing a PFSense system on a PC Engines Wrap.1D too.

In order to house all of this equipment, I will be building a small(ish) NOC or Network Operations Centre in my attic, an more than likely my mate will just add the new equipment to the NOC thats already on his end. As a part of this NOC build, I will be making (meh, repairing) a 12V UPS and fitting it with some high AH batteries, moving my mini-itx to it, and building a custom P0E power distribution system.

All in all, its going to be a big, interesting project… I’ll keep you posted!

Share this post...
  • Print
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Fark
  • HackerNews
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati
  • Twitter

Roll your Own: CS:S Server (Part 3)

Ok, so from Part 1 and Part 2, you should now have a working Counter-Strike:Source server up and running, with Mani-Admin for your administration. Here is how to get MetaMod Source installed… this is going to be a really simple quick one to go on…

# cd /<yourserver>/cstrike/addons
# wget http://sourcemod.steamfriends.com/files/mmsource-1.7.1.tar.gz
# tar -zxvf mmsource-1.7.1.tar.gz
# rm mmsource-1.7.1.tar.gz

Ok, now we have MetaMod downloaded and extracted into the correct directory, last thing we need to do is create a VDF file to load it, MetaMod have a great VDF generator here or you can do the following…

# touch metamod.vdf
# pico metamod.vdf

Once in pico, paste the following text in ([shift]+[insert]), save with [ctrl]+o and exit with [ctrl]+x

“Plugin”
{
“file” “../cstrike/addons/metamod/bin/server_i486.so”
}

You can now restart your server and double check that MetaMod is running by typing “meta version” into the console. All done!

Share this post...
  • Print
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Fark
  • HackerNews
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati
  • Twitter

Roll your Own: CS:S Server (Part 2)

Ok, so from the last section of this you should have a working Counter-Strike:Source server up and running, just to make this a little bit easier on the admins, now we’re going to install Mani Admin Plugin. The first thing your going to need is Mani Admin Plugin it’s self…

# wget http://www.mani-admin-plugin.com/mani_admin_plugin/v1_2_beta_s/mani_admin_plugin_v1_2_beta_s.zip
# unzip mani_admin_plugin_v1_2_beta_s.zip

Once that’s done, you can move the files from the newly extracted directory to your ./<server>/cstrike directory as follows

# mv -R addons /<yourserver>/cstrike
# mv -R cfg/<yourserver>/cstrike
# mv -R materials/<yourserver>/cstrike
# mv -R sound /<yourserver>/cstrike

The next step is to add “exec mani_server.cfg” into your own server.cfg

# echo “exec mani_server.cfg >> /yourserver/cstrike/cfg/server.cfg”

Finally, we need to get mani running as an addon each time your server starts, the best way to do this is to create a mani_admin_plugin.vdf in /yourserver/cstrike/addons and add the following text to it.

“Plugin”
{
“file” “../cstrike/addons/mani_admin_plugin”
}

Mani should now be installed and running, the final steps is to add yourself to the /yourserver/cstrike/cfg/mani_admin_plugin/clients.txt file, this however I will not cover. All of the information on how to do this, in various different ways is available here.

Just so you know, I am currently working on a script that will allow for the automatic installation of ANY of the linux based Steam game servers just by answering a few questions. I’ll keep you posted on my progress with this.

Share this post...
  • Print
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Fark
  • HackerNews
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati
  • Twitter

Custom CS:S Knife Skin

I got a bit bored and wanted to read up on skinning so I have created this very basic custom CS:S skin, personally, I think its awesome :p

You can download it here.

knife_t-copy

Share this post...
  • Print
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Fark
  • HackerNews
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati
  • Twitter

Roll your Own: CS:S Server

*** UPDATE: Fixed some typo’s in the commands ***

This is how to set up a CS:S server on Ubuntu Linux. This is not a definitive guide, it is simply how I have done it. I have omitted some security precautions here as my server will not be going live online, and is only used for testing things in-house.

NOTE: lines of text preceded with a # symbol should be entered into a terminal.

First of all, you are going to need the HLDS tool from Steam, this is what allows us to get all of the required game files and update the server etc…

# wget http://www.steampowered.com/download/hldsupdatetool.bin
# chmod +x hldsupdatetool.bin
# ./hldsupdatetool.bin
# ./steam

This will download the hlds tool, make it executable, extract the steam tool, and update the steam tool. We now have everything required to get ready to install. The next step is to create somewhere for the server to go, and get all of the required files.

# mkdir CSS1
# ./steam -command update -game “Counter-Strike Source” -dir ./CSS1

This will begin the download of your new CS:S server, this can take some time and varies greatly depending on your download speed. At this point, you can consider what addons and configuration you want to use on your server, a handy tool I came across for the configuration files is available here. Once your CS:S server has finished installing, you can launch it by doing the following…

# cd CSS1
# ./srcds_run -console -game cstrike +map cs_office +maxplayers 16 -tickrate 66 -autoupdate -ip 192.168.0.100

The above command assumes the following, you want to play cs_office with the possibility of hosting 16 players on a 66 tick server who’s IP is 192.168.0.100, adjust these values to suit your own requirements.

Congratulations, you should now have a working CS:S server, but its not much fun without some plugins, so we’re gonna grab and configure Mani Admin Plugin and Eventscripts to throw on there for some easy administration and fun games. This will be continued in part 2.

Share this post...
  • Print
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Fark
  • HackerNews
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati
  • Twitter

Welcome… I guess…

Hi There,

Just to keep y’all in the loop, this is going to be my blog of sorts, but for the most part its just going to be used to track my various how-to’s and to keep notes on stuff that I’ve done. Feel free to follow it or read it daily (if I can type that much…) and I hope if you do, you might learn something from it.

Enjoy!

Share this post...
  • Print
  • Digg
  • del.icio.us
  • Google Bookmarks
  • Fark
  • HackerNews
  • Reddit
  • Slashdot
  • StumbleUpon
  • Technorati
  • Twitter