2007-10-15 00:52:59 +00:00
|
|
|
Hamlib - (C) Frank Singleton 2000 (vk3fcs@ix.netcom.com)
|
2011-01-13 12:08:12 +00:00
|
|
|
(C) Stephane Fillod 2000-2011
|
|
|
|
(C) The Hamlib Group 2000-2011
|
2002-01-24 23:35:20 +00:00
|
|
|
|
|
|
|
* Why does Hamlib need beta-testers?
|
2006-07-10 16:15:12 +00:00
|
|
|
|
2011-02-01 16:31:20 +00:00
|
|
|
Hamlib is developed by a team of radio enthusiasts around the world, for
|
|
|
|
fun, much in the spirit of ham radio. (Note that it is not restricted for
|
|
|
|
ham usage only). There are a great deal of protocols and rigs around the
|
|
|
|
world developers may not own. However, protocols may be available, so
|
|
|
|
backends can be implemented, but cannot always be tested by developers.
|
|
|
|
That's where beta-testers are so precious. On top of that, I've been told
|
|
|
|
that there's no such sure thing like bug free code.
|
2006-07-10 16:15:12 +00:00
|
|
|
|
2002-01-24 23:35:20 +00:00
|
|
|
Feedback and improvement requests are also valuable.
|
|
|
|
|
2006-07-10 16:15:12 +00:00
|
|
|
|
2002-01-24 23:35:20 +00:00
|
|
|
* Okay, you volunteer as beta-tester, how to proceed?
|
2006-07-10 16:15:12 +00:00
|
|
|
|
2002-01-24 23:35:20 +00:00
|
|
|
First of all, you can start testing official releases. They are easier to
|
2011-02-01 16:31:20 +00:00
|
|
|
test because they come in precompiled and packaged (.rpm, .deb, etc.) but
|
|
|
|
they have the drawback of being older than the SVN repository. Reports from
|
|
|
|
these versions are still very appreciated. Please send them to the
|
2010-01-10 02:11:42 +00:00
|
|
|
hamlib-developer@lists.sourceforge.net mailing list.
|
2002-01-24 23:35:20 +00:00
|
|
|
|
2006-11-07 21:57:57 +00:00
|
|
|
However, the development of Hamlib is still very active, so it's better to
|
2011-02-01 16:31:20 +00:00
|
|
|
test from the latest SVN version of the code. And, depending on feedback
|
|
|
|
you make, developers can commit a fix, so you can try out the change soon
|
|
|
|
after, without waiting for the next official version.
|
2002-10-29 22:14:58 +00:00
|
|
|
|
2011-02-01 16:31:20 +00:00
|
|
|
To proceed, you will have first to obtain either a daily snapshot or a check
|
|
|
|
out of the latest sources from the SVN repository, then rebuild the Hamlib
|
|
|
|
package and finally test it with your rig. Don't worry, it's much simpler
|
2011-01-20 03:23:17 +00:00
|
|
|
than it looks, despite the size of the package.
|
2006-07-10 16:15:12 +00:00
|
|
|
|
2002-01-24 23:35:20 +00:00
|
|
|
Pre-requisite:
|
2002-10-29 22:14:58 +00:00
|
|
|
- some kind of internet access
|
2010-04-16 22:14:10 +00:00
|
|
|
- POSIXish compiler toolchain (gcc, GNU Autotools, Perl, etc.,
|
2009-01-09 23:03:37 +00:00
|
|
|
see README.developer)
|
2006-07-10 16:15:12 +00:00
|
|
|
|
2010-04-16 22:14:10 +00:00
|
|
|
|
2002-01-24 23:35:20 +00:00
|
|
|
So here we go:
|
|
|
|
|
2009-03-07 03:30:17 +00:00
|
|
|
* Daily SVN trunk snapshots:
|
2002-01-24 23:35:20 +00:00
|
|
|
|
2011-01-20 03:23:17 +00:00
|
|
|
Download the latest SVN trunk snapshot from:
|
|
|
|
|
|
|
|
http://n0nb.users.sourceforge.net
|
|
|
|
|
2011-02-01 16:31:20 +00:00
|
|
|
You'll find a tarball with a name like
|
|
|
|
hamlib-1.2.13svn-rev-3021-20110119.tar.gz, i.e. a check out made 19 Jan 2011
|
|
|
|
at SVN revision 3021, ready for building using the familiar "three step"
|
|
|
|
(see below). Each morning by about 1130z a new snapshot is generated and
|
2011-01-20 03:23:17 +00:00
|
|
|
uploaded and the prior day's version is removed.
|
2007-11-14 03:15:31 +00:00
|
|
|
|
2010-04-16 22:14:10 +00:00
|
|
|
The advantage of the SVN snapshot is that you won't need as many tools
|
|
|
|
installed to build Hamlib as the work of Autoconf, Automake, and Libtool
|
2011-02-01 16:31:20 +00:00
|
|
|
have already been done. Most of the other packages listed below will be
|
|
|
|
needed. If you tell the `configure' script to build certain parts of Hamlib
|
|
|
|
like documentation or scripting language bindings the relavent optional
|
|
|
|
packages will be needed. See `configure --help' for more information.
|
|
|
|
|
|
|
|
Here is a list of development packages needed for a complete build of the
|
|
|
|
library:
|
|
|
|
|
|
|
|
* Gnu C or any C99 compliant compiler # gcc --version
|
|
|
|
* Gnu make (or any modern one, BSD okay) # make --version
|
|
|
|
* libtool 2.2.6b # libtool --version
|
|
|
|
* svn for connection to hamlib.svn.sourceforge.net
|
|
|
|
|
|
|
|
N.B. The Debian and derivatives (Ubuntu and friends) 'build-essentials'
|
|
|
|
package will install a number of tools and minimize the number of packages
|
|
|
|
that need to be installed manually.
|
|
|
|
|
2011-02-13 19:01:28 +00:00
|
|
|
N.B. Hamlib requires libtool >= 2.2.6b in compliance with CVE-2009-3736.
|
2011-02-01 16:31:20 +00:00
|
|
|
|
|
|
|
Optional, but highly recommended for a complete build:
|
|
|
|
* GNU C++ # g++ --version
|
|
|
|
* swig (for bindings) 1.3.14 # swig -version
|
|
|
|
* perl devel # h2xs
|
|
|
|
* tcl devel # tcltk-depends
|
|
|
|
* python devel # python-config
|
|
|
|
* libxml2 devel # xml2-config --version
|
|
|
|
* libgd2 devel # gdlib-config --version
|
|
|
|
* libusb devel # libusb-config --version (not 1.0.0!)
|
|
|
|
* RPC devel (libc-dev) # rpcgen --version
|
|
|
|
|
|
|
|
N.B The libusb package is required for building most of the 'kit' backend.
|
|
|
|
The older version is needed, not 1.0.0 or higher. Debian and derivatives
|
|
|
|
package libusb 0.1.12 which is what is needed.
|
|
|
|
|
|
|
|
Documentation:
|
|
|
|
* Doxygen
|
|
|
|
* DocBook # Deprecated in favor of Doxygen
|
2006-07-10 16:15:12 +00:00
|
|
|
|
2002-01-24 23:35:20 +00:00
|
|
|
|
2009-03-07 03:30:17 +00:00
|
|
|
* SVN checkout:
|
2002-01-24 23:35:20 +00:00
|
|
|
|
2010-01-10 02:11:42 +00:00
|
|
|
Please read the beginning of README.developer file, especially Section 1 which
|
|
|
|
details the SVN checkout, the required tools and versions (very important or
|
2010-03-01 18:43:38 +00:00
|
|
|
make won't even work!), and how to use the autogen.sh script.
|
2007-11-14 03:15:31 +00:00
|
|
|
|
2002-01-24 23:35:20 +00:00
|
|
|
|
2010-01-10 02:11:42 +00:00
|
|
|
* SVN Daily Snapshot Build:
|
2006-07-10 16:15:12 +00:00
|
|
|
|
|
|
|
Reading the INSTALL file in top directory will explain in more detail how
|
2010-04-16 22:14:10 +00:00
|
|
|
to do the following commands.
|
2002-01-24 23:35:20 +00:00
|
|
|
|
2009-01-09 23:03:37 +00:00
|
|
|
./configure --disable-static --prefix=/usr/local
|
|
|
|
make
|
|
|
|
make install
|
2002-01-24 23:35:20 +00:00
|
|
|
|
2006-11-07 21:57:57 +00:00
|
|
|
The prefix argument is optional. Convention is that local packages be placed
|
|
|
|
in /usr/local away from distribution installed packages and this is the default
|
|
|
|
location for the snapshots. The --disable-static option speeds up compilation
|
2010-04-16 22:14:10 +00:00
|
|
|
if you don't plan to use static libraries (static libraries are usually not
|
|
|
|
needed).
|
|
|
|
|
|
|
|
Other useful options are '--with-perl-binding' or '--with-python-binding' or
|
|
|
|
'--enable-tcl-binding' if you are interested in Swig binding support for those
|
|
|
|
scripting languages (This is a change as of 1.2.11svn revision 2882 where Swig
|
|
|
|
generated bindings are no longer built by default). If unsure it is safe to
|
|
|
|
ignore these options.
|
2002-01-24 23:35:20 +00:00
|
|
|
|
2010-04-16 22:14:10 +00:00
|
|
|
If you don't want the build files cluttering the source directories, do the
|
2007-11-14 03:15:31 +00:00
|
|
|
following in the same parent directory of hamlib:
|
|
|
|
|
2009-01-09 23:03:37 +00:00
|
|
|
mkdir build && cd build
|
|
|
|
../hamlib/configure --disable-static --prefix=/usr/local
|
|
|
|
make
|
|
|
|
make install
|
2007-11-14 03:15:31 +00:00
|
|
|
|
|
|
|
This will keep the binary output files seperate from the source tree.
|
|
|
|
|
2011-02-01 16:31:20 +00:00
|
|
|
NOTE! If Hamlib has not been previously installed as a locally built
|
|
|
|
package you will need to make sure that `ldconfig' is configured correctly
|
|
|
|
and run periodically after `make install'. Most modern distributions have
|
|
|
|
an /etc/ld.so.conf.d/ directory where local configuration can be made.
|
|
|
|
Later versions of Debian and derivatives have a file named 'libc.conf' in
|
|
|
|
this directory. The contents of libc.conf are:
|
|
|
|
|
|
|
|
# libc default configuration
|
|
|
|
/usr/local/lib
|
|
|
|
|
|
|
|
If your system does not have such a file, one will need to be created and
|
|
|
|
then `ldconfig' will need to be run as the root user so that applications
|
|
|
|
using the Hamlib libraries can find them.
|
|
|
|
|
2002-10-29 22:14:58 +00:00
|
|
|
|
2007-11-14 03:15:31 +00:00
|
|
|
* Structure:
|
2006-07-10 16:15:12 +00:00
|
|
|
|
|
|
|
For the brave who want to peruse the contents, here are what all the
|
2010-01-10 02:11:42 +00:00
|
|
|
subdirectories are for (these are just a sample as more are added from time to
|
|
|
|
time):
|
2002-01-24 23:35:20 +00:00
|
|
|
|
|
|
|
alinco,aor,icom,
|
|
|
|
jrc,kachina,kenwood,
|
|
|
|
pcr,tentec,uniden,
|
2011-02-01 16:31:20 +00:00
|
|
|
winradio,
|
|
|
|
yaesu,etc: rig backends
|
|
|
|
easycomm,rotorez,
|
|
|
|
sartek, etc: rotator backends
|
|
|
|
dummy: virtual dummy rig and rotator, for developer's use.
|
2010-01-10 02:19:28 +00:00
|
|
|
rpcrig: special networked rig backend (through RPC)
|
|
|
|
rpcrot: special networked rotator backend (through RPC)
|
|
|
|
lib: library for functions missing on your system
|
|
|
|
libltdl: wrapper for shared module loader
|
2011-02-01 16:31:20 +00:00
|
|
|
bindings Perl, Python, Tcl, and Visual Basic bindings
|
|
|
|
c++,kylix: C++ and Kylix bindings
|
2010-01-10 02:19:28 +00:00
|
|
|
doc: documentation base and scripts to extract from src
|
|
|
|
include/hamlib: exported header files go here
|
|
|
|
include: non-distributed header files go there
|
|
|
|
src: Hamlib frontend source directory
|
|
|
|
tests: rigctl/rotctl and various C programs for testing
|
2002-01-24 23:35:20 +00:00
|
|
|
|
2006-07-10 16:15:12 +00:00
|
|
|
|
2007-11-14 03:15:31 +00:00
|
|
|
* testing Hamlib:
|
2002-01-24 23:35:20 +00:00
|
|
|
|
2011-02-01 16:31:20 +00:00
|
|
|
Don't attempt to test Hamlib from the source directory unless you're a
|
|
|
|
developer and you understand the side effects of *not* installing freshly
|
|
|
|
generated objects (basically having to mess with LD_LIBRARY_PATH and
|
|
|
|
.libs). Do an `sudo make install' to install the libraries in the system
|
|
|
|
area. (You did run `ldconfig', right?)
|
2002-01-24 23:35:20 +00:00
|
|
|
|
2010-04-16 22:14:10 +00:00
|
|
|
So here we go. First of all, identify your rig model id. Make sure
|
2010-01-10 02:11:42 +00:00
|
|
|
/usr/local/bin (or the path you set --prefix to above) is in your $PATH, as
|
2010-04-16 22:14:10 +00:00
|
|
|
rigctl has to be reachable by your shell.
|
2006-07-10 16:15:12 +00:00
|
|
|
|
2010-01-10 02:11:42 +00:00
|
|
|
Run `rigctl -l' to get a list of rigs supported by Hamlib.
|
|
|
|
|
2011-02-01 16:31:20 +00:00
|
|
|
If you cannot find your radio in the list, please report to the
|
|
|
|
hamlib-developer mailing list. The protocol manual and rig specifications
|
|
|
|
will help us a lot.
|
2006-07-10 16:15:12 +00:00
|
|
|
|
2006-11-07 21:57:57 +00:00
|
|
|
You found your rig's ID? Good! You're almost ready to use rigctl.
|
2002-01-24 23:35:20 +00:00
|
|
|
Have a quick look at its manual page:
|
2006-11-07 21:57:57 +00:00
|
|
|
|
2009-01-09 23:03:37 +00:00
|
|
|
man rigctl
|
2006-11-07 21:57:57 +00:00
|
|
|
or:
|
2010-01-10 02:11:42 +00:00
|
|
|
man -M /usr/local/man rigctl
|
2006-11-07 21:57:57 +00:00
|
|
|
or simply:
|
2009-01-09 23:03:37 +00:00
|
|
|
rigctl --help
|
2002-01-24 23:35:20 +00:00
|
|
|
|
|
|
|
Let's say you own an Icom IC-756:
|
2006-11-07 21:57:57 +00:00
|
|
|
|
2009-01-09 23:03:37 +00:00
|
|
|
rigctl -vvvvv -r /dev/ttyS0 -m 326
|
2002-01-24 23:35:20 +00:00
|
|
|
|
2002-09-22 11:39:39 +00:00
|
|
|
The -vvvvv is very important since this will increase verbosity, and give
|
2010-04-16 22:14:10 +00:00
|
|
|
precious traces to developers if something goes wrong. At this level,
|
2006-11-07 21:57:57 +00:00
|
|
|
the protocol data exchanged will also be dumped to the screen.
|
2006-07-10 16:15:12 +00:00
|
|
|
|
2002-01-24 23:35:20 +00:00
|
|
|
Unless some problem shows up, you should be presented with a menu
|
2010-04-16 22:14:10 +00:00
|
|
|
like "Rig command: ". Enter "?" followed by return to have the list
|
2002-01-24 23:35:20 +00:00
|
|
|
of available commands. 'Q' or 'q' quits rigctl immediately.
|
|
|
|
|
|
|
|
Most wanted functions to be tested are:
|
2010-01-10 02:19:28 +00:00
|
|
|
'_' get misc information on the rig
|
|
|
|
'f' get frequency
|
|
|
|
'F' set frequency, in Hz
|
|
|
|
'm' get mode
|
|
|
|
'M' set mode (AM,FM,CW,USB,etc. and passband width in Hz)
|
|
|
|
'v' get vfo
|
|
|
|
'V' set vfo (VFOA, VFOB, etc.)
|
2002-01-24 23:35:20 +00:00
|
|
|
|
2002-05-28 21:39:13 +00:00
|
|
|
f,F get_freq/set_freq try various (<1MHz, <30Mhz and >1GHz)
|
|
|
|
v,V get_vfo/set_vfo VFOA, VFOB
|
|
|
|
m,M get_mode/set_mode FM, USB, LSB, CW, WFM, etc.
|
|
|
|
passband is in Hz (pass 0 for default)
|
|
|
|
G vfo_op UP, DOWN
|
|
|
|
_ get_info should give remote Id and firmware vers
|
|
|
|
|
2006-11-07 21:57:57 +00:00
|
|
|
NB: some functions may not be implemented in the backend or simply not
|
|
|
|
available on this rig.
|
2002-01-24 23:35:20 +00:00
|
|
|
|
2011-02-01 16:31:20 +00:00
|
|
|
When reporting to the hamlib-developer mailing list, please include traces
|
|
|
|
and also comments to tell developers if the action performed correctly on
|
|
|
|
the rig.
|
2002-01-24 23:35:20 +00:00
|
|
|
|
2011-02-01 16:31:20 +00:00
|
|
|
Tip: Traces can be hard to cut and paste sometimes. In that case, there's a
|
|
|
|
handy tool for you: script(1) (the (1) is not a part of the command, rather
|
|
|
|
it is a Unix convention telling which section of the manual it is found, in
|
|
|
|
this case section 1, user commands. e.g. `man 1 script'). It will make a
|
|
|
|
typescript of everything printed on your terminal and save it to the file
|
|
|
|
you give it.
|
2009-01-09 23:03:37 +00:00
|
|
|
|
|
|
|
$ script my_rig_traces.txt
|
|
|
|
Script started, file is my_rig_traces.txt
|
|
|
|
$ rigctl -vvvvv -r /dev/ttyS0 -m 326
|
|
|
|
rig:rig_init called
|
|
|
|
rig: loading backend icom
|
|
|
|
icom: _init called
|
|
|
|
rig_register (309)
|
|
|
|
rig_register (326)
|
|
|
|
rig:rig_open called
|
|
|
|
Opened rig model 326, 'IC-756'
|
|
|
|
|
|
|
|
Rig command: q
|
|
|
|
rig:rig_close called
|
|
|
|
rig:rig_cleanup called
|
|
|
|
$ exit
|
|
|
|
exit
|
|
|
|
Script done, file is my_rig_traces.txt
|
|
|
|
$
|
2002-01-24 23:35:20 +00:00
|
|
|
|
2006-11-07 21:57:57 +00:00
|
|
|
And then send my_rig_traces.txt to the hamlib-developer mailing list.
|
2002-01-24 23:35:20 +00:00
|
|
|
|
|
|
|
|
2010-01-10 02:11:42 +00:00
|
|
|
Some models need S-meter calibration, because the rig only returns raw
|
2008-12-14 22:02:30 +00:00
|
|
|
measurement. It's easy, it takes only 10mn. Here's how to proceed:
|
|
|
|
|
|
|
|
1. Fire up the rigctl program released with the Hamlib package,
|
|
|
|
and pass along options as needed (serial speed, etc.).
|
|
|
|
2. Tune to some frequency reporting S0 to the radio S-Meter.
|
2011-02-01 16:31:20 +00:00
|
|
|
3. At rigctl prompt, issue "get_level" ('l' in short) of the level
|
|
|
|
RAWSTR.
|
|
|
|
4. Write down the S-level read on radio front panel, and the RAWSTR
|
|
|
|
value retrieved.
|
2008-12-14 22:02:30 +00:00
|
|
|
5. Repeat from step 2 with S9 and S9+60dB. Actually the more plots,
|
|
|
|
the better, otherwise Hamlib does interpolation.
|
2011-02-01 16:31:20 +00:00
|
|
|
6. Send the table to the hamlib-developer mailing list and it will be
|
|
|
|
added in the next release of Hamlib.
|
|
|
|
|
|
|
|
NB: It is well known the S-Meter of any given radio is far from being
|
|
|
|
accurate. For owners with a fully equipped lab, you may want to make the
|
|
|
|
above-mentioned measurements with a good signal generator and a set of
|
|
|
|
calibrated attenuators. Greg W8WWV has an insightful page about S-Meter
|
|
|
|
calibration:
|
2010-04-16 22:14:10 +00:00
|
|
|
|
2010-01-10 02:11:42 +00:00
|
|
|
http://www.seed-solutions.com/gregordy/Amateur%20Radio/Experimentation/SMeterBlues.htm
|
2008-12-14 22:02:30 +00:00
|
|
|
|
|
|
|
|
2007-11-14 03:15:31 +00:00
|
|
|
Okay folks, test as much as you can, in the weirdest situations if
|
2002-01-24 23:35:20 +00:00
|
|
|
possible. There is a special prize for those who find 'Segmentation fault'
|
|
|
|
and other nasty bugs.
|
2006-07-10 16:15:12 +00:00
|
|
|
|
|
|
|
Needless to say, patches are also very welcome :-)
|
2002-01-24 23:35:20 +00:00
|
|
|
|
|
|
|
|
2006-11-07 21:57:57 +00:00
|
|
|
Stephane - F8CFE and The Hamlib Group
|
2002-01-24 23:35:20 +00:00
|
|
|
|