Search This Blog

Compiling a Wine WoW64 build on Ubuntu Precise AMD64

If the title of this post doesn't mean anything to you, you should probably stop reading.

I'm going to start by assuming you know what Wine is, and pretty much everything else I talk about throughout the post. This is simply intended to be instructional and not educational.

I noticed that there isn't really a full instruction set in the Wine Wiki for how to build a full WoW64 setup within Ubuntu 12.04 64-bit, so I thought I should try and figure these things out for myself. I don't consider this post suitable to be added to the Wiki as it's a bit of a jumble, but I may look into it later. (Feel free to give a helping hand!) It may take a few glances to realise what is being done and why.

The first steps are:
  1. Install all the build requirements on your machine.
  2. Install an i386 chroot (I used Precise again). A fakeroot installation failed miserably but you might have more luck.
  3. Install all the build requirements in the chroot.
Next, you should build Wine64 outside of the chroot.

The 32/64 build will require access to both 32- and 64-bit libraries. This is why it fails in the first place: Ubuntu have screwed up their multilib. You can copy all the files into their respective folder inside the chroot but this will use up more space, and they won't be updated when needed. Soft links won't work and hard links might create problems when running an update. Bind is your answer.

You will need to create the relevant directories inside your chroot:
(Some directories may already exist and be empty - that's fine).

mkdir /usr/lib/x86_64-linux-gnu
mkdir /lib64
mkdir /lib/x86_64-linux-gnu
mkdir ~/wine64
mkdir ~/wine3264

You then need to bind these directories so that the chroot can see them.
(In some cases it would be prudent to bind a directory read-only, unfortunately that fails and you have to mount -o remount,ro /foo/bar if you feel this necessary).

mount -B ~/wine-git /path/to/chroot/~/wine-git
mount -B /usr/lib/x86_64-linux-gnu /path/to/chroot/usr/lib/x86_64-linux-gnu
mount -B /lib64 /path/to/chroot/lib64
mount -B /lib/x86_64-linux-gnu /path/to/chroot/lib/x86_64-linux-gnu
mount -B ~/wine64 /path/to/chroot/~/wine64
mount -B /path/to/chroot/~/wine3264 ~/wine3264

Where you will need to expand the ~ to point to the correct directories.

The final mount being so that you can access the build from your host environment.

I also mounted /tmp as the /tmp inside the chroot will not be cleared on reboot.

mount -B /tmp /path/to/chroot/tmp

Now you can build the WoW64 Wine.
Inside the chroot:

cd ~/wine3264
~/wine-git/configure --with-wine64=$HOME/wine64
make

Remember to add any other options you wish to add.

Once compiled you can run the whole setup from your host environment from the build tree (which has been bind-mounted), or make install and run that way. I highly recommend that you script as much as you can. If you're planning on rebuilding or running regression tests then you will spend a lot of time typing in the same commands over and over.
Similarly, you should consider ccache and distcc. You should read up on how to share your .ccache, and make sure that the distcc servers have the relevant libs too (you could use sshfs mount to work around any missing dependencies).
Also I have added the above mounts to my /etc/fstab so that I don't have to worry about mounting them all the time.

You should now have a working WoW64 build of Wine.

As I have said, this is a quickly thrown together instructional post, so if you get stuck then feel free to ask for help. I highly recommend using irc://irc.freenode.net/#winehq as the people on there are extremely knowledgeable on the subject. If the problem is a little more involved you should probably use the forums.

References:
1. https://www.winehq.org/pipermail/wine-devel/2009-December/080375.html

YouTube does listen to copyright claims

I'm sure YouTube users are familiar with the blanket copyright notices that are sent whenever music is added to a video.

My video, a fly-by of the Lancaster Bomber at the Sunderland Air Show 2012, had the music "The Dam Busters March" playing throughout. The link being, of course, that the Lancaster was used by the real dam busters and used famously in the film of the same name. I did not add this music: it was playing while the video was being recorded.

Within hours of uploading the video I received a copyright notice via e-mail, and had to defend my use of the audio track. There are a few concerns with this that I will highlight in a moment.

My argument was that the movie "The Dam Busters" was actually released in 1955, and under U.K. copyright law the theme to this film is now in the public domain.

YouTube listened. Actually, YouTube have nothing to do with it. The faceless corporation making the claim agreed, and removed said claim.

This is nice, and everything, but if I hadn't bothered to do the research then my video would have been silenced.

  • Why do I need to do the research? The people claiming to own the copyrights should know that they have no claim! Claiming that they do is an offence.
  • How often does this occur? Are companies creating false claims all the time in order to drive people to their websites to increase revenue?
  • Why are YouTube letting this happen? It seems anyone can make a copyright claim, and this certainly isn't the first time that this has occurred.


Why hasn't anyone told me about BT Wifi?

First and foremost I have to admit something quite embarrassing: although I had heard of BT Openzone I had not taken any notice of what it actually was, and I had no idea what BT Fon was either.

I shall assume you are as ignorant as I, and try to explain why I find this fascinating.

This is no less than an Internet revolution.

Granola testing

Intrigued by various articles on https://grano.la/ I thought I would test it out. It is free after all.

The concept is very simple: you install the client, and it controls the power of your computer so that it's always using the minimum amount of energy required for a specific set of tasks. I may have read between the lines there but you can read it for yourself if you don't believe me.

The site itself does not talk about stability, but I found that all my applications remained stable and I have not experienced any software problems.

Except:

Under Ubuntu I use a nice little widget called the CPU Frequency Scaling Monitor which allows me to easily switch the processors into certain frequencies or scheduler modes.











Unfortunately since installing Granola the frequency scaling does whatever the Hell it likes and I often find it stuck at full speed (as opposed to on demand). So it appears it has made permanent changes despite the fact I have now removed it. Looks like I'll have to bury myself among the man pages to find out how to resolve this. Permanently. Again.

The nice people over at Granola do ask for feedback. So, I can now send them this!

Also, I'm a bit dubious about statistics for my laptop between 02:00 and 18:00 on the 17th of June that claims my power usage was only 3 watts total. Seems unlikely - I'm sure the hard drive alone uses more than that and it never gets the chance to spin down (background processes).

Over to Granola... (I'll update once resolved).

O2 broadband and BT's 21CN

I noticed recently that BT were messing about inside all of their cabinets. Curious, I decided to have a look on their website to see if it was part of the 21CN roll-out. Indeed it was, and as of June I will be able to increase my broadband connection from a pathetic <3 Mbps to a delicious >60 Mbps. Annoyingly, that would be at twice the price, but it will probably be worth it.

I am, however, a long-term O2 customer and the price they are currently giving me for unlimited broadband is unmatched by far. So I went to their website to see if they offered the same product at a reduced price (O2 broadband runs over BT's local loop network). I was informed by a very helpful O2 Guru that they are currently testing on BT's 21CN network and have had positive results. They don't have a date when this will be ready but will announce it on the website when they are ready to roll it out.

So long as I don't have to wait too long, I'm happy to wait and see what O2's prices are.

As this page explains, there's a chance we'll have to fork out to replace those ancient BT sockets, and no, you cannot replace them yourself by law. Seems... fair?

P.S. The nerd in the BT adverts is an absolute tosser. Which idiot thought he was a good replacement for the yummy mummy?



Actually.

TVCatchup for Android - don't bother

I have this problem when trying to stream the TVCatchup RTSP stream on my Android phone.

I was informed that an Android app is currently under development, so I thought I would give it a go, see if it makes any difference.

I did explain what the problem was, but the "developer" failed to tell me that it would make no difference, but I had to find that out for myself.

The first thing I noticed once installed on my phone was that it consumed a ridiculous amount of internal storage, despite the fact it was installed on my SD card.

For reasons unknown, by neither the development team nor I, the data used was over 2MB and the cache another 2MB. My internal storage reduced by 7MB and I still have no idea why, and neither do they.

The result? Well, I had to uninstall it as the internal memory is very restricted on my phone.

The uninstaller immediately crashed and caused my phone to reboot. On boot it was obvious that the phone believed that the app had been removed but only 4MB of internal storage had been recovered, and this was probably because I had the good sense to clear the stored data and cache.

I reported this on the feedback forum with a clear explanation of what had happened. In fact, the explanation above should be adequate, so it would be impossible for anyone with any knowledge of computing to be puzzled as to how I have come to the conclusion that the fault is with their software.

The first reply was from TVC_Colwal who copy-and-pasted some nonsense from a Wiki site about installing apps onto an SD card, despite the fact I had already explained what I had done. I had to repeat myself.

The second reply was from legoUK who told me that I was wrong, because the app is only around 1MB in size. I could not believe the stupidity of these people. This was the second time my original post had been ignored. I made it very clear in my reply that this person clearly doesn't know anything about .apk files nor the Android system.

The third reply was TVC_Colwal telling me that legoUK was the developer, I was rude, and that they were trying to help me. There are three things wrong with that statement.
  1. Neither of these clowns bothered reading my original post, or understood what I was saying.
  2. I was providing THEM with feedback, and at no point did they try to understand or discover what was causing the runaway waste of storage due to THEIR application. I was helping them and they have the cheek to claim the reverse is true!
  3. I consider it rude to completely ignore what you've been told, or just fob someone off with some Wiki rubbish that they clearly don't understand.
The solution? There wasn't one. I wasn't going to get any help from Dumpty and Numpty so I had to go out hunting myself. I found this very useful page about what can and can't be cleaned up, and from there I figured out how to remove all the shite that came bundled with my latest firmware update, saving a significant amount of space. Unfortunately I never found out what damage had been done by the awful TVCatchup software. I'm guessing fsck didn't find anything either as the space was never freed.

As for the app itself?

Well, on web pages TVCatchup.com first plays an advertisement before showing you the channel. On mobile RTSP though, they did not do this. It is possible, both through RTSP and on the mobile web page, but I doubt they have any idea how to do this.

The first improvement I noticed was that there was a brief TV guide included, to show you what's on Now and Next. Very handy, although I would recommend this app from TVGuide.co.uk.

This was the only improvement, things got worse from this point on.

The video, when it starts playing over RTSP (yes, there is no point in this app at all), is intentionally orientated incorrectly so that a banner can be continually shown. So, not only does the video not fit the screen, they can now show you even more advertisements continually. Ever wished you had more advertising on TV? Well now you can!

And that is it. Literally. The app is clearly a way for TVCatchup so show more adverts, and serves no other purpose. There is this but... well, just look at it.

Advantages:
  • A Now and Next TV guide, although there is much better out there.

Disadvantages:
  • The app will bugger your internal storage.
  • The developers have no idea what they're doing.
  • The screen is not watchable.
  • There are more advertisements.

Don't bother.

[Update]

In response to this post, their Twitter twit, who types like a teenage girl, responded:









This shows exactly what kind of people work there, lol.

Running DIMES Agent at start-up

The DIMES Agent does not run until logged in on Windows Vista and later due to UAC as the Windows service, although installed, is blocked automatically by the operating system.

There is still a way to make sure the Agent loads at system start, however: by running it as a scheduled task.

Note: The agent is unable to interact with the desktop so you will not be able to view statistics or change settings once running (but you can through the website). It will run in the background only. Also, on Windows 7 at least, you cannot stop the task once it is running unless you kill it.

Once installed, delete the shortcut from the Startup folder as it is no longer needed, and will probably cause problems later on.

Open the DIMES Agent with the Start Menu shortcut if it hasn't loaded already and input your user details.

Close the DIMES Agent.

Then, open Scheduled Tasks in the Control Panel.

Select Action and Create Task...

Create Task

Once the window is open you can give the task a name that makes sense (such as DIMES).

Task window

Change User or Group... should be changed to SYSTEM and Run with highest privileges must be ticked. UAC blocks DIMES from running because it needs higher privileges to create raw sockets in order to ping.

Next select the Triggers tab and click on New...

New trigger

From the Begin the task drop-down select At startup.

Enabled should already be ticked but make sure it is and click OK.

Triggers

Next select the Actions tab and click on New...

New action

Select Start a program from the Action drop-down.

Click Browse... and navigate to the DIMES Agent executable.

Click OK.

Actions tab

That should be it! There are other options you can play with if you need to but once you're done click OK.



Now all you need to do is start it by selecting Run from the Actions menu.

Run

You can check that the DIMES Agent is running by looking at the Task Manager (you'll need to click on Show processes for all users as it will be running under the SYSTEM account).

Task manager

Or by checking your account statistics, although these take a little while to update.

If you're pedantic, like me, you could always use Wireshark to make sure the pings are going out.

My profile on StackExchange