-
Notifications
You must be signed in to change notification settings - Fork 495
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
David Register
committed
Jun 20, 2011
1 parent
ef0a637
commit 584845c
Showing
2 changed files
with
131 additions
and
127 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,130 @@ | ||
---------------------------------------------------------------------- | ||
1. Overview | ||
---------------------------------------------------------------------- | ||
|
||
---------------------------------------------------------------------- | ||
2. Library Notes & Requirements | ||
---------------------------------------------------------------------- | ||
|
||
a. OpenCPN S57 ENC support works best with access to the OpenGL Utility | ||
library GLU. GLU is used to tesselate large polygon areas into small | ||
triangles for faster display rendering. If you cannot use, or do not have | ||
the OpenGL Utility library, you may choose to build OpenCPN with internal | ||
tesselator support. The internal tesselator is sub-optimal compared to GLU, | ||
but it does work, if somewhat slower. OpenGLU is better. | ||
See the Build Notes section for applicable tesselator configuration options. | ||
|
||
|
||
b. OpenCPN requires WxWidgets Version 2.8.8 or greater. It has been tested | ||
with the following wxWidgets hosts: | ||
|
||
GTK2 (__WXGTK__) | ||
MSWindows (__WXMSW__) | ||
MAC OSx (__WXOSX__) | ||
|
||
|
||
---------------------------------------------------------------------- | ||
3. Platform Specific Build Notes | ||
---------------------------------------------------------------------- | ||
|
||
|
||
|
||
|
||
------------------------ | ||
Build OpenCPN | ||
------------------------ | ||
|
||
Opencpn uses the cmake system, so... | ||
|
||
cd {wherever the opencpn base directory is} | ||
mkdir build | ||
cd build | ||
cmake ../ | ||
|
||
make | ||
|
||
su, <password> | ||
|
||
make install | ||
|
||
|
||
|
||
|
||
---------------------------------------------------------------------- | ||
4. File and Directory Permissions under Linux | ||
---------------------------------------------------------------------- | ||
|
||
It is sufficient for all other directories in /usr/share/opencpn | ||
to have permissions 0755, i.e. exec/searchable and readable by all. | ||
|
||
---------------------------------------------------------------------- | ||
5. Support File Locations | ||
---------------------------------------------------------------------- | ||
|
||
a. Opencpn requires numerous auxiliary data files. These files | ||
are installed by the installer into the following locations by default: | ||
|
||
Linux - /usr/local/share/opencpn/ | ||
Windows - \Program Files\opencpn\ | ||
Mac - /Users/YourUserName/openCPNfiles/ | ||
|
||
The following directories exist within the above: | ||
.../bitmaps - self evident | ||
.../tcdata - tide and current location data | ||
.../s57data - data files for S57ENC support | ||
.../wvsdata - World Vector Shoreline data | ||
|
||
b. Opencpn config files are expected in the following locations: | ||
|
||
Linux - ~/.opencpn/opencpn.conf | ||
Windows - \Program Files\opencpn\opencpn.ini | ||
|
||
The installer will place nice default files for your use. The first | ||
execution of opencpn will update as needed. If for some reason the | ||
config file is not found, opencpn will offer to create a useable | ||
starting configuration. | ||
|
||
|
||
---------------------------------------------------------------------- | ||
6. Serial Port GPS/AIS Data Input and Autopilot Output | ||
---------------------------------------------------------------------- | ||
|
||
a. LINUX | ||
Opencpn runs at user privilege. This means that in order to | ||
read GPS input data and/or write autopilot output data, the serial | ||
devices to be used must exhibit read and write permission for the | ||
user in question. For linux, these devices are created at startup. | ||
Typically, the devices as created are owned by root, with additional | ||
specific group (e.g. "uucp") r/w access, i.e. permissions are 0660. | ||
|
||
This configuration WILL NOT WORK for OpenCPN unless the user happens | ||
to belong to the group under which the devices were created, | ||
typically "uucp". Not likely... | ||
|
||
For the more general case, you must ensure that device permissions | ||
will enable opencpn to read and write serial devices without root | ||
privileges. There are several ways to do this. | ||
|
||
On a Linux with udev, check the files in /etc/udev/rules.d to | ||
ensure that /dev/tty* devices are all created with the same group | ||
and with 0666 permissions. More generally, you may need to run mknod | ||
or MAKEDEV as root to create a properly permissioned serial device before | ||
executing opencpn. For example: | ||
|
||
linux# mknod -m 666 /dev/ttyS0 c 4 64 | ||
|
||
If you use USB serial port adapters and your system has the Linux | ||
hotplug facility installed, Todo............ | ||
|
||
Test your GPS input. At user privilege, | ||
|
||
linux$ stty -F /dev/ttyXXX ispeed 4800 | ||
linux$ cat </dev/ttyXXX | ||
|
||
replace ttyXXX with the filename of the port. This will probably be | ||
either /dev/ttyUSB0 or /dev/ttyS0. When you run this command, you | ||
should see text lines beginning with $ come to stdout (possibly after | ||
a short initial burst of binary garbage). If you don't see this, you | ||
may have OS-level problems with your serial support, but more likely | ||
have the wrong device or permissions. Look again. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters