535 lines
		
	
	
	
		
			21 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			535 lines
		
	
	
	
		
			21 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
<!-- $Id: serial.sgml,v 1.5 1999-07-28 20:26:08 nik Exp $ -->
 | 
						|
<!-- The FreeBSD Documentation Project -->
 | 
						|
 | 
						|
  <sect>
 | 
						|
    <heading>Serial Communications<label id="serial"></heading>
 | 
						|
 | 
						|
    <p>This section answers common questions about serial communications
 | 
						|
    with FreeBSD.  PPP and SLIP are covered in the <ref id="networking"
 | 
						|
    name="Networking"> section.
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>How do I tell if FreeBSD found my serial ports?</heading>
 | 
						|
 | 
						|
      <p>As the FreeBSD kernel boots, it will probe for the serial ports
 | 
						|
      in your system for which the kernel was configured.  You can
 | 
						|
      either watch your system closely for the messages it prints or
 | 
						|
      run the command
 | 
						|
 | 
						|
      <verb>
 | 
						|
        dmesg | grep sio
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>after your system's up and running.
 | 
						|
 | 
						|
      <p>Here's some example output from the above command:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        sio0 at 0x3f8-0x3ff irq 4 on isa
 | 
						|
        sio0: type 16550A
 | 
						|
        sio1 at 0x2f8-0x2ff irq 3 on isa
 | 
						|
        sio1: type 16550A
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>This shows two serial ports.  The first is on irq 4, is using
 | 
						|
      port address <tt/0x3f8/, and has a 16550A-type UART chip.  The
 | 
						|
      second uses the same kind of chip but is on irq 3 and is at port
 | 
						|
      address <tt/0x2f8/.  Internal modem cards are treated just like
 | 
						|
      serial ports---except that they always have a modem ``attached''
 | 
						|
      to the port.
 | 
						|
 | 
						|
      <p>The <tt/GENERIC/ kernel includes support for two serial ports
 | 
						|
      using the same irq and port address settings in the above
 | 
						|
      example.  If these settings aren't right for your system, or if
 | 
						|
      you've added modem cards or have more serial ports than your
 | 
						|
      kernel is configured for, just reconfigure your kernel.  See
 | 
						|
      section <ref id="make-kernel" name="about building a kernel"> for
 | 
						|
      more details.
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>How do I tell if FreeBSD found my modem cards?</heading>
 | 
						|
 | 
						|
      <p>Refer to the answer to the previous question.
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>I just upgraded to 2.0.5 and my <tt/tty0X/ are missing!</heading>
 | 
						|
 | 
						|
      <p>Don't worry, they have been merged with the <tt/ttydX/ devices.
 | 
						|
      You'll have to change any old configuration files you have, though.
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>How do I access the serial ports on FreeBSD?</heading>
 | 
						|
 | 
						|
      <p>The third serial port, <htmlurl
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?sio" name="sio2"> (known as
 | 
						|
      COM3 in DOS), is on <tt>/dev/cuaa2</tt> for dial-out devices, and on
 | 
						|
      <tt>/dev/ttyd2</tt> for dial-in devices.  What's the difference
 | 
						|
      between these two classes of devices?
 | 
						|
 | 
						|
      <p>You use <tt/ttydX/ for dial-ins.  When opening <tt>/dev/ttydX</tt>
 | 
						|
      in blocking mode, a process will wait for the corresponding
 | 
						|
      <tt/cuaaX/ device to become inactive, and then wait
 | 
						|
      for the carrier detect line to go active.  When you open the
 | 
						|
      <tt/cuaaX/ device, it makes sure the serial port isn't already in
 | 
						|
      use by the <tt/ttydX/ device.  If the port's available, it
 | 
						|
      ``steals'' it from the <tt/ttydX/ device.  Also, the <tt/cuaXX/
 | 
						|
      device doesn't care about carrier detect.  With this scheme and
 | 
						|
      an auto-answer modem, you can have remote users log in and you
 | 
						|
      can still dialout with the same modem and the system will take
 | 
						|
      care of all the conflicts.
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>How do I enable support for a multiport serial card?</heading>
 | 
						|
 | 
						|
      <p>Again, the section on kernel configuration provides information
 | 
						|
      about configuring your kernel.  For a multiport serial card,
 | 
						|
      place an <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?sio"
 | 
						|
      name="sio"> line for each serial port on the card in the
 | 
						|
      kernel configuration file.  But place the irq and vector
 | 
						|
      specifiers on only one of the entries.  All of the ports on the
 | 
						|
      card should share one irq.  For consistency, use the last serial
 | 
						|
      port to specify the irq.  Also, specify the <tt/COM_MULTIPORT/
 | 
						|
      option.
 | 
						|
 | 
						|
      <p>The following example is for an AST 4-port serial card on irq 7:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        options "COM_MULTIPORT"
 | 
						|
        device sio4 at isa? port 0x2a0 tty flags 0x781
 | 
						|
        device sio5 at isa? port 0x2a8 tty flags 0x781
 | 
						|
        device sio6 at isa? port 0x2b0 tty flags 0x781
 | 
						|
        device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>The flags indicate that the master port has minor number 7
 | 
						|
      (<tt/0x700/), diagnostics enabled during probe (<tt/0x080/), and
 | 
						|
      all the ports share an irq (<tt/0x001/).
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>Can FreeBSD handle multiport serial cards sharing irqs?</heading>
 | 
						|
 | 
						|
      <p>Not yet. You'll have to use a different irq for each card.
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>Can I set the default serial parameters for a port?</heading>
 | 
						|
 | 
						|
      <p>The <tt/ttydX/ (or <tt/cuaaX/) device is the regular device
 | 
						|
      you'll want to open for your applications.  When a process opens
 | 
						|
      the device, it'll have a default set of terminal I/O settings.
 | 
						|
      You can see these settings with the command
 | 
						|
 | 
						|
      <verb>
 | 
						|
        stty -a -f /dev/ttyd1
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>When you change the settings to this device, the settings are in
 | 
						|
      effect until the device is closed.  When it's reopened, it goes
 | 
						|
      back to the default set.  To make changes to the default set, you
 | 
						|
      can open and adjust the settings of the ``initial state'' device.
 | 
						|
      For example, to turn on <tt/CLOCAL/ mode, 8 bits, and
 | 
						|
      <tt>XON/XOFF</tt> flow control by default for ttyd5, do:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        stty -f /dev/ttyid5 clocal cs8 ixon ixoff
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>A good place to do this is in <tt>/etc/rc.serial</tt>. Now, an
 | 
						|
      application will have these settings by default when it opens
 | 
						|
      <tt/ttyd5/.  It can still change these settings to its liking,
 | 
						|
      though.
 | 
						|
 | 
						|
      <p>You can also prevent certain settings from being changed by an
 | 
						|
      application by making adjustments to the ``lock state'' device.
 | 
						|
      For example, to lock the speed of <tt/ttyd5/ to 57600 bps, do
 | 
						|
 | 
						|
      <verb>
 | 
						|
        stty -f /dev/ttyld5 57600
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>Now, an application that opens <tt/ttyd5/ and tries to change the
 | 
						|
      speed of the port will be stuck with 57600 bps.
 | 
						|
 | 
						|
      <p>Naturally, you should make the initial state and lock state
 | 
						|
      devices writable only by <tt/root/. The <htmlurl 
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?MAKEDEV"
 | 
						|
      name="MAKEDEV"> script does <bf/NOT/ do this when it creates the
 | 
						|
      device entries.
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>How can I enable dialup logins on my modem?</heading>
 | 
						|
 | 
						|
      <p>So you want to become an Internet service provider, eh?  First,
 | 
						|
      you'll need one or more modems that can auto-answer.  Your modem
 | 
						|
      will need to assert carrier-detect when it detects a carrier and
 | 
						|
      not assert it all the time.  It will need to hang up the phone
 | 
						|
      and reset itself when the data terminal ready (<tt/DTR/) line
 | 
						|
      goes from on to off.  It should probably use <tt>RTS/CTS</tt>
 | 
						|
      flow control or no local flow control at all.  Finally, it must
 | 
						|
      use a constant speed between the computer and itself, but (to be
 | 
						|
      nice to your callers) it should negotiate a speed between itself
 | 
						|
      and the remote modem.
 | 
						|
 | 
						|
      <p>For many Hayes command-set--compatible modems, this command will
 | 
						|
      make these settings and store them in nonvolatile memory:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        AT &C1 &D3 &K3 &Q6 S0=1 &W
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>See the section <ref id="direct-at" name="on sending AT
 | 
						|
      commands"> below for information on how to make these settings
 | 
						|
      without resorting to an MS-DOS terminal program.
 | 
						|
 | 
						|
      <p>Next, make an entry in <htmlurl 
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?ttys" name="/etc/ttys"> for the
 | 
						|
      modem.  This file lists all the ports on which the operating system will
 | 
						|
      await logins.  Add a line that looks something like this:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        ttyd1 "/usr/libexec/getty std.57600" dialup on insecure
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>This line indicates that the second serial port
 | 
						|
      (<tt>/dev/ttyd1</tt>) has a modem connected running at 57600 bps
 | 
						|
      and no parity (<tt/std.57600/, which comes from the file
 | 
						|
      <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?gettytab"
 | 
						|
      name="/etc/gettytab">). The terminal type for this port is
 | 
						|
      ``dialup.''  The port is ``on'' and is ``insecure''---meaning
 | 
						|
      root logins on the port aren't allowed.  For dialin ports like
 | 
						|
      this one, use the <tt/ttydX/ entry.
 | 
						|
 | 
						|
      <p>It's common practice to use ``dialup'' as the terminal type.
 | 
						|
      Many users set up in their .profile or .login files a prompt for
 | 
						|
      the actual terminal type if the starting type is dialup.  The
 | 
						|
      example shows the port as insecure.  To become root on this port,
 | 
						|
      you have to login as a regular user, then ``<htmlurl 
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?su" name="su">'' to
 | 
						|
      <tt/root/.  If you use ``secure'' then <tt/root/ can login in
 | 
						|
      directly.
 | 
						|
 | 
						|
      <p>After making modifications to <htmlurl 
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?ttys" name="/etc/ttys">, you
 | 
						|
      need to send a hangup or <tt/HUP/ signal to the <htmlurl 
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?init" name="init"> process:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        kill -HUP 1
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>This forces the init process to reread <htmlurl 
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?ttys" name="/etc/ttys">.  The
 | 
						|
      init process will then start getty processes on all ``on'' ports.
 | 
						|
      You can find out if logins are available for your port by typing
 | 
						|
 | 
						|
      <verb>
 | 
						|
        ps -ax | grep '[t]tyd1'
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>You should see something like:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        747 ??  I      0:00.04 /usr/libexec/getty std.57600 ttyd1
 | 
						|
      </verb>
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>How can I connect a dumb terminal to my FreeBSD box?</heading>
 | 
						|
 | 
						|
      <p>If you're using another computer as a terminal into your FreeBSD
 | 
						|
      system, get a null modem cable to go between the two serial
 | 
						|
      ports.  If you're using an actual terminal, see its accompanying
 | 
						|
      instructions.
 | 
						|
 | 
						|
      <p>Then, modify <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ttys"
 | 
						|
      name="/etc/ttys">, like above.  For example, if you're hooking up a
 | 
						|
      WYSE-50 terminal to the fifth serial port, use an entry like this:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>This example shows that the port on <tt>/dev/ttyd4</tt> has a
 | 
						|
      wyse50 terminal connected at 38400 bps with no parity
 | 
						|
      (<tt/std.38400/ from <htmlurl 
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?gettytab"
 | 
						|
      name="/etc/gettytab">) and <tt/root/ logins are allowed (secure).
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>Why can't I run <tt/tip/ or <tt/cu/?</heading>
 | 
						|
 | 
						|
      <p>On your system, the programs <htmlurl 
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip"> and <htmlurl
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?cu" name="cu"> are probably
 | 
						|
      executable only by <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?uucp"
 | 
						|
      name="uucp"> and group <tt/dialer/.  You can use the group <tt/dialer/
 | 
						|
      to control who has access to your modem or remote systems.  Just add
 | 
						|
      yourself to group dialer.
 | 
						|
 | 
						|
      <p>Alternatively, you can let everyone on your system run <tt/tip/
 | 
						|
      and <tt/cu/ by typing:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        # chmod 4511 /usr/bin/cu
 | 
						|
        # chmod 4511 /usr/bin/tip
 | 
						|
      </verb>
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>My stock Hayes modem isn't supported---what can I do?</heading>
 | 
						|
 | 
						|
      <p>Actually, the man page for <htmlurl 
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip"> is out of
 | 
						|
      date.  There is a generic Hayes dialer already built in.  Just use
 | 
						|
      ``<tt/at=hayes/'' in your <htmlurl 
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?remote" name="/etc/remote"> file.
 | 
						|
 | 
						|
      <p>The Hayes driver isn't smart enough to recognize some of the
 | 
						|
      advanced features of newer modems---messages like <tt/BUSY/,
 | 
						|
      <tt/NO DIALTONE/, or <tt/CONNECT 115200/ will just confuse it.
 | 
						|
      You should turn those messages off when you use <htmlurl 
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip"> (using
 | 
						|
      <tt/ATX0&W/).
 | 
						|
 | 
						|
      <p>Also, the dial timeout for <tt/tip/ is 60 seconds.  Your modem
 | 
						|
      should use something less, or else tip will think there's a
 | 
						|
      communication problem.  Try <tt/ATS7=45&W/.
 | 
						|
 | 
						|
      <p>Actually, as shipped <tt/tip/ doesn't yet support it fully. The
 | 
						|
      solution is to edit the file <tt/tipconf.h/ in the directory
 | 
						|
      <tt>/usr/src/usr.bin/tip/tip</tt>.  Obviously you need the source
 | 
						|
      distribution to do this.
 | 
						|
 | 
						|
      <p>Edit the line ``<tt/#define HAYES 0/'' to ``<tt/#define HAYES
 | 
						|
      1/''. Then ``<tt/make/'' and ``<tt/make install/''. Everything
 | 
						|
      works nicely after that.
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>
 | 
						|
        How am I expected to enter these AT commands?<label id="direct-at">
 | 
						|
      </heading>
 | 
						|
 | 
						|
      <p>Make what's called a ``<tt/direct/'' entry in your
 | 
						|
      <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?remote"
 | 
						|
      name="/etc/remote"> file.  For example, if your modem's hooked
 | 
						|
      up to the first serial port, <tt>/dev/cuaa0</tt>, then put in the
 | 
						|
      following line:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        cuaa0:dv=/dev/cuaa0:br#19200:pa=none
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>Use the highest bps rate your modem supports in the br
 | 
						|
      capability.  Then, type <htmlurl
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip cuaa0"> and
 | 
						|
      you'll be connected to your modem.
 | 
						|
 | 
						|
      <p>If there is no <tt>/dev/cuaa0</tt> on your system, do this:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        # cd /dev
 | 
						|
        # ./MAKEDEV cuaa0
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>Or use cu as root with the following command:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        # cu -l``line'' -s``speed''
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>with line being the serial port (e.g.<tt>/dev/cuaa0</tt>)
 | 
						|
      and speed being the speed (e.g.<tt>57600</tt>).  When you are done
 | 
						|
      entering the AT commands hit <tt>~.</tt> to exit.
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>The <tt/@/ sign for the pn capability doesn't work!</heading>
 | 
						|
 | 
						|
      <p>The <tt/@/ sign in the phone number capability tells tip to look in
 | 
						|
      <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?phones(5)"
 | 
						|
      name="/etc/phones"> for a phone number.  But the <tt/@/ sign is
 | 
						|
      also a special character in capability files like
 | 
						|
      <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?remote"
 | 
						|
      name="/etc/remote">.  Escape it with a backslash:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        pn=\@
 | 
						|
      </verb>
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>How can I dial a phone number on the command line?</heading>
 | 
						|
 | 
						|
      <p>Put what's called a ``<tt/generic/'' entry in your
 | 
						|
      <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?remote"
 | 
						|
      name="/etc/remote"> file.  For example:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        tip115200|Dial any phone number at 115200 bps:\
 | 
						|
        :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:
 | 
						|
        tip57600|Dial any phone number at 57600 bps:\
 | 
						|
        :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>Then you can do something like ``<tt/tip -115200 5551234/''.  If you
 | 
						|
      prefer <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?cu"
 | 
						|
      name="cu"> over <htmlurl 
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip">, use a
 | 
						|
      generic cu entry:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        cu115200|Use cu to dial any number at 115200bps:\
 | 
						|
        :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>and type ``<tt/cu 5551234 -s 115200/''.
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>Do I have to type in the bps rate every time I do that?</heading>
 | 
						|
 | 
						|
      <p>Put in an entry for <tt/tip1200/ or <tt/cu1200/, but go ahead and
 | 
						|
      use whatever bps rate is appropriate with the br capability. <htmlurl 
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip"> thinks a good
 | 
						|
      default is 1200 bps which is why it looks for a ``<tt/tip1200/'' entry.
 | 
						|
      You don't have to use 1200 bps, though.
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>I access a number of hosts through a terminal server.</heading>
 | 
						|
 | 
						|
      <p>Rather than waiting until you're connected and typing
 | 
						|
      ``<tt/CONNECT <host>/'' each time, use tip's <tt/cm/
 | 
						|
      capability. For example, these entries in
 | 
						|
      <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?remote"
 | 
						|
       name="/etc/remote">:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        pain|pain.deep13.com|Forrester's machine:\
 | 
						|
        :cm=CONNECT pain\n:tc=deep13:
 | 
						|
        muffin|muffin.deep13.com|Frank's machine:\
 | 
						|
        :cm=CONNECT muffin\n:tc=deep13:
 | 
						|
        deep13:Gizmonics Institute terminal server:\
 | 
						|
        :dv=/dev/cua02:br#38400:at=hayes:du:pa=none:pn=5551234:
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>will let you type ``<tt/tip pain/'' or ``<tt/tip muffin/'' to
 | 
						|
      connect to the hosts pain or muffin; and ``<tt/tip deep13/'' to
 | 
						|
      get to the terminal server.
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>Can tip try more than one line for each site?</heading>
 | 
						|
 | 
						|
      <p>This is often a problem where a university has several modem lines
 | 
						|
      and several thousand students trying to use them...
 | 
						|
 | 
						|
      <p>Make an entry for your university in <htmlurl 
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?remote" name="/etc/remote">
 | 
						|
      and use <tt>\@</tt> for the <tt/pn/ capability:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        big-university:\
 | 
						|
        :pn=\@:tc=dialout
 | 
						|
        dialout:\
 | 
						|
        :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>Then, list the phone numbers for the university in
 | 
						|
      <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?phones"
 | 
						|
      name="/etc/phones">:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        big-university 5551111
 | 
						|
        big-university 5551112
 | 
						|
        big-university 5551113
 | 
						|
        big-university 5551114
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p><htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?tip"
 | 
						|
      name="tip"> will try each one in the listed order, then give up.  If
 | 
						|
      you want to keep retrying, run <tt/tip/ in a while loop.
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>Why do I have to hit CTRL+P twice to send CTRL+P once?</heading>
 | 
						|
 | 
						|
      <p>CTRL+P is the default ``force'' character, used to tell 
 | 
						|
      <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip">
 | 
						|
      that the next character is literal data.  You can set the force
 | 
						|
      character to any other character with the <tt/~s/ escape, which
 | 
						|
      means ``set a variable.''
 | 
						|
 | 
						|
      <p>Type ``<tt/~sforce=<single-char>/'' followed by a newline.
 | 
						|
      <tt/<single-char>/ is any single character.  If you leave
 | 
						|
      out <tt/<single-char>/, then the force character is the nul
 | 
						|
      character, which you can get by typing CTRL+2 or CTRL+SPACE.  A
 | 
						|
      pretty good value for <tt/<single-char>/ is SHIFT+CTRL+6,
 | 
						|
      which I've seen only used on some terminal servers.
 | 
						|
 | 
						|
      <p>You can have the force character be whatever you want by
 | 
						|
      specifying the following in your <tt>$HOME/.tiprc</tt>
 | 
						|
      file:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        force=<single-char>
 | 
						|
      </verb>
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>Suddenly everything I type is in UPPER CASE??</heading>
 | 
						|
 | 
						|
      <p>You must've pressed CTRL+A, <htmlurl 
 | 
						|
      url="http://www.FreeBSD.org/cgi/man.cgi?tip" name="tip"> ``raise
 | 
						|
      character,'' specially designed for people with broken caps-lock keys.
 | 
						|
      Use <tt/~s/ as above and set the variable ``raisechar'' to something
 | 
						|
      reasonable.  In fact, you can set it to the same as the force
 | 
						|
      character, if you never expect to use either of these features.
 | 
						|
 | 
						|
      <p>Here's a sample .tiprc file perfect for Emacs users who need to
 | 
						|
      type CTRL+2 and CTRL+A a lot:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        force=^^
 | 
						|
        raisechar=^^
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>The ^^ is SHIFT+CTRL+6.
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>How can I do file transfers with <tt/tip/?</heading>
 | 
						|
 | 
						|
      <p>If you're talking to another UNIX system, you can send and
 | 
						|
      receive files with <tt/~p/ (put) and <tt/~t/ (take).  These
 | 
						|
      commands run <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?cat"
 | 
						|
      name="cat"> and <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?echo"
 | 
						|
      name="echo"> on the remote system to accept and send files.  The syntax
 | 
						|
      is:
 | 
						|
 | 
						|
      <verb>
 | 
						|
        ~p <local-file> [<remote-file>]
 | 
						|
        ~t <remote-file> [<local-file>]
 | 
						|
      </verb>
 | 
						|
 | 
						|
      <p>There's no error checking, so you probably should use another
 | 
						|
      protocol, like zmodem.
 | 
						|
 | 
						|
    <sect1>
 | 
						|
      <heading>How can I run zmodem with <tt/tip/?</heading>
 | 
						|
 | 
						|
      <p>First, install one of the zmodem programs from the ports
 | 
						|
      collection (such as one of the two from the comms category,
 | 
						|
      <htmlurl url="http://www.FreeBSD.org/cgi/ports.cgi?^lrzsz" name="lrzsz">
 | 
						|
      and <htmlurl url="http://www.FreeBSD.org/cgi/ports.cgi?^rzsz"
 | 
						|
      name="rzsz">).
 | 
						|
 | 
						|
      <p>To receive files, start the sending program on the remote end.
 | 
						|
      Then, press enter and type ``<tt/~C rz/'' (or ``<tt/~C lrz/'' if
 | 
						|
      you installed lrzsz) to begin receiving them locally.
 | 
						|
 | 
						|
      <p>To send files, start the receiving program on the remote end.
 | 
						|
      Then, press enter and type ``<tt/~C sz <files>/'' (or
 | 
						|
      ``<tt/~C lsz <files>/'') to send them to the
 | 
						|
      remote system.
 | 
						|
 | 
						|
    <sect1>
 | 
						|
     <heading>FreeBSD can't seem to find my serial ports, even when the
 | 
						|
     settings are correct.</heading>
 | 
						|
   
 | 
						|
     <p>Motherboards and cards with Acer UARTs do not probe properly under
 | 
						|
     the FreeBSD sio probe.  Obtain a patch from 
 | 
						|
     <url url="http://www.lemis.com/serial-port-patch.html" 
 | 
						|
     name="www.lemis.com"> to fix your problem.
 | 
						|
 | 
						|
  </sect>
 | 
						|
 |