This page documents how to run WinQuake and WinSDR on Linux systems using Wine. Wine is a open-source software application that allows Windows based programs to run on Linux operating systems. For testing I used Ubuntu version 12.4 LTS and Wine beta versions 1.5 and 1.6. WinQuake and WinSDR have been modified to run better under Linux/Wine so WinQuake version 3.3.4 (or higher) and WinSDR version 4.7.2 (or higher) setup programs should be used when installing the program. If you are running a 64-Bit version of Linux you should be able to run the 64-Bit versions of WinQuake and/or WinSDR.
To install Wine you can use the Software Manager that comes with your version of Linux or do the following commands in a terminal.
'sudo apt-add-repository ppa:ubuntu-wine/ppa'
'sudo apt-get update'
'sudo apt-get install wine1.5 or sudo apt-get install wine1.6'
The user should also install the current MFC DLLs by issuing the following command:
Once you have Wine installed you should be able to install WinSDR and/or WinQuake. To do this you can open up a terminal and type the following:'wine wq337_32bit.exe' (or wq337_64bit.exe)
'wine winsdr475_32bit.exe' (or winsdr475_64bit.exe)
On Ubuntu files with the .exe extension will automatically run Wine, so all you need to do is type the setup program file name without 'wine' at the beginning of the command.
If everything is working correctly you should see the normal WinQuake or WinSDR setup program. After installing WinQuake, WinSDR needs some more configuration (see below), you should be able to run the program. The screenshot below shows the 64-Bit version of WinQuake running on the Ubuntu desktop.
Getting WinSDR to run under Linux/Wine is a little more complicated do to the need to open the Comm Port to receive data from the ADC board. For testing I used a USB version of our ADC board, but you should be able to use a regular Comm Port if your version of Linux recognizes the hardware. The first thing you need to do is tell Wine what Linux Comm Port to use for Com1, Com2 etc. The following command should be executed in a terminal:
'ln -s /dev/ttyUSB0 ~/.wine/dosdevices/com1'
Or if you have a real Comm Port you can use a command like this:
'ln -s /dev/ttyS0 ~/.wine/dosdevices/com1'
This ln (link) command on Ubuntu is permanent so you may not need to run this command every time you reboot the system.
There is one more thing you need to do before you can run WinSDR. You can skip the following if you install and run WinSDR using the root account. Linux experts will tell you to never run as root but I personally have no problems doing it...! The problem is the Comm Port is owned by the root account. So that the port can be use by a regular user you need to change the permission of the port. This can be done by issuing the following command in a terminal:
'sudo chmod 666 /dev/ttyUSB0' or 'sudo chmod 666 /dev/ttyS0' .
This command is NOT permanent so you will need to do this every time the system reboots. The following bash command can be run automatically at system startup by placing the file in the startup folder (Ubuntu Desktop) or equivalent system startup command file.
sudo chmod 666 /dev/ttyUSB0
This bash file will change the permission on the Comm Port and startup WinSDR:
sudo chmod 666 /dev/ttyUSB0
sleep 30 # allow the system to stabilize before starting WinSDR
env WINEPREFIX="/home/larry/.wine" wine C:\\WinSDR\\winsdr64.exe &
If you are going to run WinSDR as a regular user (non root) you will probably need to add your user name to the dialout group. If you do the following ls command:
crw-rw---- 1 root dialout 4, 64 Jul 5 12:05 /dev/ttyS0
You will see that root and the dialout group can access the Comm port. What you will need to do, if you are not going to run as root, is add you user name to the dialout group. Under Ubuntu the following command is used to add a user to a group:
sudo adduser your_user_name dialout
Regarding setting permissions. Exactly how you set the permissions on the Comm port will very depending on your version of Linux. The user is encouraged to search the Web for information on how to set the permissions on your Linux system. As a last resort you can always run WinSDR as root to see if you can get data into the program.
Once you do the ln and chmod commands above and add your user name to the dialout group, you should be able to startup WinSDR and receive data from the ADC board. The screenshot below shows the 64-Bit version of WinSDR running on the Ubuntu desktop. Performance was very good. During my testing I did not encounter any data drops between the ADC board and WinSDR. Features like opening WinQuake after saving event file(s) also worked just like in Windows!
One change you might want to do is run winecfg at the terminal prompt and turn off 'Allow the window manger to decorate windows' feature. This will make both programs look and feel more like they are running under Windows.
Larry Cochrane - www.seismicnet.com/contact.html