ports(8) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

ports(8)

System Administration Commands                                        ports(8)



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

SYNOPSIS
       /usr/sbin/ports [-r rootdir]

DESCRIPTION
       devfsadm(8)  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 lowercase 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
       attached  to  the  system. It also checks /dev/term and /dev/cua to see
       what symbolic links to serial devices already exist.  ports  then  per‐
       forms the following:

           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-unused 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.




       If the configuration has not changed, ports exits  without  doing  any‐
       thing.

   Notice to Driver Writers
       ports   considers   devices   with   a   node  type  of  DDI_NT_SERIAL,
       DDI_NT_SERIAL_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_cre‐
       ate_minor_node(9F).

           o      The  minor  name for non-system port devices (DDI_NT_SERIAL)
                  consists 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, concate‐
                  nated with ,cu. For example, 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  character,  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_SERIAL_MB_DO) consists of  the  lowercase  character
                  port  name,  concatenated  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).

OPTIONS
       The following options are supported:

       -r rootdir    Causes ports to presume that the /dev/term, /dev/cua, and
                     /devices  directories  are  found  under   rootdir,   not
                     directly under /.


EXAMPLES
       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)
         int
         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 Sun Fire 4800



       The following example installs the xkserial port driver on a  Sun  Fire
       4800  (with the driver controlling the fictional XKSerial 8 port serial
       board), with these special files in /devices:


         # ls -l /devices/ssm@0,0/pci@18,700000/pci@1/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
       /devices


         # 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




FILES
       /dev/term/n     Logical serial port devices


       /dev/cua/n      Logical dialout port devices


       /etc/inittab    Controls dispatching by init.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE VALUE _ Availabilitysystem/device-administration


SEE ALSO
       devfs(4FS),   attributes(7),   add_drv(8),  devfsadm(8),  drvconfig(8),
       attach(9E), ddi_create_minor_node(9F)


       Writing Device Drivers in Oracle Solaris 11.4



Oracle Solaris 11.4               11 May 2021                         ports(8)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3