Tuesday 25 September 2007

FSG3, SMF, Visual Verification Headache

I am running the Simple Machines Forum software (php) on an Freecom FSG3 Network Storage Box, and have been banging my head on the table because I cannot get the visual verification function to work - all I see is the randomised dots, and no letters in the middle.

The server is Apache, so I checked that it could do graphics - I ran httpd -l to get a list of all of the included modules, and didn’t see the ‘gd’ module, which is needed for the graphics - I though that was it, and wasted a long time trying to cross-compile Apache (that’s a different story). Eventually I found that if you create a php file as follows:

And access if from your webserver, it tells you everything you need to know, including the fact that the gd modules are, after all, included.

Configure Command: ‘./configure’ ‘–prefix=’ ‘–target=arm-linux’ ‘–host=arm-linux’ ‘–build=i686-pc-linux-gnu’ ‘–with-mysql’ ‘–with-apxs=../apache_1.3.33/apxs’ ‘–with-config-file-path=/usr/local/apache/conf’ ‘–enable-mbstring’ ‘–with-gd’ ‘–with-png-dir=/lib’ ‘–with-jpeg-dir=/lib’ ‘–with-zlib’

Knowing that it was after all supported, I started to delve into the php code for the server, looking at each function in turn to check if it was supported. The only thing that was not supported was the true-type-font functions, but this didn’t matter as the code checked for it.

Eventually, I looked at the manpage for the imageloadfont, and saw the following:

“The font file format is currently binary and architecture dependent. This means you should generate the font files on the same type of CPU as the machine you are running PHP on.”

It all became clear. The FSG3 is a big-endian system, whereas (I presume) the SMF software was tested on a little-endian system.

The simple act of replacing the font files with big-endian versions enabled the visual verification system to work.

If you just see random dots and no text in the SMF visual verification image, and your system is big-endian, simply replace the gdf font files with big-endian versions.

Saturday 15 September 2007

My Windows Vista Machine cannot access my NAS Shares

After falling over in the house, and pushing my crutches through the screen of my laptop, I’ve replaced it with another one - this is running Vista.

The very first problem I encountered was that I couldn’t see any of the network shares that I used to see on my old XP machine. After a lot of searching, it seems that Microsoft have beefed up the network file sharing security, and made Vista incompatible with old file sharing system security features by default.

There is a registry hack to re-enable this old mode (Using regedit to set the LMcompatibilityLevel to 1).

I have since found that my PC is very slow copying files on the network - to copy 400 files, totalling just 1Mb from a zipfile onto a network drive took 50 (yes Five Zero) minutes.

The real solution is to upgrade the server software at the other end to be compatible. I’m running samba on a Freecom Network Storage Box (FSG3), and upgrading to the latest firmware, which includes samba version 3, has allowed these shares to be seen again.

This may not be the end - at the moment, the machine seems to be running OK.

There is a hotfix available from Microsoft (Knowledge Base Article 931770 - The copy process may stop responding when you try to copy files from a server on a network to a Windows Vista-based computer), but I’ve not applied it at the moment….

Sunday 9 September 2007

Running a DNS Server on an FSG3 Network Storage Box

I have a NAS box in the house, which is used to store my music and video. In the house, also, I have an internet radio / media player, and a networked satellite receiver, and of course, a webserver which recognises several different names (virtual hosts) to direct the access to different directories.

I want to be able to refer to these devices by name, rather than IP address, but I don’t want to go around hacking hosts files on every machine - the solution is to use a named server, and point all the machines in the house towards it. This has the advantage that I can override the internet recognised domain (e.g. trumpton.org.uk), to divert the address locally.

I have just upgraded my FSG3 to the latest kernel (2.6).

Firstly, I needed the name server (in a package called bind), and a dependant package (openssl). I downloaded bind_9.3.4-1_armeb.ipk and openssl_0.9.7m-2_armeb.ipk, and installed them on the FSG3 with the ipkg command.

Next, I created the name server files. Rather than storing them in the default /opt directory, I have decided to install them into /home/named - this means that the files will be retained following any firmware upgrade (on this particular device).

Note that in these files, a semicolon indicates the start of a comment, not the end of a line. If there are no comments, no semicolons are needed.

The first file is named.conf:

options {
pid-file “/home/named/named.pid”;
directory “/home/named”;
port 53;

// Internet Root Servers
zone “.” {
type hint;
file “root.zone”;

// Local Host Loopback
zone “0.0.127.in-addr.arpa” {
type master;
file “db.local”;

// Local network Addresses
zone “local” {
type master;
file “local.network”;

// Local netork Reverse Addresses
zone “14.168.192.in-addr.arpa” {
type master;
file “rev.local.network”;

// trumpton.org.uk
zone “trumpton.org.uk” {
type master;
file “trumpton.org.uk”;

The file contains pointers to all of the named configuration files - the options section identifies where files reside, the zone sections identify the forward (i.e. loking up www.trumpton.org.uk) and the reverse (i.e. looking up files. The special zone file ‘.’ has pointers to other servers on the internet for the various naming authorities (RIPE, ARIN etc..).

The ’local’network’ file contains the names for the local (internal) network:

@ IN SOA webserver.local. junkmail.trumpton.org.uk. (
2006012103; serial
28800; refresh, seconds
7200; retry, seconds
604800; expire, seconds
86400 ); minimum, seconds;
NS web.local.;
MX 10 web.local.;
local. A
internet A
desktop A
satbox A
nasmedia A
netradio A

web A

The part at the top of the file is used to put a timestamp on the file, and tell other servers on a network how often they should be updated. The list following, gives the names of all of the machines, and their corresponding IP addresses.

Of course, if you have an IP address, and want to know the machine name, you need reverse lookups - that is what the rev.local.network is for:

@ IN SOA webserver.local. junkmail.trumpton.org.uk. (
2006012103; serial
28800; refresh, seconds
7200; retry, seconds
604800; expire, seconds
86400 ); minimum, seconds;
NS web.local.;

1 PTR internet.local.
100 PTR cam.local.
101 PTR desktop.local.
102 PTR satbox.local.
103 PTR nasmedia.local.
104 PTR netradio.local.
105 PTR web.local.

The file ‘trumpton.org.uk’ contains the name lookups. Note, however, the MX entries here - these point to my service provider’s mail exchange, as in my case, all mail goes through their servers, and I do not run my own mail server. If I did, these would simply point to ‘trumpton.org.uk’. Note the ‘.’ at the end of a name - if the dot exists, it indicates that this is the end of the name, and if it is missing, the domain specified in the named.conf file for this particular file is appended.

@ IN SOA webserver.local. junkmail.trumpton.org.uk. (
2006012103 ; serial
28800 ; refresh, seconds
7200 ; retry, seconds
604800 ; expire, seconds
86400 ; minimum, seconds
) ;

NS web.local.;
MX 10 easymx2.easily.co.uk.;
MX 10 rhea.easily.co.uk.;
trumpton.org.uk. A
www A

Once the files are in place, it’s just a matter of editing the S09named script that was installed in the ipkg to refer to the correct directories, copying it to the /etc/rc directory, and starting it with /etc/rc/S09named start.

Im my case, the ‘pidof’ program was missing. Rather than installin the bundle that includes pidof, I created /bin/pidof

PSLIST=”`ps -ef | grep $1 | grep -v pidof | grep -v grep | cut -c1-5`”
echo “$PSLIST”

Now, the computers on the network need to be pointed at this DNS, rather than the firewall’s one. Usually, it is possible to add at least two entries, mine are:


Saturday 8 September 2007

Paragliding - What Not to do !

I’ve recently been on holiday to Spain, for a week’s paragliding.

My first day was excellent, with a nice 3 hours flight, getting to a height of 2.5km above ground level. A great triangular flight, covering 35km, and getting back to the top of the mountain.

The next day, however, things weren’t quite so great. We used a take-off site I had never visited before - I am always apprehesive on take-off, and a new site only increases the stress. I set up on the hill, at which time there was nill wind. The logical thing to do was to wait for a thermal to come through.

Well, the thermal came through, and I picked up my paraglider - it was slightly off to one side, so I corrected with the brake lines and turned round to face the direction I’d be running. The paraglider then dipped off slightly to the right, so I adjusted with the brake as I began to run. At this point, I’m not exactly sure what happened - either I stumbled, or I was picked up and dumped by the back end of the thermal - it is likely that as this happened, I put on a lot of left brake, as I flew to the left across take-off, crashing left-foot first into the mountain.

I rolled over onto my back, and my left foot wasn’t quite pointing the direction it should have been. Now I was surprised that this did not hurt as much as I thought it would (I had actually broken my ankle and fibula, and it seemed to hurt less than when I broke my toe a few years ago).

After about 20 minutes, the ambulance, police and local doctor appeared on the side of the hill. Fortunately, I’ve been learning Spanish at my local college, and could manage some rudimentary communication. The doctor gave me the once over, worried that I had damaged my spine - I explained that the crash was relatively slow speed, and that my paraglider harness had protected my back.

It took 6 people to carry me down the 20 yards to the ambulance. After another check by the doctor, I was bundled off to the hospital (1 hour away in Ávila).

Now I had it in the back of my mind that there was a maximum amount of morphine you could take, and I thought that I’d need everything that I could have to get me through the night. As the pain was not excruciating, I refused painkillers. The time I really wished I had had some morphine was when they took my tight boot off (this hurt quite a bit) - anyway, at least my foot was pointing in the right direction afterwards.

The surgeon explained that I’d need an operation to fix the bones in the ankle. We had a conversation of risks of travelling, waiting and DVT, and I chose to have the operation in Spain, rather than wait until I got home. 5 hours later, I was in surgery.

They gave me an epidural, which was an interesting experience, as you were completely with it, and could hear everything that was going on (they didn’t let you watch). The incision felt strange - it felt like someone drawing on your foot with a biro - that was the only sensation I had. I heard some drilling, and the staple gun (used to close the wound), and the 20 minute operation was over, and I went on to spend a couple of hours under observation, until the anasthetic wore off.

I then spent a couple of days on the ward - and by this, I mean in room with one other patient. Spain is very different from the UK in the way hospitals work - firstly, they seem to work ! - and secondly, it is normal for the family to look after the patient in the hospital, washing, feeding, fetching water etc… There is no ‘visiting time’ as such, in fact, it is the opposite “Families must vacate for 1 hour a day, when the doctors are doing their rounds”. It is not uncommon for a family to stay with the patient throughout the night.

My room-mate had a head injury, after a light aircraft accident, and was suffering from double vision. His wife never left the room (unless the doctors came round, or I needed a pee).

I guess one of the worst things was the heparin injections that were given in my stomach fat (thank heavens I have quite a bit of that!). After 2 nights, I was discharged, went back to Steve and Puri’s, and spent the rest of the week chilling. The local nurse cleaned and re-dressed the operation wound, and taught me how to do my own injections.

My insurance company made arrangements to fly me back business class, and then taxi me to my door. The following Monday, I went to the local hospital, where the surgeon was pissed off that I had the audacity to have my operation done in Spain. I had the half-cast replaced with a full-cast, and ambled home by taxi for 5 weeks of lying with my foot elevated.

After three weeks, the cast had become so loose, the leg was supporting the cast, rather than the cast supporting the leg. I returned to the hospital, where it was replaced. I’ve just over a week to go before the cast comes off, and it is getting loose again …..

It’s now a week or so later, and I’ve got rid of the cast. My left calf muscle is almost non-existant (wasted to less than half its original size in the 6 weeks of rest).

I’ve got some excercises to do, and a visit to the phisiotherapist, but within a couple of weeks, I should be able to get rid of the crutches, walk and drive again.

For now, I’ve to keep the weight off it and gently excercise it, but it will be a while before I am flying again.

Tuesday 28 August 2007

Dreambox 7025 Netcast Setup

My dreambox 7025 has the streaming radio program ‘dreamnetcast’ plugin, but it is not clear how this should be configured with favorite stations.

There is a file in the /etc directory called NETcaster.conf, however, it does not seem to be used.

The dreamnetcast menu has 4 buttons (Red=Search, Green=TopList, Yellow=GenreList and blue=Favorites).

It is important to realise that Search, TopList and GenreList all get their data from the yp.shoutcast.com server, whereas the Blue Favorites button gets its data from the /etc/genrelist.xml file (yes, counter-intuitive, I know).

Wednesday 22 August 2007

USB <-> Serial Adaptors and Vista

I’ve got a couple of USB<->Serial adaptors, neither of which work in Vista. On plugging them in, I went to the hardware manager, and looked at the properties of the unknown device (specifically the HardwareId) - this showed up as USB\VID_0607B&PID=2301.

A quick search on the internet shows Prolific as the vendor ID 0607B, and on visiting their website, found out that they do not support Vista, and you need to go to whoever you bought your adaptors from.

My adaptors are unbranded ones, so I simply searched for another vendor with an adaptor that is Vista compatible, and uses the Prolific chipset.

I downloaded and installed the Targus PA088E drivers for Vista, installed them, and then uninstalled (this left the driver sys files behind), and I now have two working USB<->Serial adaptors under Vista.

Sunday 12 August 2007

Internet Radios

I’ve bought a couple of internet radios, which are excellent - they allow me to listen to radio stations from all over the world - my favorites at the moment being Alouette and BBC Radio 7.

The good thing about this radio, is its ability to access listen again streams, but it has a lot of downsides - it has no alarm, some of the menus are in stupid places, after a power cut the clock resets to 00:00 until you turn it on, the company providing the radio module (barracuda) and maintaining the database of stations are slow to respond.

Consequently, I am be proud to be a memeber of the Sharpfin Project. This project goal is to produce an alternative firmware to the one offered by the suppliers. It is not a reverse engineering activity, it is a “Lets use GPL applications, write some interfaces, and build a radio from scratch”.

Wednesday 1 August 2007

Tomy the Mowbot - Review

Well, as I am completely lazy, I’ve bought myself a robot lawnmower. I eventually went for the Mowbot, which is designed and built in Italy. Information is quite hard to find about these things, but it eventually became clear that the Lawnbott is exactly the same beastie under a different name.

I’ve a circular lawn, with a 65mm wide brick border around it. Time will tell if it actually manages to cut upto the edge - I was advised that it would be able to, as it will go around the edge on its way back to its garage, however when it decides it is time to go home, it drives until it meets the perimiter cable, turns right and follows the wire home. This means that the edge to the left of where it meets the wire will not be done.

It probably needs a software patch, to cut the edge by following the cable in an anti-clockwise direction before turning round and following it clockwise to get back to base.

Another unwanted feature is radio interference. My lawn is quite small, and consequently, the perimeter wire is quite short. Next-door ended up phoning the local FM radio station to ask if there were any problems with the transmitter. The old version of the installation manual expects a minimum of 20m of perimeter cable, whereas current instructions just tell you for testing you should add 35 feet of cable as the loop. My suppliers have provided me with an additional filter, and the filter (along with a 20m coil of cable) mean that Radio 4 is back on the air.

The next problem is the beeping. The mower beeps every 20 seconds when it is in the garage, and more regularly (and even louder) if it detects rain. There is no menu through which the beeping can be turned off. For some reason, the manufacturers decided to put the beep enable/disable on a hidden service menu - the mower is now quiet.

To access the service menu:

Turn on and press Pause.

Press Charge.

then +

then -

You are now in the service menu.

Use +/- to navigate to 'Beep'

Press Enter to change settings.

Press Pause to exit

Take care, as you can probably do some damage in this menu.

Happy days.


It's been over a year now, and I can confirm that Tomy does not cut up to the edge. If you lay the cable out as instructed (300mm from the edge), the robot can navigate its way back home without falling off the lawn, but leaves a 150mm ring around the lawn that it does not cut.

Thursday 15 March 2007

FSG3 Storage Box and Apache

I'm trying to get the Simplemachines Forum working properly on my FSG-3, with the new 2.6 kernel.

Nearly everything works, except for the graphical verification during registration.

This boils down to the missing 'GD Module' support. The installed version of apache is a mini-version, with a few compiled in modules, and excludes the graphics one.

Unfortunately, the apache in the ipkg feed does not have this feature either, so I begin my quest to cross-compile apache.

I have already got the crosstools installed, and have GCC-3.4.4 with GLIBC-2.3.6 for armeb installed (required for the FSG3v4).

The steps taken are:

  • Download the Apache source
  • Download the GDLib Module
  • Build the APR and APR-UTILS programs and install
  • Configure Apache for cross-compiling
  • Build

Download the Apache source

The Apache HTTPD source can easily be found on the Apache Website.

Download the GDLib Module


Build the APR and APR-UTILS programs and install

Apache is a bit stupid when you try and build it for a cross-compiling architecture. If apr and apr-utils are not installed, it will try and compile them for the destination processor, and then complain that they won't execute on the local processor.

It is important to install these apps before configuring Apache.

Ensure that the native machine's gcc is in the path, and:

cd apache-source-directory
su -
( cd srclib/apr ; ./configure --prefix=/usr/local/apr-httpd/ ;
make ; make install )
( cd srclib/apr-util ; ./configure --prefix=/usr/local/apr-util-httpd/ --with-apr=/us/local/apr-httpd/ ; make ; make install

Configure Apache for Cross-Compiling

Configure HTTPD

cd ../../
./configure --with-apr=/usr/local/apr-httpd/ --with-apr-util=/usr/local/apr-util-httpd/


Monday 1 January 2007

Privacy Policy

We take your privacy seriously. This policy describes what personal information we collect and how we use it. (This privacy policy is applicable to websites falling under the primary holder: trumpton.org.uk.)

Routine Information Collection

All web servers track basic information about their visitors. This information includes, but is not limited to, IP addresses, browser details, timestamps and referring pages. None of this information can personally identify specific visitors to this site. The information is tracked for routine administration and maintenance purposes, and lets me know what pages and information are useful and helpful to visitors.

Cookies and Web Beacons

Where necessary, this site uses cookies to store information about a visitor's preferences and history in order to better serve the visitor and/or present the visitor with customized content.

Advertising partners and other third parties may also use cookies, scripts and/or web beacons to track visitors to our site in order to display advertisements and other useful information. Such tracking is done directly by the third parties through their own servers and is subject to their own privacy policies.

Controlling Your Privacy

Note that you can change your browser settings to disable cookies if you have privacy concerns. Disabling cookies for all sites is not recommended as it may interfere with your use of some sites. The best option is to disable or enable cookies on a per-site basis. Consult your browser documentation for instructions on how to block cookies and other tracking mechanisms.

Special Note About Google Advertising

Any advertisements served by Google, Inc., and affiliated companies may be controlled using cookies. These cookies allow Google to display ads based on your visits to this site and other sites that use Google advertising services. Learn how to opt out of Google's cookie usage. As mentioned above, any tracking done by Google through cookies and other mechanisms is subject to Google's own privacy policies.

About Google advertising: What is the DoubleClick DART cookie? The DoubleClick DART cookie is used by Google in the ads served on publisher websites displaying AdSense for content ads. When users visit an AdSense publisher’s website and either view or click on an ad, a cookie may be dropped on that end user’s browser. The data gathered from these cookies will be used to help AdSense publishers better serve and manage the ads on their site(s) and across the web. Users may opt out of the use of the DART cookie by visiting the Google ad and content network privacy policy.

Contact Information

Concerns or questions about this privacy policy can be directed to Steve Clarke, by commenting on this post for further clarification.