Category Archives: Musings

Just the musings of technical minds.

WAN Load Balancing

We ran into an issue at work where we needed faster Internet (or more bandwidth,)…  The prices for our current ISP’s were higher than we had hoped for faster Internet, but we would like fail over as well as additional load balancing.  With teachers and students depending on the Internet so much we cannot afford not to have the Internet working well.  Our current provider’s downtime was unrealistically low (single digit hours a year) and we were VERY happy with the service.  Increasing our speed with that provider was not very cost beneficial compared to other providers.  So we started considering load balancing/fail-over with a second or third provider.

We investigated several commercial options as well as potential open source options.  We LOVE open source but something as critical as this we wouldn’t want to have to ever really troubleshoot.  We looked at solutions that were computers with specialty designed OS’s, as well as specialty hardware.

We had discussed deeply whether a standard computer hardware (with replaceable hardware) would be better than a hardware device designed to do what we wanted.  Ultimately we came to the conclusion that the software or features would make the decision.

We ended up going with a Ecessa Powerlink 600 which is a load balancer for both inbound and outbound connections,WAN fail-over, and Ecessa fail-over if two units are purchased.  We get the device setup with our current single 11Mb/11Mb fiber connection and were dieing to get more connections on the device.  A few weeks later we were able to get 100Mb/5Mb cable connection in and immediately saw the differences and how Ecessa was load balancing between the two connections.  Within the first week we had also had notices of our new cable modem dropping in and out however end user experience was not effected.

We were able to eventually load balance:

  • 11Mb down/11Mb up extremely reliable but expensive fiber connection
  • 50Mb down/50Mb up reliable wireless connection
  • 100Mb down/5Mb up least reliable cable connection

This provides us with a total usable bandwidth of 161Mb down/67Mb up, with the fastest potential download speed of 100Mb down, 50Mb up depending on the WAN interface you happen to fall on.  This also provides fail-over on any of the connections so that we can immediately fail-over to another connection without major interruption to end-users.

This link is also capable of load balancing incoming connections if set to an authoritative DNS server however we are currently not implementing that due to current network structure and time involved to implement that.  Although the time is not much, we are pressed to finish other projects right now.  That being said, we will be implementing this in the future.

I can say that installation was EXTREMELY easy with tech support.  Without the tech support the device would not be as straight forward as most would hope, advanced users ‘could’ struggle to get it setup.  We provided some simple information and they sent us a configuration file which was uploaded to the device.  They pretty well configured the device remotely and sent us the file.

We got it up and running and it has been running fantastic for over 100 days; even during ISP failures on our cable modem.  Our end users do not notice any issues when we fail-over.

When you setup Ecessa WAN links you type in the IP’s of 3 hosts to ping continuously.  When 2 of them fail the PL600 fails that link until they come back.  This ensures a good solid reliable connection for the end users.  We see out links during the day sporadically fail-over from time to time and have not had any complaints from end users.

During troubleshooting we can VERY easily see what WAN links are up and down, if there were problems, and what speeds are.  Screenshot - 01152013 - 09:30:12 PM

 

 

Jan 15 21:04:06 PowerLink PL600_00250725: Web authentication succeeded for root from ::ffff:68.190.160.87
Jan 15 19:11:05 PowerLink PL600_00250725: Web authentication succeeded for root from ::ffff:68.190.160.87
Jan 14 15:02:28 PowerLink PL600_00250725: Link Link3: Testpoint #1: Status change: PASS
Jan 14 15:02:12 PowerLink PL600_00250725: Link Link3: Testpoint #1: Status change: FAIL
Jan 14 14:43:17 PowerLink PL600_00250725: Link Link3: Testpoint #3: Status change: PASS
Jan 14 14:43:00 PowerLink PL600_00250725: Link Link3: Testpoint #3: Status change: FAIL
Jan 14 14:31:08 PowerLink PL600_00250725: Link Link3: Testpoint #2: Status change: PASS
Jan 14 14:30:50 PowerLink PL600_00250725: Link Link3: Testpoint #2: Status change: FAIL
Jan 14 12:45:59 PowerLink PL600_00250725: Link Link3: Testpoint #2: Status change: PASS
Jan 14 12:45:41 PowerLink PL600_00250725: Link Link3: Testpoint #2: Status change: FAIL
Jan 14 04:33:55 PowerLink PL600_00250725: Link Link1: Testpoint #3: Status change: PASS
Jan 14 04:33:48 PowerLink PL600_00250725: Link Link1: Testpoint #1: Status change: PASS
Jan 14 04:33:46 PowerLink PL600_00250725: PowerLink refresh - done
Jan 14 04:33:46 PowerLink PL600_00250725: PowerLink refresh - status
Jan 14 04:33:46 PowerLink PL600_00250725: Link: Link1: Status change: UP
Jan 14 04:33:46 PowerLink PL600_00250725: Link Link1: Testpoint #2: Status change: PASS
Jan 14 04:33:44 PowerLink PL600_00250725: PowerLink refresh - done
Jan 14 04:33:44 PowerLink PL600_00250725: PowerLink refresh - status
Jan 14 04:33:44 PowerLink PL600_00250725: Link: Link1: Status change: DOWN
Jan 14 04:33:41 PowerLink PL600_00250725: Link Link1: Testpoint #1: Status change: FAIL

We have found the Powerlink Extremely effective and  HUGE cost savings.  In about 1 year the device will pay itself off compared to if we would purchase a very fast reliable Internet connection.  We are looking for a second to setup as a redundant fail-over in the years to come.

Linux Vinyl Plotting With A Gerber enVision Plotter

I recently had the opportunity to work with an older Gerber enVision plotter from a township.  I had major difficulties getting the old version of Omega working with their USB licensing stick, and I knew that getting anything like this working on Windows without proper licensing would be an inadvisable, and rocky road ahead.

I decided to look into open source solutions, and I found out that Inkscape can do vinyl plotting with an extension called InkCut.

This tutorial will attempt to comprehensively explain how I got this working.  I am by no means an expert, but I found very limited web resources out there on this topic, and I am hopeful that someone will eventually stumble on this article and find it useful.

Background
A simple, free, and open source solution to an expensive and complex problem: How do we plot stuff with our vinyl plotter?

Assumptions
This tutorial will assume that you have some prior experience with the Linux terminal and the Linux desktop.  On my test computer, I was working with a clean installation of Ubuntu 12.04 (12.04.1) LTS.  However, any Ubuntu or Debian flavor should be acceptable.  I am also assuming you have an older Gerber enVision series plotter.  If this is not the case, I imagine most of these instructions will apply fairly well to any kind of vinyl plotter.

The Plotter
Here are some photos of the Gerber enVision plotter I was working with.

2013-01-01 13.20.33

2013-01-01 13.20.42

 

The plotter interfaced with the computer using a serial connection.

Ubuntu & This Plotter
In order to establish proper communications between the computer and the plotter, I had to ensure some things were true.  I reset my plotter to the factory default settings, which resulted in a condition where I could assume this about my serial connection:

Baud: 9600
Data Length: 8
Parity: None
Stop Bit: 1

In order to ensure communication with non-root users, I took a questionable approach, and I decided to:

chmod 777 /dev/ttyS0

This did not need to be a very secure environment (we didn’t even password protect the workstation’s desktop) so I figured this would be a reasonable approach, rather than troubleshooting why CUPS was getting permission denied errors while printing to the serial port.

Configure The Plotter In CUPS
To install this plotter in CUPS, you’ll want to open up your Printer configuration area from the System menu.

Click “Add” to add a printer.

CUPS Add A Printer

If you don’t have the option for “Serial Port #1”, then use the Device URI “serial:/dev/ttyS0“.

Serial Printer

 

You will want to select Generic as the make of printer.

Generic Printer

 

Then, select “Raw Queue”  This will work with InkCut providing the HPGL instructions.

Generic Printer - Raw Queue

Obviously, it doesn’t matter what you name your plotter, or what description you give it, just give it something that makes sense.

Finalize Printer Settings

Install Inkscape

Next, we want to install Inkscape.  You can do this from Apt on Ubuntu, as such:

sudo apt-get install inkscape

Once you’re done with the installation, start Inkscape for the first time.  This will create blank default configuration folders in your profile which are necessary for the next step.

Inkscape

 

Then, go ahead and close Inkscape, and move on to installing InkCut!

Install InkCut
You can download the latest version of InkCut from their website.  At the time of this writing, the version is 1.0, and can be found here.

Once you’ve downloaded InkCut, go ahead and extract the file using this command.  It will put the files right where they need to be for you!

tar -xzvf InkCut-1.0.tar.gz -C ~/.config/inkscape/extensions/

Now, when you start Inkscape, you should see InkCut on the Extensions menu, under Cutter/Plotter.

InkCut

Screencast How-To’s
 I have also created some screencasts to explain how to set up the document for your plotter, as well as how to plot some basic text.

Document Setup – Screencast
(Download OGV)

Let’s Plot Some Text! – Screencast
(Download OGV)

Remember, when plotting your text, you need to make sure your objects are converted to paths, by highlighting your text and going to Path > Object To Path.  You also want to make sure your paths aren’t grouped, by right clicking each block of text and clicking Ungroup.

Then you should be good to go to Extensions > Cutter/Plotter > InkCut v1.0 and start plotting!

Installing Dragon Naturally Speaking 12 Does Not Work With WINE 1.5.20

NOTE: This is NOT a how-to.  This was an effort to document the problems I ran into during installation.  This blog post did not end in a successful installation of Dragon Naturally Speaking 12 in WINE 1.5.20.

This post, like my previous one, also started as a How-to, until it didn’t work…  I did eventually get Dragon Naturally Speaking working, and that post will be coming shortly.  This post does not have instructions which work, but I will publish it anyway in the hopes that someone will find it on Google, and something I’ve written will be useful.

My Installation Experiences

After failing to get Dragon Naturally Speaking 12 working on Ubuntu 10.04, I decided to try it in Ubuntu 12.04 where I would have access to a more recent version of WINE.  I decided to grab the latest version of WINE from the PPA.

Install WINE 1.5 from the PPA

sudo apt-add-repository ppa:ubuntu-wine/ppa
sudo apt-get update
sudo apt-get install wine

Install Microsoft .NET Framework 4.0 (Winetricks)

winetricks dotnet40

I was asked to download a file from Mediafire and put it in a location. Follow all on-screen instructions.

Dragon - 3 - Dotnet Error

The .NET Framework installer failed and produced error code HRESULT 0x80070643.  I found this bug report which led me to these other Winetricks.

When installing the other Winetricks, pay attention to their instructions, as some of them will have you download and run other scripts.  This is supposed to satisfy the missing .NET Framework requirements.

winetricks gecko
winetricks windowscodecs
winetricks ie7
winetricks msxml3
winetricks msxml4

Create a 32-bit WINE Prefix As described from this thread, I followed these steps.

export WINEARCH="win32"
export WINPREFIX="/home/folder/.wine"

Run Dragon Naturally Speaking Installer

wine setup.exe

Dragon - 1 - Install Starting

Dragon - 2 - License Agreement

 

I still got an error when executing the MSI installer…

Unhandled exception: page fault on read access to 0x00000000 in 32-bit code (0x6840c928).
Register dump:
 CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b
 EIP:6840c928 ESP:0033f860 EBP:0033f8a8 EFLAGS:00010246(  R- --  I  Z- -P- )
 EAX:00000000 EBX:68475ff4 ECX:0033f750 EDX:00000000
 ESI:00852580 EDI:008525a4
Stack dump:
0x0033f860:  0013eb08 6846146c 00000016 683fd2a1
0x0033f870:  00000000 00000002 00011000 00000000
0x0033f880:  00000000 00000000 008527b8 007fac68
0x0033f890:  001506bc 00150680 0033f948 68475ff4
0x0033f8a0:  0066c158 00150680 0033f948 683fe5b8
0x0033f8b0:  00150680 00000001 00852580 68475ff4
Backtrace:
=>0 0x6840c928 in msi (+0x5c928) (0x0033f8a8)
  1 0x683fe5b8 in msi (+0x4e5b7) (0x0033f948)
  2 0x683c38e9 in msi (+0x138e8) (0x0033f998)
  3 0x683d5776 in msi (+0x25775) (0x0033f9e8)
  4 0x683d59ef in msi (+0x259ee) (0x0033fa38)
  5 0x6841f4c0 in msi (+0x6f4bf) (0x0033fa78)
  6 0x683c2862 in msi (+0x12861) (0x0033fac8)
  7 0x683c38e9 in msi (+0x138e8) (0x0033fb18)
  8 0x683d5776 in msi (+0x25775) (0x0033fb68)
  9 0x683d59ef in msi (+0x259ee) (0x0033fbb8)
  10 0x6841f4c0 in msi (+0x6f4bf) (0x0033fbf8)
  11 0x683d6056 in msi (+0x26055) (0x0033fc48)
  12 0x684108bd MsiInstallProductW+0x8c() in msi (0x0033fc98)
  13 0x6839caa4 WinMain+0x673() in msiexec (0x0033fd78)
  14 0x6839e3bf main+0xae() in msiexec (0x0033fe08)
  15 0x6839e2fc in msiexec (+0xe2fb) (0x0033fe58)
  16 0x7b85f8ec call_process_entry+0xb() in kernel32 (0x0033fe78)
  17 0x7b860b6f in kernel32 (+0x50b6e) (0x0033feb8)
  18 0x7bc77130 call_thread_func_wrapper+0xb() in ntdll (0x0033fed8)
  19 0x7bc79cad call_thread_func+0x7c() in ntdll (0x0033ffa8)
  20 0x7bc7710e RtlRaiseException+0x21() in ntdll (0x0033ffc8)
  21 0x7bc4c82e call_dll_entry_point+0x61d() in ntdll (0x0033ffe8)
0x6840c928: movzwl	0x0(%edx,%eax,1),%ecx
Modules:
Module	Address			Debug info	Name (126 modules)
PE	  460000-  46e000	Deferred        msi3ae7.tmp
PE	  9e0000-  a14000	Deferred        msi8158.tmp
PE	  a20000-  a43000	Deferred        msi855f.tmp
PE	  a50000-  a93000	Deferred        msi8568.tmp
PE	  ac0000-  ac7000	Deferred        msi897d.tmp
PE	  d90000-  f43000	Deferred        msi414e.tmp
PE	10000000-10036000	Deferred        msi3a4e.tmp
ELF	20014000-20052000	Deferred        libgssapi_krb5.so.2
ELF	20052000-20064000	Deferred        libavahi-client.so.3
ELF	20064000-20133000	Deferred        libkrb5.so.3
ELF	20133000-20138000	Deferred        libcom_err.so.2
ELF	20138000-2014a000	Deferred        libtasn1.so.3
ELF	2014a000-20193000	Deferred        libdbus-1.so.3
ELF	20214000-20228000	Deferred        shfolder<elf>
  \-PE	20220000-20228000	\               shfolder
ELF	20228000-20253000	Deferred        netapi32<elf>
  \-PE	20230000-20253000	\               netapi32
ELF	20253000-20277000	Deferred        iphlpapi<elf>
  \-PE	20260000-20277000	\               iphlpapi
ELF	20277000-202a6000	Deferred        secur32<elf>
  \-PE	20280000-202a6000	\               secur32
ELF	20b14000-20b26000	Deferred        libp11-kit.so.0
ELF	21d6d000-21dc0000	Deferred        libcups.so.2
ELF	25089000-250bc000	Deferred        ws2_32<elf>
  \-PE	25090000-250bc000	\               ws2_32
ELF	29ce3000-29cfd000	Deferred        sxs<elf>
  \-PE	29cf0000-29cfd000	\               sxs
ELF	2aa63000-2aa8b000	Deferred        libk5crypto.so.3
ELF	2c11e000-2c122000	Deferred        libkeyutils.so.1
ELF	362dd000-362eb000	Deferred        libavahi-common.so.3
ELF	3d6e9000-3d798000	Deferred        winmm<elf>
  \-PE	3d6f0000-3d798000	\               winmm
ELF	48efc000-48fc0000	Deferred        libgnutls.so.26
ELF	4c164000-4c1c3000	Deferred        dbghelp<elf>
  \-PE	4c170000-4c1c3000	\               dbghelp
ELF	4e730000-4e739000	Deferred        libkrb5support.so.0
ELF	53ee2000-53efa000	Deferred        libresolv.so.2
PE	5dca0000-5dce5000	Deferred        iertutil
ELF	5e608000-5e611000	Deferred        librt.so.1
PE	603b0000-60416000	Deferred        mscoreei
PE	604a0000-604ac000	Deferred        fusion
ELF	605a8000-605ad000	Deferred        libgpg-error.so.0
PE	61410000-61534000	Deferred        urlmon
ELF	63a94000-63ab7000	Deferred        imm32<elf>
  \-PE	63aa0000-63ab7000	\               imm32
ELF	63ca7000-63cab000	Deferred        libnss_mdns4_minimal.so.2
ELF	68000000-68022000	Deferred        ld-linux.so.2
ELF	68022000-68164000	Dwarf           libwine.so.1
ELF	68164000-6817f000	Deferred        libpthread.so.0
ELF	6817f000-68329000	Deferred        libc.so.6
ELF	68329000-6832e000	Deferred        libdl.so.2
ELF	6832e000-6835a000	Deferred        libm.so.6
ELF	6835a000-68363000	Deferred        libnss_compat.so.2
ELF	68363000-6837d000	Deferred        libnsl.so.1
ELF	6837d000-6838a000	Deferred        libnss_files.so.2
ELF	6838a000-683a8000	Dwarf           msiexec<elf>
  \-PE	68390000-683a8000	\               msiexec
ELF	683a8000-68491000	Dwarf           msi<elf>
  \-PE	683b0000-68491000	\               msi
ELF	68491000-68526000	Deferred        msvcrt<elf>
  \-PE	684a0000-68526000	\               msvcrt
ELF	68526000-6863b000	Deferred        ole32<elf>
  \-PE	68540000-6863b000	\               ole32
ELF	6863b000-686a0000	Deferred        advapi32<elf>
  \-PE	68650000-686a0000	\               advapi32
ELF	686a0000-687e7000	Deferred        user32<elf>
  \-PE	686b0000-687e7000	\               user32
ELF	687e7000-688f2000	Deferred        gdi32<elf>
  \-PE	687f0000-688f2000	\               gdi32
ELF	688f2000-6890c000	Deferred        version<elf>
  \-PE	68900000-6890c000	\               version
ELF	6890c000-68a26000	Deferred        oleaut32<elf>
  \-PE	68920000-68a26000	\               oleaut32
ELF	68a26000-68a3c000	Deferred        libz.so.1
ELF	68a3c000-68a62000	Deferred        mpr<elf>
  \-PE	68a40000-68a62000	\               mpr
ELF	68a62000-68c7b000	Deferred        shell32<elf>
  \-PE	68a70000-68c7b000	\               shell32
ELF	68c7b000-68c9b000	Deferred        cabinet<elf>
  \-PE	68c80000-68c9b000	\               cabinet
ELF	68c9b000-68d35000	Deferred        libfreetype.so.6
ELF	68d35000-68dbf000	Deferred        winex11<elf>
  \-PE	68d40000-68dbf000	\               winex11
ELF	68dbf000-68dc8000	Deferred        libsm.so.6
ELF	68dc8000-68efc000	Deferred        libx11.so.6
ELF	68efc000-68f02000	Deferred        libuuid.so.1
ELF	68f02000-68f23000	Deferred        libxcb.so.1
ELF	68f23000-68f27000	Deferred        libxau.so.6
ELF	68f27000-68f2e000	Deferred        libxdmcp.so.6
ELF	68f2e000-68f32000	Deferred        libxinerama.so.1
ELF	68f32000-68f3c000	Deferred        libxrender.so.1
ELF	68f3c000-68f45000	Deferred        libxrandr.so.2
ELF	68f45000-68f49000	Deferred        libxcomposite.so.1
ELF	68f49000-68f59000	Deferred        libxi.so.6
ELF	68f59000-68f5f000	Deferred        libxfixes.so.3
ELF	68f5f000-68f93000	Deferred        uxtheme<elf>
  \-PE	68f70000-68f93000	\               uxtheme
ELF	6936d000-6938b000	Deferred        libgcc_s.so.1
ELF	6b9ef000-6b9f6000	Deferred        libnss_dns.so.2
ELF	6bf38000-6bf55000	Deferred        fusion<elf>
ELF	711fa000-71272000	Deferred        rpcrt4<elf>
  \-PE	71210000-71272000	\               rpcrt4
ELF	71c59000-71c73000	Deferred        libice.so.6
ELF	73149000-731ce000	Deferred        libgcrypt.so.11
ELF	73e00000-73e0c000	Deferred        libnss_nis.so.2
ELF	74470000-74499000	Deferred        msacm32<elf>
  \-PE	74480000-74499000	\               msacm32
ELF	74501000-74575000	Deferred        wininet<elf>
  \-PE	74510000-74575000	\               wininet
ELF	76722000-76728000	Deferred        libxxf86vm.so.1
ELF	76736000-76741000	Deferred        libxcursor.so.1
ELF	77665000-77679000	Deferred        psapi<elf>
  \-PE	77670000-77679000	\               psapi
PE	77f60000-77fd6000	Deferred        shlwapi
ELF	78a36000-78a48000	Deferred        libxext.so.6
PE	79000000-7904a000	Deferred        mscoree
PE	79060000-7911e000	Deferred        msvcr100_clr0400
PE	79140000-797af000	Deferred        clr
ELF	799a8000-799bb000	Deferred        gnome-keyring-pkcs11.so
ELF	7b149000-7b245000	Deferred        comctl32<elf>
  \-PE	7b150000-7b245000	\               comctl32
ELF	7b800000-7ba33000	Dwarf           kernel32<elf>
  \-PE	7b810000-7ba33000	\               kernel32
ELF	7bc00000-7bcca000	Dwarf           ntdll<elf>
  \-PE	7bc10000-7bcca000	\               ntdll
ELF	7bf00000-7bf04000	Deferred        <wine-loader>
Threads:
process  tid      prio (all id:s are in hex)
0000000e services.exe
	00000028    0
	00000027    0
	00000020    0
	00000010    0
	0000000f    0
00000014 explorer.exe
	00000015    0
0000001d winedevice.exe
	00000025    0
	00000022    0
	0000001f    0
	0000001e    0
00000023 plugplay.exe
	00000029    0
	00000026    0
	00000024    0
0000002a setup.exe
	0000002b    0
0000002c (D) C:\windows\system32\msiexec.exe
	0000005f    0
	0000005d    0
	0000005b    0
	00000059    0
	00000055    0
	00000053    0
	0000004f    0
	0000004d    0
	0000004b    0
	00000049    0
	00000011    0
	0000001b    0
	00000033    0
	00000009    0
	00000017    0
	00000013    0
	00000016    0
	00000046    0
	00000044    0
	00000042    0
	00000040    0
	0000003e    0
	0000003c    0
	0000003a    0
	00000038    0
	00000036    0
	00000034    0
	00000032    0
	00000031    0
	0000002d    0 <==
System information:
    Wine build: wine-1.5.20
    Platform: i386
    Host system: Linux
    Host version: 3.2.0-35-generic

Dragon Naturally Speaking 12 Does Not Work On Ubuntu 10.04

NOTE: This is NOT a how-to.  This was an effort to document the problems I ran into during installation.  This blog post did not end in a successful installation of Dragon Naturally Speaking 12 on Ubuntu 10.04.

In spite of being a failure, this post may be useful to save someone else some time if they find it on Google.

I was recently asked to get Dragon Naturally Speaking (version 12) running on a Ubuntu 10.04 laptop at work.  I thought I would write up on this for my own consultation, and at the same time, I figured it would be worthwhile to publish it, in case this helps anyone else.  I realize Ubuntu 10.04 is on its way out, but nevertheless, this might be helpful to someone.  This article started as a how-to, until I realized that it wasn’t worth getting working with these software versions.

Tested Software Versions:
Ubuntu Linux 10.04, WINE 1.2.2, Dragon Naturally Speaking 12.

My Installation Experiences: (WINE 1.2.2) (Did not successfully install.)
Because I am dealing with some very old hardware (a laptop that lacks a DVD drive), I copied the contents of the DVD to a folder on the hard drive, using the network.

Since the application already had a rather high rating (Silver\Platinum) on the WINE database, I attempted an installation using WINE.

I started the Setup.exe program in WINE, and everything looked like it was going well.

Dragon Naturally Speaking informed me that it would require additional dependencies, but it started their installers for me automatically.

Dragon - 1 - Install .NET Framework 4.0

Dragon - 2 - MSXML 4.0 Parser Setup

The MSXML 4.0 setup program ran and successfully installed.  Then, it tried to install .NET Framework 4.0.

Dragon - 3 - Program Error

The .NET Framework 4.0 installer failed…

Dragon - 4 - .NET Failed To Install

So, I used Winetricks to install the Microsoft .NET Framework 4.0.   At the time of this writing, you can get Winetricks here.

wget http://winetricks.org/winetricks
chmod +x winetricks
./winetricks dotnet40

While following the instructions to install .NET Framework 4.0, I was asked to download a file (gacutil-net40.tar.bz2) from MediaFire and put it in my home folder in the .cache/winetricks/dotnet40 folder.

After downloading and placing this file in that location, I ran the Winetricks .NET Framework 4.0 installer command again.

./winetricks dotnet40

The installation took a few minutes, and I got an error message…

Dragon - 5 - Program Error Again (.NET Framework)

I decided I would use the WINE PPA and get a more recent version of WINE installed.

Installing WINE 1.4 from the PPA

sudo apt-add-repository ppa:ubuntu-wine/ppa
sudo apt-get update
sudo apt-get install wine

Installing on WINE 1.4 (Also did not successfully install.)

I went right ahead and tried using Winetricks to install the .NET Framework 4.0, anticipating that this would be a problem.

winetricks dotnet40

The installation ran for a few minutes, but this time it did not crash.  The upgrade to WINE 1.4 must have resolved the issue with the .NET Framework 4.0 installer.

Dragon - 6 - .NET Framework Installer Working 1

I thought it was interesting that my download size would be 0MB, but maybe it still had some files it had downloaded on my previous attempt…

I decided Microsoft didn’t need to know about my setup experiences.

Dragon - 7 - .NET Framework Installer Working 2

It looked like it was going to work, until it failed.

Dragon - 8 - .NET Framework Failed To Install

As suggested by the setup wizard, I took a look at the log file.

OS Version = 5.1.2600, Platform 2, Service Pack 3
OS Description = WinXP - x86 Professional Service Pack 3
CommandLine = C:\f1247a5c911c166c0428\\Setup.exe /x86 /x64
TimeZone = Central Standard Time
Initial LCID = 1033
Using Simultaneous Download and Install mechanism
Operation: Installing
Package Name = Microsoft .NET Framework 4 Setup
Package Version = 4.0.30319
User Experience Data Collection Policy: UserControlled
Number of applicable items: 8
MSI (C:\f1247a5c911c166c0428\RGB9RAST_x86.msi) Installation succeeded. Msi Log: Microsoft .NET Framework 4 Setup_20130102_143814282-MSI_RGB9RAST_x86.msi.txt
MSI (C:\f1247a5c911c166c0428\netfx_Core_x86.msi) Installation failed. Msi Log: Microsoft .NET Framework 4 Setup_20130102_143814282-MSI_netfx_Core_x86.msi.txt
Final Result: Installation failed with error code: (0x80070643) (Elapsed time: 0 00:02:23).

After I pressed “Finish”, more terminal output occurred, and it looked like the setup was continuing to make registry entries.

I decided to give the installer a shot anyway, since it looks like part of the .NET Framework 4.0 installation might have succeeded.  It got further than before.

Dragon - 9 - Dragon Setup Partially Working

But it threw some errors, and failed…

Dragon - 10 - Error 1

Dragon - 11 - Error 2

Dragon - 12 - Failed To Install DNS

I did some Googling, and I came across this bug and this bug.  Based upon that, I decided to install a few more Winetricks to see if that would help.

winetricks vcrun6sp6
winetricks vcrun2005

I had some difficulties installing MFC42 because of a 404 error within Winetricks… but it looked like this Winetrick might fix the missing files.

After running these Winetricks and going through their installers, I tried the setup again.  I had the same results.

I looked for dd10hook.dll, and I found it in the correct location on the hard drive.  So, this seems to be an issue only with using\running the DLL.  The file is where it’s supposed to be.

I decided I would need to consult the forums on this one, so I turned on some WINE debugging options.

export WINEDEBUG="+loaddll,+dll"

This was my debug output when running the installer.

trace:loaddll:load_builtin_dll Loaded L"KERNEL32.dll" at 0x7b810000: builtin
trace:loaddll:load_builtin_dll Loaded L"KERNEL32.dll" at 0x7b810000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\wineboot.exe" at 0x68340000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x68370000: builtin
trace:loaddll:load_builtin_dll Loaded L"KERNEL32.dll" at 0x7b810000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\winemenubuilder.exe" at 0x68340000: builtin
trace:loaddll:load_builtin_dll Loaded L"KERNEL32.dll" at 0x7b810000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x684f0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\services.exe" at 0x68340000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x683e0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x68370000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\userenv.dll" at 0x68440000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\gdi32.dll" at 0x77a10000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\version.dll" at 0x68690000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\user32.dll" at 0x68560000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x734e0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\ole32.dll" at 0x68400000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\oleaut32.dll" at 0x686c0000: builtin
trace:loaddll:load_builtin_dll Loaded L"KERNEL32.dll" at 0x7b810000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\shlwapi.dll" at 0x687a0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\windowscodecs.dll" at 0x68370000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\comctl32.dll" at 0x68a20000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\shell32.dll" at 0x68810000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorsvw.exe" at 0x10000000: native
trace:loaddll:load_native_dll Loaded L"C:\\windows\\system32\\MSVCR100_CLR0400.dll" at 0x79060000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x75ee0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\gdi32.dll" at 0x681c0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\version.dll" at 0x68280000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\user32.dll" at 0x68090000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\windows\\system32\\mscoree.dll" at 0x79000000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x683a0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\ole32.dll" at 0x682b0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\oleaut32.dll" at 0x68430000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\imm32.dll" at 0x68dc0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\winex11.drv" at 0x68bd0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\imm32.dll" at 0x68790000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\winex11.drv" at 0x68580000: builtin
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
fixme:process:SetProcessDEPPolicy (1): stub
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\uxtheme.dll" at 0x68e20000: builtin
trace:loaddll:load_builtin_dll Loaded L"KERNEL32.dll" at 0x7b810000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\winedevice.exe" at 0x69150000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x716c0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\ntoskrnl.exe" at 0x7aa50000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x70d00000: builtin
trace:loaddll:load_builtin_dll Loaded L"KERNEL32.dll" at 0x7b810000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\mountmgr.sys" at 0x639c0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\plugplay.exe" at 0x68340000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x68360000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x59f10000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\gdi32.dll" at 0x74b20000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\version.dll" at 0x241c0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\gdi32.dll" at 0x20150000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\user32.dll" at 0x73390000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\version.dll" at 0x69000000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\user32.dll" at 0x20010000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\shlwapi.dll" at 0x75450000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\comctl32.dll" at 0x48910000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\shell32.dll" at 0x42c30000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\imm32.dll" at 0x51e60000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\winex11.drv" at 0x6c6d0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\imm32.dll" at 0x20350000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\winex11.drv" at 0x2cc30000: builtin
trace:loaddll:load_builtin_dll Loaded L"KERNEL32.dll" at 0x681c0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\explorer.exe" at 0x683e0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x68400000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x71d60000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\gdi32.dll" at 0x685a0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\version.dll" at 0x68660000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\user32.dll" at 0x68470000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\imm32.dll" at 0x68870000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\winex11.drv" at 0x79c50000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\uxtheme.dll" at 0x20380000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x2d690000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\ole32.dll" at 0x203d0000: builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\shell32.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\ole32.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\rpcrt4.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\comctl32.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\uxtheme.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\shlwapi.dll" : builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\shlwapi.dll" at 0x62a50000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\comctl32.dll" at 0x5f0d0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\shell32.dll" at 0x22900000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\uxtheme.dll" at 0x32450000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\ole32.dll" at 0x6c240000: builtin
trace:loaddll:load_native_dll Loaded L"Z:\\opt\\dragonns-install\\setup.exe" at 0x400000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\version.dll" at 0x68300000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x68660000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\gdi32.dll" at 0x685a0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\user32.dll" at 0x74eb0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\shlwapi.dll" at 0x68540000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\comctl32.dll" at 0x686c0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\shell32.dll" at 0x68330000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x687b0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\ole32.dll" at 0x73c20000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\oleaut32.dll" at 0x68840000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\imm32.dll" at 0x68bb0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\winex11.drv" at 0x689e0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\uxtheme.dll" at 0x68c60000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\mpr.dll" at 0x53c30000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\wininet.dll" at 0x7bde0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\urlmon.dll" at 0x44db0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\cabinet.dll" at 0x4b410000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\msi.dll" at 0x20010000: builtin
trace:loaddll:load_builtin_dll Loaded L"KERNEL32.dll" at 0x7b810000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\msiexec.exe" at 0x68320000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\advapi32.dll" at 0x68530000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\gdi32.dll" at 0x686d0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\version.dll" at 0x68790000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\user32.dll" at 0x685a0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\rpcrt4.dll" at 0x687b0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\ole32.dll" at 0x68440000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\oleaut32.dll" at 0x68830000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\shlwapi.dll" at 0x68b30000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\comctl32.dll" at 0x68b90000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\shell32.dll" at 0x68920000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\mpr.dll" at 0x7c7b0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\wininet.dll" at 0x68c80000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\urlmon.dll" at 0x7abb0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\cabinet.dll" at 0x68d00000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\msi.dll" at 0x68340000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\imm32.dll" at 0x68f00000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\winex11.drv" at 0x706c0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\uxtheme.dll" at 0x68fb0000: builtin
fixme:storage:create_storagefile Storage share mode not implemented.
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\msi43c1.tmp" at 0x10000000: native
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\msi4c73.tmp" at 0x350000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\msacm32.dll" at 0x6c6c0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\winmm.dll" at 0x48730000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\msi6356.tmp" at 0xcf0000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\winspool.drv" at 0x20030000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\psapi.dll" at 0x20060000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\ISRT.dll" at 0x12d0000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\spoolss.dll" at 0x42fa0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\localspl.dll" at 0x20140000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\riched20.dll" at 0x20180000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\riched32.dll" at 0x20160000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\_isres_0x0409.dll" at 0x1f50000: native
trace:loaddll:free_modref Unloaded module L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\_isres_0x0409.dll" : native
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\riched32.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\riched20.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\ISRT.dll" : native
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\psapi.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\winspool.drv" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\localspl.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\spoolss.dll" : builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\winspool.drv" at 0x69320000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\psapi.dll" at 0x20020000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\ISRT.dll" at 0x13d0000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\spoolss.dll" at 0x6bba0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\localspl.dll" at 0x63e50000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\riched20.dll" at 0x5a950000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\riched32.dll" at 0x56e20000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\_isres_0x0409.dll" at 0x1d30000: native
trace:loaddll:free_modref Unloaded module L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\_isres_0x0409.dll" : native
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\riched32.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\riched20.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\ISRT.dll" : native
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\psapi.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\winspool.drv" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\localspl.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\spoolss.dll" : builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\winspool.drv" at 0x43dc0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\psapi.dll" at 0x2afe0000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\ISRT.dll" at 0x14d0000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\spoolss.dll" at 0x20050000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\localspl.dll" at 0x20020000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\riched20.dll" at 0x31960000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\riched32.dll" at 0x5a920000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\_isres_0x0409.dll" at 0x28d0000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\oleacc.dll" at 0x20140000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\msimg32.dll" at 0x20160000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\gdiplus.dll" at 0x20180000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\comdlg32.dll" at 0x201f0000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{D5D422B9-6976-4E98-8DDF-9632CB515D7E}\\upgrdll.dll" at 0x2d500000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\dwmapi.dll" at 0x202d0000: builtin
trace:loaddll:free_modref Unloaded module L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\_isres_0x0409.dll" : native
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\riched32.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\riched20.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\ISRT.dll" : native
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\psapi.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\users\\administrator\\Temp\\{D5D422B9-6976-4E98-8DDF-9632CB515D7E}\\upgrdll.dll" : native
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\dwmapi.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\comdlg32.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\gdiplus.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\msimg32.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\oleacc.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\winspool.drv" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\localspl.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\spoolss.dll" : builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\winspool.drv" at 0x447b0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\psapi.dll" at 0x20020000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\ISRT.dll" at 0x14d0000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\spoolss.dll" at 0x67020000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\localspl.dll" at 0x57800000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\riched20.dll" at 0x20140000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\riched32.dll" at 0x7ca10000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\_isres_0x0409.dll" at 0x2ae0000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\oleacc.dll" at 0x20040000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\msimg32.dll" at 0x57df0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\gdiplus.dll" at 0x201a0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\comdlg32.dll" at 0x6f2b0000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{D5D422B9-6976-4E98-8DDF-9632CB515D7E}\\upgrdll.dll" at 0x2d500000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\dwmapi.dll" at 0x60030000: builtin
trace:loaddll:free_modref Unloaded module L"C:\\users\\administrator\\Temp\\{D5D422B9-6976-4E98-8DDF-9632CB515D7E}\\upgrdll.dll" : native
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\dwmapi.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\comdlg32.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\gdiplus.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\msimg32.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\oleacc.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\_isres_0x0409.dll" : native
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\riched32.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\riched20.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\ISRT.dll" : native
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\psapi.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\winspool.drv" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\localspl.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\spoolss.dll" : builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\winspool.drv" at 0x20030000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\psapi.dll" at 0x20060000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\ISRT.dll" at 0x14d0000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\spoolss.dll" at 0x60030000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\localspl.dll" at 0x427b0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\riched20.dll" at 0x27e10000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\riched32.dll" at 0x556b0000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\_isres_0x0409.dll" at 0x2ce0000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\msvcrt.dll" at 0x41720000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\msvcr100.dll" at 0x49c40000: builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\msvcrt.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\msvcr100.dll" : builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{D5D422B9-6976-4E98-8DDF-9632CB515D7E}\\msvcr100.dll" at 0x78aa0000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\msvcp100.dll" at 0x20140000: builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\msvcp100.dll" : builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{D5D422B9-6976-4E98-8DDF-9632CB515D7E}\\msvcp100.dll" at 0x78050000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\msimg32.dll" at 0x50180000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{D5D422B9-6976-4E98-8DDF-9632CB515D7E}\\mfc100u.dll" at 0x2f90000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\dwmapi.dll" at 0x26f20000: builtin
fixme:thread:GetThreadPreferredUILanguages 52, 0xadd0e8, 0xadd158 0xadd0f0
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{D5D422B9-6976-4E98-8DDF-9632CB515D7E}\\MFC100ENU.DLL" at 0x5d360000: native
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{D5D422B9-6976-4E98-8DDF-9632CB515D7E}\\wav.dll" at 0x42000000: native
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{D5D422B9-6976-4E98-8DDF-9632CB515D7E}\\mobile.dll" at 0x41400000: native
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{D5D422B9-6976-4E98-8DDF-9632CB515D7E}\\dd10hook.dll" at 0x2b000000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\shfolder.dll" at 0x457a0000: builtin
trace:loaddll:free_modref Unloaded module L"C:\\users\\administrator\\Temp\\{D5D422B9-6976-4E98-8DDF-9632CB515D7E}\\dd10hook.dll" : native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\ws2_32.dll" at 0x375e0000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{D5D422B9-6976-4E98-8DDF-9632CB515D7E}\\ipworks8.dll" at 0x33d0000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\iphlpapi.dll" at 0x20140000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\netapi32.dll" at 0x5d980000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\crypt32.dll" at 0x4c0f0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\secur32.dll" at 0x210f0000: builtin
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\icmp.dll" at 0x6b770000: builtin
trace:loaddll:load_native_dll Loaded L"C:\\users\\administrator\\Temp\\{D5D422B9-6976-4E98-8DDF-9632CB515D7E}\\ipworksssl8.dll" at 0x34c0000: native
trace:loaddll:load_builtin_dll Loaded L"C:\\windows\\system32\\oleacc.dll" at 0x64ca0000: builtin
err:module:import_dll Library dd10hook.dll (which is needed by L"C:\\users\\administrator\\Temp\\{D5D422B9-6976-4E98-8DDF-9632CB515D7E}\\dd10shrd.dll") not found
trace:loaddll:free_modref Unloaded module L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\_isres_0x0409.dll" : native
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\riched32.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\riched20.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\users\\administrator\\Temp\\{B50FABEF-0D1A-4581-859D-DF9C1FDE5600}\\ISRT.dll" : native
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\winspool.drv" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\localspl.dll" : builtin
trace:loaddll:free_modref Unloaded module L"C:\\windows\\system32\\spoolss.dll" : builtin
err:msi:custom_get_thread_return Invalid Return Code 25135248
err:msi:ITERATE_Actions Execution halted, action L"LogBasicInfo" returned 1603
trace:loaddll:free_modref Unloaded module L"C:\\users\\administrator\\Temp\\msi43c1.tmp" : native
trace:loaddll:free_modref Unloaded module L"C:\\users\\administrator\\Temp\\msi4c73.tmp" : native
trace:loaddll:free_modref Unloaded module L"C:\\users\\administrator\\Temp\\msi6356.tmp" : native

I will attempt the installation on a newer version of Ubuntu with a more recent version of WINE, because it sounds like Dragon Naturally Speaking 12 might work in WINE 1.5 based on this bug report.

I will keep everyone apprised on my progress!

Affordable Wireless Bridge with Unlicensed Frequencies

I am a big advocate of not using wireless whenever possible for many reasons; security, interference, reliability, scale-ability, etc.  However the alternative can be extremely pricey, and just out of the question.  Our work has a building about 1400 Ft away from our primary building.  Its current network usage is nonexistent and although some feel our usage will be minimal.  I believe once we have Internet access out there we will see a much larger demand.  I am one who believes in doing it right the first time so it doesn’t have to be done again. Overbuilding is the key for longevity.  I am a big fan of Cisco equipment but in this build-out we will not be using Cisco.  They do offer some enterprise grade bridges but their cost is a little out of our budget on this project.

I played around with how to get the most amount of throughput on this, considered building two Linux boxes with directional antenna’s, priced out equipment, and came the conclusion that if we wanted a reliable connection we should go with equipment designed for what we are trying to do.  Kirk referred me to Ubiquiti We ended up purchasing the Ubiquiti Powerbridge M5 for $250 a radio (or $500 a pair).  This provides a 100Mb link on the 5.8 GHz spectrum which provides 23 non-overlapping channels compared to 2.4 GHz which only has 3.  These specific antennas are also ISP/carrier grade with a supposed distance of 20 kilometer range (don’t worry we turn the transmit power down 😛 ).

Once they arrived I went back to maintenance and grabbed some black pipe and a some scrap 3/4 In plywood.  In no time I whipped together a quick stand for testing.  I wanted something heavy on the bottom, the right size to screw into rafters when we finalized our testing, and cheap.  I also wanted to design it so I could set it on my counter top and not have to worry about scratching it up.  I was happy with the results, and the price… FREE

2013-01-01 14.22.21-scaled 2013-01-01 14.22.39-scaled

We did some testing and found what we had predicted.  These antennas were WAY OVERKILL when it comes to range and current needed throughput… and that means that they were perfect!

They come with a built in spectrum analyzer to detect interference.  Due to our location we did not have any issues with that.  Kirk or I will post some more on the ubiquiti spectrum analyzer software at a later time.  My only complaint with that software is that it only runs on windows… and Linux is my primary OS…

Screenshot-[Concession-Bridge-MCHS] - Main - Chromium

Here is a screenshot of our current setup.  SSID, MAC Addresses, IP’s are all blacked out for obvious reasons.  This is the current link seen below.  This link is about 1400 feet.

Screenshot-Google Earth

2012-10-12 15.14.53-scaled

2012-10-12 15.15.13-scaled

These are outdoor rated antennas however I feel much safer having them under the protective roof.  I know that under an asphalt roof such as this that we will have greater signal loss, that partially why we purchased the antennas we did, to help compensate for that.

Since we have done this we are now streaming video games live to the Internet.  Our usage will be growing more and more with the quality of the video being sent to the Internet.  More and more people will want access, which is why we went with something like this rather than a 54Mb 802.11g connection.

The cost to pull this off with Cisco Aironet devises would have easily been closer to 3 times the cost.  We get a Cisco AP for about $600.  We would need 2 AP’s, plus cables, plus antennas.  We pulled this off at about $500, with a faster link.  Reliability will be determined later.  Currently we have been up for 60 days without problems.

With the success of this link and demand growing to all edges of our sports fields, we plan on building a redundant wireless network of our outbuildings for a minimal cost.

Screenshot-Google Earth-1

We will be putting Cisco AP’s out there to provide edge security/connectivity.

And just because they are rated for 20 kilometer does not mean you can shoot them through trees….  I couldn’t get them do go .5 mile through some trees.

NOTE:  Awesome Android app to help aim this equipment is “true bearing”.  With my minimal experience with some of the longer range equipment this could be very helpful IMHO.