Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
ports(1M)		System Administration Commands		     ports(1M)

       ports - creates /dev entries and	inittab	entries	for serial lines

       /usr/sbin/ports [-r rootdir]

       devfsadm(1M)  is	 now  the  preferred command for /dev and /devices and
       should be used instead of ports.

       The ports command creates symbolic links	in the	/dev/term and /dev/cua
       directories  to	the serial-port	character device files in /devices and
       adds new	entries	in /etc/inittab	for non-system ports  found.   System-
       board  ports  are  given	single lower-case letters for names (such as a
       and b) while other ports	are named numerically.

       ports searches the kernel device	tree to	find the  serial  devices  at-
       tached to the system. It	also checks /dev/term and /dev/cua to see what
       symbolic	links to serial	devices	already	exist. ports then performs the

       1. Assigns  new	numbers	 (or  letters for system-board ports) to ports
	  that are attached to the  system  but	 do  not  have	/dev/term  and
	  /dev/cua entries. The	numbers	or letters assigned are	the lowest-un-
	  used numbers or letters.

       2. Removes dangling links: links	from /dev/term and  /dev/cua  pointing
	  to no-longer-existing	ports.

       3. Creates new /dev/term	and /dev/cua links for new serial devices.

       4. Invokes  sacadm(1M) to make new port monitor entries for the new de-
	  vices. This is not done automatically	for on-board ports;  on	 work-
	  stations  these  ports are often not used for	dial-in	sessions, so a
	  port-monitor for one of these	ports must be created explicitly.

       If the configuration has	not changed, ports exits  without  doing  any-

       ports  is  run  each  time a reconfiguration-boot is performed, or when
       add_drv(1M) is executed.	When invoking ports manually, first  run  drv-
       config(1M)  to  ensure  /devices	 is consistent with the	current	device

   Notice to Driver Writers
       ports considers devices with a node type	of  DDI_NT_SERIAL,  DDI_NT_SE-
       RIAL_MB,	 DDI_NT_SERIAL_DO,  or	 DDI_NT_SERIAL_MB_DO to	be serial port
       devices.	Devices	with one of these node types must create minor	device
       names  that  obey the following conventions when	calling	ddi_create_mi-

	  o  The minor name for	non-system port	devices	 (DDI_NT_SERIAL)  con-
	     sists  of	an   ASCII numeric string, where the first port	on the
	     device is named  0, the second named  1, the third	named	2,  up
	     to	the  number of ports provided by the device.

	  o  The  minor	name for non-system dialout devices (DDI_NT_SERIAL_DO)
	     is	the  ASCII numeric port	name, concatenated with	 ,cu. For  ex-
	     ample,  the  minor	 name for the first dialout port on the	serial
	     board is  0,cu.

	  o  The minor name for	system-board port  devices  (DDI_NT_SERIAL_MB)
	     consists of a string containing a single  ASCII lowercase charac-
	     ter, where	 the first port	on the device is named	a, the	second
	     is	 named	 b, the	third is named	c, for all ports on the	device
	     (or up through port  z).

	  o  The minor name  for  system-board	dialout	 devices   (DDI_NT_SE-
	     RIAL_MB_DO)  consists  of the lowercase character port name, con-
	     catenated	with  ,cu. For example,	the minor name for  the	 first
	     dialout port on the  on-board serial device is  a,cu.

       To  prevent disks from attempting to automatically generate links for a
       device, drivers must specify a private node type	and refrain from using
       one of the above	node types when	calling	ddi_create_minor_node(9F).

       The following options are supported:

       -r rootdir
	     Causes  ports  to	presume	that the /dev/term, /dev/cua, and /de-
	     vices directories are found under rootdir,	not directly under  /.
	     If	 this  argument	is specified, sacadm(1M) is not	invoked, since
	     it	would update terminal administration files under /etc  without
	     regard to the rootdir.

       Example 1: Creating the Serial and Dialout Minor	Device Nodes

       The following example creates the serial	and dialout minor device nodes
       from the	 xkserial driver's attach(9E) function:

       * Create	the minor number by combining the instance number
       * with the port number.
       */ #define XKNUMPORTS	       8
       #define XKMINORNUM(i, p)	    ((i) << 4 |	(p))
       #define XKMINORNUM_DO(i,	p)  ((i) << 4 |	(p) | 0x80)
       xkserialattach(dev_info_t *dip, ddi_attach_cmd_t	cmd)
	  int instance,	portnum;
	  char name[8];
	      /* other stuff in	attach... */
	  instance = ddi_get_instance(dip);
	  for (portnum = 0; portnum < XKNUMPORTS; portnum++) {
	       * create	the serial port	device
	       sprintf(name, "%d", portnum);
	       ddi_create_minor_node(dip, name,	S_IFCHR,
		  XKMINORNUM(instance, portnum), DDI_NT_SERIAL,	0);

		* create the dialout device
		sprintf(name,"%d,cu", portnum);
		ddi_create_minor_node(dip, name, S_IFCHR,
		    XKMINORNUM_DO(instance, portnum), DDI_NT_SERIAL_DO,	0);

       Example 2: Installing the  xkserial Port	Driver on a SPARCstation 20

       The following example installs the  xkserial port driver	on a SPARCsta-
       tion 20 (with the  driver controlling the fictional XKSerial 8 port se-
       rial board) and performs	a reconfiguration-boot.	It creates the follow-
       ing special files in /devices.

       # ls -l /devices/iommu@f,e0000000/sbus@f,e0001000/xkserial@f,800000/
       crw-r-----   1 root sys	 32,  16 Aug 29	00:02 xkserial@2000:0
       crw-r-----   1 root sys	 32, 144 Aug 29	00:02 xkserial@2000:0,cu
       crw-r-----   1 root sys	 32,  17 Aug 29	00:02 xkserial@2000:1
       crw-r-----   1 root sys	 32, 145 Aug 29	00:02 xkserial@2000:1,cu
       crw-r-----   1 root sys	 32,  18 Aug 29	00:02 xkserial@2000:2
       crw-r-----   1 root sys	 32, 146 Aug 29	00:02 xkserial@2000:2,cu
       crw-r-----   1 root sys	 32,  19 Aug 29	00:02 xkserial@2000:3
       crw-r-----   1 root sys	 32, 147 Aug 29	00:02 xkserial@2000:3,cu
       crw-r-----   1 root sys	 32,  20 Aug 29	00:02 xkserial@2000:4
       crw-r-----   1 root sys	 32, 148 Aug 29	00:02 xkserial@2000:4,cu
       crw-r-----   1 root sys	 32,  21 Aug 29	00:02 xkserial@2000:5
       crw-r-----   1 root sys	 32, 149 Aug 29	00:02 xkserial@2000:5,cu
       crw-r-----   1 root sys	 32,  22 Aug 29	00:02 xkserial@2000:6
       crw-r-----   1 root sys	 32, 150 Aug 29	00:02 xkserial@2000:6,cu
       crw-r-----   1 root sys	 32,  23 Aug 29	00:02 xkserial@2000:7
       crw-r-----   1 root sys	 32, 151 Aug 29	00:02 xkserial@2000:7,cu

       /dev/term  contain  symbolic  links  to the serial port device nodes in

       # ls -l /dev/term
       /dev/term/0 -> ../../devices/[....]/xkserial@2000:0
       /dev/term/1 -> ../../devices/[....]/xkserial@2000:1
       /dev/term/2 -> ../../devices/[....]/xkserial@2000:2
       /dev/term/3 -> ../../devices/[....]/xkserial@2000:3
       /dev/term/4 -> ../../devices/[....]/xkserial@2000:4
       /dev/term/5 -> ../../devices/[....]/xkserial@2000:5
       /dev/term/6 -> ../../devices/[....]/xkserial@2000:6
       /dev/term/7 -> ../../devices/[....]/xkserial@2000:7

       and  /dev/cua contain symbolic links to the dialout port	 device	 nodes
       in  /devices

       # ls -l /dev/cua

       /dev/cua/0 -> ../../devices/[....]/xkserial@2000:0,cu
       /dev/cua/1 -> ../../devices/[....]/xkserial@2000:1,cu
       /dev/cua/2 -> ../../devices/[....]/xkserial@2000:2,cu
       /dev/cua/3 -> ../../devices/[....]/xkserial@2000:3,cu
       /dev/cua/4 -> ../../devices/[....]/xkserial@2000:4,cu
       /dev/cua/5 -> ../../devices/[....]/xkserial@2000:5,cu
       /dev/cua/6 -> ../../devices/[....]/xkserial@2000:6,cu
       /dev/cua/7 -> ../../devices/[....]/xkserial@2000:7,cu

	     Logical serial port devices

	     Logical dialout port devices



       See attributes(5) for descriptions of the following attributes:

       |      ATTRIBUTE	TYPE	     |	    ATTRIBUTE VALUE	   |
       |Availability		     |	  SUNWcsu		   |

       add_drv(1M),   devfsadm(1M),  devlinks(1M),  disks(1M),	drvconfig(1M),
       pmadm(1M), sacadm(1M), tapes(1M), attributes(5),	 attach(9E),  ddi_cre-

       Writing Device Drivers

SunOS 5.9			  10 Feb 1999			     ports(1M)


Want to link to this manual page? Use this URL:

home | help