Patching VMware Tools to fix multiple installation errors on Ubuntu 13.04

Ubuntu 13.04 has the 3.8.0 kernel which has a few changes that VMware have not got round to fixing in the tools package yet. These patches were written for VMware Workstation 9, but I used them successfully with VMware Fusion 5, so there is little or no difference between the tools package for either product. I also did not write these patches myself but I’m writing this post to consolidate fixes for multiple separate issues when attempting to install tools on an Ubuntu 13.04 guest.

Issue 1 – Cannot find kernel headers

This is something to do with the location of version.h changing in the newer kernel and can be fixed with a simple simlink:

sudo ln -s /usr/src/linux-headers-$(uname -r)/include/generated/uapi/linux/version.h /usr/src/linux-headers-$(uname -r)/include/linux/version.h

Issue 2 – Build of vmci fails

The following errors will be encountered in vmware-config-tools.pl:

Using 2.6.x kernel build system.
make: Entering directory `/tmp/modconfig-9TKqy8/vmci-only'
/usr/bin/make -C /lib/modules/3.8.0-21-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
      MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-headers-3.8.0-21-generic'
  CC [M]  /tmp/modconfig-9TKqy8/vmci-only/linux/driver.o
/tmp/modconfig-9TKqy8/vmci-only/linux/driver.c:127:4: error: implicit declaration of function ‘__devexit_p’ [-Werror=implicit-function-declaration]
/tmp/modconfig-9TKqy8/vmci-only/linux/driver.c:127:4: error: initialiser element is not constant
/tmp/modconfig-9TKqy8/vmci-only/linux/driver.c:127:4: error: (near initialisation for ‘vmci_driver.remove’)
/tmp/modconfig-9TKqy8/vmci-only/linux/driver.c:1754:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vmci_probe_device’
/tmp/modconfig-9TKqy8/vmci-only/linux/driver.c:1982:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vmci_remove_device’
/tmp/modconfig-9TKqy8/vmci-only/linux/driver.c:119:12: warning: ‘vmci_probe_device’ used but never defined [enabled by default]
/tmp/modconfig-9TKqy8/vmci-only/linux/driver.c:121:13: warning: ‘vmci_remove_device’ used but never defined [enabled by default]
/tmp/modconfig-9TKqy8/vmci-only/linux/driver.c:2063:1: warning: ‘vmci_interrupt’ defined but not used [-Wunused-function]
/tmp/modconfig-9TKqy8/vmci-only/linux/driver.c:2137:1: warning: ‘vmci_interrupt_bm’ defined but not used [-Wunused-function]
/tmp/modconfig-9TKqy8/vmci-only/linux/driver.c:1717:1: warning: ‘vmci_enable_msix’ defined but not used [-Wunused-function]
cc1: some warnings being treated as errors
make[2]: *** [/tmp/modconfig-9TKqy8/vmci-only/linux/driver.o] Error 1
make[1]: *** [_module_/tmp/modconfig-9TKqy8/vmci-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.8.0-21-generic'
make: *** [vmci.ko] Error 2
make: Leaving directory `/tmp/modconfig-9TKqy8/vmci-only'

The communication service is used in addition to the standard communication
between the guest and the host.  The rest of the software provided by VMware
Tools is designed to work independently of this feature.
If you wish to have the VMCI feature, you can install the driver by running
vmware-config-tools.pl again after making sure that gcc, binutils, make and the
kernel sources for your running kernel are installed on your machine. These
packages are available on your distribution's installation CD.
[ Press Enter key to continue ]

The solution to this issue involves patching driver.c to work with the 3.8 kernel:

cd ~
wget http://cdn.philbayfield.com/downloads/vmware-vmci.patch
cd /usr/lib/vmware-tools/modules/source/
sudo tar xf vmci.tar
cd vmci-only/
sudo patch -p1 < ~/vmware-vmci.patch
cd ..
sudo tar cf vmci.tar vmci-only

Issue 3 – Build of vmhgfs fails

The following errors will be encountered in vmware-config-tools.pl:

Using 2.6.x kernel build system.
make: Entering directory `/tmp/modconfig-LxeJ83/vmhgfs-only'
/usr/bin/make -C /lib/modules/3.8.0-21-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
      MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-headers-3.8.0-21-generic'
  CC [M]  /tmp/modconfig-LxeJ83/vmhgfs-only/backdoor.o
  CC [M]  /tmp/modconfig-LxeJ83/vmhgfs-only/backdoorGcc64.o
  CC [M]  /tmp/modconfig-LxeJ83/vmhgfs-only/bdhandler.o
  CC [M]  /tmp/modconfig-LxeJ83/vmhgfs-only/cpName.o
  CC [M]  /tmp/modconfig-LxeJ83/vmhgfs-only/cpNameLinux.o
  CC [M]  /tmp/modconfig-LxeJ83/vmhgfs-only/cpNameLite.o
  CC [M]  /tmp/modconfig-LxeJ83/vmhgfs-only/dentry.o
  CC [M]  /tmp/modconfig-LxeJ83/vmhgfs-only/dir.o
  CC [M]  /tmp/modconfig-LxeJ83/vmhgfs-only/file.o
  CC [M]  /tmp/modconfig-LxeJ83/vmhgfs-only/filesystem.o
  CC [M]  /tmp/modconfig-LxeJ83/vmhgfs-only/fsutil.o
  CC [M]  /tmp/modconfig-LxeJ83/vmhgfs-only/hgfsBd.o
  CC [M]  /tmp/modconfig-LxeJ83/vmhgfs-only/hgfsEscape.o
  CC [M]  /tmp/modconfig-LxeJ83/vmhgfs-only/hgfsUtil.o
  CC [M]  /tmp/modconfig-LxeJ83/vmhgfs-only/inode.o
/tmp/modconfig-LxeJ83/vmhgfs-only/inode.c: In function ‘HgfsTruncatePages’:
/tmp/modconfig-LxeJ83/vmhgfs-only/inode.c:888:4: error: implicit declaration of function ‘vmtruncate’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make[2]: *** [/tmp/modconfig-LxeJ83/vmhgfs-only/inode.o] Error 1
make[1]: *** [_module_/tmp/modconfig-LxeJ83/vmhgfs-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.8.0-21-generic'
make: *** [vmhgfs.ko] Error 2
make: Leaving directory `/tmp/modconfig-LxeJ83/vmhgfs-only'

The filesystem driver (vmhgfs module) is used only for the shared folder
feature. The rest of the software provided by VMware Tools is designed to work
independently of this feature.

If you wish to have the shared folders feature, you can install the driver by
running vmware-config-tools.pl again after making sure that gcc, binutils, make
and the kernel sources for your running kernel are installed on your machine.
These packages are available on your distribution's installation CD.
[ Press Enter key to continue ]

The solution to this issue involves patching compat_mm.h to work with the 3.8 kernel:

cd ~
wget http://cdn.philbayfield.com/downloads/vmware-vmhgfs.patch
cd /usr/lib/vmware-tools/modules/source/
sudo tar xf vmhgfs.tar
cd vmhgfs-only/shared/
sudo patch -p1 < ~/vmware-vmhgfs.patch
cd ../..
sudo tar cf vmhgfs.tar vmhgfs-only

Finally, after adding any (or all) of these patches, just run vmware-config-tools.pl again and all should complete without issue.

Share

Showing the correct client IP in logs and scripts when using Nginx behind a reverse proxy

I’ve noticed when it comes to use of reverse proxies such as HAProxy to serve high availability websites that many people seem to struggle to get the real client IP address both in their server logs and scripting languages (e.g. PHP).

This is actually really easy to do, but it seems that the methods are not well known as there are numerous posts on forums and many people resort in attempting to resolve the problem by making code changes in their scripts and using custom logging settings on their web server.

With Nginx it’s EASY! I’m sure you can do it with other web servers too, but Nginx is my web server of choice these days due to it’s low memory footprint, speed and features.

For the sake of an example I’ll explain how this works in the context of the hosting that this website is running on. This is a pair of HAProxy servers in front of a pair of Nginx servers with PHP configured via FPM.

Firstly you need to configure HAProxy to pass the client IP address, which is quite simply done by adding the “forwardfor” and “http-server-close” options to the backend, ensuring that the real client IP reaches the backend web servers via the X-Forwarded-For header. Here is the configuration I’m using for my HTTP backend:

backend http
    mode http
    option httpchk GET /index.html
    balance leastconn
    option http-server-close
    option forwardfor
    server web1 <web1_ip>:80 check inter 1000 fastinter 500 downinter 5000 rise 3 fall 1
    server web2 <web2_ip>:80 check inter 1000 fastinter 500 downinter 5000 rise 3 fall 1

Secondly you need to configure Nginx to use the correct source for the client IP address using the HttpRealIP module.

There are 2 main directives you should define:

  • set_real_ip_from specifies the address of a trusted server (e.g. the load balancer) of which Nginx can replace this address with an untrusted address (the client IP)
  • real_ip_header specifies the source header to find the address to replace the trusted server with

These are also global directives, so can be placed in the main config in the ‘http’ section so that it takes effect for all virtual hosts.

Here is an example for a configuration using 2 load balancers:

http {
...
    set_real_ip_from <load_balancer1_ip>;
    set_real_ip_from <load_balancer2_ip>;
    real_ip_header X-Forwarded-For;
...
}

After making these simple changes (5 lines of configuration in total for a dual load balanced cluster) all http logs will display the correct client IP as will scripting languages see the correct IP in the REMOTE_ADDR header without requiring a single code change.

Share

Tags: , , , , , ,

PC Rebuild – Part 2

All the parts have finally arrived, including one or two things I forgot about. I had to order a few extra connectors as the 1/2″ ID tubing was slightly less easy to route as I expected (coming from 3/8″ ID tubing currently). Also worth mentioning that neither Aqua Computer’s D5 pumps or XSPC’s twin D5 dual bay reservoir include O-rings for the pumps (they are usually included with pump tops though by the looks of things) so they had to be ordered separately but are easy enough to find.

A small amount of initial assembly is required. Firstly, mounting the fans to the radiator:

Then the pumps to the reservoir:

Finally the Aquaero block:

Fitting the Aquaero block is a little more complicated. You have to remove the circuit board, take the screws out holding the heat sink in place, add new thermal pads and then attach the block with the different screws provided. As the block is quite small it’s also a bit of a pain to attach the compression fittings, I used a 10mm extender on the left and a 45 degree angled fitting on the right to give clearance from the block.

I’ve got a fried ASUS P9X79 board that I’ve not got round to getting an RMA for yet which is a handy way to mount the CPU block in the right place. This case is so big that the full ATX board looks tiny:

This is a full height radiator plus fans and there is still room above the board to see the cable management, a huge improvement over my current case.

Finally it’s time to put everything in and add the tubing. At this point after I’ve fiddled around getting everything in and my hands start to get sore from tightening up the compression fittings, removing bits and adding them again to make things easier, I get a bit slack with the pictures and just want to get things finished!

Here are a few during and after photos:

Fill with distilled water and away we go!

At the time of writing I’ve had the system running for about 48 hours, I only ordered 1 litre of coolant and it took 1.5 litres to fill it with distilled water. I’m waiting on a new order of Mayhems Aurora fluid which will arrive on Tuesday!

Share

PC Rebuild – Part 1

Lately I’ve been trying to reduce noise in my desktop PC, but the knock on effect of this has been at the expense of cooling performance. I’m also bored of the case (which looks pretty grubby now) and the system colours as well as being fed up with the mess of cables inside (no cable management back then). As the case and complete water loop are in their 6th year of use the’ve had a good run and it’s time for a change.

Initially I’ve decided against pulling my brand new GTX 670 card apart to add a water block to it, it also runs very quietly anyway. For now I’ll cool the CPU and Aquaero fan controller with water, with a nice big rad that can support a GPU later and run fans at lower RPM and noise. I’m sticking with BitFenix fans because they look great and don’t make too much noise and a bay res with integrated pump to save space.

Parts list
Corsair 800D full tower case

Cooling components

XSPC RX360 radiator

XSPC twin D5 dual bay reservoir

Aqua Computer D5 pumps with USB/Aquabus

EK Supremacy CPU block

Aquaero 5 block

Aqua Computer inline temperature sensors

1/2″ ID compression fittings and various other G1/4″ fittings

Mayhem X1 red fluid


Share

An experiment in purchasing Twitter followers

There are many sites now offering Twitter followers for sale for anything as low as $5 for 5,000 followers.

I was curious to see if this might be a viable method to boost the presence of a new website or online business and more importantly would it hold up under scrutiny.

I bought 4,000 followers from someone on Fiverr and expected my followers list to soon be filled with eggs! Once the order had been completed I was surprised to see that actually the vast majority of the profiles looked fairly genuine, all had pictures and bio which is a good start. Unfortunately this is where the illusion ends, as soon as you start to look at the followers accounts a very familiar pattern starts to arise. Most of my latest 4,000 followers have zero followers (some have 1 or 2), they’re all following the same number of people and most of them have never tweeted. Look even further and I can see that they also all follow the exact same list of people!

What I find very interesting is that looking at the people each of these accounts are following is obviously the client list of the person selling the followers, many of which include everything from new businesses and companies to verified users and minor celebrities. Looks like everyone is at it?

To conclude, clearly it’s easy to identify fake followers, even those that look good on the surface. For public figures and B2C companies I can see that this might be a nice way to boost your figures and “look” popular. For a B2B company it seams like a bad idea, especially if your customers are likely to perform any kind of due diligence checks on you.

Share

New Apple product or Foxconn employing dwarfs?

In an article about Foxconn working condition improvements on BBC news, it appears they have unwittingly uncovered either a new Apple product or that Foxconn have started hiring small people (perhaps to save space?):

New Apple product or Foxconn dwarfs?

The original article can be found here:



Share

Virtual and cloud server benchmarks

I’ve been running some benchmarks on a number of popular virtual and cloud service providers, to see what you really get for your money.

All tests are being run on an empty unused server, I have run each test more than once but have generally seen little variation so have only posted the best result for each instance tested.

The final test is taken from a local VM running on my MacBook Pro, just to put things in perspective.

Amazon EC2 small node
   #    #  #    #  #  #    #          #####   ######  #    #   ####   #    #
   #    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    #
   #    #  # #  #  #    ##            #####   #####   # #  #  #       ######
   #    #  #  # #  #    ##            #    #  #       #  # #  #       #    #
   #    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #
    ####   #    #  #  #    #          #####   ######  #    #   ####   #    #

   Version 5.1.3                      Based on the Byte Magazine Unix Benchmark

   Multi-CPU version                  Version 5 revisions by Ian Smith,
                                      Sunnyvale, CA, USA
   January 13, 2011                   johantheghost at yahoo period com


1 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

1 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

1 x Execl Throughput  1 2 3

1 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

1 x File Copy 256 bufsize 500 maxblocks  1 2 3

1 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

1 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

1 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

1 x Process Creation  1 2 3

1 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

1 x Shell Scripts (1 concurrent)  1 2 3

1 x Shell Scripts (8 concurrent)  1 2 3

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: GNU/Linux
   OS: GNU/Linux -- 2.6.32-279.el6.x86_64 -- #1 SMP Wed Jun 13 18:24:36 EDT 2012
   Machine: x86_64 (x86_64)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: Intel(R) Xeon(R) CPU E5645 @ 2.40GHz (4000.1 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSCALL/SYSRET

------------------------------------------------------------------------
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        9518989.8 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     1206.3 MWIPS (10.0 s, 7 samples)
Execl Throughput                                523.8 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         91757.9 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           23763.0 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        287254.0 KBps  (30.0 s, 2 samples)
Pipe Throughput                              128363.0 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  24769.2 lps   (10.0 s, 7 samples)
Process Creation                               1061.1 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                    922.5 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    124.2 lpm   (60.4 s, 2 samples)
System Call Overhead                         139949.3 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    9518989.8    815.7
Double-Precision Whetstone                       55.0       1206.3    219.3
Execl Throughput                                 43.0        523.8    121.8
File Copy 1024 bufsize 2000 maxblocks          3960.0      91757.9    231.7
File Copy 256 bufsize 500 maxblocks            1655.0      23763.0    143.6
File Copy 4096 bufsize 8000 maxblocks          5800.0     287254.0    495.3
Pipe Throughput                               12440.0     128363.0    103.2
Pipe-based Context Switching                   4000.0      24769.2     61.9
Process Creation                                126.0       1061.1     84.2
Shell Scripts (1 concurrent)                     42.4        922.5    217.6
Shell Scripts (8 concurrent)                      6.0        124.2    207.0
System Call Overhead                          15000.0     139949.3     93.3
                                                                   ========
System Benchmarks Index Score                                         174.8
Rackspace Cloud 256Mb first generation node
   #    #  #    #  #  #    #          #####   ######  #    #   ####   #    #
   #    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    #
   #    #  # #  #  #    ##            #####   #####   # #  #  #       ######
   #    #  #  # #  #    ##            #    #  #       #  # #  #       #    #
   #    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #
    ####   #    #  #  #    #          #####   ######  #    #   ####   #    #

   Version 5.1.3                      Based on the Byte Magazine Unix Benchmark

   Multi-CPU version                  Version 5 revisions by Ian Smith,
                                      Sunnyvale, CA, USA
   January 13, 2011                   johantheghost at yahoo period com


1 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

1 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

1 x Execl Throughput  1 2 3

1 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

1 x File Copy 256 bufsize 500 maxblocks  1 2 3

1 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

1 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

1 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

1 x Process Creation  1 2 3

1 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

1 x Shell Scripts (1 concurrent)  1 2 3

1 x Shell Scripts (8 concurrent)  1 2 3

4 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

4 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

4 x Execl Throughput  1 2 3

4 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

4 x File Copy 256 bufsize 500 maxblocks  1 2 3

4 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

4 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

4 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

4 x Process Creation  1 2 3

4 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

4 x Shell Scripts (1 concurrent)  1 2 3

4 x Shell Scripts (8 concurrent)  1 2 3

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: GNU/Linux
   OS: GNU/Linux -- 2.6.35.4-rscloud -- #8 SMP Mon Sep 20 15:54:33 UTC 2010
   Machine: x86_64 (unknown)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: Quad-Core AMD Opteron(tm) Processor 2374 HE (4400.2 bogomips)
          Hyper-Threading, x86-64, MMX, AMD MMX, Physical Address Ext, SYSCALL/SYSRET
   CPU 1: Quad-Core AMD Opteron(tm) Processor 2374 HE (4400.2 bogomips)
          Hyper-Threading, x86-64, MMX, AMD MMX, Physical Address Ext, SYSCALL/SYSRET
   CPU 2: Quad-Core AMD Opteron(tm) Processor 2374 HE (4400.2 bogomips)
          Hyper-Threading, x86-64, MMX, AMD MMX, Physical Address Ext, SYSCALL/SYSRET
   CPU 3: Quad-Core AMD Opteron(tm) Processor 2374 HE (4400.2 bogomips)
          Hyper-Threading, x86-64, MMX, AMD MMX, Physical Address Ext, SYSCALL/SYSRET

------------------------------------------------------------------------
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       19153340.0 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     1985.4 MWIPS (9.9 s, 7 samples)
Execl Throughput                               1085.3 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        176018.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           47572.4 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        465995.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                              291945.4 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  56698.9 lps   (10.0 s, 7 samples)
Process Creation                               1799.6 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2981.9 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    863.4 lpm   (60.0 s, 2 samples)
System Call Overhead                         307516.1 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   19153340.0   1641.2
Double-Precision Whetstone                       55.0       1985.4    361.0
Execl Throughput                                 43.0       1085.3    252.4
File Copy 1024 bufsize 2000 maxblocks          3960.0     176018.5    444.5
File Copy 256 bufsize 500 maxblocks            1655.0      47572.4    287.4
File Copy 4096 bufsize 8000 maxblocks          5800.0     465995.5    803.4
Pipe Throughput                               12440.0     291945.4    234.7
Pipe-based Context Switching                   4000.0      56698.9    141.7
Process Creation                                126.0       1799.6    142.8
Shell Scripts (1 concurrent)                     42.4       2981.9    703.3
Shell Scripts (8 concurrent)                      6.0        863.4   1439.1
System Call Overhead                          15000.0     307516.1    205.0
                                                                   ========
System Benchmarks Index Score                                         396.6

------------------------------------------------------------------------
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       76752699.2 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     7944.5 MWIPS (9.9 s, 7 samples)
Execl Throughput                               3235.4 lps   (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        208027.6 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           54390.3 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        594047.8 KBps  (30.1 s, 2 samples)
Pipe Throughput                             1143949.0 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 210447.4 lps   (10.0 s, 7 samples)
Process Creation                               6401.8 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   7176.8 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    944.6 lpm   (60.2 s, 2 samples)
System Call Overhead                        1069117.6 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   76752699.2   6576.9
Double-Precision Whetstone                       55.0       7944.5   1444.5
Execl Throughput                                 43.0       3235.4    752.4
File Copy 1024 bufsize 2000 maxblocks          3960.0     208027.6    525.3
File Copy 256 bufsize 500 maxblocks            1655.0      54390.3    328.6
File Copy 4096 bufsize 8000 maxblocks          5800.0     594047.8   1024.2
Pipe Throughput                               12440.0    1143949.0    919.6
Pipe-based Context Switching                   4000.0     210447.4    526.1
Process Creation                                126.0       6401.8    508.1
Shell Scripts (1 concurrent)                     42.4       7176.8   1692.7
Shell Scripts (8 concurrent)                      6.0        944.6   1574.3
System Call Overhead                          15000.0    1069117.6    712.7
                                                                   ========
System Benchmarks Index Score                                         957.0
Dediserve cloud node 1 CPU 512Mb
   #    #  #    #  #  #    #          #####   ######  #    #   ####   #    #
   #    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    #
   #    #  # #  #  #    ##            #####   #####   # #  #  #       ######
   #    #  #  # #  #    ##            #    #  #       #  # #  #       #    #
   #    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #
    ####   #    #  #  #    #          #####   ######  #    #   ####   #    #

   Version 5.1.3                      Based on the Byte Magazine Unix Benchmark

   Multi-CPU version                  Version 5 revisions by Ian Smith,
                                      Sunnyvale, CA, USA
   January 13, 2011                   johantheghost at yahoo period com


1 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

1 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

1 x Execl Throughput  1 2 3

1 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

1 x File Copy 256 bufsize 500 maxblocks  1 2 3

1 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

1 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

1 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

1 x Process Creation  1 2 3

1 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

1 x Shell Scripts (1 concurrent)  1 2 3

1 x Shell Scripts (8 concurrent)  1 2 3

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: GNU/Linux
   OS: GNU/Linux -- 3.2.0-29-generic -- #46-Ubuntu SMP Fri Jul 27 17:03:23 UTC 2012
   Machine: x86_64 (x86_64)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: Intel(R) Xeon(R) CPU E5620 @ 2.40GHz (4800.2 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET

------------------------------------------------------------------------
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       23542749.4 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     3071.0 MWIPS (10.0 s, 7 samples)
Execl Throughput                                998.5 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        205473.0 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           51552.4 KBps  (31.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        568092.0 KBps  (31.1 s, 2 samples)
Pipe Throughput                              337505.3 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  58392.7 lps   (10.0 s, 7 samples)
Process Creation                               2536.2 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2530.3 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    338.4 lpm   (60.1 s, 2 samples)
System Call Overhead                         396422.8 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   23542749.4   2017.4
Double-Precision Whetstone                       55.0       3071.0    558.4
Execl Throughput                                 43.0        998.5    232.2
File Copy 1024 bufsize 2000 maxblocks          3960.0     205473.0    518.9
File Copy 256 bufsize 500 maxblocks            1655.0      51552.4    311.5
File Copy 4096 bufsize 8000 maxblocks          5800.0     568092.0    979.5
Pipe Throughput                               12440.0     337505.3    271.3
Pipe-based Context Switching                   4000.0      58392.7    146.0
Process Creation                                126.0       2536.2    201.3
Shell Scripts (1 concurrent)                     42.4       2530.3    596.8
Shell Scripts (8 concurrent)                      6.0        338.4    563.9
System Call Overhead                          15000.0     396422.8    264.3
                                                                   ========
System Benchmarks Index Score                                         419.1
Rackspace Cloud 512Mb next generation node
   #    #  #    #  #  #    #          #####   ######  #    #   ####   #    #
   #    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    #
   #    #  # #  #  #    ##            #####   #####   # #  #  #       ######
   #    #  #  # #  #    ##            #    #  #       #  # #  #       #    #
   #    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #
    ####   #    #  #  #    #          #####   ######  #    #   ####   #    #

   Version 5.1.3                      Based on the Byte Magazine Unix Benchmark

   Multi-CPU version                  Version 5 revisions by Ian Smith,
                                      Sunnyvale, CA, USA
   January 13, 2011                   johantheghost at yahoo period com


1 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

1 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

1 x Execl Throughput  1 2 3

1 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

1 x File Copy 256 bufsize 500 maxblocks  1 2 3

1 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

1 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

1 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

1 x Process Creation  1 2 3

1 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

1 x Shell Scripts (1 concurrent)  1 2 3

1 x Shell Scripts (8 concurrent)  1 2 3

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: GNU/Linux
   OS: GNU/Linux -- 3.2.0-29-virtual -- #46-Ubuntu SMP Fri Jul 27 17:23:50 UTC 2012
   Machine: x86_64 (x86_64)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: Quad-Core AMD Opteron(tm) Processor 2374 HE (4400.3 bogomips)
          Hyper-Threading, x86-64, MMX, AMD MMX, Physical Address Ext, SYSCALL/SYSRET

------------------------------------------------------------------------
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       16930050.9 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     2298.9 MWIPS (7.5 s, 7 samples)
Execl Throughput                                727.4 lps   (29.8 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        136192.8 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           36342.7 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        362103.7 KBps  (30.0 s, 2 samples)
Pipe Throughput                              235619.9 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  39268.0 lps   (10.0 s, 7 samples)
Process Creation                               1745.5 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   1868.0 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    256.6 lpm   (60.2 s, 2 samples)
System Call Overhead                         251351.2 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   16930050.9   1450.7
Double-Precision Whetstone                       55.0       2298.9    418.0
Execl Throughput                                 43.0        727.4    169.2
File Copy 1024 bufsize 2000 maxblocks          3960.0     136192.8    343.9
File Copy 256 bufsize 500 maxblocks            1655.0      36342.7    219.6
File Copy 4096 bufsize 8000 maxblocks          5800.0     362103.7    624.3
Pipe Throughput                               12440.0     235619.9    189.4
Pipe-based Context Switching                   4000.0      39268.0     98.2
Process Creation                                126.0       1745.5    138.5
Shell Scripts (1 concurrent)                     42.4       1868.0    440.6
Shell Scripts (8 concurrent)                      6.0        256.6    427.7
System Call Overhead                          15000.0     251351.2    167.6
                                                                   ========
System Benchmarks Index Score                                         292.6
Linode 1024Mb node
   #    #  #    #  #  #    #          #####   ######  #    #   ####   #    #
   #    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    #
   #    #  # #  #  #    ##            #####   #####   # #  #  #       ######
   #    #  #  # #  #    ##            #    #  #       #  # #  #       #    #
   #    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #
    ####   #    #  #  #    #          #####   ######  #    #   ####   #    #

   Version 5.1.3                      Based on the Byte Magazine Unix Benchmark

   Multi-CPU version                  Version 5 revisions by Ian Smith,
                                      Sunnyvale, CA, USA
   January 13, 2011                   johantheghost at yahoo period com


1 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

1 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

1 x Execl Throughput  1 2 3

1 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

1 x File Copy 256 bufsize 500 maxblocks  1 2 3

1 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

1 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

1 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

1 x Process Creation  1 2 3

1 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

1 x Shell Scripts (1 concurrent)  1 2 3

1 x Shell Scripts (8 concurrent)  1 2 3

4 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

4 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

4 x Execl Throughput  1 2 3

4 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

4 x File Copy 256 bufsize 500 maxblocks  1 2 3

4 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

4 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

4 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

4 x Process Creation  1 2 3

4 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

4 x Shell Scripts (1 concurrent)  1 2 3

4 x Shell Scripts (8 concurrent)  1 2 3

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: GNU/Linux
   OS: GNU/Linux -- 3.5.2-x86_64-linode26 -- #1 SMP Wed Aug 15 14:31:07 EDT 2012
   Machine: x86_64 (x86_64)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: Intel(R) Xeon(R) CPU L5520 @ 2.27GHz (4533.6 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   CPU 1: Intel(R) Xeon(R) CPU L5520 @ 2.27GHz (4533.6 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   CPU 2: Intel(R) Xeon(R) CPU L5520 @ 2.27GHz (4533.6 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET
   CPU 3: Intel(R) Xeon(R) CPU L5520 @ 2.27GHz (4533.6 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSENTER/SYSEXIT, SYSCALL/SYSRET

------------------------------------------------------------------------
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       19461187.3 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     2676.3 MWIPS (10.0 s, 7 samples)
Execl Throughput                                804.1 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        233258.3 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           62975.5 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        716054.5 KBps  (30.0 s, 2 samples)
Pipe Throughput                              367183.5 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  24187.2 lps   (10.0 s, 7 samples)
Process Creation                               1883.9 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2890.1 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    748.0 lpm   (60.1 s, 2 samples)
System Call Overhead                         386542.8 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   19461187.3   1667.6
Double-Precision Whetstone                       55.0       2676.3    486.6
Execl Throughput                                 43.0        804.1    187.0
File Copy 1024 bufsize 2000 maxblocks          3960.0     233258.3    589.0
File Copy 256 bufsize 500 maxblocks            1655.0      62975.5    380.5
File Copy 4096 bufsize 8000 maxblocks          5800.0     716054.5   1234.6
Pipe Throughput                               12440.0     367183.5    295.2
Pipe-based Context Switching                   4000.0      24187.2     60.5
Process Creation                                126.0       1883.9    149.5
Shell Scripts (1 concurrent)                     42.4       2890.1    681.6
Shell Scripts (8 concurrent)                      6.0        748.0   1246.7
System Call Overhead                          15000.0     386542.8    257.7
                                                                   ========
System Benchmarks Index Score                                         412.9

------------------------------------------------------------------------
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       48173573.7 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     9156.4 MWIPS (9.8 s, 7 samples)
Execl Throughput                               2730.0 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        370575.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           97725.5 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       1239482.7 KBps  (30.0 s, 2 samples)
Pipe Throughput                             1270353.0 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 169366.3 lps   (10.0 s, 7 samples)
Process Creation                               5901.0 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   6655.8 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    875.8 lpm   (60.2 s, 2 samples)
System Call Overhead                        1344474.1 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   48173573.7   4128.0
Double-Precision Whetstone                       55.0       9156.4   1664.8
Execl Throughput                                 43.0       2730.0    634.9
File Copy 1024 bufsize 2000 maxblocks          3960.0     370575.5    935.8
File Copy 256 bufsize 500 maxblocks            1655.0      97725.5    590.5
File Copy 4096 bufsize 8000 maxblocks          5800.0    1239482.7   2137.0
Pipe Throughput                               12440.0    1270353.0   1021.2
Pipe-based Context Switching                   4000.0     169366.3    423.4
Process Creation                                126.0       5901.0    468.3
Shell Scripts (1 concurrent)                     42.4       6655.8   1569.8
Shell Scripts (8 concurrent)                      6.0        875.8   1459.6
System Call Overhead                          15000.0    1344474.1    896.3
                                                                   ========
System Benchmarks Index Score                                        1065.6
Parallels on OSX 1 CPU 512 Mb
   #    #  #    #  #  #    #          #####   ######  #    #   ####   #    #
   #    #  ##   #  #   #  #           #    #  #       ##   #  #    #  #    #
   #    #  # #  #  #    ##            #####   #####   # #  #  #       ######
   #    #  #  # #  #    ##            #    #  #       #  # #  #       #    #
   #    #  #   ##  #   #  #           #    #  #       #   ##  #    #  #    #
    ####   #    #  #  #    #          #####   ######  #    #   ####   #    #

   Version 5.1.3                      Based on the Byte Magazine Unix Benchmark

   Multi-CPU version                  Version 5 revisions by Ian Smith,
                                      Sunnyvale, CA, USA
   January 13, 2011                   johantheghost at yahoo period com


1 x Dhrystone 2 using register variables  1 2 3 4 5 6 7 8 9 10

1 x Double-Precision Whetstone  1 2 3 4 5 6 7 8 9 10

1 x Execl Throughput  1 2 3

1 x File Copy 1024 bufsize 2000 maxblocks  1 2 3

1 x File Copy 256 bufsize 500 maxblocks  1 2 3

1 x File Copy 4096 bufsize 8000 maxblocks  1 2 3

1 x Pipe Throughput  1 2 3 4 5 6 7 8 9 10

1 x Pipe-based Context Switching  1 2 3 4 5 6 7 8 9 10

1 x Process Creation  1 2 3

1 x System Call Overhead  1 2 3 4 5 6 7 8 9 10

1 x Shell Scripts (1 concurrent)  1 2 3

1 x Shell Scripts (8 concurrent)  1 2 3

========================================================================
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: GNU/Linux
   OS: GNU/Linux -- 2.6.32-279.2.1.el6.x86_64 -- #1 SMP Fri Jul 20 01:55:29 UTC 2012
   Machine: x86_64 (x86_64)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   CPU 0: Intel(R) Core(TM) i7-3720QM CPU @ 2.60GHz (5200.0 bogomips)
          Hyper-Threading, x86-64, MMX, Physical Address Ext, SYSCALL/SYSRET

------------------------------------------------------------------------
1 CPU in system; running 1 parallel copy of tests

Dhrystone 2 using register variables       38534338.6 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     4124.1 MWIPS (9.8 s, 7 samples)
Execl Throughput                               4404.0 lps   (30.0 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        800268.5 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks          229568.8 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks       2024689.9 KBps  (30.0 s, 2 samples)
Pipe Throughput                             2038687.3 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                 309400.1 lps   (10.1 s, 7 samples)
Process Creation                              12695.4 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   5706.9 lpm   (60.0 s, 2 samples)
Shell Scripts (8 concurrent)                    745.0 lpm   (60.0 s, 2 samples)
System Call Overhead                        2822468.9 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   38534338.6   3302.0
Double-Precision Whetstone                       55.0       4124.1    749.8
Execl Throughput                                 43.0       4404.0   1024.2
File Copy 1024 bufsize 2000 maxblocks          3960.0     800268.5   2020.9
File Copy 256 bufsize 500 maxblocks            1655.0     229568.8   1387.1
File Copy 4096 bufsize 8000 maxblocks          5800.0    2024689.9   3490.8
Pipe Throughput                               12440.0    2038687.3   1638.8
Pipe-based Context Switching                   4000.0     309400.1    773.5
Process Creation                                126.0      12695.4   1007.6
Shell Scripts (1 concurrent)                     42.4       5706.9   1346.0
Shell Scripts (8 concurrent)                      6.0        745.0   1241.7
System Call Overhead                          15000.0    2822468.9   1881.6
                                                                   ========
System Benchmarks Index Score                                        1467.4


Share

New gallery: Egypt 2011

Another holiday album from last year has also made it to the light of day:



Share

New gallery: Amsterdam 2011

I’ve finally got round to adding some photos from last year, here is our holiday to Amsterdam in September 2011:



Share

Gobi 2000 WWAN (VAIO S, etc) on Fedora

There are a lot of long explanations on how to make this mobile broadband model work correctly with Linux, most of which are Ubuntu based, but it’s actually really simple.

The modem is recognised but the key is that it requires the firmware to be loaded after every cold boot.

$ lsusb
Bus 001 Device 007: ID 05c6:9224 Qualcomm, Inc. Sony Gobi 2000 Wireless Modem

Simply download and install gobi_loader either from http://www.codon.org.uk/~mjg59/gobi_loader/download/ or clone the git repository from git://cavan.codon.org.uk/gobi_loader.git

make
sudo make install

Copy the firmware files from a Windows install (or Wine) to /lib/firmware/gobi

# cp /media/0646579646578579/Program\ Files\ \(x86\)/QUALCOMM/Images/Sony/UMTS/* /lib/firmware/gobi/

Reboot! Mobile broadband will now be available from the Gnome networking menu.

Share