HEAD: remove ridiculous dependency of wvmapi (actually wvtnef) on evolution
[wvapps.git] / wvdial / README
blobd5dab6300d5caba421c649bf11cc1cec5673a8e4
2 Welcome to WvDial
3 =================
5 It's amazing!  It's your wildest dream come true!  Dialup networking for
6 Linux that doesn't require chat scripts!
8 Okay, so maybe you're not as excited as I am, but we at Worldvisions hope
9 this will brighten up your week.  WvDial is our attempt to make the
10 previously rather complicated configuration of Linux dial-up networking as
11 simple as phone number - username - password.
13 Actually we have loftier goals in mind for what we call the "Worldvisions
14 Weaver" project, and that's where WvDial comes from.  WvDial and its
15 supporting libraries are the first components of the Weaver system that we
16 are releasing for free (under the LGPL; see below).  The rest of Weaver will
17 probably be released for free eventually, but to maintain our competitive
18 edge (and also save our programmers from looking silly) we're keeping the
19 rest to ourselves for now.  No promises about that.
21 But that doesn't stop you from having fun right now!  WvDial is and will
22 remain totally free, and we hope that all Linux distributions will try to
23 integrate it and help make Linux (even more of) a killer Internet
24 workstation.
26 But first there is something we should tell you:
28 The GNU Library General Public License
29 ======================================
31 WvDial was written by Dave Coombs and Avery Pennarun of Worldvisions
32 Computer Technology, Inc. and is released to the public under the terms of
33 GNU's LGPL, or Library General Public License.
35 This is not quite the same as the General Public License (GPL) that most
36 Linux software uses.  The LGPL is actually *less* restrictive -- you can use
37 LGPL software inside your own programs, and you are *not* required to place
38 your program under the GPL or LGPL.  That means companies or individuals
39 can, if they want, take all the code in WvDial and use it in a product
40 without giving anyone their own source code.
42 But there's a catch, of course -- basically, you have to make the source
43 code to WvDial itself available to users, and if you *change* the WvDial
44 code in any way, you must also release the changes under the terms of the
45 LGPL.  That means you have to give out the source code to your changes. 
46 That also means that we or anyone can build a product based on the modified
47 WvDial, and although the source code to WvDial must be provided, the rest of
48 the system does not have to be (L)GPL'd.
50 We think that this is a fair way to share this software, because it
51 guarantees that everyone can fix bugs and when anyone does, everyone can get
52 the patch.  But still, people can build small Linux systems based on WvDial
53 (...like our Weaver) without having to give out the source code to their
54 *entire* main program.
56 Naturally none of that is legally binding.  The nice people at GNU have
57 prepared the legalese already and you can find their license verbatim in the
58 file COPYING.LIB or, if you installed the Debian package,
59 /usr/doc/copyright/LGPL.  Please read it carefully before distributing (or
60 worse, not distributing) modified copies of WvDial, because the rules aren't
61 quite as simple as I've made them sound.
64 Compiling and Installing WvDial
65 ===============================
67 If you are not using our pre-compiled Debian package, you will need to
68 compile WvDial yourself.  This is not too difficult as long as you have a
69 few things installed on your Linux system:
71         - pppd 2.2.0f or 2.3.5, with the pppd program preferably 
72                 at /usr/sbin/pppd.
74         - gcc 2.7.2 or higher, with g++ (but you don't necessarily need
75                 libg++ or libstdc++, as WvDial doesn't need them)
77         - GNU make; you may need version 3.75 or higher, I'm not sure.
79         - The WvStreams library (REALLY IMPORTANT: STOP RIGHT NOW if you
80           don't have this, and go download it from http://open.nit.ca/download)
82 Almost any halfway modern Linux system should have all of these. The last is
83 available from http://open.nit.ca/download/
85 Building WvDial is a simple matter.  First, check the Makefile to see if
86 everything looks okay to you.  By default, wvdial and wvdialconf will
87 install in /usr/local/bin with their man pages in /usr/local/man/man1. 
88 That's probably right for most systems.
90 To build and install WvDial, then:
91         make
92         make install
94 Assuming you don't have any compile errors (and really, you shouldn't,
95 right?) you now have an installed WvDial system.
98 Configuring for the First Time
99 ==============================
101 Again Debian users have a nice soft fuzzy warm cushion to land on: when
102 installing the WvDial package, Debian's "dpkg" automatically runs wvdialconf
103 and asks all the right questions to get you going.
105 If you compiled manually, you have to go through a little bit more trouble
106 -- but don't worry, not that much.
108 The first thing to do is have wvdialconf detect your modem and create your
109 initial configuration.  'su' to root and type the following:
110         wvdialconf /etc/wvdial.conf
112 If all goes well, your modem will be detected and its configuration stored
113 in /etc/wvdial.conf.  If it doesn't work, all is not lost but you will have
114 to build the configuration completely by yourself.  Read the wvdial(1) man
115 page ("man wvdial") for more information about that.
117 In any case, if your modem is not detected or the detection sequence
118 confuses you in some way, let us know by sending an e-mail message to
119 wvdial@worldvisions.ca -- this is supposed to be a stable release, but
120 everybody knows that doesn't really mean anything.  Things could still go
121 wrong, and we really want to know if they do.  Remember, if we don't know 
122 there's a problem, we can't fix it.
124 On my computer the modem detection sequence looks like this:
125         
126         Scanning your serial ports for a modem.
127         
128         modemscan<Info>: Ignoring ttyS0 because /dev/mouse is a link to it.
129         ttyS1<*1>: AT -- AT -- AT -- nothing.
130         ttyS2<*1>: AT -- OK
131         ttyS2<*1>: ATZ -- OK
132         ttyS2<*1>: ATQ0 -- OK
133         ttyS2<*1>: ATQ0 V1 -- OK
134         ttyS2<*1>: ATQ0 V1 E1 -- OK
135                 [more init string testing]
136         ttyS2<*1>: Speed 2400: AT -- OK
137         ttyS2<*1>: Speed 4800: AT -- OK
138                 [more baud rate testing]
139         ttyS2<*1>: Speed 230400: AT -- AT
140         ttyS2<*1>: Max speed is 115200; using 57600 to be safe.
141         ttyS2<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 -- OK
142         
143         Found 1 available modem; using /dev/ttyS2.
144         ttyS2<Info>: Speed 57600; init "ATQ0 V1 E1 S0=0 &C1 &D2 S11=55"
146 wvdialconf will scan all your /dev/ttyS* serial ports *except* the
147 /dev/mouse port (if you have a /dev/mouse link) because sometimes probing
148 the mouse port can cause mouse problems.  In any case, try not to move your
149 mouse while wvdialconf is probing and you should be safe.
151 After wvdialconf runs successfully (ie., you receive a message like the one
152 above) it writes your configuration to /etc/wvdial.conf, the filename you
153 gave it on the command line.  My auto-generated wvdial.conf file looks like
154 this:
156         [Dialer Defaults]
157         Modem = /dev/ttyS2
158         Baud = 57600
159         Init = ATZ
160         Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S11=55
161         ; Phone = <Target Phone Number>
162         ; Username = <Your Login Name>
163         ; Password = <Your Password>
165 After [Dialer Defaults], the first four lines have been autodetected for
166 your system, so don't worry if they look a little different.
168 The next three lines are commented out.  You need to edit the file to fill
169 in the information about your Internet provider.  Here's a sample completed
170 wvdial.conf file:
172         [Dialer Defaults]
173         Modem = /dev/ttyS2
174         Baud = 57600
175         Init = ATZ
176         Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S11=55
177         Phone = 555-4242
178         Username = apenwarr
179         Password = my-password
181 This contains all the information needed to dial my favourite non-existent
182 Internet provider.
184 If you use more than one modem, dial-in account, Internet provider, init
185 string, or anything, you can use additional "override" sections in
186 wvdial.conf to support this.  See the wvdial(1) man page for more
187 information.  (Type "man wvdial")
190 Testing it for the First Time
191 =============================
193 Now you've compiled, installed, and configured WvDial.  Doesn't that make
194 you mad at all the darn Debian users who didn't have to do any of this
195 stuff?  Well, now you've caught up with them.  Sooner or later, everyone has
196 to try dialing for the first time.
198 To do this, type
199         wvdial
200 (surprise!).
201         
202 Unlike other ppp dialers you might have used, the wvdial program runs in the
203 foreground and never exits until you disconnect or have some kind of fatal
204 error.  You can also quit (and disconnect the phone, and clean up politely)
205 by pressing CTRL-C.  I think this is more user-friendly, myself.  Of course
206 if you want it to work like pppd you can always do it in the usual way:
208         wvdial >/var/log/wvdial.log 2>&1 &
210 It is interesting to note that almost all of WvDial's functionality is found
211 in a C++ class called WvDialer.  That means it's easy for a programmer to
212 take WvDial and put in whatever kind of user interface he wants.  The
213 "wvdial" program serves as a simple example.  So with WvDial, if someone
214 (say) wanted to write an X-Windows dialup button bar, they could simply link
215 in the C++ class and not have to worry about messy interactions with
216 self-backgrounding pppd scripts and other gruesome stuff.
218 Anyway, if you have any gripes about the way this works, let us know.  
219 The more stuff you complain about, the more likely we are to do something 
220 about it.
223 Assuming it Worked...
224 =====================
226 If you ran wvdial and it connected to and logged into your Internet
227 provider, you're in business.  If it said anything strange or confusing
228 along the way, e-mail us anyway -- it could be the sign of a nasty problem
229 hiding somewhere.
232 Nah, it Didn't Work After All
233 =============================
235 Because WvDial has a pretty nasty bunch of heuristics included for dialing
236 modems, finding login/password prompts, guessing at menu options and command
237 prompts, and so on, it has been known to screw up on occasion.  If WvDial
238 doesn't quite work for you, it's probably our fault, not yours!  It's
239 difficult for us to guess typical login sequences for various ISP's, and 
240 it's completely impossible for us to guess them all.  If WvDial doesn't seem
241 to like your ISP, I've got some good news and some bad news for you.
243 The bad news about WvDial versus 'chat' scripts:  if your chat script
244 doesn't work, you can always fix it without doing any programming.  WvDial
245 uses built-in intelligence, but if its intelligence fails, you're out of
246 luck.
248 And now the good news: E-mail us about the problem and we'll do our best to 
249 help.  If we can do it, we want WvDial to work with nearly every ISP around, 
250 without any special configuration.
252 The most useful thing you can do for us is create a complete transcript
253 of your wvdial session:
254         wvdial 2>&1 | tee wvdial.out
256 Then e-mail the wvdial.out file to us along with your comments.  Similarly,
257 if the problem is during the modem detection phase (ALL modems should be
258 detected successfully in a working wvdialconf!) you can get a transcript
259 like this:
260         wvdialconf /dev/null 2>&1 | tee wvdialconf.out
262 And e-mail us wvdialconf.out.
265 Concluding Notes
266 ================
268 WvDial has support for switching easily between multiple Internet accounts:
269 read the wvdial(1) man page for more information.
271 For that matter, it would do you well to read the wvdial(1) and
272 wvdialconf(1) man pages anyway. (Oh, and don't forget about wvdial.conf(5)
273 too!)
275 Even though this is supposed to be a stable release, there may still be bugs
276 in this thing.  Tell us about them, every last one.  Send us e-mail at:
277                 wvdial@nit.ca
279 Or better yet, why not send your comments to the WvDial Mailing List, at:
280                 wvdial-list@lists.nit.ca
282 There is a (currently cheesy) web page for wvdial at:
283                 http://open.nit.ca/wvdial/
285 ...have fun with it!
287 Remember:
288         It's only big and scary looking if you look too closely.