For Ham Radio Ops: How to get Icom Clone software working on Linux under Wine with the OPC-478UC clone cable

storkus at storkus.com storkus at storkus.com
Tue Sep 2 03:19:15 MST 2008


The rest of you can delete this, but for those hams on the list, here's
a step-by-step I did to get this combination working:

1. The OPC-478UC uses the Prolific Logic PL-2303 driver.  However, the
USB IDs for THIS dongle aren't in the header file, so you'll have to add
them manually!  Yes, this means you will HAVE to compile your own
kernel, or at least this particular driver.  But the changes to the
source code amount to 4 little lines, and one of them is a comment! 
Note that this is only so the USB subsystem and the PL-2303 driver
recognize the dongle chip, a PL-2303X (don't know what the X means).

A. cd to the Linux source code, wherever you put it (usually
/usr/src/linux-x.y.z.*) and then to drivers/usb/serial.
B. Open pl2303.h in your favorite editor.  Scroll down until you see the
end of the device ID's.  Now, in the same pattern, add something like
the following:

/* Icom OPC-478UC Clone Cable - USB to RS-232 to 2-wire TTL */
#define ICOM_VENDOR_ID  <tab>  0x0c26
#define OPC478UC_PRODUCT_ID <tab> 0x0018

You can call those variables whatever you want, but they have to match
the next part obviously; the comment is so you know what it is!  <tab>
means use a tab there rather than a space, although it makes no
difference, really.  When done, save the file.

C. Now open pl2303.c and scroll down to the end of the USB_DEVICE
struct; the last entry should be YCCABLE.  In the same format as the
above lines, add the following to the end:

{ USB_DEVICE(ICOM_VENDOR_ID, OPC478UC_PRODUCT_ID) },

Again, the variable names obviously have to match the header file's. 
Make sure you don't make any typos here since you can see the terminator
follows: it should like exactly like the lines above it.  When done,
save the file.

D. Run menuconfig and, assuming you've done this before, go to the USB
section, activate the USB-Serial drivers, and then the PL-2303 driver. 
Module or compiled in doesn't matter.

E. Compile and install.  Assuming you made no mistakes, you should be
ready to go (possibly after a reboot).

Note that I've sent in this information to the driver maintainer, Greg
Kroah-Hartman, but it'll be a little bit before it makes it into the
kernel tree.  Once in the tree, you should only have to activate the
USB-serial and PL-2303 drivers.

2. When you plug the cable in, (at least on Slackware) you will see
/dev/ttyUSBx which (again on Slackware, YMMV) points to /dev/tts/USBx
and, if you have USB announcements turned on (a switch in the USB kernel
menu), you'll see it in your dmesg with a manufacturer string of
"Prolific Logic".  The permissions on this device may not be set to
world-r/w; if so, change it (chmod 666).  Note that after looking at the
relevant UDEV entries, I decided to leave them alone since I won't be
using this program all the time and leaving tty* world-r/w would be a
security risk if I forgot about it later; I'll just manually change it
when I run it.

3. If not installed, go ahead and obtain and install WINE now.

4. Configure WINE to see the serial port by linking to the above USB
serial port.  If you did like me and will be running from inside your
user directory, this is:

ln -s /dev/ttyUSBx ~/.wine/dosdevices/com1  #Unless you have other
serial ports you'll use

Note the lower case: WINE doesn't care, I guess.

5. Start X, if you're not in there already, and insert your clone
software CD.  In my case, that would be the CS-D800.

6. cd to where the software actually resides on the CD.

7. This is where things can vary slightly: from the docs, in some cases
WINE can run itself automagically when you try running windows EXE
files, similar to running scripts.  In my case, since I use FVWM2, I
need to run it from the command line.  If so, open up a terminal window
and type: wine <installer>.exe

8. If everything goes ok, it should be installed.  You may be able to
just run it from a your window manager's menu.  In my case, I can't, but
it's no big deal.  Here I have to use my specific case:  The CS-D800
software is installed (in UNIX terms) in ~/.wine/drive_c/Program
Files/Icom/CS-D800/CSD800.exe.  Thus to run it from CLI, it's: wine
~/.wine/dr*/Pro*/Icom/*/CSD800.exe  (yes, that's all wildcard action).

This procedure should work with any Icom windoze software running with
this dongle.  Note that the dongle is "UC", not just "U", so if you have
an older USB dongle, this may not work (i.e., different USB-serial
converter chip).  For instance, the ID-1's built-in converter uses a
FTDI chip.

Mike
N7MSD


More information about the PLUG-discuss mailing list